From 0c1a36503fbd967f94d3c1f1325afe94fa786712 Mon Sep 17 00:00:00 2001 From: Andreas Weizel Date: Sat, 24 May 2014 02:13:52 +0200 Subject: [PATCH] Fixed CSharpBinding tests. --- .../Project/CSharpBinding.csproj | 2 +- .../Project/Src/CSharpLanguageBinding.cs | 15 ++++---- ...istence.cs => CSharpFormattingPolicies.cs} | 34 ++++++++++++------- 3 files changed, 30 insertions(+), 21 deletions(-) rename src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/{CSharpFormattingOptionsPersistence.cs => CSharpFormattingPolicies.cs} (93%) diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj b/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj index 2762300961..dbbd1b7739 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.csproj @@ -93,7 +93,7 @@ - + diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs index 8c6912e98b..5c53535de9 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs @@ -73,9 +73,9 @@ namespace CSharpBinding // Patch editor options (indentation) to project-specific settings var optionsContainer = CSharpFormattingPolicies.Instance.GetProjectOptions( SD.ProjectService.FindProjectContainingFile(editor.FileName)); - CustomizeEditorOptions(optionsContainer.OptionsContainer, editor.Options); + CustomizeEditorOptions(optionsContainer.OptionsContainer, editor.Options, this.editor); CSharpFormattingPolicies.Instance.FormattingPolicyUpdated += - (sender, e) => CustomizeEditorOptions(optionsContainer.OptionsContainer, this.editor.Options); + (sender, e) => CustomizeEditorOptions(optionsContainer.OptionsContainer, this.editor.Options, this.editor); if (!editor.ContextActionProviders.IsReadOnly) { contextActionProviders = AddInTree.BuildItems("/SharpDevelop/ViewContent/TextEditor/C#/ContextActions", null); @@ -97,7 +97,7 @@ namespace CSharpBinding this.editor = null; } - private void CustomizeEditorOptions(CSharpFormattingOptionsContainer container, ITextEditorOptions editorOptions) + private void CustomizeEditorOptions(CSharpFormattingOptionsContainer container, ITextEditorOptions editorOptions, ITextEditor editor) { if (container == null) return; @@ -107,11 +107,12 @@ namespace CSharpBinding int? indentationSize = container.GetEffectiveIndentationSize(); if (indentationSize.HasValue) { - textEditorOptions.IndentationSize = indentationSize.Value; +// textEditorOptions.IndentationSize = indentationSize.Value; } - bool? convertTabsToSpaces = container.GetEffectiveConvertTabsToSpaces(); - if (convertTabsToSpaces.HasValue) - textEditorOptions.ConvertTabsToSpaces = convertTabsToSpaces.Value; +// bool? convertTabsToSpaces = container.GetEffectiveConvertTabsToSpaces(); +// if (convertTabsToSpaces.HasValue) { +// textEditorOptions.ConvertTabsToSpaces = convertTabsToSpaces.Value; +// } } } } diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsPersistence.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingPolicies.cs similarity index 93% rename from src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsPersistence.cs rename to src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingPolicies.cs index cd380eea9a..5999f1dd1f 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsPersistence.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingPolicies.cs @@ -30,7 +30,7 @@ namespace CSharpBinding.FormattingStrategy { public override void Execute(object parameter) { - // Initialize CSharpFormattingOptionsPersistence as early as possible (before solution is opened) + // Initialize CSharpFormattingPolicies as early as possible (before solution is opened) CSharpFormattingPolicies.Instance.Initialize(); } } @@ -40,21 +40,20 @@ namespace CSharpBinding.FormattingStrategy /// internal class CSharpFormattingPolicies { - public static readonly CSharpFormattingPolicies Instance = new CSharpFormattingPolicies(); + static readonly Lazy LazyInstance = + new Lazy(() => new CSharpFormattingPolicies()); + + public static CSharpFormattingPolicies Instance { + get { return LazyInstance.Value; } + } public event EventHandler FormattingPolicyUpdated; - static bool initialized; - static Dictionary projectOptions; + bool initialized; + Dictionary projectOptions; - public void Initialize() + public CSharpFormattingPolicies() { - if (initialized) - return; - - initialized = true; - projectOptions = new Dictionary(); - // Load global settings GlobalOptions = new CSharpFormattingPolicy( SD.PropertyService.MainPropertiesContainer, new CSharpFormattingOptionsContainer() { @@ -62,6 +61,15 @@ namespace CSharpBinding.FormattingStrategy }); GlobalOptions.FormattingPolicyUpdated += OnFormattingPolicyUpdated; GlobalOptions.Load(); + } + + public void Initialize() + { + if (initialized) + return; + + initialized = true; + projectOptions = new Dictionary(); // Handlers for solution loading/unloading var projectService = SD.GetService(); @@ -92,8 +100,8 @@ namespace CSharpBinding.FormattingStrategy public CSharpFormattingPolicy GetProjectOptions(IProject project) { - if (projectOptions == null) - return null; + if (!initialized) + return GlobalOptions; var csproject = project as CSharpProject; if (csproject != null) {