Skip to content

Commit 96a460f

Browse files
committed
Fixed not finding attributes on methods symbols, misc cleanup
1 parent 08914e7 commit 96a460f

File tree

5 files changed

+19
-21
lines changed

5 files changed

+19
-21
lines changed

CommunityToolkit.Tooling.SampleGen.Tests/ToolkitSampleGeneratedPaneTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public class UserControl { }
8383
// Create application head that references generated sample project
8484
var headCompilation = string.Empty
8585
.ToSyntaxTree()
86-
.CreateCompilation("MyApp.Head", TestHelpers.GetAllReferencedAssemblies())
86+
.CreateCompilation("MyApp.Head")
8787
.AddReferences(sampleProjectAssembly);
8888

8989
// Run source generator
@@ -414,7 +414,7 @@ public class UserControl {{ }}
414414
// Create application head that references generated sample project
415415
var headCompilation = string.Empty
416416
.ToSyntaxTree()
417-
.CreateCompilation("MyApp.Head", TestHelpers.GetAllReferencedAssemblies())
417+
.CreateCompilation("MyApp.Head")
418418
.AddReferences(sampleProjectAssembly);
419419

420420
// Run source generator

CommunityToolkit.Tooling.SampleGen/GeneratorExtensions.cs

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,6 @@ public static class GeneratorExtensions
1616
/// <returns>A flattened enumerable of <see cref="INamedTypeSymbol"/>s.</returns>
1717
public static IEnumerable<ISymbol> CrawlForAllSymbols(this INamespaceSymbol namespaceSymbol)
1818
{
19-
foreach (var member in namespaceSymbol.GetNamespaceMembers())
20-
{
21-
if (member is INamespaceSymbol nestedNamespace)
22-
{
23-
foreach (var item in CrawlForAllSymbols(nestedNamespace))
24-
{
25-
yield return item;
26-
}
27-
}
28-
}
29-
3019
// Get all classes and methods
3120
foreach (var item in namespaceSymbol.GetTypeMembers())
3221
{
@@ -35,8 +24,17 @@ public static IEnumerable<ISymbol> CrawlForAllSymbols(this INamespaceSymbol name
3524
foreach (var itemMember in item.GetMembers())
3625
{
3726
if (itemMember.Kind == SymbolKind.Method)
38-
{
3927
yield return itemMember;
28+
}
29+
}
30+
31+
foreach (var member in namespaceSymbol.GetNamespaceMembers())
32+
{
33+
if (member is INamespaceSymbol nestedNamespace)
34+
{
35+
foreach (var item in CrawlForAllSymbols(nestedNamespace))
36+
{
37+
yield return item;
4038
}
4139
}
4240
}

CommunityToolkit.Tooling.SampleGen/Metadata/ToolkitSampleButtonCommand.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ public ToolkitSampleButtonCommand(Action callback)
2020

2121
/// <inheritdoc />
2222
public event EventHandler? CanExecuteChanged;
23-
23+
2424
/// <inheritdoc />
2525
public bool CanExecute(object parameter)
2626
{
27-
throw new NotImplementedException();
27+
return true;
2828
}
2929
/// <inheritdoc />
3030
public void Execute(object parameter)

CommunityToolkit.Tooling.SampleGen/ToolkitSampleMetadataGenerator.Sample.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ void Execute(IncrementalValuesProvider<ISymbol> types, bool skipDiagnostics = fa
5454

5555
// Find and reconstruct generated pane option attributes + the original type symbol.
5656
var generatedPaneOptions = allAttributeData
57-
.Select(static (x, _) =>
57+
.Select((x, _) =>
5858
{
5959
(ISymbol Symbol, ToolkitSampleOptionBaseAttribute Attribute) item = default;
6060

@@ -118,7 +118,7 @@ void Execute(IncrementalValuesProvider<ISymbol> types, bool skipDiagnostics = fa
118118

119119
context.RegisterSourceOutput(all, (ctx, data) =>
120120
{
121-
var toolkitSampleAttributeData = data.Left.Left.Left.Right.Where(x => x != default).Distinct();
121+
var toolkitSampleAttributeData = data.Left.Left.Left.Right.Where(x => x != default).Distinct().ToArray();
122122
var optionsPaneAttribute = data.Left.Left.Left.Left.Where(x => x != default).Distinct();
123123
var generatedOptionPropertyData = data.Left.Left.Right.Where(x => x.Attribute is not null && x.Symbol is not null);
124124
var markdownFileData = data.Left.Right.Where(x => x != default).Distinct();
@@ -138,7 +138,7 @@ void Execute(IncrementalValuesProvider<ISymbol> types, bool skipDiagnostics = fa
138138
sample.Attribute.Description,
139139
sample.AttachedQualifiedTypeName,
140140
optionsPaneAttribute.FirstOrDefault(x => x.Item1?.SampleId == sample.Attribute.Id).Item2?.ToString(),
141-
generatedOptionPropertyData.Where(x => Equals(x.Symbol, sample.Symbol)).Select(x => x.Item2)
141+
generatedOptionPropertyData.Where(x => x.Symbol.Equals(sample.Symbol, SymbolEqualityComparer.Default)).Select(x => x.Item2)
142142
)
143143
);
144144

@@ -315,7 +315,7 @@ private static IEnumerable<string> BuildNewGeneratedSampleOptionMetadataSource(T
315315
}
316316
else if (item is ToolkitSampleButtonActionAttribute buttonAttribute)
317317
{
318-
yield return $@"new {typeof(ToolkitSampleButtonActionMetadataViewModel).FullName}(name: ""{buttonAttribute.Name}"", label: ""{buttonAttribute.Label}"", title: ""{buttonAttribute.Title}"")";
318+
yield return $@"new {typeof(ToolkitSampleButtonActionMetadataViewModel).FullName}(name: ""{buttonAttribute.Name}"", controlToBindingValueFactory: x => x.{buttonAttribute.Name}Command, label: ""{buttonAttribute.Label}"", title: ""{buttonAttribute.Title}"")";
319319
}
320320
else if (item is ToolkitSampleNumericOptionAttribute numericAttribute)
321321
{

CommunityToolkit.Tooling.SampleGen/ToolkitSampleOptionGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ public partial class {{attachedMethodSymbol.ContainingSymbol.Name}}
206206
get
207207
{
208208
var metadata = GeneratedPropertyMetadata!.First(x => x.Name == nameof({{attachedMethodSymbol.Name}}));
209-
return ({{typeof(System.Windows.Input.ICommand).FullName}})(metadata.Value ??= new {{typeof(ToolkitSampleButtonCommand).FullName}}({{attachedMethodSymbol.Name}}));
209+
return ({{typeof(System.Windows.Input.ICommand).FullName}})(metadata.Value ??= new {{typeof(ToolkitSampleButtonCommand).FullName}}(() => {{attachedMethodSymbol.Name}}()));
210210
}
211211
set
212212
{

0 commit comments

Comments
 (0)