Commit Graph

177 Commits

Author SHA1 Message Date
Sergio Pedri f34c0f3b49 Fix generation for nested types that are not classes 2022-04-11 14:28:14 +02:00
Sergio Pedri 3324b5214e Fix incorrect duplicated property notification call 2022-04-06 18:21:43 +02:00
Sergio Pedri 69707bf3fd Fix false positive diagnostics for inherited members 2022-04-06 18:08:42 +02:00
Sergio Pedri e0016b7e0f Move diagnostics list to shipped release file 2022-04-06 15:14:14 +02:00
Sergio Pedri f2ac314fd0 Improve [ICommand] overload diagnostics 2022-03-26 13:58:23 +01:00
Sergio Pedri 3ff3d8e8cd Add diagnostics for [ICommand] on multiple overloads 2022-03-26 13:52:28 +01:00
Sergio Pedri a045b551d8
Merge pull request #161 from CommunityToolkit/dev/icommand-attribute-task-t
Allow Task<T>-returns on methods with [ICommand]
2022-03-25 23:21:20 +01:00
Sergio Pedri ec1129b54d
Merge pull request #179 from CommunityToolkit/dev/incremental-nullable-generator
Make NullabilityAttributesGenerator incremental
2022-03-25 23:20:45 +01:00
Sergio Pedri 8c03ffa93d Fix NullabilityAttributesGenerator generation conditions 2022-03-25 22:28:53 +01:00
Sergio Pedri 8fba78db76 Simplify AddSource(...) calls 2022-03-25 22:28:53 +01:00
Sergio Pedri 807dbcaf94 Switch NullabilityAttributesGenerator to incremental 2022-03-25 22:28:53 +01:00
Sergio Pedri a3bafc654e Add RegisterConditionalSourceOutput API 2022-03-25 22:28:52 +01:00
Sergio Pedri 5a8fd0bf1e Update [ICommand] generator for Task<T> returns 2022-03-25 22:28:38 +01:00
Sergio Pedri 4bb6067abc Fix nullability annotations in generated properties 2022-03-25 22:27:18 +01:00
Sergio Pedri 668de52f39 Enable orphaning diagnostics for [AlsoBroadcastChange] 2022-03-16 15:30:03 +01:00
Sergio Pedri 53ac5d8e38 Implement code generation for [AlsoBroadcastChange] 2022-03-16 15:30:03 +01:00
Sergio Pedri 216d4eaaf4 Code refactoring to remove goto-s 2022-03-15 20:00:19 +01:00
Sergio Pedri eb41f891f8 Add diagnostics for invalid [ObservableRecipient] target type 2022-03-14 00:02:38 +01:00
Sergio Pedri 5cb0a737ff Fix diagnostics categories 2022-03-13 22:56:32 +01:00
Sergio Pedri 17d4df6555 Add diagnostics for orphaned [ObservableProperty] dependent attributes 2022-03-13 20:07:27 +01:00
Sergio Pedri e694deff8e Minor code tweaks 2022-03-13 19:42:10 +01:00
Sergio Pedri b632429c15 Add diagnostics for invalid [ObservableProperty] containing type 2022-03-13 19:37:15 +01:00
Sergio Pedri 914a7aca26 Add diagnostics for combining [INPC] and [ObservableObject] 2022-03-13 18:39:23 +01:00
Sergio Pedri 0fb8a627fa Minor code refactoring 2022-03-13 18:17:46 +01:00
Sergio Pedri ab6d3007e6 Skip generating properties when there is a name collision 2022-03-13 15:47:11 +01:00
Sergio Pedri 31f5c95603 Improve diagnostics for [ObservableProperty] with invalid validation 2022-03-13 15:15:20 +01:00
Sergio Pedri 840e7a5983 More bug fixes to new diagnostics 2022-03-13 15:15:20 +01:00
Sergio Pedri ccb8a9d4ad Fixed bugs in new diagnostics logic 2022-03-13 15:15:20 +01:00
Sergio Pedri 929bef6b6f Fix diagnostics for generated commands 2022-03-13 15:15:20 +01:00
Sergio Pedri 6e497b1ad0 Fix diagnostics for generated properties 2022-03-13 15:15:20 +01:00
Sergio Pedri b66fa4ba22 Add diagnostics for invalid target of [AlsoNotifyCanExecuteFor] 2022-03-13 15:15:20 +01:00
Sergio Pedri 48587bc7ba Add diagnostics for invalid target of [AlsoNotifyChangeFor] 2022-03-13 15:15:20 +01:00
Sergio Pedri 53f9abf098 Add diagnostics for name collision for [ObservableProperty] 2022-03-13 15:15:19 +01:00
Sergio Pedri e1ec425f97
Merge pull request #135 from CommunityToolkit/dev/dynamically-accessed-members-attribute
Add [DynamicallyAccessedMembers] annotations
2022-03-09 22:14:14 +01:00
Sergio Pedri 1e033f47bb Improve detection of [DynamicallyAccessedMembers] 2022-03-06 19:34:30 +01:00
Sergio Pedri baada1ac70 Update RegisterConditionalImplementationSourceOutput extension 2022-03-06 19:33:30 +01:00
Sergio Pedri 40b492ddf8 Generate [DynamicallyAccessedMembers] for __ObservableValidatorExtensions 2022-03-06 19:29:30 +01:00
Sergio Pedri e78e9c8250 Generate [DynamicallyAccessedMembers] for __IMessengerExtensions 2022-03-06 19:26:02 +01:00
Sergio Pedri c9839ef073 Remove [DebuggerNonUserCode] from visible members 2022-03-06 17:36:35 +01:00
Sergio Pedri 86d689c2f9 Update ICommandGenerator to generate cancel commands 2022-03-01 18:59:15 +01:00
Sergio Pedri 63a6676790 Add IncludeCancelCommand option to generator model 2022-03-01 17:22:37 +01:00
Sergio Pedri 3fc61fe03d
Merge pull request #119 from CommunityToolkit/dev/partial-observable-property-methods
[ObservableProperty] generates partial OnPropertyChanging/Changed methods
2022-03-01 13:40:42 +01:00
Sergio Pedri d4a58e88fb Fix wrong generator type names in [GeneratedCode] 2022-03-01 00:17:30 +01:00
Sergio Pedri 07fdeed558 Add invocation of partial generated methods 2022-03-01 00:17:30 +01:00
Sergio Pedri f487d92f87 Add partial generation for OnPropertyChanging/Changed 2022-03-01 00:17:29 +01:00
Sergio Pedri 1a24e0d415 Optimize duplicates removal in IMessengerRegisterAllGenerator 2022-03-01 00:17:15 +01:00
Sergio Pedri 854499580a Improve syntax node filtering in IMessengerRegisterAllGenerator 2022-03-01 00:17:15 +01:00
Sergio Pedri 849a0f14e5 Fix IRecipient generator for partial recipient declarations 2022-03-01 00:17:15 +01:00
Sergio Pedri 33c58e3eda Remove try/catch when awaiting tasks, ignore exceptions
This allows exceptions to remain unobserved and propagate to TaskScheduler.UnobservedTaskException. It will also be more efficient, as there is no longer an exception being thrown and handled if there's one.
2022-02-28 22:37:26 +01:00
Sergio Pedri 90cf3443e3
Merge pull request #127 from CommunityToolkit/dev/default-async-command-concurrency-false
Switch async commands to default to no concurrent execution
2022-02-28 21:25:43 +01:00
Sergio Pedri c71eb3592e
Merge pull request #124 from CommunityToolkit/dev/observable-property-inheritdoc
Add <inheritdoc/> to generated observable properties
2022-02-28 21:24:21 +01:00
Sergio Pedri f6ca1f0bc4 Switch default async command concurrency to false 2022-02-27 18:53:07 +01:00
Sergio Pedri 4a004a4fab Add <inheritdoc/> to generated observable properties 2022-02-24 23:59:29 +01:00
Sergio Pedri c1cb029bc2 Fix [ObservableRecipient] with inherited base attributes 2022-02-22 20:00:26 +01:00
Sergio Pedri 71ad82d274 Workaround for RS2002 warnings
See https://github.com/dotnet/roslyn-analyzers/issues/5828
2022-02-22 13:13:37 +01:00
Sergio Pedri 7e0bf75f8a Add support for [ICommand(CanExecute)] on generated properties 2022-01-31 19:40:35 +01:00
Sergio Pedri c38a4a2118 Disable generation of header files if no targets are present 2022-01-14 14:19:48 +01:00
Sergio Pedri 7d52b58e76 Fix conflicting generation of nullability attributes 2022-01-13 20:30:28 +01:00
Sergio Pedri 63abbb051d Fix generated members accessibility for sealed types 2021-12-31 18:06:42 +01:00
Sergio Pedri 704e5073f1 Enable implementing OnActivated/OnDeactivated with [ObservableRecipient] 2021-12-31 17:58:12 +01:00
Sergio Pedri 35d403b945 Fix mixed whitespaces in generated files 2021-12-31 17:32:47 +01:00
Sergio Pedri e12e0858a4 Fix removal of [RequiresUnreferencedCode] on older runtimes 2021-12-31 17:04:10 +01:00
Sergio Pedri af03bdfff0 Remove trimming annoations for [ObservableRecipient] on older runtimes 2021-12-31 16:28:00 +01:00
Sergio Pedri afc7232dc7 Improve custom filtering support in TransitiveMembersGenerator<TInfo> 2021-12-29 20:52:50 +01:00
Sergio Pedri 53614e7e3c Add comments to GetFullMetadataNameForFileName 2021-12-29 18:31:48 +01:00
Sergio Pedri f8dcd09581 Remove call to MulticastDelegate.op_Equality 2021-12-29 18:31:48 +01:00
Sergio Pedri 8cdc261997 Remove unnecessary partial class modifier 2021-12-29 18:31:48 +01:00
Sergio Pedri 64657753a3 Remove leftover internal helpers and adjust visibility 2021-12-29 18:31:47 +01:00
Sergio Pedri 9c581dc531 Add nullable enable directives to generated files 2021-12-29 18:31:12 +01:00
Sergio Pedri aae1cbde84 Add base Comparer<T, TSelf> type 2021-12-29 18:31:11 +01:00
Sergio Pedri 9cc7d41c1e Add FilterWithLanguageVersion extension to gate on language version 2021-12-29 18:31:11 +01:00
Sergio Pedri 13a9149eee Lower C# version requirement to 8 for all generators 2021-12-29 18:31:11 +01:00
Sergio Pedri 2428765852 Remove leftover DiagnosticDescriptor-s 2021-12-29 18:31:11 +01:00
Sergio Pedri 9474591020 Centralize handling of sealed target types 2021-12-29 18:31:11 +01:00
Sergio Pedri 164a8d92e3 Fix member generation in sealed types 2021-12-29 18:31:11 +01:00
Sergio Pedri 74c60c7a4a Remove non incremental TransitiveMembersGenerator 2021-12-29 18:31:11 +01:00
Sergio Pedri 1f90e526e9 Switch ObservableRecipientGenerator to incremental 2021-12-29 18:30:53 +01:00
Sergio Pedri b3eb5e55f5 Switch ObservableObjectGenerator to incremental 2021-12-29 18:30:53 +01:00
Sergio Pedri 839ddf98b3 Remove non incremental INotifyPropertyChangedGenerator 2021-12-29 18:30:53 +01:00
Sergio Pedri d3da266a1a Add incremental INotifyPropertyChangedGenerator 2021-12-29 18:30:53 +01:00
Sergio Pedri ddeddd8c08 Add initial version of incremental TransitiveMembersGenerator 2021-12-29 18:30:53 +01:00
Sergio Pedri 8bbc3092fe Enable diagnostics for ObservablePropertyGenerator 2021-12-29 18:30:53 +01:00
Sergio Pedri bf02beea06 Fix __KnownPropertyChangedEventArgs generation 2021-12-29 18:30:53 +01:00
Sergio Pedri 9defa26408 Minor code refactoring 2021-12-29 18:30:53 +01:00
Sergio Pedri b173cd3570 Remove non incremental ObservablePropertyGenerator 2021-12-29 18:30:53 +01:00
Sergio Pedri 8c9d9d3e8e Enable properties generation for ObservablePropertyGenerator 2021-12-29 18:30:36 +01:00
Sergio Pedri 30e5dbe6be Add initial version of incremental ObservablePropertyGenerator
Only generating cached property changing/changed args for now
2021-12-29 18:30:36 +01:00
Sergio Pedri cb225c1127 Port IEqualityComparerExtensions from ComputeSharp 2021-12-29 18:30:36 +01:00
Sergio Pedri 64649493b5 Add PropertyInfo type 2021-12-29 18:30:36 +01:00
Sergio Pedri 833dae319c Add models to cache validation attributes 2021-12-29 18:30:36 +01:00
Sergio Pedri 7f176bcae7 Remove non incremental ObservableValidatorValidateAllPropertiesGenerator 2021-12-29 18:30:36 +01:00
Sergio Pedri 87821000c9 Add incremental ObservableValidatorValidateAllPropertiesGenerator 2021-12-29 18:30:22 +01:00
Sergio Pedri ff09557a6f Improve code generation for IMessengerRegisterAllGenerator 2021-12-29 18:30:22 +01:00
Sergio Pedri 793a96ac39 Remove non incremental IMessengerRegisterAllGenerator 2021-12-29 18:30:22 +01:00
Sergio Pedri 5fd70ed0be Add incremental IMessengerRegisterAllGenerator 2021-12-29 18:29:57 +01:00
Sergio Pedri 9e493348e8 Minor code refactoring 2021-12-29 18:29:57 +01:00
Sergio Pedri 4667ba2ecd Restore C# version check in ICommandGenerator 2021-12-29 18:29:57 +01:00
Sergio Pedri 703514d0fa Minor code tweaks 2021-12-29 18:29:56 +01:00
Sergio Pedri 4a6edb1474 Remove non incremental ICommandGenerator 2021-12-29 18:29:56 +01:00
Sergio Pedri 28af36a269 Add incremental ICommandGenerator 2021-12-29 18:28:34 +01:00