Browse Source

Reorganize generators code

pull/10407/head
Max Katz 3 years ago
parent
commit
adbbe46aee
  1. 3
      src/tools/Avalonia.Generators/Avalonia.Generators.csproj
  2. 4
      src/tools/Avalonia.Generators/Common/Domain/ICodeGenerator.cs
  3. 4
      src/tools/Avalonia.Generators/Common/Domain/IGlobPattern.cs
  4. 12
      src/tools/Avalonia.Generators/Common/Domain/INameResolver.cs
  5. 4
      src/tools/Avalonia.Generators/Common/Domain/IViewResolver.cs
  6. 6
      src/tools/Avalonia.Generators/Common/GlobPattern.cs
  7. 6
      src/tools/Avalonia.Generators/Common/GlobPatternGroup.cs
  8. 4
      src/tools/Avalonia.Generators/Common/ResolverExtensions.cs
  9. 10
      src/tools/Avalonia.Generators/Common/XamlXNameResolver.cs
  10. 5
      src/tools/Avalonia.Generators/Common/XamlXViewResolver.cs
  11. 4
      src/tools/Avalonia.Generators/Domain/IsExternalInit.cs
  12. 6
      src/tools/Avalonia.Generators/GeneratorContextExtensions.cs
  13. 28
      src/tools/Avalonia.Generators/GeneratorOptions.cs
  14. 6
      src/tools/Avalonia.Generators/NameGenerator/AvaloniaNameGenerator.cs
  15. 15
      src/tools/Avalonia.Generators/NameGenerator/AvaloniaNameSourceGenerator.cs
  16. 4
      src/tools/Avalonia.Generators/NameGenerator/INameGenerator.cs
  17. 8
      src/tools/Avalonia.Generators/NameGenerator/InitializeComponentCodeGenerator.cs
  18. 6
      src/tools/Avalonia.Generators/NameGenerator/OnlyPropertiesCodeGenerator.cs
  19. 21
      src/tools/Avalonia.Generators/NameGenerator/Options.cs
  20. 4
      tests/Avalonia.Generators.Tests/GlobPatternTests.cs
  21. 5
      tests/Avalonia.Generators.Tests/InitializeComponent/InitializeComponentTests.cs
  22. 5
      tests/Avalonia.Generators.Tests/OnlyProperties/OnlyPropertiesTests.cs
  23. 4
      tests/Avalonia.Generators.Tests/XamlXClassResolverTests.cs
  24. 6
      tests/Avalonia.Generators.Tests/XamlXNameResolverTests.cs

3
src/tools/Avalonia.Generators/Avalonia.Generators.csproj

@ -13,8 +13,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Link="XamlX\filename" Include="../../Markup/Avalonia.Markup.Xaml.Loader/xamlil.github/src/XamlX/**/*.cs" /> <Compile Link="Compiler\XamlX\filename" Include="../../Markup/Avalonia.Markup.Xaml.Loader/xamlil.github/src/XamlX/**/*.cs" />
<Compile Remove="../../Markup/Avalonia.Markup.Xaml.Loader/xamlil.github/src/XamlX/**/SreTypeSystem.cs" /> <Compile Remove="../../Markup/Avalonia.Markup.Xaml.Loader/xamlil.github/src/XamlX/**/SreTypeSystem.cs" />
<Compile Include="..\..\Shared\IsExternalInit.cs" Link="IsExternalInit.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

4
src/tools/Avalonia.Generators/Domain/ICodeGenerator.cs → src/tools/Avalonia.Generators/Common/Domain/ICodeGenerator.cs

@ -1,9 +1,9 @@
using System.Collections.Generic; using System.Collections.Generic;
using XamlX.TypeSystem; using XamlX.TypeSystem;
namespace Avalonia.Generators.Domain; namespace Avalonia.Generators.Common.Domain;
internal interface ICodeGenerator internal interface ICodeGenerator
{ {
string GenerateCode(string className, string nameSpace, IXamlType xamlType, IEnumerable<ResolvedName> names); string GenerateCode(string className, string nameSpace, IXamlType xamlType, IEnumerable<ResolvedName> names);
} }

4
src/tools/Avalonia.Generators/Domain/IGlobPattern.cs → src/tools/Avalonia.Generators/Common/Domain/IGlobPattern.cs

@ -1,6 +1,6 @@
namespace Avalonia.Generators.Domain; namespace Avalonia.Generators.Common.Domain;
internal interface IGlobPattern internal interface IGlobPattern
{ {
bool Matches(string str); bool Matches(string str);
} }

12
src/tools/Avalonia.Generators/Domain/INameResolver.cs → src/tools/Avalonia.Generators/Common/Domain/INameResolver.cs

@ -1,11 +1,19 @@
using System.Collections.Generic; using System.Collections.Generic;
using XamlX.Ast; using XamlX.Ast;
namespace Avalonia.Generators.Domain; namespace Avalonia.Generators.Common.Domain;
internal enum NamedFieldModifier
{
Public = 0,
Private = 1,
Internal = 2,
Protected = 3,
}
internal interface INameResolver internal interface INameResolver
{ {
IReadOnlyList<ResolvedName> ResolveNames(XamlDocument xaml); IReadOnlyList<ResolvedName> ResolveNames(XamlDocument xaml);
} }
internal record ResolvedName(string TypeName, string Name, string FieldModifier); internal record ResolvedName(string TypeName, string Name, string FieldModifier);

4
src/tools/Avalonia.Generators/Domain/IViewResolver.cs → src/tools/Avalonia.Generators/Common/Domain/IViewResolver.cs

@ -1,11 +1,11 @@
using XamlX.Ast; using XamlX.Ast;
using XamlX.TypeSystem; using XamlX.TypeSystem;
namespace Avalonia.Generators.Domain; namespace Avalonia.Generators.Common.Domain;
internal interface IViewResolver internal interface IViewResolver
{ {
ResolvedView ResolveView(string xaml); ResolvedView ResolveView(string xaml);
} }
internal record ResolvedView(string ClassName, IXamlType XamlType, string Namespace, XamlDocument Xaml); internal record ResolvedView(string ClassName, IXamlType XamlType, string Namespace, XamlDocument Xaml);

6
src/tools/Avalonia.Generators/Generator/GlobPattern.cs → src/tools/Avalonia.Generators/Common/GlobPattern.cs

@ -1,7 +1,7 @@
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using Avalonia.Generators.Domain; using Avalonia.Generators.Common.Domain;
namespace Avalonia.Generators.Generator; namespace Avalonia.Generators.Common;
internal class GlobPattern : IGlobPattern internal class GlobPattern : IGlobPattern
{ {
@ -15,4 +15,4 @@ internal class GlobPattern : IGlobPattern
} }
public bool Matches(string str) => _regex.IsMatch(str); public bool Matches(string str) => _regex.IsMatch(str);
} }

6
src/tools/Avalonia.Generators/Generator/GlobPatternGroup.cs → src/tools/Avalonia.Generators/Common/GlobPatternGroup.cs

@ -1,8 +1,8 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Avalonia.Generators.Domain; using Avalonia.Generators.Common.Domain;
namespace Avalonia.Generators.Generator; namespace Avalonia.Generators.Common;
internal class GlobPatternGroup : IGlobPattern internal class GlobPatternGroup : IGlobPattern
{ {
@ -14,4 +14,4 @@ internal class GlobPatternGroup : IGlobPattern
.ToArray(); .ToArray();
public bool Matches(string str) => _patterns.Any(pattern => pattern.Matches(str)); public bool Matches(string str) => _patterns.Any(pattern => pattern.Matches(str));
} }

4
src/tools/Avalonia.Generators/Generator/ResolverExtensions.cs → src/tools/Avalonia.Generators/Common/ResolverExtensions.cs

@ -1,7 +1,7 @@
using System.Linq; using System.Linq;
using XamlX.TypeSystem; using XamlX.TypeSystem;
namespace Avalonia.Generators.Generator; namespace Avalonia.Generators.Common;
internal static class ResolverExtensions internal static class ResolverExtensions
{ {
@ -22,4 +22,4 @@ internal static class ResolverExtensions
clrType.Interfaces.Any(abstraction => clrType.Interfaces.Any(abstraction =>
abstraction.IsInterface && abstraction.IsInterface &&
abstraction.FullName == "Avalonia.IStyledElement"); abstraction.FullName == "Avalonia.IStyledElement");
} }

10
src/tools/Avalonia.Generators/Generator/XamlXNameResolver.cs → src/tools/Avalonia.Generators/Common/XamlXNameResolver.cs

@ -1,20 +1,20 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Immutable; using System.Collections.Immutable;
using System.Linq; using System.Linq;
using Avalonia.Generators.Domain; using Avalonia.Generators.Common.Domain;
using XamlX; using XamlX;
using XamlX.Ast; using XamlX.Ast;
namespace Avalonia.Generators.Generator; namespace Avalonia.Generators.Common;
internal class XamlXNameResolver : INameResolver, IXamlAstVisitor internal class XamlXNameResolver : INameResolver, IXamlAstVisitor
{ {
private readonly List<ResolvedName> _items = new(); private readonly List<ResolvedName> _items = new();
private readonly string _defaultFieldModifier; private readonly string _defaultFieldModifier;
public XamlXNameResolver(DefaultFieldModifier defaultFieldModifier = DefaultFieldModifier.Internal) public XamlXNameResolver(NamedFieldModifier namedFieldModifier = NamedFieldModifier.Internal)
{ {
_defaultFieldModifier = defaultFieldModifier.ToString().ToLowerInvariant(); _defaultFieldModifier = namedFieldModifier.ToString().ToLowerInvariant();
} }
public IReadOnlyList<ResolvedName> ResolveNames(XamlDocument xaml) public IReadOnlyList<ResolvedName> ResolveNames(XamlDocument xaml)
@ -89,4 +89,4 @@ internal class XamlXNameResolver : INameResolver, IXamlAstVisitor
_ => _defaultFieldModifier _ => _defaultFieldModifier
}; };
} }
} }

5
src/tools/Avalonia.Generators/Generator/XamlXViewResolver.cs → src/tools/Avalonia.Generators/Common/XamlXViewResolver.cs

@ -1,14 +1,13 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Avalonia.Generators.Common.Domain;
using Avalonia.Generators.Compiler; using Avalonia.Generators.Compiler;
using Avalonia.Generators.Domain;
using XamlX; using XamlX;
using XamlX.Ast; using XamlX.Ast;
using XamlX.Parsers; using XamlX.Parsers;
using XamlX.TypeSystem;
namespace Avalonia.Generators.Generator; namespace Avalonia.Generators.Common;
internal class XamlXViewResolver : IViewResolver, IXamlAstVisitor internal class XamlXViewResolver : IViewResolver, IXamlAstVisitor
{ {

4
src/tools/Avalonia.Generators/Domain/IsExternalInit.cs

@ -1,4 +0,0 @@
// ReSharper disable once CheckNamespace
namespace System.Runtime.CompilerServices;
internal static class IsExternalInit { }

6
src/tools/Avalonia.Generators/GeneratorContextExtensions.cs

@ -17,13 +17,13 @@ internal static class GeneratorContextExtensions
return value ?? defaultValue; return value ?? defaultValue;
} }
public static void ReportUnhandledError(this GeneratorExecutionContext context, Exception error) => public static void ReportNameGeneratorUnhandledError(this GeneratorExecutionContext context, Exception error) =>
context.Report(UnhandledErrorDescriptorId, context.Report(UnhandledErrorDescriptorId,
"Unhandled exception occured while generating typed Name references. " + "Unhandled exception occured while generating typed Name references. " +
"Please file an issue: https://github.com/avaloniaui/Avalonia.Generators", "Please file an issue: https://github.com/avaloniaui/Avalonia.Generators",
error.ToString()); error.ToString());
public static void ReportInvalidType(this GeneratorExecutionContext context, string typeName) => public static void ReportNameGeneratorInvalidType(this GeneratorExecutionContext context, string typeName) =>
context.Report(InvalidTypeDescriptorId, context.Report(InvalidTypeDescriptorId,
$"Avalonia x:Name generator was unable to generate names for type '{typeName}'. " + $"Avalonia x:Name generator was unable to generate names for type '{typeName}'. " +
$"The type '{typeName}' does not exist in the assembly."); $"The type '{typeName}' does not exist in the assembly.");
@ -33,4 +33,4 @@ internal static class GeneratorContextExtensions
Diagnostic.Create( Diagnostic.Create(
new DiagnosticDescriptor(id, title, message ?? title, "Usage", DiagnosticSeverity.Error, true), new DiagnosticDescriptor(id, title, message ?? title, "Usage", DiagnosticSeverity.Error, true),
Location.None)); Location.None));
} }

28
src/tools/Avalonia.Generators/GeneratorOptions.cs

@ -1,4 +1,6 @@
using System; using System;
using Avalonia.Generators.Common.Domain;
using Avalonia.Generators.NameGenerator;
using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis;
namespace Avalonia.Generators; namespace Avalonia.Generators;
@ -12,26 +14,6 @@ internal enum BuildProperties
AvaloniaNameGeneratorViewFileNamingStrategy = 4, AvaloniaNameGeneratorViewFileNamingStrategy = 4,
} }
internal enum DefaultFieldModifier
{
Public = 0,
Private = 1,
Internal = 2,
Protected = 3,
}
internal enum Behavior
{
OnlyProperties = 0,
InitializeComponent = 1,
}
internal enum ViewFileNamingStrategy
{
ClassName = 0,
NamespaceAndClassName = 1,
}
internal class GeneratorOptions internal class GeneratorOptions
{ {
private readonly GeneratorExecutionContext _context; private readonly GeneratorExecutionContext _context;
@ -42,9 +24,9 @@ internal class GeneratorOptions
BuildProperties.AvaloniaNameGeneratorBehavior, BuildProperties.AvaloniaNameGeneratorBehavior,
Behavior.InitializeComponent); Behavior.InitializeComponent);
public DefaultFieldModifier AvaloniaNameGeneratorDefaultFieldModifier => GetEnumProperty( public NamedFieldModifier AvaloniaNameGeneratorClassFieldModifier => GetEnumProperty(
BuildProperties.AvaloniaNameGeneratorDefaultFieldModifier, BuildProperties.AvaloniaNameGeneratorDefaultFieldModifier,
DefaultFieldModifier.Internal); NamedFieldModifier.Internal);
public ViewFileNamingStrategy AvaloniaNameGeneratorViewFileNamingStrategy => GetEnumProperty( public ViewFileNamingStrategy AvaloniaNameGeneratorViewFileNamingStrategy => GetEnumProperty(
BuildProperties.AvaloniaNameGeneratorViewFileNamingStrategy, BuildProperties.AvaloniaNameGeneratorViewFileNamingStrategy,
@ -71,4 +53,4 @@ internal class GeneratorOptions
var value = _context.GetMsBuildProperty(key, defaultValue.ToString()); var value = _context.GetMsBuildProperty(key, defaultValue.ToString());
return Enum.TryParse(value, true, out TEnum behavior) ? behavior : defaultValue; return Enum.TryParse(value, true, out TEnum behavior) ? behavior : defaultValue;
} }
} }

6
src/tools/Avalonia.Generators/Generator/AvaloniaNameGenerator.cs → src/tools/Avalonia.Generators/NameGenerator/AvaloniaNameGenerator.cs

@ -1,10 +1,10 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Avalonia.Generators.Domain; using Avalonia.Generators.Common.Domain;
using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis;
namespace Avalonia.Generators.Generator; namespace Avalonia.Generators.NameGenerator;
internal class AvaloniaNameGenerator : INameGenerator internal class AvaloniaNameGenerator : INameGenerator
{ {
@ -60,4 +60,4 @@ internal class AvaloniaNameGenerator : INameGenerator
ViewFileNamingStrategy.NamespaceAndClassName => $"{view.Namespace}.{view.ClassName}.g.cs", ViewFileNamingStrategy.NamespaceAndClassName => $"{view.Namespace}.{view.ClassName}.g.cs",
_ => throw new ArgumentOutOfRangeException(nameof(strategy), strategy, "Unknown naming strategy!") _ => throw new ArgumentOutOfRangeException(nameof(strategy), strategy, "Unknown naming strategy!")
}; };
} }

15
src/tools/Avalonia.Generators/Generator.cs → src/tools/Avalonia.Generators/NameGenerator/AvaloniaNameSourceGenerator.cs

@ -1,12 +1,11 @@
using System; using System;
using System.Runtime.CompilerServices; using Avalonia.Generators.Common;
using Avalonia.Generators.Common.Domain;
using Avalonia.Generators.Compiler; using Avalonia.Generators.Compiler;
using Avalonia.Generators.Domain;
using Avalonia.Generators.Generator;
using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp;
namespace Avalonia.Generators; namespace Avalonia.Generators.NameGenerator;
[Generator] [Generator]
public class AvaloniaNameSourceGenerator : ISourceGenerator public class AvaloniaNameSourceGenerator : ISourceGenerator
@ -23,7 +22,7 @@ public class AvaloniaNameSourceGenerator : ISourceGenerator
} }
catch (Exception exception) catch (Exception exception)
{ {
context.ReportUnhandledError(exception); context.ReportNameGeneratorUnhandledError(exception);
} }
} }
@ -43,9 +42,9 @@ public class AvaloniaNameSourceGenerator : ISourceGenerator
new GlobPatternGroup(options.AvaloniaNameGeneratorFilterByPath), new GlobPatternGroup(options.AvaloniaNameGeneratorFilterByPath),
new GlobPatternGroup(options.AvaloniaNameGeneratorFilterByNamespace), new GlobPatternGroup(options.AvaloniaNameGeneratorFilterByNamespace),
new XamlXViewResolver(types, compiler, true, new XamlXViewResolver(types, compiler, true,
type => context.ReportInvalidType(type), type => context.ReportNameGeneratorInvalidType(type),
error => context.ReportUnhandledError(error)), error => context.ReportNameGeneratorUnhandledError(error)),
new XamlXNameResolver(options.AvaloniaNameGeneratorDefaultFieldModifier), new XamlXNameResolver(options.AvaloniaNameGeneratorClassFieldModifier),
generator); generator);
} }
} }

4
src/tools/Avalonia.Generators/Domain/INameGenerator.cs → src/tools/Avalonia.Generators/NameGenerator/INameGenerator.cs

@ -1,11 +1,11 @@
using System.Collections.Generic; using System.Collections.Generic;
using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis;
namespace Avalonia.Generators.Domain; namespace Avalonia.Generators.NameGenerator;
internal interface INameGenerator internal interface INameGenerator
{ {
IReadOnlyList<GeneratedPartialClass> GenerateNameReferences(IEnumerable<AdditionalText> additionalFiles); IReadOnlyList<GeneratedPartialClass> GenerateNameReferences(IEnumerable<AdditionalText> additionalFiles);
} }
internal record GeneratedPartialClass(string FileName, string Content); internal record GeneratedPartialClass(string FileName, string Content);

8
src/tools/Avalonia.Generators/Generator/InitializeComponentCodeGenerator.cs → src/tools/Avalonia.Generators/NameGenerator/InitializeComponentCodeGenerator.cs

@ -1,10 +1,8 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Xml.Linq; using Avalonia.Generators.Common.Domain;
using Avalonia.Generators.Domain;
using XamlX.TypeSystem; using XamlX.TypeSystem;
namespace Avalonia.Generators.Generator; namespace Avalonia.Generators.NameGenerator;
internal class InitializeComponentCodeGenerator: ICodeGenerator internal class InitializeComponentCodeGenerator: ICodeGenerator
{ {
@ -82,4 +80,4 @@ namespace {nameSpace}
return isWindow; return isWindow;
} }
} }

6
src/tools/Avalonia.Generators/Generator/OnlyPropertiesCodeGenerator.cs → src/tools/Avalonia.Generators/NameGenerator/OnlyPropertiesCodeGenerator.cs

@ -1,9 +1,9 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Avalonia.Generators.Domain; using Avalonia.Generators.Common.Domain;
using XamlX.TypeSystem; using XamlX.TypeSystem;
namespace Avalonia.Generators.Generator; namespace Avalonia.Generators.NameGenerator;
internal class OnlyPropertiesCodeGenerator : ICodeGenerator internal class OnlyPropertiesCodeGenerator : ICodeGenerator
{ {
@ -28,4 +28,4 @@ namespace {nameSpace}
}} }}
"; ";
} }
} }

21
src/tools/Avalonia.Generators/NameGenerator/Options.cs

@ -0,0 +1,21 @@
namespace Avalonia.Generators.NameGenerator;
internal enum Options
{
Public = 0,
Private = 1,
Internal = 2,
Protected = 3,
}
internal enum Behavior
{
OnlyProperties = 0,
InitializeComponent = 1,
}
internal enum ViewFileNamingStrategy
{
ClassName = 0,
NamespaceAndClassName = 1,
}

4
tests/Avalonia.Generators.Tests/GlobPatternTests.cs

@ -1,4 +1,4 @@
using Avalonia.Generators.Generator; using Avalonia.Generators.Common;
using Xunit; using Xunit;
namespace Avalonia.Generators.Tests; namespace Avalonia.Generators.Tests;
@ -28,4 +28,4 @@ public class GlobPatternTests
{ {
Assert.Equal(matches, new GlobPatternGroup(patterns).Matches(value)); Assert.Equal(matches, new GlobPatternGroup(patterns).Matches(value));
} }
} }

5
tests/Avalonia.Generators.Tests/InitializeComponent/InitializeComponentTests.cs

@ -1,6 +1,7 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Avalonia.Generators.Common;
using Avalonia.Generators.Compiler; using Avalonia.Generators.Compiler;
using Avalonia.Generators.Generator; using Avalonia.Generators.NameGenerator;
using Avalonia.Generators.Tests.InitializeComponent.GeneratedInitializeComponent; using Avalonia.Generators.Tests.InitializeComponent.GeneratedInitializeComponent;
using Avalonia.Generators.Tests.OnlyProperties.GeneratedCode; using Avalonia.Generators.Tests.OnlyProperties.GeneratedCode;
using Avalonia.Generators.Tests.Views; using Avalonia.Generators.Tests.Views;
@ -59,4 +60,4 @@ public class InitializeComponentTests
CSharpSyntaxTree.ParseText(code); CSharpSyntaxTree.ParseText(code);
Assert.Equal(expected.Replace("\r", string.Empty), code); Assert.Equal(expected.Replace("\r", string.Empty), code);
} }
} }

5
tests/Avalonia.Generators.Tests/OnlyProperties/OnlyPropertiesTests.cs

@ -1,6 +1,7 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Avalonia.Generators.Common;
using Avalonia.Generators.Compiler; using Avalonia.Generators.Compiler;
using Avalonia.Generators.Generator; using Avalonia.Generators.NameGenerator;
using Avalonia.Generators.Tests.OnlyProperties.GeneratedCode; using Avalonia.Generators.Tests.OnlyProperties.GeneratedCode;
using Avalonia.Generators.Tests.Views; using Avalonia.Generators.Tests.Views;
using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp;
@ -48,4 +49,4 @@ public class OnlyPropertiesTests
CSharpSyntaxTree.ParseText(code); CSharpSyntaxTree.ParseText(code);
Assert.Equal(expected.Replace("\r", string.Empty), code); Assert.Equal(expected.Replace("\r", string.Empty), code);
} }
} }

4
tests/Avalonia.Generators.Tests/XamlXClassResolverTests.cs

@ -1,6 +1,6 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Avalonia.Generators.Common;
using Avalonia.Generators.Compiler; using Avalonia.Generators.Compiler;
using Avalonia.Generators.Generator;
using Avalonia.Generators.Tests.Views; using Avalonia.Generators.Tests.Views;
using Xunit; using Xunit;
@ -37,4 +37,4 @@ public class XamlXClassResolverTests
Assert.Equal(className, resolvedClass.ClassName); Assert.Equal(className, resolvedClass.ClassName);
Assert.Equal(nameSpace, resolvedClass.Namespace); Assert.Equal(nameSpace, resolvedClass.Namespace);
} }
} }

6
tests/Avalonia.Generators.Tests/XamlXNameResolverTests.cs

@ -1,9 +1,9 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Generators.Common;
using Avalonia.Generators.Common.Domain;
using Avalonia.Generators.Compiler; using Avalonia.Generators.Compiler;
using Avalonia.Generators.Domain;
using Avalonia.Generators.Generator;
using Avalonia.ReactiveUI; using Avalonia.ReactiveUI;
using Avalonia.Generators.Tests.Views; using Avalonia.Generators.Tests.Views;
using Xunit; using Xunit;
@ -138,4 +138,4 @@ public class XamlXNameResolverTests
var nameResolver = new XamlXNameResolver(); var nameResolver = new XamlXNameResolver();
return nameResolver.ResolveNames(classInfo.Xaml); return nameResolver.ResolveNames(classInfo.Xaml);
} }
} }

Loading…
Cancel
Save