Browse Source

IClassResolver->IViewResolver

pull/10407/head
artyom 5 years ago
parent
commit
11b74bb800
  1. 4
      src/Avalonia.NameGenerator.Tests/FindControlNameGeneratorTests.cs
  2. 4
      src/Avalonia.NameGenerator.Tests/XamlXClassResolverTests.cs
  3. 4
      src/Avalonia.NameGenerator.Tests/XamlXNameResolverTests.cs
  4. 2
      src/Avalonia.NameGenerator/AvaloniaNameSourceGenerator.cs
  5. 8
      src/Avalonia.NameGenerator/Domain/IViewResolver.cs
  6. 6
      src/Avalonia.NameGenerator/Generator/AvaloniaNameGenerator.cs
  7. 10
      src/Avalonia.NameGenerator/Generator/XamlXViewResolver.cs

4
src/Avalonia.NameGenerator.Tests/FindControlNameGeneratorTests.cs

@ -27,14 +27,14 @@ namespace Avalonia.NameGenerator.Tests
View.CreateAvaloniaCompilation()
.WithCustomTextBox();
var classResolver = new XamlXClassResolver(
var classResolver = new XamlXViewResolver(
new RoslynTypeSystem(compilation),
MiniCompiler.CreateDefault(
new RoslynTypeSystem(compilation),
MiniCompiler.AvaloniaXmlnsDefinitionAttribute));
var xaml = await View.Load(markup);
var classInfo = classResolver.ResolveClass(xaml);
var classInfo = classResolver.ResolveView(xaml);
var nameResolver = new XamlXNameResolver();
var names = nameResolver.ResolveNames(classInfo.Xaml);

4
src/Avalonia.NameGenerator.Tests/XamlXClassResolverTests.cs

@ -27,11 +27,11 @@ namespace Avalonia.NameGenerator.Tests
.WithCustomTextBox();
var types = new RoslynTypeSystem(compilation);
var resolver = new XamlXClassResolver(
var resolver = new XamlXViewResolver(
types,
MiniCompiler.CreateDefault(types, MiniCompiler.AvaloniaXmlnsDefinitionAttribute));
var resolvedClass = resolver.ResolveClass(xaml);
var resolvedClass = resolver.ResolveView(xaml);
Assert.Equal(className, resolvedClass.ClassName);
Assert.Equal(nameSpace, resolvedClass.NameSpace);
}

4
src/Avalonia.NameGenerator.Tests/XamlXNameResolverTests.cs

@ -109,13 +109,13 @@ namespace Avalonia.NameGenerator.Tests
View.CreateAvaloniaCompilation()
.WithCustomTextBox();
var classResolver = new XamlXClassResolver(
var classResolver = new XamlXViewResolver(
new RoslynTypeSystem(compilation),
MiniCompiler.CreateDefault(
new RoslynTypeSystem(compilation),
MiniCompiler.AvaloniaXmlnsDefinitionAttribute));
var classInfo = classResolver.ResolveClass(xaml);
var classInfo = classResolver.ResolveView(xaml);
var nameResolver = new XamlXNameResolver();
return nameResolver.ResolveNames(classInfo.Xaml);
}

2
src/Avalonia.NameGenerator/AvaloniaNameSourceGenerator.cs

@ -23,7 +23,7 @@ namespace Avalonia.NameGenerator
INameGenerator avaloniaNameGenerator =
new AvaloniaNameGenerator(
new XamlXClassResolver(types, compiler, true, type => ReportInvalidType(context, type)),
new XamlXViewResolver(types, compiler, true, type => ReportInvalidType(context, type)),
new XamlXNameResolver(),
new FindControlCodeGenerator());

8
src/Avalonia.NameGenerator/Domain/IClassResolver.cs → src/Avalonia.NameGenerator/Domain/IViewResolver.cs

@ -2,18 +2,18 @@ using XamlX.Ast;
namespace Avalonia.NameGenerator.Domain
{
internal interface IClassResolver
internal interface IViewResolver
{
ResolvedClass ResolveClass(string xaml);
ResolvedView ResolveView(string xaml);
}
internal record ResolvedClass
internal record ResolvedView
{
public XamlDocument Xaml { get; }
public string ClassName { get; }
public string NameSpace { get; }
public ResolvedClass(string className, string nameSpace, XamlDocument xaml)
public ResolvedView(string className, string nameSpace, XamlDocument xaml)
{
ClassName = className;
NameSpace = nameSpace;

6
src/Avalonia.NameGenerator/Generator/AvaloniaNameGenerator.cs

@ -7,11 +7,11 @@ namespace Avalonia.NameGenerator.Generator
{
internal class AvaloniaNameGenerator : INameGenerator
{
private readonly IClassResolver _classes;
private readonly IViewResolver _classes;
private readonly INameResolver _names;
private readonly ICodeGenerator _code;
public AvaloniaNameGenerator(IClassResolver classes, INameResolver names, ICodeGenerator code)
public AvaloniaNameGenerator(IViewResolver classes, INameResolver names, ICodeGenerator code)
{
_classes = classes;
_names = names;
@ -26,7 +26,7 @@ namespace Avalonia.NameGenerator.Generator
file.Path.EndsWith(".paml") ||
file.Path.EndsWith(".axaml")
let xaml = file.GetText()!.ToString()
let type = _classes.ResolveClass(xaml)
let type = _classes.ResolveView(xaml)
where type != null
select type;

10
src/Avalonia.NameGenerator/Generator/XamlXClassResolver.cs → src/Avalonia.NameGenerator/Generator/XamlXViewResolver.cs

@ -9,17 +9,17 @@ using XamlX.Parsers;
namespace Avalonia.NameGenerator.Generator
{
internal class XamlXClassResolver : IClassResolver, IXamlAstVisitor
internal class XamlXViewResolver : IViewResolver, IXamlAstVisitor
{
private readonly RoslynTypeSystem _typeSystem;
private readonly MiniCompiler _compiler;
private readonly bool _checkTypeValidity;
private readonly Action<string> _onTypeInvalid;
private ResolvedClass _resolvedClass;
private ResolvedView _resolvedClass;
private XamlDocument _xaml;
public XamlXClassResolver(
public XamlXViewResolver(
RoslynTypeSystem typeSystem,
MiniCompiler compiler,
bool checkTypeValidity = false,
@ -31,7 +31,7 @@ namespace Avalonia.NameGenerator.Generator
_compiler = compiler;
}
public ResolvedClass ResolveClass(string xaml)
public ResolvedView ResolveView(string xaml)
{
_resolvedClass = null;
_xaml = XDocumentXamlParser.Parse(xaml, new Dictionary<string, string>
@ -79,7 +79,7 @@ namespace Avalonia.NameGenerator.Generator
var split = text.Text.Split('.');
var nameSpace = string.Join(".", split.Take(split.Length - 1));
var className = split.Last();
_resolvedClass = new ResolvedClass(className, nameSpace, _xaml);
_resolvedClass = new ResolvedView(className, nameSpace, _xaml);
return node;
}
}
Loading…
Cancel
Save