diff --git a/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Editor/EditorSettings.cs b/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Editor/EditorSettings.cs new file mode 100644 index 00000000000..f11b1c528a5 --- /dev/null +++ b/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Editor/EditorSettings.cs @@ -0,0 +1,46 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the MIT license. See License.txt in the project root for license information. + +using System; +using Microsoft.Extensions.Internal; + +namespace Microsoft.CodeAnalysis.Razor.Editor; + +public sealed class EditorSettings : IEquatable +{ + public static readonly EditorSettings Default = new(indentWithTabs: false, indentSize: 4); + + public EditorSettings(bool indentWithTabs, int indentSize) + { + if (indentSize < 0) + { + throw new ArgumentOutOfRangeException(nameof(indentSize)); + } + + IndentWithTabs = indentWithTabs; + IndentSize = indentSize; + } + + public bool IndentWithTabs { get; } + + public int IndentSize { get; } + + public bool Equals(EditorSettings? other) + => other is not null && + IndentWithTabs == other.IndentWithTabs && + IndentSize == other.IndentSize; + + public override bool Equals(object? other) + { + return Equals(other as EditorSettings); + } + + public override int GetHashCode() + { + var combiner = HashCodeCombiner.Start(); + combiner.Add(IndentWithTabs); + combiner.Add(IndentSize); + + return combiner.CombinedHash; + } +} diff --git a/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Editor/EditorSettingsChangedEventArgs.cs b/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Editor/EditorSettingsChangedEventArgs.cs new file mode 100644 index 00000000000..f9b83ae9ccb --- /dev/null +++ b/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Editor/EditorSettingsChangedEventArgs.cs @@ -0,0 +1,21 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the MIT license. See License.txt in the project root for license information. + +using System; + +namespace Microsoft.CodeAnalysis.Razor.Editor; + +public sealed class EditorSettingsChangedEventArgs : EventArgs +{ + public EditorSettingsChangedEventArgs(EditorSettings settings) + { + if (settings is null) + { + throw new ArgumentNullException(nameof(settings)); + } + + Settings = settings; + } + + public EditorSettings Settings { get; } +} diff --git a/src/Razor/src/Microsoft.VisualStudio.Editor.Razor/EditorSettingsChangedTrigger.cs b/src/Razor/src/Microsoft.VisualStudio.Editor.Razor/EditorSettingsChangedTrigger.cs new file mode 100644 index 00000000000..8f5cf3aa6f7 --- /dev/null +++ b/src/Razor/src/Microsoft.VisualStudio.Editor.Razor/EditorSettingsChangedTrigger.cs @@ -0,0 +1,9 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the MIT license. See License.txt in the project root for license information. + +namespace Microsoft.VisualStudio.Editor.Razor; + +internal abstract class EditorSettingsChangedTrigger +{ + public abstract void Initialize(EditorSettingsManager editorSettingsManager); +} diff --git a/src/Razor/src/Microsoft.VisualStudio.Editor.Razor/EditorSettingsManager.cs b/src/Razor/src/Microsoft.VisualStudio.Editor.Razor/EditorSettingsManager.cs index e2c9dc9df63..80e262cd955 100644 --- a/src/Razor/src/Microsoft.VisualStudio.Editor.Razor/EditorSettingsManager.cs +++ b/src/Razor/src/Microsoft.VisualStudio.Editor.Razor/EditorSettingsManager.cs @@ -3,7 +3,6 @@ using System; using Microsoft.CodeAnalysis.Razor.Editor; -using Microsoft.Extensions.Internal; namespace Microsoft.VisualStudio.Editor.Razor; @@ -15,57 +14,3 @@ public abstract class EditorSettingsManager public abstract void Update(EditorSettings updateSettings); } - -public sealed class EditorSettingsChangedEventArgs : EventArgs -{ - public EditorSettingsChangedEventArgs(EditorSettings settings) - { - if (settings is null) - { - throw new ArgumentNullException(nameof(settings)); - } - - Settings = settings; - } - - public EditorSettings Settings { get; } -} - -public sealed class EditorSettings : IEquatable -{ - public static readonly EditorSettings Default = new(indentWithTabs: false, indentSize: 4); - - public EditorSettings(bool indentWithTabs, int indentSize) - { - if (indentSize < 0) - { - throw new ArgumentOutOfRangeException(nameof(indentSize)); - } - - IndentWithTabs = indentWithTabs; - IndentSize = indentSize; - } - - public bool IndentWithTabs { get; } - - public int IndentSize { get; } - - public bool Equals(EditorSettings? other) - => other is not null && - IndentWithTabs == other.IndentWithTabs && - IndentSize == other.IndentSize; - - public override bool Equals(object? other) - { - return Equals(other as EditorSettings); - } - - public override int GetHashCode() - { - var combiner = HashCodeCombiner.Start(); - combiner.Add(IndentWithTabs); - combiner.Add(IndentSize); - - return combiner.CombinedHash; - } -}