From d307bf8a1e280e4c4600dc4c3ff2c689710ccfbb Mon Sep 17 00:00:00 2001 From: Andreas Weizel Date: Thu, 13 Mar 2014 23:18:24 +0100 Subject: [PATCH] Fixed #400: Indentation engine misbehaves when editing MSBuildBasedProject.cs. Fixed CSharpBinding tests. --- .../CSharpFormattingOptionsContainer.cs | 2 +- .../CSharpFormattingOptionsPersistence.cs | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsContainer.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsContainer.cs index 42909e080f..a46ef79fa2 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsContainer.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsContainer.cs @@ -280,7 +280,7 @@ namespace CSharpBinding.FormattingStrategy /// Created and filled instance. private CSharpFormattingOptions CreateCachedOptions() { - var outputOptions = FormattingOptionsFactory.CreateEmpty(); + var outputOptions = FormattingOptionsFactory.CreateSharpDevelop(); // Look at all container options and try to set identically named properties of CSharpFormattingOptions foreach (PropertyInfo propertyInfo in typeof(CSharpFormattingOptions).GetProperties()) { diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsPersistence.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsPersistence.cs index 85e380ee58..19a6abcaa2 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsPersistence.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsPersistence.cs @@ -39,10 +39,20 @@ namespace CSharpBinding.FormattingStrategy /// internal class CSharpFormattingOptionsPersistence { + static bool initialized; static Dictionary projectOptions; + static CSharpFormattingOptionsPersistence() + { + Initialize(); + } + public static void Initialize() { + if (initialized) + return; + + initialized = true; projectOptions = new Dictionary(); // Load global settings @@ -54,8 +64,11 @@ namespace CSharpBinding.FormattingStrategy GlobalOptions.Load(); // Handlers for solution loading/unloading - SD.ProjectService.SolutionOpened += SolutionOpened; - SD.ProjectService.SolutionClosed += SolutionClosed; + var projectService = SD.GetService(); + if (projectService != null) { + SD.ProjectService.SolutionOpened += SolutionOpened; + SD.ProjectService.SolutionClosed += SolutionClosed; + } } public static CSharpFormattingOptionsPersistence GlobalOptions