diff --git a/Avalonia.sln b/Avalonia.sln index 1e8ee85ffb..fef9be7290 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -244,6 +244,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepe EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepeater.UnitTests", "tests\Avalonia.Controls.ItemsRepeater.UnitTests\Avalonia.Controls.ItemsRepeater.UnitTests.csproj", "{F4E36AA8-814E-4704-BC07-291F70F45193}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Generators", "src\tools\Avalonia.Generators\Avalonia.Generators.csproj", "{DDA28789-C21A-4654-86CE-D01E81F095C5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Generators.Tests", "tests\Avalonia.Generators.Tests\Avalonia.Generators.Tests.csproj", "{2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -571,6 +575,14 @@ Global {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Debug|Any CPU.Build.0 = Release|Any CPU {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|Any CPU.ActiveCfg = Release|Any CPU {C692FE73-43DB-49CE-87FC-F03ED61F25C9}.Release|Any CPU.Build.0 = Release|Any CPU + {DDA28789-C21A-4654-86CE-D01E81F095C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDA28789-C21A-4654-86CE-D01E81F095C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDA28789-C21A-4654-86CE-D01E81F095C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDA28789-C21A-4654-86CE-D01E81F095C5}.Release|Any CPU.Build.0 = Release|Any CPU + {2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -638,6 +650,8 @@ Global {C810060E-3809-4B74-A125-F11533AF9C1B} = {9B9E3891-2366-4253-A952-D08BCEB71098} {F4E36AA8-814E-4704-BC07-291F70F45193} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {C692FE73-43DB-49CE-87FC-F03ED61F25C9} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637} + {DDA28789-C21A-4654-86CE-D01E81F095C5} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637} + {2D7C812B-7E73-4252-8EFD-BC8A4D5CCB9F} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A} diff --git a/build/SourceGenerators.props b/build/SourceGenerators.props index 4929578b60..a66bff4999 100644 --- a/build/SourceGenerators.props +++ b/build/SourceGenerators.props @@ -1,5 +1,10 @@ - + + true + false + + + + + + + + diff --git a/samples/ControlCatalog/ControlCatalog.csproj b/samples/ControlCatalog/ControlCatalog.csproj index c223bfe1a9..a9876df189 100644 --- a/samples/ControlCatalog/ControlCatalog.csproj +++ b/samples/ControlCatalog/ControlCatalog.csproj @@ -2,7 +2,8 @@ netstandard2.0;net6.0 true - enable + enable + true @@ -34,14 +35,5 @@ - - - - - - - - - - + diff --git a/samples/ControlCatalog/Pages/FlyoutsPage.axaml.cs b/samples/ControlCatalog/Pages/FlyoutsPage.axaml.cs index 7db6d9d334..8944151385 100644 --- a/samples/ControlCatalog/Pages/FlyoutsPage.axaml.cs +++ b/samples/ControlCatalog/Pages/FlyoutsPage.axaml.cs @@ -1,11 +1,10 @@ using Avalonia.Controls; using Avalonia.Controls.Primitives; -using Avalonia.Markup.Xaml; using Avalonia.Interactivity; namespace ControlCatalog.Pages { - public class FlyoutsPage : UserControl + public partial class FlyoutsPage : UserControl { public FlyoutsPage() { @@ -28,11 +27,6 @@ namespace ControlCatalog.Pages } } - private void InitializeComponent() - { - AvaloniaXamlLoader.Load(this); - } - private void SetXamlTexts() { var bfxt = this.Get("ButtonFlyoutXamlText"); diff --git a/samples/ControlCatalog/Pages/LabelsPage.axaml.cs b/samples/ControlCatalog/Pages/LabelsPage.axaml.cs index f05e5fd033..f3a7647f8c 100644 --- a/samples/ControlCatalog/Pages/LabelsPage.axaml.cs +++ b/samples/ControlCatalog/Pages/LabelsPage.axaml.cs @@ -1,11 +1,9 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; +using Avalonia.Controls; using ControlCatalog.Models; namespace ControlCatalog.Pages { - public class LabelsPage : UserControl + public partial class LabelsPage : UserControl { private Person? _person; @@ -25,11 +23,6 @@ namespace ControlCatalog.Pages }; } - private void InitializeComponent() - { - AvaloniaXamlLoader.Load(this); - } - public void DoSave() { diff --git a/samples/ControlCatalog/Pages/RefreshContainerPage.axaml.cs b/samples/ControlCatalog/Pages/RefreshContainerPage.axaml.cs index f9d0328d9a..a710cd7e5c 100644 --- a/samples/ControlCatalog/Pages/RefreshContainerPage.axaml.cs +++ b/samples/ControlCatalog/Pages/RefreshContainerPage.axaml.cs @@ -1,18 +1,15 @@ -using System.Threading.Tasks; -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; +using Avalonia.Controls; using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public class RefreshContainerPage : UserControl + public partial class RefreshContainerPage : UserControl { private RefreshContainerViewModel _viewModel; public RefreshContainerPage() { - this.InitializeComponent(); + InitializeComponent(); _viewModel = new RefreshContainerViewModel(); @@ -27,10 +24,5 @@ namespace ControlCatalog.Pages deferral.Complete(); } - - private void InitializeComponent() - { - AvaloniaXamlLoader.Load(this); - } } } diff --git a/samples/ControlCatalog/Pages/RelativePanelPage.axaml.cs b/samples/ControlCatalog/Pages/RelativePanelPage.axaml.cs index 11d0a5152e..aec13a18e3 100644 --- a/samples/ControlCatalog/Pages/RelativePanelPage.axaml.cs +++ b/samples/ControlCatalog/Pages/RelativePanelPage.axaml.cs @@ -1,19 +1,12 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; +using Avalonia.Controls; namespace ControlCatalog.Pages { - public class RelativePanelPage : UserControl + public partial class RelativePanelPage : UserControl { public RelativePanelPage() { - this.InitializeComponent(); - } - - private void InitializeComponent() - { - AvaloniaXamlLoader.Load(this); + InitializeComponent(); } } } diff --git a/samples/ControlCatalog/Pages/ThemePage.axaml.cs b/samples/ControlCatalog/Pages/ThemePage.axaml.cs index f0ae1a722d..5a0c4cba43 100644 --- a/samples/ControlCatalog/Pages/ThemePage.axaml.cs +++ b/samples/ControlCatalog/Pages/ThemePage.axaml.cs @@ -1,35 +1,31 @@ -using Avalonia; -using Avalonia.Controls; +using Avalonia.Controls; using Avalonia.Markup.Xaml; using Avalonia.Styling; namespace ControlCatalog.Pages { - public class ThemePage : UserControl + public partial class ThemePage : UserControl { public static ThemeVariant Pink { get; } = new("Pink", ThemeVariant.Light); public ThemePage() { - AvaloniaXamlLoader.Load(this); + InitializeComponent(); - var selector = this.FindControl("Selector")!; - var themeVariantScope = this.FindControl("ThemeVariantScope")!; - - selector.Items = new[] + Selector.Items = new[] { ThemeVariant.Default, ThemeVariant.Dark, ThemeVariant.Light, Pink }; - selector.SelectedIndex = 0; + Selector.SelectedIndex = 0; - selector.SelectionChanged += (_, _) => + Selector.SelectionChanged += (_, _) => { - if (selector.SelectedItem is ThemeVariant theme) + if (Selector.SelectedItem is ThemeVariant theme) { - themeVariantScope.RequestedThemeVariant = theme; + ThemeVariantScope.RequestedThemeVariant = theme; } }; } diff --git a/src/tools/Avalonia.Generators/Avalonia.Generators.csproj b/src/tools/Avalonia.Generators/Avalonia.Generators.csproj index 7fd89429ea..b47e4de98b 100644 --- a/src/tools/Avalonia.Generators/Avalonia.Generators.csproj +++ b/src/tools/Avalonia.Generators/Avalonia.Generators.csproj @@ -1,29 +1,30 @@ - - - netstandard2.0 - preview - true - false - XamlNameReferenceGenerator - true - Avalonia.Generators - true - - - - - - - - - - - - true - buildTransitive\$(PackageId).props - - - - - + + + netstandard2.0 + false + Avalonia.Generators + $(DefineConstants);XAMLX_INTERNAL + true + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/tools/Avalonia.Generators/Compiler/RoslynTypeSystem.cs b/src/tools/Avalonia.Generators/Compiler/RoslynTypeSystem.cs index bc98f66bc4..851bc3f29b 100644 --- a/src/tools/Avalonia.Generators/Compiler/RoslynTypeSystem.cs +++ b/src/tools/Avalonia.Generators/Compiler/RoslynTypeSystem.cs @@ -7,7 +7,7 @@ using XamlX.TypeSystem; namespace Avalonia.Generators.Compiler; -public class RoslynTypeSystem : IXamlTypeSystem +internal class RoslynTypeSystem : IXamlTypeSystem { private readonly List _assemblies = new(); @@ -42,7 +42,7 @@ public class RoslynTypeSystem : IXamlTypeSystem .FirstOrDefault(type => type != null); } -public class RoslynAssembly : IXamlAssembly +internal class RoslynAssembly : IXamlAssembly { private readonly IAssemblySymbol _symbol; @@ -66,7 +66,7 @@ public class RoslynAssembly : IXamlAssembly } } -public class RoslynAttribute : IXamlCustomAttribute +internal class RoslynAttribute : IXamlCustomAttribute { private readonly AttributeData _data; private readonly RoslynAssembly _assembly; @@ -94,7 +94,7 @@ public class RoslynAttribute : IXamlCustomAttribute pair => pair.Value.Value); } -public class RoslynType : IXamlType +internal class RoslynType : IXamlType { private static readonly SymbolDisplayFormat SymbolDisplayFormat = new SymbolDisplayFormat( typeQualificationStyle: SymbolDisplayTypeQualificationStyle.NameAndContainingTypesAndNamespaces, @@ -181,7 +181,7 @@ public class RoslynType : IXamlType public IReadOnlyList GenericParameters { get; } = new List(); } -public class RoslynConstructor : IXamlConstructor +internal class RoslynConstructor : IXamlConstructor { private readonly IMethodSymbol _symbol; private readonly RoslynAssembly _assembly; @@ -208,7 +208,7 @@ public class RoslynConstructor : IXamlConstructor .ToList(); } -public class RoslynProperty : IXamlProperty +internal class RoslynProperty : IXamlProperty { private readonly IPropertySymbol _symbol; private readonly RoslynAssembly _assembly; @@ -239,7 +239,7 @@ public class RoslynProperty : IXamlProperty public IReadOnlyList IndexerParameters { get; } = new List(); } -public class RoslynMethod : IXamlMethod +internal class RoslynMethod : IXamlMethod { private readonly IMethodSymbol _symbol; private readonly RoslynAssembly _assembly; @@ -273,4 +273,4 @@ public class RoslynMethod : IXamlMethod public IXamlMethod MakeGenericMethod(IReadOnlyList typeArguments) => null; public IReadOnlyList CustomAttributes { get; } = new List(); -} \ No newline at end of file +} diff --git a/src/tools/Avalonia.Generators/Directory.Build.props b/src/tools/Avalonia.Generators/Directory.Build.props deleted file mode 100644 index ae523fa5a8..0000000000 --- a/src/tools/Avalonia.Generators/Directory.Build.props +++ /dev/null @@ -1,27 +0,0 @@ - - - XamlNameReferenceGenerator - MIT - https://github.com/avaloniaui/Avalonia.Generators/ - Generates typed x:Name references to Avalonia controls declared in XAML. - https://github.com/avaloniaui/Avalonia.Generators/releases - https://github.com/avaloniaui/Avalonia.Generators - git - true - false - - https://nuget.avaloniaui.net/repository/avalonia-all/index.json; - https://api.nuget.org/v3/index.json; - - - - - - - - - - - - - diff --git a/src/tools/Avalonia.Generators/Generator.cs b/src/tools/Avalonia.Generators/Generator.cs index ed9baa5079..9ca96795ad 100644 --- a/src/tools/Avalonia.Generators/Generator.cs +++ b/src/tools/Avalonia.Generators/Generator.cs @@ -6,8 +6,6 @@ using Avalonia.Generators.Generator; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; -[assembly: InternalsVisibleTo("Avalonia.Generators.Tests")] - namespace Avalonia.Generators; [Generator] @@ -50,4 +48,4 @@ public class AvaloniaNameSourceGenerator : ISourceGenerator new XamlXNameResolver(options.AvaloniaNameGeneratorDefaultFieldModifier), generator); } -} \ No newline at end of file +} diff --git a/tests/Avalonia.Generators.Tests/Avalonia.Generators.Tests.csproj b/tests/Avalonia.Generators.Tests/Avalonia.Generators.Tests.csproj index 09f00e9107..ec4cbcafb7 100644 --- a/tests/Avalonia.Generators.Tests/Avalonia.Generators.Tests.csproj +++ b/tests/Avalonia.Generators.Tests/Avalonia.Generators.Tests.csproj @@ -1,28 +1,26 @@ - - Exe - net6 - preview - false - true - Avalonia.Generators.Tests - - - - - - - - - - - - - - - - - - - + + Exe + net6.0 + Avalonia.Generators.Tests + true + + + + + + + + + + + + + + + + + + +