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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+