Skip to content

Commit

Permalink
Improved WinUI vs UWP support
Browse files Browse the repository at this point in the history
  • Loading branch information
mrlacey committed Feb 5, 2025
1 parent ee96bbb commit 7c90d75
Show file tree
Hide file tree
Showing 31 changed files with 40 additions and 35 deletions.
8 changes: 5 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# Rapid XAML Toolkit - ChangeLog
# Rapid XAML Toolkit - ChangeLog

## Upcoming
## 2.0 (Feb 2025)

- [See what's planned next](https://github.com/mrlacey/Rapid-XAML-Toolkit/milestone/7)
- Support for Visual Studio 2022.
- Combined in to a single VSIX package.
- Now works with MAUI, WinUI, & WPF.

## 0.14.1

Expand Down
6 changes: 3 additions & 3 deletions VSIX/RapidXaml.AutoFix/RapidXaml.AutoFix.nuspec
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>RapidXaml.AutoFix</id>
Expand All @@ -13,8 +13,8 @@
<description>Use Rapid XAML custom analyzers to modify XAML files.</description>
<summary>Apply automatic changes to XAML files.</summary>
<releaseNotes>.</releaseNotes>
<copyright2022 Matt Lacey Ltd.</copyright>
<tags>XAML, MAUI, MVVM, UNO, UWP, WinUI, WPF, Xamarin.Forms</tags>
<copyright2025 Matt Lacey Ltd.</copyright>
<tags>XAML, MAUI, MVVM, UNO, WinUI, WPF</tags>
<dependencies>
<group targetFramework="netstandard2.0">
<dependency id="RapidXaml.CustomAnalysis" version="0.13.0" exclude="Build,Analyzers" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<summary>Create custom XAML analyzers.</summary>
<releaseNotes>Fix bug with `AnalysisActions.AddAttribute`</releaseNotes>
<copyright>Copyright © 2023 Matt Lacey Ltd.</copyright>
<tags>XAML, MAUI, MVVM, UNO, UWP, WinUI, WPF, Xamarin.Forms</tags>
<tags>XAML, MAUI, MVVM, UNO, WinUI, WPF</tags>
<readme>docs\readme.md</readme>
<dependencies>
<group targetFramework="netstandard2.0">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public BindingToXBindAnalyzer(VisualStudioIntegration.IVisualStudioAbstraction v
public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.TryGet(KnownExtraDetails.Framework, out ProjectFramework framework)
|| framework != ProjectFramework.Uwp)
|| framework != ProjectFramework.WinUI)
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisD
result.HighlightDescendantWithoutAction(
RapidXamlErrorType.Error,
code: "WinUI-2PV",
description: "Do not put a TwoPaneView inside the pane of another TwoPaneview.",
description: "Do not put a TwoPaneView inside the pane of another TwoPaneView.",
descendant: desc,
moreInfoUrl: "https://docs.microsoft.com/en-us/windows/uwp/design/controls-and-patterns/two-pane-view#dos-and-donts");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public UnoIgnorablesAnalyzer(VisualStudioIntegration.IVisualStudioAbstraction vs
public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.TryGet(KnownExtraDetails.Framework, out ProjectFramework framework)
|| framework != ProjectFramework.Uwp)
|| framework != ProjectFramework.WinUI)
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisD
return this.CheckForHardCodedString(Attributes.Text, AttributeType.Any, element, extraDetails);

case ProjectFramework.Uwp:
case ProjectFramework.WinUI:
case ProjectFramework.Unknown:
default:
return AnalysisActions.EmptyList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public AppBarButtonAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public AppBarToggleButtonAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public AutoSuggestBoxAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public CalendarDatePickerAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public ComboBoxAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public DataGridAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public DatePickerAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public HyperlinkButtonAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public ListViewAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ public MenuFlyoutItemAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
// TODO: Review MAUI support
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ public MenuFlyoutSubItemAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
// TODO: Review MAUI support
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public PasswordBoxAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public RepeatButtonAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public RichEditBoxAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public SliderAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public TextBlockAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public TextBoxAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public TimePickerAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public ToggleMenuFlyoutItemAnalyzer(IVisualStudioAbstraction vsa, ILogger logger

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public ToggleSwitchAnalyzer(IVisualStudioAbstraction vsa, ILogger logger)

public override AnalysisActions Analyze(RapidXamlElement element, ExtraAnalysisDetails extraDetails)
{
if (!extraDetails.IsFramework(ProjectFramework.Uwp))
if (!extraDetails.IsFramework(ProjectFramework.Uwp) && !extraDetails.IsFramework(ProjectFramework.WinUI))
{
return AnalysisActions.None;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,10 @@
<Setter Property="Margin" Value="0,0,10,0" />
</Style>
</StackPanel.Resources>
<RadioButton Content="{x:Static strings:OptionsStringRes.Options_XamlUwp}" IsChecked="{Binding ProjectType, Converter={StaticResource ProjectTypeConverter}, ConverterParameter=Uwp}" />
<!--<RadioButton Content="{x:Static strings:OptionsStringRes.Options_XamlUwp}" IsChecked="{Binding ProjectType, Converter={StaticResource ProjectTypeConverter}, ConverterParameter=Uwp}" />-->
<RadioButton Content="{x:Static strings:OptionsStringRes.Options_XamlWinUI}" IsChecked="{Binding ProjectType, Converter={StaticResource ProjectTypeConverter}, ConverterParameter=WinUI}" />
<RadioButton Content="{x:Static strings:OptionsStringRes.Options_XamlWpf}" IsChecked="{Binding ProjectType, Converter={StaticResource ProjectTypeConverter}, ConverterParameter=Wpf}" />
<RadioButton Content="{x:Static strings:OptionsStringRes.Options_XamlXamarinForms}" IsChecked="{Binding ProjectType, Converter={StaticResource ProjectTypeConverter}, ConverterParameter=XamarinForms}" />
<!--<RadioButton Content="{x:Static strings:OptionsStringRes.Options_XamlXamarinForms}" IsChecked="{Binding ProjectType, Converter={StaticResource ProjectTypeConverter}, ConverterParameter=XamarinForms}" />-->
<RadioButton Content="{x:Static strings:OptionsStringRes.Options_XamlMaui}" IsChecked="{Binding ProjectType, Converter={StaticResource ProjectTypeConverter}, ConverterParameter=MAUI}" />
<!--<RadioButton Content="{x:Static strings:OptionsStringRes.Options_XamlAll}" IsChecked="{Binding Path=ProjectType, Converter={StaticResource EnumConverter}, ConverterParameter={x:Static rxt:ProjectType.Any}}" />-->
</StackPanel>
Expand Down
2 changes: 1 addition & 1 deletion VSIX/RapidXamlToolkit/Generation/Options/Settings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public ObservableCollection<ProfileSummary> ProfilesList
{
var list = new ObservableCollection<ProfileSummary>();

// If multile profiles have the same name as the active (or fall back) profile, use the first one in the list with matching name
// If multiple profiles have the same name as the active (or fall back) profile, use the first one in the list with matching name
Dictionary<string, bool> activeIndicated = new Dictionary<string, bool>
{
{ ProjectType.Uwp.GetDescription(), false },
Expand Down
2 changes: 1 addition & 1 deletion VSIX/RapidXamlToolkit/source.extension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ internal sealed partial class Vsix
public const string Language = "en-US";
public const string Version = "0.9.0.5";
public const string Author = "Matt Lacey";
public const string Tags = "XAML;UWP;WPF;Xamarin.Forms;Uno;MVVM;MAUI;WinUI;DotNetMaui";
public const string Tags = "XAML;WPF;Uno;MVVM;MAUI;WinUI;DotNetMaui";
}
}
2 changes: 1 addition & 1 deletion VSIX/RapidXamlToolkit/source.extension.vsixmanifest
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<GettingStartedGuide>https://github.com/mrlacey/Rapid-XAML-Toolkit/tree/main/docs</GettingStartedGuide>
<ReleaseNotes>https://github.com/mrlacey/Rapid-XAML-Toolkit/blob/main/CHANGELOG.md</ReleaseNotes>
<Icon>Resources\RapidXamlToolkitLogo.png</Icon>
<Tags>XAML;UWP;WPF;Xamarin.Forms;Uno;MVVM;MAUI;WinUI;DotNetMaui</Tags>
<Tags>XAML;WPF;Uno;MVVM;MAUI;WinUI;DotNetMaui</Tags>
</Metadata>
<Installation>
<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.10, 18.0)">
Expand Down

0 comments on commit 7c90d75

Please sign in to comment.