コード例 #1
0
        public async Task Should_Generate_FindControl_Refs_From_Avalonia_Markup_File(
            string expectation,
            string markup,
            bool devToolsMode)
        {
            var excluded    = devToolsMode ? null : "Avalonia.Diagnostics";
            var compilation =
                View.CreateAvaloniaCompilation(excluded)
                .WithCustomTextBox();

            var types         = new RoslynTypeSystem(compilation);
            var classResolver = new XamlXViewResolver(
                types,
                MiniCompiler.CreateDefault(
                    new RoslynTypeSystem(compilation),
                    MiniCompiler.AvaloniaXmlnsDefinitionAttribute));

            var xaml = await View.Load(markup);

            var classInfo    = classResolver.ResolveView(xaml);
            var nameResolver = new XamlXNameResolver();
            var names        = nameResolver.ResolveNames(classInfo.Xaml);

            var generator = new InitializeComponentCodeGenerator(types);

            var code = generator
                       .GenerateCode("SampleView", "Sample.App", classInfo.XamlType, names)
                       .Replace("\r", string.Empty);

            var expected = await InitializeComponentCode.Load(expectation);


            CSharpSyntaxTree.ParseText(code);
            Assert.Equal(expected.Replace("\r", string.Empty), code);
        }
コード例 #2
0
    private static IReadOnlyList <ResolvedName> ResolveNames(string xaml)
    {
        var compilation =
            View.CreateAvaloniaCompilation()
            .WithCustomTextBox();

        var classResolver = new XamlXViewResolver(
            new RoslynTypeSystem(compilation),
            MiniCompiler.CreateDefault(
                new RoslynTypeSystem(compilation),
                MiniCompiler.AvaloniaXmlnsDefinitionAttribute));

        var classInfo    = classResolver.ResolveView(xaml);
        var nameResolver = new XamlXNameResolver();

        return(nameResolver.ResolveNames(classInfo.Xaml));
    }