diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/CustomControls.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/CustomControls.txt
deleted file mode 100644
index f44bef9f6b..0000000000
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/CustomControls.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-
-using Avalonia.Controls;
-using Avalonia.Markup.Xaml;
-
-namespace Sample.App
-{
- partial class SampleView
- {
- internal global::Avalonia.ReactiveUI.RoutedViewHost ClrNamespaceRoutedViewHost { get; set; }
- internal global::Avalonia.ReactiveUI.RoutedViewHost UriRoutedViewHost { get; set; }
- internal global::Controls.CustomTextBox UserNameTextBox { get; set; }
-
- public void InitializeComponent(bool loadXaml = true)
- {
- if (loadXaml)
- {
- AvaloniaXamlLoader.Load(this);
- }
-
-#if DEBUG
- this.AttachDevTools();
-#endif
-
- ClrNamespaceRoutedViewHost = this.FindControl("ClrNamespaceRoutedViewHost");
- UriRoutedViewHost = this.FindControl("UriRoutedViewHost");
- UserNameTextBox = this.FindControl("UserNameTextBox");
- }
- }
-}
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/DataTemplates.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/DataTemplates.txt
deleted file mode 100644
index 3355e8f6d7..0000000000
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/DataTemplates.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-//
-
-using Avalonia.Controls;
-using Avalonia.Markup.Xaml;
-
-namespace Sample.App
-{
- partial class SampleView
- {
- internal global::Avalonia.Controls.TextBox UserNameTextBox { get; set; }
- internal global::Avalonia.Controls.ListBox NamedListBox { get; set; }
-
- public void InitializeComponent(bool loadXaml = true)
- {
- if (loadXaml)
- {
- AvaloniaXamlLoader.Load(this);
- }
-
-#if DEBUG
- this.AttachDevTools();
-#endif
-
- UserNameTextBox = this.FindControl("UserNameTextBox");
- NamedListBox = this.FindControl("NamedListBox");
- }
- }
-}
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/DevToolsCode.cs b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/DevToolsCode.cs
deleted file mode 100644
index 9b8e6959c1..0000000000
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/DevToolsCode.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System.IO;
-using System.Linq;
-using System.Threading.Tasks;
-
-namespace Avalonia.NameGenerator.Tests.InitializeComponent.GeneratedDevTools
-{
- public static class DevToolsCode
- {
- public const string NamedControl = "NamedControl.txt";
- public const string NamedControls = "NamedControls.txt";
- public const string XNamedControl = "xNamedControl.txt";
- public const string XNamedControls = "xNamedControls.txt";
- public const string NoNamedControls = "NoNamedControls.txt";
- public const string CustomControls = "CustomControls.txt";
- public const string DataTemplates = "DataTemplates.txt";
- public const string SignUpView = "SignUpView.txt";
- public const string AttachedProps = "AttachedProps.txt";
- public const string FieldModifier = "FieldModifier.txt";
-
- public static async Task Load(string generatedCodeResourceName)
- {
- var assembly = typeof(XamlXNameResolverTests).Assembly;
- var fullResourceName = assembly
- .GetManifestResourceNames()
- .First(name => name.Contains("InitializeComponent") &&
- name.Contains("GeneratedDevTools") &&
- name.EndsWith(generatedCodeResourceName));
-
- await using var stream = assembly.GetManifestResourceStream(fullResourceName);
- using var reader = new StreamReader(stream!);
- return await reader.ReadToEndAsync();
- }
- }
-}
\ No newline at end of file
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/FieldModifier.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/FieldModifier.txt
deleted file mode 100644
index 239a556fd8..0000000000
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/FieldModifier.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-
-using Avalonia.Controls;
-using Avalonia.Markup.Xaml;
-
-namespace Sample.App
-{
- partial class SampleView
- {
- public global::Avalonia.Controls.TextBox FirstNameTextBox { get; set; }
- public global::Avalonia.Controls.TextBox LastNameTextBox { get; set; }
- protected global::Avalonia.Controls.TextBox PasswordTextBox { get; set; }
- private global::Avalonia.Controls.TextBox ConfirmPasswordTextBox { get; set; }
- internal global::Avalonia.Controls.Button SignUpButton { get; set; }
- internal global::Avalonia.Controls.Button RegisterButton { get; set; }
-
- public void InitializeComponent(bool loadXaml = true)
- {
- if (loadXaml)
- {
- AvaloniaXamlLoader.Load(this);
- }
-
-#if DEBUG
- this.AttachDevTools();
-#endif
-
- FirstNameTextBox = this.FindControl("FirstNameTextBox");
- LastNameTextBox = this.FindControl("LastNameTextBox");
- PasswordTextBox = this.FindControl("PasswordTextBox");
- ConfirmPasswordTextBox = this.FindControl("ConfirmPasswordTextBox");
- SignUpButton = this.FindControl("SignUpButton");
- RegisterButton = this.FindControl("RegisterButton");
- }
- }
-}
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/NamedControl.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/NamedControl.txt
deleted file mode 100644
index bcfcd11625..0000000000
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/NamedControl.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-
-using Avalonia.Controls;
-using Avalonia.Markup.Xaml;
-
-namespace Sample.App
-{
- partial class SampleView
- {
- internal global::Avalonia.Controls.TextBox UserNameTextBox { get; set; }
-
- public void InitializeComponent(bool loadXaml = true)
- {
- if (loadXaml)
- {
- AvaloniaXamlLoader.Load(this);
- }
-
-#if DEBUG
- this.AttachDevTools();
-#endif
-
- UserNameTextBox = this.FindControl("UserNameTextBox");
- }
- }
-}
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/NamedControls.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/NamedControls.txt
deleted file mode 100644
index a731f1d04a..0000000000
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/NamedControls.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-
-using Avalonia.Controls;
-using Avalonia.Markup.Xaml;
-
-namespace Sample.App
-{
- partial class SampleView
- {
- internal global::Avalonia.Controls.TextBox UserNameTextBox { get; set; }
- internal global::Avalonia.Controls.TextBox PasswordTextBox { get; set; }
- internal global::Avalonia.Controls.Button SignUpButton { get; set; }
-
- public void InitializeComponent(bool loadXaml = true)
- {
- if (loadXaml)
- {
- AvaloniaXamlLoader.Load(this);
- }
-
-#if DEBUG
- this.AttachDevTools();
-#endif
-
- UserNameTextBox = this.FindControl("UserNameTextBox");
- PasswordTextBox = this.FindControl("PasswordTextBox");
- SignUpButton = this.FindControl("SignUpButton");
- }
- }
-}
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/NoNamedControls.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/NoNamedControls.txt
deleted file mode 100644
index ef0349d2b0..0000000000
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/NoNamedControls.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-
-using Avalonia.Controls;
-using Avalonia.Markup.Xaml;
-
-namespace Sample.App
-{
- partial class SampleView
- {
-
-
- public void InitializeComponent(bool loadXaml = true)
- {
- if (loadXaml)
- {
- AvaloniaXamlLoader.Load(this);
- }
-
-#if DEBUG
- this.AttachDevTools();
-#endif
-
-
- }
- }
-}
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/SignUpView.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/SignUpView.txt
deleted file mode 100644
index 23bc5e8c2a..0000000000
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/SignUpView.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-//
-
-using Avalonia.Controls;
-using Avalonia.Markup.Xaml;
-
-namespace Sample.App
-{
- partial class SampleView
- {
- internal global::Controls.CustomTextBox UserNameTextBox { get; set; }
- internal global::Avalonia.Controls.TextBlock UserNameValidation { get; set; }
- internal global::Avalonia.Controls.TextBox PasswordTextBox { get; set; }
- internal global::Avalonia.Controls.TextBlock PasswordValidation { get; set; }
- internal global::Avalonia.Controls.ListBox AwesomeListView { get; set; }
- internal global::Avalonia.Controls.TextBox ConfirmPasswordTextBox { get; set; }
- internal global::Avalonia.Controls.TextBlock ConfirmPasswordValidation { get; set; }
- internal global::Avalonia.Controls.Button SignUpButton { get; set; }
- internal global::Avalonia.Controls.TextBlock CompoundValidation { get; set; }
-
- public void InitializeComponent(bool loadXaml = true)
- {
- if (loadXaml)
- {
- AvaloniaXamlLoader.Load(this);
- }
-
-#if DEBUG
- this.AttachDevTools();
-#endif
-
- UserNameTextBox = this.FindControl("UserNameTextBox");
- UserNameValidation = this.FindControl("UserNameValidation");
- PasswordTextBox = this.FindControl("PasswordTextBox");
- PasswordValidation = this.FindControl("PasswordValidation");
- AwesomeListView = this.FindControl("AwesomeListView");
- ConfirmPasswordTextBox = this.FindControl("ConfirmPasswordTextBox");
- ConfirmPasswordValidation = this.FindControl("ConfirmPasswordValidation");
- SignUpButton = this.FindControl("SignUpButton");
- CompoundValidation = this.FindControl("CompoundValidation");
- }
- }
-}
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/xNamedControls.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/xNamedControls.txt
deleted file mode 100644
index a731f1d04a..0000000000
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/xNamedControls.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-
-using Avalonia.Controls;
-using Avalonia.Markup.Xaml;
-
-namespace Sample.App
-{
- partial class SampleView
- {
- internal global::Avalonia.Controls.TextBox UserNameTextBox { get; set; }
- internal global::Avalonia.Controls.TextBox PasswordTextBox { get; set; }
- internal global::Avalonia.Controls.Button SignUpButton { get; set; }
-
- public void InitializeComponent(bool loadXaml = true)
- {
- if (loadXaml)
- {
- AvaloniaXamlLoader.Load(this);
- }
-
-#if DEBUG
- this.AttachDevTools();
-#endif
-
- UserNameTextBox = this.FindControl("UserNameTextBox");
- PasswordTextBox = this.FindControl("PasswordTextBox");
- SignUpButton = this.FindControl("SignUpButton");
- }
- }
-}
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/AttachedProps.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/AttachedProps.txt
index 5d1da033c2..22d2f9bb5b 100644
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/AttachedProps.txt
+++ b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/AttachedProps.txt
@@ -7,7 +7,7 @@ namespace Sample.App
{
partial class SampleView
{
- internal global::Avalonia.Controls.TextBox UserNameTextBox { get; set; }
+ internal global::Avalonia.Controls.TextBox UserNameTextBox;
public void InitializeComponent(bool loadXaml = true)
{
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/xNamedControl.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/AttachedPropsWithDevTools.txt
similarity index 68%
rename from src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/xNamedControl.txt
rename to src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/AttachedPropsWithDevTools.txt
index bcfcd11625..dd2b749e4b 100644
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/xNamedControl.txt
+++ b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/AttachedPropsWithDevTools.txt
@@ -7,9 +7,9 @@ namespace Sample.App
{
partial class SampleView
{
- internal global::Avalonia.Controls.TextBox UserNameTextBox { get; set; }
+ internal global::Avalonia.Controls.TextBox UserNameTextBox;
- public void InitializeComponent(bool loadXaml = true)
+ public void InitializeComponent(bool loadXaml = true, bool attachDevTools = true)
{
if (loadXaml)
{
@@ -17,7 +17,10 @@ namespace Sample.App
}
#if DEBUG
- this.AttachDevTools();
+ if (attachDevTools)
+ {
+ this.AttachDevTools();
+ }
#endif
UserNameTextBox = this.FindControl("UserNameTextBox");
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/AttachedProps.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/ControlWithoutWindow.txt
similarity index 87%
rename from src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/AttachedProps.txt
rename to src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/ControlWithoutWindow.txt
index bcfcd11625..22d2f9bb5b 100644
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedDevTools/AttachedProps.txt
+++ b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/ControlWithoutWindow.txt
@@ -7,7 +7,7 @@ namespace Sample.App
{
partial class SampleView
{
- internal global::Avalonia.Controls.TextBox UserNameTextBox { get; set; }
+ internal global::Avalonia.Controls.TextBox UserNameTextBox;
public void InitializeComponent(bool loadXaml = true)
{
@@ -16,10 +16,6 @@ namespace Sample.App
AvaloniaXamlLoader.Load(this);
}
-#if DEBUG
- this.AttachDevTools();
-#endif
-
UserNameTextBox = this.FindControl("UserNameTextBox");
}
}
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/CustomControls.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/CustomControls.txt
index 39f6c4b0d9..924a13b109 100644
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/CustomControls.txt
+++ b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/CustomControls.txt
@@ -7,9 +7,9 @@ namespace Sample.App
{
partial class SampleView
{
- internal global::Avalonia.ReactiveUI.RoutedViewHost ClrNamespaceRoutedViewHost { get; set; }
- internal global::Avalonia.ReactiveUI.RoutedViewHost UriRoutedViewHost { get; set; }
- internal global::Controls.CustomTextBox UserNameTextBox { get; set; }
+ internal global::Avalonia.ReactiveUI.RoutedViewHost ClrNamespaceRoutedViewHost;
+ internal global::Avalonia.ReactiveUI.RoutedViewHost UriRoutedViewHost;
+ internal global::Controls.CustomTextBox UserNameTextBox;
public void InitializeComponent(bool loadXaml = true)
{
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/DataTemplates.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/DataTemplates.txt
index d47b1fede3..795cce5485 100644
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/DataTemplates.txt
+++ b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/DataTemplates.txt
@@ -7,8 +7,8 @@ namespace Sample.App
{
partial class SampleView
{
- internal global::Avalonia.Controls.TextBox UserNameTextBox { get; set; }
- internal global::Avalonia.Controls.ListBox NamedListBox { get; set; }
+ internal global::Avalonia.Controls.TextBox UserNameTextBox;
+ internal global::Avalonia.Controls.ListBox NamedListBox;
public void InitializeComponent(bool loadXaml = true)
{
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/FieldModifier.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/FieldModifier.txt
index 43fa735f36..4239b6f47e 100644
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/FieldModifier.txt
+++ b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/FieldModifier.txt
@@ -7,12 +7,12 @@ namespace Sample.App
{
partial class SampleView
{
- public global::Avalonia.Controls.TextBox FirstNameTextBox { get; set; }
- public global::Avalonia.Controls.TextBox LastNameTextBox { get; set; }
- protected global::Avalonia.Controls.TextBox PasswordTextBox { get; set; }
- private global::Avalonia.Controls.TextBox ConfirmPasswordTextBox { get; set; }
- internal global::Avalonia.Controls.Button SignUpButton { get; set; }
- internal global::Avalonia.Controls.Button RegisterButton { get; set; }
+ public global::Avalonia.Controls.TextBox FirstNameTextBox;
+ public global::Avalonia.Controls.TextBox LastNameTextBox;
+ protected global::Avalonia.Controls.TextBox PasswordTextBox;
+ private global::Avalonia.Controls.TextBox ConfirmPasswordTextBox;
+ internal global::Avalonia.Controls.Button SignUpButton;
+ internal global::Avalonia.Controls.Button RegisterButton;
public void InitializeComponent(bool loadXaml = true)
{
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/InitializeComponentCode.cs b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/InitializeComponentCode.cs
index caefd5e1e7..59ee051c9b 100644
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/InitializeComponentCode.cs
+++ b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/InitializeComponentCode.cs
@@ -14,9 +14,11 @@ namespace Avalonia.NameGenerator.Tests.InitializeComponent.GeneratedInitializeCo
public const string CustomControls = "CustomControls.txt";
public const string DataTemplates = "DataTemplates.txt";
public const string SignUpView = "SignUpView.txt";
- public const string AttachedProps = "AttachedProps.txt";
public const string FieldModifier = "FieldModifier.txt";
-
+ public const string AttachedProps = "AttachedProps.txt";
+ public const string AttachedPropsWithDevTools = "AttachedPropsWithDevTools.txt";
+ public const string ControlWithoutWindow = "ControlWithoutWindow.txt";
+
public static async Task Load(string generatedCodeResourceName)
{
var assembly = typeof(XamlXNameResolverTests).Assembly;
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/NamedControl.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/NamedControl.txt
index 5d1da033c2..22d2f9bb5b 100644
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/NamedControl.txt
+++ b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/NamedControl.txt
@@ -7,7 +7,7 @@ namespace Sample.App
{
partial class SampleView
{
- internal global::Avalonia.Controls.TextBox UserNameTextBox { get; set; }
+ internal global::Avalonia.Controls.TextBox UserNameTextBox;
public void InitializeComponent(bool loadXaml = true)
{
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/NamedControls.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/NamedControls.txt
index 0993a82e2f..172f948eea 100644
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/NamedControls.txt
+++ b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/NamedControls.txt
@@ -7,9 +7,9 @@ namespace Sample.App
{
partial class SampleView
{
- internal global::Avalonia.Controls.TextBox UserNameTextBox { get; set; }
- internal global::Avalonia.Controls.TextBox PasswordTextBox { get; set; }
- internal global::Avalonia.Controls.Button SignUpButton { get; set; }
+ internal global::Avalonia.Controls.TextBox UserNameTextBox;
+ internal global::Avalonia.Controls.TextBox PasswordTextBox;
+ internal global::Avalonia.Controls.Button SignUpButton;
public void InitializeComponent(bool loadXaml = true)
{
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/SignUpView.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/SignUpView.txt
index b04353dfa4..95d6a4feb7 100644
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/SignUpView.txt
+++ b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/SignUpView.txt
@@ -7,15 +7,15 @@ namespace Sample.App
{
partial class SampleView
{
- internal global::Controls.CustomTextBox UserNameTextBox { get; set; }
- internal global::Avalonia.Controls.TextBlock UserNameValidation { get; set; }
- internal global::Avalonia.Controls.TextBox PasswordTextBox { get; set; }
- internal global::Avalonia.Controls.TextBlock PasswordValidation { get; set; }
- internal global::Avalonia.Controls.ListBox AwesomeListView { get; set; }
- internal global::Avalonia.Controls.TextBox ConfirmPasswordTextBox { get; set; }
- internal global::Avalonia.Controls.TextBlock ConfirmPasswordValidation { get; set; }
- internal global::Avalonia.Controls.Button SignUpButton { get; set; }
- internal global::Avalonia.Controls.TextBlock CompoundValidation { get; set; }
+ internal global::Controls.CustomTextBox UserNameTextBox;
+ internal global::Avalonia.Controls.TextBlock UserNameValidation;
+ internal global::Avalonia.Controls.TextBox PasswordTextBox;
+ internal global::Avalonia.Controls.TextBlock PasswordValidation;
+ internal global::Avalonia.Controls.ListBox AwesomeListView;
+ internal global::Avalonia.Controls.TextBox ConfirmPasswordTextBox;
+ internal global::Avalonia.Controls.TextBlock ConfirmPasswordValidation;
+ internal global::Avalonia.Controls.Button SignUpButton;
+ internal global::Avalonia.Controls.TextBlock CompoundValidation;
public void InitializeComponent(bool loadXaml = true)
{
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/xNamedControl.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/xNamedControl.txt
index 5d1da033c2..22d2f9bb5b 100644
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/xNamedControl.txt
+++ b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/xNamedControl.txt
@@ -7,7 +7,7 @@ namespace Sample.App
{
partial class SampleView
{
- internal global::Avalonia.Controls.TextBox UserNameTextBox { get; set; }
+ internal global::Avalonia.Controls.TextBox UserNameTextBox;
public void InitializeComponent(bool loadXaml = true)
{
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/xNamedControls.txt b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/xNamedControls.txt
index 0993a82e2f..172f948eea 100644
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/xNamedControls.txt
+++ b/src/Avalonia.NameGenerator.Tests/InitializeComponent/GeneratedInitializeComponent/xNamedControls.txt
@@ -7,9 +7,9 @@ namespace Sample.App
{
partial class SampleView
{
- internal global::Avalonia.Controls.TextBox UserNameTextBox { get; set; }
- internal global::Avalonia.Controls.TextBox PasswordTextBox { get; set; }
- internal global::Avalonia.Controls.Button SignUpButton { get; set; }
+ internal global::Avalonia.Controls.TextBox UserNameTextBox;
+ internal global::Avalonia.Controls.TextBox PasswordTextBox;
+ internal global::Avalonia.Controls.Button SignUpButton;
public void InitializeComponent(bool loadXaml = true)
{
diff --git a/src/Avalonia.NameGenerator.Tests/InitializeComponent/InitializeComponentTests.cs b/src/Avalonia.NameGenerator.Tests/InitializeComponent/InitializeComponentTests.cs
index 6604629d32..d5e33431d0 100644
--- a/src/Avalonia.NameGenerator.Tests/InitializeComponent/InitializeComponentTests.cs
+++ b/src/Avalonia.NameGenerator.Tests/InitializeComponent/InitializeComponentTests.cs
@@ -1,7 +1,6 @@
using System.Threading.Tasks;
using Avalonia.NameGenerator.Compiler;
using Avalonia.NameGenerator.Generator;
-using Avalonia.NameGenerator.Tests.InitializeComponent.GeneratedDevTools;
using Avalonia.NameGenerator.Tests.InitializeComponent.GeneratedInitializeComponent;
using Avalonia.NameGenerator.Tests.OnlyProperties.GeneratedCode;
using Avalonia.NameGenerator.Tests.Views;
@@ -21,18 +20,11 @@ namespace Avalonia.NameGenerator.Tests.InitializeComponent
[InlineData(InitializeComponentCode.CustomControls, View.CustomControls, false)]
[InlineData(InitializeComponentCode.DataTemplates, View.DataTemplates, false)]
[InlineData(InitializeComponentCode.SignUpView, View.SignUpView, false)]
- [InlineData(InitializeComponentCode.AttachedProps, View.AttachedProps, false)]
[InlineData(InitializeComponentCode.FieldModifier, View.FieldModifier, false)]
- [InlineData(DevToolsCode.NamedControl, View.NamedControl, true)]
- [InlineData(DevToolsCode.NamedControls, View.NamedControls, true)]
- [InlineData(DevToolsCode.XNamedControl, View.XNamedControl, true)]
- [InlineData(DevToolsCode.XNamedControls, View.XNamedControls, true)]
- [InlineData(DevToolsCode.NoNamedControls, View.NoNamedControls, true)]
- [InlineData(DevToolsCode.CustomControls, View.CustomControls, true)]
- [InlineData(DevToolsCode.DataTemplates, View.DataTemplates, true)]
- [InlineData(DevToolsCode.SignUpView, View.SignUpView, true)]
- [InlineData(DevToolsCode.AttachedProps, View.AttachedProps, true)]
- [InlineData(DevToolsCode.FieldModifier, View.FieldModifier, true)]
+ [InlineData(InitializeComponentCode.AttachedPropsWithDevTools, View.AttachedProps, true)]
+ [InlineData(InitializeComponentCode.AttachedProps, View.AttachedProps, false)]
+ [InlineData(InitializeComponentCode.ControlWithoutWindow, View.ControlWithoutWindow, true)]
+ [InlineData(InitializeComponentCode.ControlWithoutWindow, View.ControlWithoutWindow, false)]
public async Task Should_Generate_FindControl_Refs_From_Avalonia_Markup_File(
string expectation,
string markup,
@@ -56,14 +48,14 @@ namespace Avalonia.NameGenerator.Tests.InitializeComponent
var names = nameResolver.ResolveNames(classInfo.Xaml);
var generator = new InitializeComponentCodeGenerator(types);
+
var code = generator
- .GenerateCode("SampleView", "Sample.App", names)
+ .GenerateCode("SampleView", "Sample.App", classInfo.XamlType, names)
.Replace("\r", string.Empty);
- var expected = devToolsMode
- ? await DevToolsCode.Load(expectation)
- : await InitializeComponentCode.Load(expectation);
-
+ var expected = await InitializeComponentCode.Load(expectation);
+
+
CSharpSyntaxTree.ParseText(code);
Assert.Equal(expected.Replace("\r", string.Empty), code);
}
diff --git a/src/Avalonia.NameGenerator.Tests/OnlyProperties/GeneratedCode/ControlWithoutWindow.txt b/src/Avalonia.NameGenerator.Tests/OnlyProperties/GeneratedCode/ControlWithoutWindow.txt
new file mode 100644
index 0000000000..c4202f080d
--- /dev/null
+++ b/src/Avalonia.NameGenerator.Tests/OnlyProperties/GeneratedCode/ControlWithoutWindow.txt
@@ -0,0 +1,11 @@
+//
+
+using Avalonia.Controls;
+
+namespace Sample.App
+{
+ partial class SampleView
+ {
+ internal global::Avalonia.Controls.TextBox UserNameTextBox => this.FindControl("UserNameTextBox");
+ }
+}
diff --git a/src/Avalonia.NameGenerator.Tests/OnlyProperties/GeneratedCode/OnlyPropertiesCode.cs b/src/Avalonia.NameGenerator.Tests/OnlyProperties/GeneratedCode/OnlyPropertiesCode.cs
index 4cba8cdfce..0651c53c3f 100644
--- a/src/Avalonia.NameGenerator.Tests/OnlyProperties/GeneratedCode/OnlyPropertiesCode.cs
+++ b/src/Avalonia.NameGenerator.Tests/OnlyProperties/GeneratedCode/OnlyPropertiesCode.cs
@@ -17,7 +17,8 @@ namespace Avalonia.NameGenerator.Tests.OnlyProperties.GeneratedCode
public const string SignUpView = "SignUpView.txt";
public const string AttachedProps = "AttachedProps.txt";
public const string FieldModifier = "FieldModifier.txt";
-
+ public const string ControlWithoutWindow = "ControlWithoutWindow.txt";
+
public static async Task Load(string generatedCodeResourceName)
{
var assembly = typeof(XamlXNameResolverTests).Assembly;
diff --git a/src/Avalonia.NameGenerator.Tests/OnlyProperties/OnlyPropertiesTests.cs b/src/Avalonia.NameGenerator.Tests/OnlyProperties/OnlyPropertiesTests.cs
index 71e201b7fc..4ecacd2ff4 100644
--- a/src/Avalonia.NameGenerator.Tests/OnlyProperties/OnlyPropertiesTests.cs
+++ b/src/Avalonia.NameGenerator.Tests/OnlyProperties/OnlyPropertiesTests.cs
@@ -21,6 +21,7 @@ namespace Avalonia.NameGenerator.Tests.OnlyProperties
[InlineData(OnlyPropertiesCode.SignUpView, View.SignUpView)]
[InlineData(OnlyPropertiesCode.AttachedProps, View.AttachedProps)]
[InlineData(OnlyPropertiesCode.FieldModifier, View.FieldModifier)]
+ [InlineData(OnlyPropertiesCode.ControlWithoutWindow, View.ControlWithoutWindow)]
public async Task Should_Generate_FindControl_Refs_From_Avalonia_Markup_File(string expectation, string markup)
{
var compilation =
@@ -40,7 +41,7 @@ namespace Avalonia.NameGenerator.Tests.OnlyProperties
var generator = new OnlyPropertiesCodeGenerator();
var code = generator
- .GenerateCode("SampleView", "Sample.App", names)
+ .GenerateCode("SampleView", "Sample.App", classInfo.XamlType, names)
.Replace("\r", string.Empty);
var expected = await OnlyPropertiesCode.Load(expectation);
diff --git a/src/Avalonia.NameGenerator.Tests/Views/ControlWithoutWindow.xml b/src/Avalonia.NameGenerator.Tests/Views/ControlWithoutWindow.xml
new file mode 100644
index 0000000000..77de06a27e
--- /dev/null
+++ b/src/Avalonia.NameGenerator.Tests/Views/ControlWithoutWindow.xml
@@ -0,0 +1,10 @@
+
+
+
\ No newline at end of file
diff --git a/src/Avalonia.NameGenerator.Tests/Views/View.cs b/src/Avalonia.NameGenerator.Tests/Views/View.cs
index c2e4bd085a..0fca5c71ee 100644
--- a/src/Avalonia.NameGenerator.Tests/Views/View.cs
+++ b/src/Avalonia.NameGenerator.Tests/Views/View.cs
@@ -21,7 +21,8 @@ namespace Avalonia.NameGenerator.Tests.Views
public const string SignUpView = "SignUpView.xml";
public const string AttachedProps = "AttachedProps.xml";
public const string FieldModifier = "FieldModifier.xml";
-
+ public const string ControlWithoutWindow = "ControlWithoutWindow.xml";
+
public static async Task Load(string viewName)
{
var assembly = typeof(XamlXNameResolverTests).Assembly;
diff --git a/src/Avalonia.NameGenerator/Domain/ICodeGenerator.cs b/src/Avalonia.NameGenerator/Domain/ICodeGenerator.cs
index 885182fd91..55a53a871e 100644
--- a/src/Avalonia.NameGenerator/Domain/ICodeGenerator.cs
+++ b/src/Avalonia.NameGenerator/Domain/ICodeGenerator.cs
@@ -1,9 +1,10 @@
using System.Collections.Generic;
+using XamlX.TypeSystem;
namespace Avalonia.NameGenerator.Domain
{
internal interface ICodeGenerator
{
- string GenerateCode(string className, string nameSpace, IEnumerable names);
+ string GenerateCode(string className, string nameSpace, IXamlType XamlType, IEnumerable names);
}
}
\ No newline at end of file
diff --git a/src/Avalonia.NameGenerator/Domain/IViewResolver.cs b/src/Avalonia.NameGenerator/Domain/IViewResolver.cs
index 72ad2c35ee..7422f3c84e 100644
--- a/src/Avalonia.NameGenerator/Domain/IViewResolver.cs
+++ b/src/Avalonia.NameGenerator/Domain/IViewResolver.cs
@@ -1,4 +1,6 @@
+using System;
using XamlX.Ast;
+using XamlX.TypeSystem;
namespace Avalonia.NameGenerator.Domain
{
@@ -7,5 +9,5 @@ namespace Avalonia.NameGenerator.Domain
ResolvedView ResolveView(string xaml);
}
- internal record ResolvedView(string ClassName, string Namespace, XamlDocument Xaml);
+ internal record ResolvedView(string ClassName, IXamlType XamlType, string Namespace, XamlDocument Xaml);
}
\ No newline at end of file
diff --git a/src/Avalonia.NameGenerator/Generator/AvaloniaNameGenerator.cs b/src/Avalonia.NameGenerator/Generator/AvaloniaNameGenerator.cs
index 1eceaf33f8..c39a983145 100644
--- a/src/Avalonia.NameGenerator/Generator/AvaloniaNameGenerator.cs
+++ b/src/Avalonia.NameGenerator/Generator/AvaloniaNameGenerator.cs
@@ -43,7 +43,7 @@ namespace Avalonia.NameGenerator.Generator
var query =
from view in resolveViews
let names = _names.ResolveNames(view.Xaml)
- let code = _code.GenerateCode(view.ClassName, view.Namespace, names)
+ let code = _code.GenerateCode(view.ClassName, view.Namespace, view.XamlType, names)
let fileName = $"{view.ClassName}.g.cs"
select new GeneratedPartialClass(fileName, code);
diff --git a/src/Avalonia.NameGenerator/Generator/InitializeComponentCodeGenerator.cs b/src/Avalonia.NameGenerator/Generator/InitializeComponentCodeGenerator.cs
index b3ac709119..43ab7d9b7a 100644
--- a/src/Avalonia.NameGenerator/Generator/InitializeComponentCodeGenerator.cs
+++ b/src/Avalonia.NameGenerator/Generator/InitializeComponentCodeGenerator.cs
@@ -6,29 +6,33 @@ namespace Avalonia.NameGenerator.Generator
{
internal class InitializeComponentCodeGenerator: ICodeGenerator
{
- private readonly bool _attachDevTools;
+ private readonly bool _diagnosticsAreConnected;
private const string AttachDevToolsCodeBlock = @"
#if DEBUG
- this.AttachDevTools();
+ if (attachDevTools)
+ {
+ this.AttachDevTools();
+ }
#endif
";
public InitializeComponentCodeGenerator(IXamlTypeSystem types)
{
- _attachDevTools = types.FindAssembly("Avalonia.Diagnostics") != null;
+ _diagnosticsAreConnected = types.FindAssembly("Avalonia.Diagnostics") != null;
}
- public string GenerateCode(string className, string nameSpace, IEnumerable names)
+ public string GenerateCode(string className, string nameSpace, IXamlType XamlType, IEnumerable names)
{
var properties = new List();
var initializations = new List();
foreach (var (typeName, name, fieldModifier) in names)
{
- properties.Add($" {fieldModifier} global::{typeName} {name} {{ get; set; }}");
+ properties.Add($" {fieldModifier} global::{typeName} {name};");
initializations.Add($" {name} = this.FindControl(\"{name}\");");
}
- var devToolsBlock = _attachDevTools ? AttachDevToolsCodeBlock : string.Empty;
+ var attachDevTools = _diagnosticsAreConnected && IsWindow(XamlType);
+
return $@"//
using Avalonia.Controls;
@@ -40,18 +44,31 @@ namespace {nameSpace}
{{
{string.Join("\n", properties)}
- public void InitializeComponent(bool loadXaml = true)
+ public void InitializeComponent(bool loadXaml = true{(attachDevTools ? ", bool attachDevTools = true" : string.Empty)})
{{
if (loadXaml)
{{
AvaloniaXamlLoader.Load(this);
}}
-{devToolsBlock}
+{(attachDevTools ? AttachDevToolsCodeBlock : string.Empty)}
{string.Join("\n", initializations)}
}}
}}
}}
";
}
+
+ private bool IsWindow(IXamlType XamlType)
+ {
+ var type = XamlType;
+ bool isWindow;
+ do
+ {
+ isWindow = type.FullName == "Avalonia.Controls.Window";
+ type = type.BaseType;
+ } while (!isWindow && type != null);
+
+ return isWindow;
+ }
}
}
\ No newline at end of file
diff --git a/src/Avalonia.NameGenerator/Generator/OnlyPropertiesCodeGenerator.cs b/src/Avalonia.NameGenerator/Generator/OnlyPropertiesCodeGenerator.cs
index b3d4b0064d..77f22718f9 100644
--- a/src/Avalonia.NameGenerator/Generator/OnlyPropertiesCodeGenerator.cs
+++ b/src/Avalonia.NameGenerator/Generator/OnlyPropertiesCodeGenerator.cs
@@ -1,12 +1,13 @@
using System.Collections.Generic;
using System.Linq;
using Avalonia.NameGenerator.Domain;
+using XamlX.TypeSystem;
namespace Avalonia.NameGenerator.Generator
{
internal class OnlyPropertiesCodeGenerator : ICodeGenerator
{
- public string GenerateCode(string className, string nameSpace, IEnumerable names)
+ public string GenerateCode(string className, string nameSpace, IXamlType XamlType, IEnumerable names)
{
var namedControls = names
.Select(info => " " +
diff --git a/src/Avalonia.NameGenerator/Generator/XamlXViewResolver.cs b/src/Avalonia.NameGenerator/Generator/XamlXViewResolver.cs
index cfb51e10a2..06edaff3c4 100644
--- a/src/Avalonia.NameGenerator/Generator/XamlXViewResolver.cs
+++ b/src/Avalonia.NameGenerator/Generator/XamlXViewResolver.cs
@@ -79,7 +79,9 @@ namespace Avalonia.NameGenerator.Generator
var split = text.Text.Split('.');
var nameSpace = string.Join(".", split.Take(split.Length - 1));
var className = split.Last();
- _resolvedClass = new ResolvedView(className, nameSpace, _xaml);
+
+
+ _resolvedClass = new ResolvedView(className, clrType, nameSpace, _xaml);
return node;
}
}
diff --git a/src/Avalonia.NameGenerator/GeneratorOptions.cs b/src/Avalonia.NameGenerator/GeneratorOptions.cs
index 1a92e103d5..6801ce29a7 100644
--- a/src/Avalonia.NameGenerator/GeneratorOptions.cs
+++ b/src/Avalonia.NameGenerator/GeneratorOptions.cs
@@ -35,13 +35,15 @@ namespace Avalonia.NameGenerator
{
get
{
+ var defaultBehavior = Behavior.OnlyProperties;
+
var propertyValue = _context
.GetMSBuildProperty(
nameof(BuildProperties.AvaloniaNameGeneratorBehavior),
- nameof(Behavior.OnlyProperties));
+ defaultBehavior.ToString());
if (!Enum.TryParse(propertyValue, true, out Behavior behavior))
- return Behavior.OnlyProperties;
+ return defaultBehavior;
return behavior;
}
}
@@ -50,13 +52,14 @@ namespace Avalonia.NameGenerator
{
get
{
+ var defaultFieldModifier = DefaultFieldModifier.Internal;
var propertyValue = _context
.GetMSBuildProperty(
nameof(BuildProperties.AvaloniaNameGeneratorDefaultFieldModifier),
- nameof(DefaultFieldModifier.Internal));
+ defaultFieldModifier.ToString());
if (!Enum.TryParse(propertyValue, true, out DefaultFieldModifier modifier))
- return DefaultFieldModifier.Internal;
+ return defaultFieldModifier;
return modifier;
}
}