diff --git a/build/ci/.azure-devops-project-template-tests.yml b/build/ci/.azure-devops-project-template-tests.yml index 140b56f21d50..2bcf1a95b5fb 100644 --- a/build/ci/.azure-devops-project-template-tests.yml +++ b/build/ci/.azure-devops-project-template-tests.yml @@ -36,8 +36,8 @@ jobs: artifactName: 'Nuget_Packages' - template: templates/gitversion.yml - - template: templates/dotnet-mobile-install-windows.yml + - template: templates/uno-dev-feed.yml - script: copy $(System.ArtifactsDirectory)\Nuget_Packages\vslatest\*.nupkg $(Build.SourcesDirectory)\src\PackageCache displayName: Copy Artifacts to PackageCache @@ -103,6 +103,7 @@ jobs: xCodeRoot: ${{ parameters.xCodeRoot }} - template: templates/dotnet-mobile-install-mac.yml + - template: templates/uno-dev-feed.yml - powershell: cp $(System.ArtifactsDirectory)/Nuget_Packages/vslatest/*.nupkg $(Build.SourcesDirectory)/src/PackageCache displayName: Copy Artifacts to PackageCache @@ -134,6 +135,8 @@ jobs: TestGroup: '1' group_2: TestGroup: '2' + group_3: + TestGroup: '3' variables: # don't validate transitive dependencies for template tests @@ -145,11 +148,10 @@ jobs: artifactName: 'Nuget_Packages' - template: templates/gitversion.yml - - template: templates/dotnet-mobile-install-linux.yml - - template: templates/gitversion.yml - + - template: templates/uno-dev-feed.yml + - script: cp $(System.ArtifactsDirectory)/Nuget_Packages/vslatest/*.nupkg $(Build.SourcesDirectory)/src/PackageCache displayName: Copy Artifacts to PackageCache diff --git a/build/ci/templates/uno-dev-feed.yml b/build/ci/templates/uno-dev-feed.yml new file mode 100644 index 000000000000..bc6a002029cc --- /dev/null +++ b/build/ci/templates/uno-dev-feed.yml @@ -0,0 +1,7 @@ +parameters: + nugetPackages: '$(Pipeline.Workspace)/.nuget/packages' + +steps: + + - pwsh: dotnet nuget add source https://pkgs.dev.azure.com/uno-platform/1dd81cbd-cb35-41de-a570-b0df3571a196/_packaging/unoplatformdev/nuget/v3/index.json -n "uno-dev" + displayName: Add dev feed source diff --git a/build/nuget/uno.winui.targets b/build/nuget/uno.winui.targets index 0beb9f1738ba..ed93b8bc3195 100644 --- a/build/nuget/uno.winui.targets +++ b/build/nuget/uno.winui.targets @@ -21,4 +21,18 @@ + + + + + + <_HDAnalyzerToRemove Include="@(Analyzer)" Condition="'%(Analyzer.NuGetPackageId)'=='Uno.UI.HotDesign'" /> + + + + diff --git a/build/test-scripts/run-net7-template-linux.ps1 b/build/test-scripts/run-net7-template-linux.ps1 index 7f85d0fe3e53..a10c9ece3764 100644 --- a/build/test-scripts/run-net7-template-linux.ps1 +++ b/build/test-scripts/run-net7-template-linux.ps1 @@ -48,13 +48,13 @@ $projects = @(0, "5.1/uno51blank/uno51blank.Wasm/uno51blank.Wasm.csproj", @(), @()), # 5.1 Recommended - @(0, "5.1/uno51recommended/uno51recommended.Skia.Gtk/uno51recommended.Skia.Gtk.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Skia.Linux.FrameBuffer/uno51recommended.Skia.Linux.FrameBuffer.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Skia.WPF/uno51recommended.Skia.WPF.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Wasm/uno51recommended.Wasm.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Server/uno51recommended.Server.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Tests/uno51recommended.Tests.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.UITests/uno51recommended.UITests.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Skia.Gtk/uno51recommended.Skia.Gtk.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Skia.Linux.FrameBuffer/uno51recommended.Skia.Linux.FrameBuffer.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Skia.WPF/uno51recommended.Skia.WPF.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Wasm/uno51recommended.Wasm.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Server/uno51recommended.Server.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Tests/uno51recommended.Tests.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.UITests/uno51recommended.UITests.csproj", @(), @()), # 5.2 Blank @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @(), @()), @@ -69,19 +69,19 @@ $projects = @(1, "5.2/uno52Lib/uno52Lib.csproj", @(), @()), # 5.2 Uno NuGet Lib - @(1, "5.2/uno52NuGetLib/uno52NuGetLib.csproj", @(), @()), + @(2, "5.2/uno52NuGetLib/uno52NuGetLib.csproj", @(), @()), # 5.2 Uno SingleProject Lib - @(1, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @(), @()), + @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @(), @()), # 5.2 Uno App with Library reference - @(1, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @(), @()), + @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @(), @()), # 5.3 Blank with net9 - @(2, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @(), @()), + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @(), @()), # 5.3 lib - @(2, "5.3/uno53net9Lib/uno53net9Lib.csproj", @(), @()) + @(3, "5.3/uno53net9Lib/uno53net9Lib.csproj", @(), @()) # 5.3 blank publish testing # Disabled for LXD setup issues diff --git a/doc/articles/features/working-with-xaml-hot-reload.md b/doc/articles/features/working-with-xaml-hot-reload.md index da8a2d3bcf96..c32f95322b95 100644 --- a/doc/articles/features/working-with-xaml-hot-reload.md +++ b/doc/articles/features/working-with-xaml-hot-reload.md @@ -293,7 +293,7 @@ Mobile targets are currently using a limited version of XAML Hot Reload and do n ## Hot Reload Indicator -Hot Reload displays a visual indicator to help you further monitor changes while developing. It displays new information every time Hot Reload is triggered. The indicator is enabled by default within the `EnableHotReload()` method which is located in the root `App.xaml.cs` file. This displays an overlay which hosts the visual indicator. If you wish to disable it, you simply have to provide the following boolean: `EnableHotReload(disableIndicator: true)`, removing the overlay from the view. +Hot Reload displays a visual indicator to help you further monitor changes while developing. It displays new information every time Hot Reload is triggered. The indicator is enabled by default within the `UseStudio()` method which is located in the root `App.xaml.cs` file. This displays an overlay which hosts the visual indicator. If you wish to disable it, you simply have to provide the following boolean: `EnableHotReload(disableIndicator: true)`, removing the overlay from the view.

A hot reload visual indicator @@ -370,7 +370,7 @@ Here's a summary of what icons and statuses you can expect: //... in the OnLaunched method #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif ``` diff --git a/doc/articles/migrating-from-previous-releases.md b/doc/articles/migrating-from-previous-releases.md index 6a4c5ff874f3..83be4df90077 100644 --- a/doc/articles/migrating-from-previous-releases.md +++ b/doc/articles/migrating-from-previous-releases.md @@ -17,6 +17,10 @@ A few considerations to take into account: - Moving to .NET 9 or upgrading .NET 9 projects now require the use of .NET 9 RC2 and Visual Studio 17.12 Preview 3. - To migrate a project to .NET 9, [read the directions](xref:Uno.Development.MigratingFromNet8ToNet9) from our documentation. +### The EnableHotReload method is deprecated + +When upgrading to Uno 5.5, in the `App.xaml.cs` file, the `EnableHotReload()` method is deprecated and must be replaced with `UseStudio()` instead. + ## Uno Platform 5.4 Uno Platform 5.4 contains breaking changes for Uno.Extensions. diff --git a/doc/articles/migrating-to-uno-5.md b/doc/articles/migrating-to-uno-5.md index 3c8b93add58b..d5466ef9f1e5 100644 --- a/doc/articles/migrating-to-uno-5.md +++ b/doc/articles/migrating-to-uno-5.md @@ -44,7 +44,7 @@ Hot Reload support has changed in Uno Platform 5.0 and a new API invocation is n //... in the OnLaunched method #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif ``` diff --git a/doc/articles/uno-build-error-codes.md b/doc/articles/uno-build-error-codes.md index 938187ee28bd..4aa58ec23bb7 100644 --- a/doc/articles/uno-build-error-codes.md +++ b/doc/articles/uno-build-error-codes.md @@ -178,6 +178,18 @@ Some components like `ProgressRing` and `MediaPlayerElement` requires you to ref - For `ProgressRing`, it requires Lottie dependency. For more information about adding Lottie to your project, see [Lottie for Uno](xref:Uno.Features.Lottie). - For `MediaPlayerElement` on WebAssembly or Gtk, it requires `Uno.WinUI.MediaPlayer.WebAssembly` or `Uno.WinUI.MediaPlayer.Skia.Gtk` NuGet package. For more information, see [MediaPlayerElement](xref:Uno.Controls.MediaPlayerElement). +### UNO0008 + +In Uno Platform 5.5, the `EnableHotReload` method has been deprecated and replaced by `UseStudio()`. + +Note that this change only applies to projects using the Uno.Sdk. If you're not using the Uno.Sdk, you can disable this warning using the following code: + +```xml +#pragma warning disable UNO0008 // Replace with UseStudio() when migrating to the Uno.Sdk. +window.EnableHotReload(); +#pragma warning restore UNO0008 +``` + ## XAML Errors ### UNOX0001 diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 268266ca53d3..fc0c0e4e5464 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -223,6 +223,9 @@ $(NoWarn);CS0436 + + + $(NoWarn);UNO0008 diff --git a/src/SolutionTemplate/5.1/uno51blank/Directory.Packages.props b/src/SolutionTemplate/5.1/uno51blank/Directory.Packages.props index 296df9d6fe5a..ef290f97a282 100644 --- a/src/SolutionTemplate/5.1/uno51blank/Directory.Packages.props +++ b/src/SolutionTemplate/5.1/uno51blank/Directory.Packages.props @@ -10,17 +10,17 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs b/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs index 62e506b2f697..a1f60a65781f 100644 --- a/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs +++ b/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs @@ -9,7 +9,9 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) MainWindow = new Window(); #if DEBUG +#pragma warning disable UNO0008 MainWindow.EnableHotReload(); +#pragma warning restore UNO0008 #endif diff --git a/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props b/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props index 1cb2d22cd667..d9ed0d87ae00 100644 --- a/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props +++ b/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props @@ -17,17 +17,17 @@ - - - - - - - - - - - + + + + + + + + + + + @@ -52,10 +52,10 @@ - + - - + + diff --git a/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs b/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs index 19b13588d50f..7f9bc9aacef4 100644 --- a/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs +++ b/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs @@ -75,7 +75,9 @@ protected async override void OnLaunched(LaunchActivatedEventArgs args) MainWindow = builder.Window; #if DEBUG +#pragma warning disable UNO0008 MainWindow.EnableHotReload(); +#pragma warning restore UNO0008 #endif Host = await builder.NavigateAsync(); diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs index fc6929ae914b..0f72526ed656 100644 --- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs +++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs @@ -21,7 +21,9 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) { MainWindow = new Window(); #if DEBUG +#pragma warning disable UNO0008 MainWindow.EnableHotReload(); +#pragma warning restore UNO0008 #endif diff --git a/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs b/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs index 3d3bb856f7be..0afcd05f0c42 100644 --- a/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs +++ b/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs @@ -21,7 +21,9 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) { MainWindow = new Window(); #if DEBUG +#pragma warning disable UNO0008 MainWindow.EnableHotReload(); +#pragma warning restore UNO0008 #endif diff --git a/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs b/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs index 622781bbb6d5..302b0aab62db 100644 --- a/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs +++ b/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs @@ -21,7 +21,7 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) { MainWindow = new Window(); #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif diff --git a/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json b/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json index 53998c226f9a..3700b738cf83 100644 --- a/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json +++ b/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json @@ -234,6 +234,10 @@ "description": "Provides an explicit override for the version of Uno.Settings to use.", "type": "nuget-version" }, + "UnoHotDesignVersion": { + "description": "Provides an explicit override for the version of Uno.HotDesign to use.", + "type": "nuget-version" + }, "MicrosoftLoggingVersion": { "description": "Provides an explicit override for the version of Microsoft.Extensions.Logging to use.", "type": "nuget-version" diff --git a/src/Uno.Sdk/Services/PackageManifest.cs b/src/Uno.Sdk/Services/PackageManifest.cs index a212120e9308..208ec470be13 100644 --- a/src/Uno.Sdk/Services/PackageManifest.cs +++ b/src/Uno.Sdk/Services/PackageManifest.cs @@ -138,6 +138,7 @@ public class Group public const string Resizetizer = nameof(Resizetizer); public const string SdkExtras = nameof(SdkExtras); public const string Settings = nameof(Settings); + public const string HotDesign = nameof(HotDesign); public const string SkiaSharp = nameof(SkiaSharp); public const string SvgSkia = nameof(SvgSkia); public const string WinAppSdk = nameof(WinAppSdk); diff --git a/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs b/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs index ba60a5f67d5d..5a6e6a621e51 100644 --- a/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs +++ b/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs @@ -85,6 +85,8 @@ public sealed class ImplicitPackagesResolver_v0 : Task public string? UnoSettingsVersion { get; set; } + public string? UnoHotDesignVersion { get; set; } + public string? MicrosoftLoggingVersion { get; set; } public string? WinAppSdkVersion { get; set; } @@ -246,6 +248,7 @@ private void SetupRuntimePackageManifestUpdates(PackageManifest manifest) .UpdateManifest(PackageManifest.Group.Resizetizer, UnoResizetizerVersion) .UpdateManifest(PackageManifest.Group.SdkExtras, UnoSdkExtrasVersion) .UpdateManifest(PackageManifest.Group.Settings, UnoSettingsVersion) + .UpdateManifest(PackageManifest.Group.HotDesign, UnoHotDesignVersion) .UpdateManifest(PackageManifest.Group.SkiaSharp, SkiaSharpVersion) .UpdateManifest(PackageManifest.Group.SvgSkia, SvgSkiaVersion) .UpdateManifest(PackageManifest.Group.WinAppSdk, WinAppSdkVersion) diff --git a/src/Uno.Sdk/packages.json b/src/Uno.Sdk/packages.json index aca8154056ef..98abd0080680 100644 --- a/src/Uno.Sdk/packages.json +++ b/src/Uno.Sdk/packages.json @@ -81,11 +81,18 @@ }, { "group": "settings", - "version": "0.1.0-dev.144", + "version": "1.1.22", "packages": [ "Uno.Settings.DevServer" ] }, + { + "group": "hotdesign", + "version": "1.0.51", + "packages": [ + "Uno.UI.HotDesign" + ] + }, { "group": "SkiaSharp", "version": "2.88.9-preview.2.2", diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets index e0880a8dce18..6c9e0a81f315 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets @@ -11,9 +11,14 @@ <_UnoProjectSystemPackageReference Include="Uno.Settings.DevServer" ProjectSystem="true" PrivateAssets="all" /> + + <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" Condition="$(Optimize) != 'true'" /> + <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" Exclude="all" IncludeAssets="None" Condition="$(Optimize) == 'true'" /> + + <_UnoProjectSystemPackageReference Include="Uno.WinUI.DevServer" ProjectSystem="true" Condition="$(Optimize) != 'true'" /> - <_UnoProjectSystemPackageReference Include="Uno.WinUI.DevServer" ProjectSystem="true" Exclude="all" Condition="$(Optimize) == 'true'" /> + <_UnoProjectSystemPackageReference Include="Uno.WinUI.DevServer" ProjectSystem="true" Exclude="all" IncludeAssets="None" Condition="$(Optimize) == 'true'" /> @@ -77,7 +82,7 @@ <_UnoProjectSystemPackageReference Include="CommunityToolkit.Mvvm" ProjectSystem="true" /> - + <_UnoProjectSystemPackageReference Include="Uno.Fonts.OpenSans" ProjectSystem="true" /> diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets index ec578d78d73e..53ff56988041 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets @@ -63,6 +63,7 @@ UnoResizetizerVersion="$(UnoResizetizerVersion)" UnoSdkExtrasVersion="$(UnoSdkExtrasVersion)" UnoSettingsVersion="$(UnoSettingsVersion)" + UnoHotDesignVersion="$(UnoHotDesignVersion)" MicrosoftLoggingVersion="$(MicrosoftLoggingVersion)" WinAppSdkVersion="$(WinAppSdkVersion)" WinAppSdkBuildToolsVersion="$(WinAppSdkBuildToolsVersion)" diff --git a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs index 5069bd7935a2..0a38206683d8 100644 --- a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs +++ b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs @@ -499,7 +499,7 @@ private static void UpdateApplicationCore(Type[] types) #endif else { - var errorMsg = $"Unable to access Dispatcher/DispatcherQueue in order to invoke {nameof(ReloadWithUpdatedTypes)}. Make sure you have enabled hot-reload (Window.EnableHotReload()) in app startup. See https://aka.platform.uno/hot-reload"; + var errorMsg = $"Unable to access Dispatcher/DispatcherQueue in order to invoke {nameof(ReloadWithUpdatedTypes)}. Make sure you have enabled hot-reload (Window.UseStudio()) in app startup. See https://aka.platform.uno/hot-reload"; hr?.ReportError(new InvalidOperationException(errorMsg)); if (_log.IsEnabled(LogLevel.Warning)) { diff --git a/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs b/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs index 7f268ae0b9ce..45defc62fbb2 100644 --- a/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs +++ b/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs @@ -2,6 +2,7 @@ using Uno.UI.RemoteControl.HotReload; using Microsoft.UI.Xaml; using Uno.Diagnostics.UI; +using System.ComponentModel; namespace Uno.UI; @@ -14,6 +15,9 @@ public static class WindowExtensions /// Enables the UI Update cycle of HotReload to be handled by Uno /// /// The window of the application where UI updates will be applied + [Obsolete("Use the UseStudio() method instead if using the Uno.SDK, otherwise see https://aka.platform.uno/UNO0008 for more details.", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] public static void EnableHotReload(this Window window) => ClientHotReloadProcessor.SetWindow(window, false); @@ -22,6 +26,9 @@ public static void EnableHotReload(this Window window) /// /// The window of the application where UI updates will be applied /// Request to not show the on-canvas indicator by default. + [Obsolete("Use the UseStudio() method instead if using the Uno.SDK, otherwise see https://aka.platform.uno/UNO0008 for more details.", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] public static void EnableHotReload(this Window window, bool disableIndicator) => ClientHotReloadProcessor.SetWindow(window, disableIndicator);