diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin b/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin index 60dc96dc2f..f2e4adf86b 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin @@ -119,7 +119,6 @@ label = "${res:Dialog.ProjectOptions.Publish}" class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.Publish"/>--> - diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsPersistence.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsPersistence.cs index e4cd23433a..d6d3b2862e 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsPersistence.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsPersistence.cs @@ -132,12 +132,10 @@ namespace CSharpBinding.FormattingStrategy /// Initial (empty) instance of formatting options container. public CSharpFormattingOptionsPersistence(Properties propertiesContainer, CSharpFormattingOptionsContainer initialContainer) { - if (propertiesContainer == null) - throw new ArgumentNullException("propertiesContainer"); if (initialContainer == null) throw new ArgumentNullException("initialContainer"); - this.propertiesContainer = propertiesContainer; + this.propertiesContainer = propertiesContainer ?? new Properties(); optionsContainer = initialContainer; } diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs index 8872fb587e..e3ec4d4304 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs @@ -31,6 +31,7 @@ using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Parser; +using ICSharpCode.SharpDevelop.Project; namespace CSharpBinding.FormattingStrategy { @@ -73,8 +74,12 @@ namespace CSharpBinding.FormattingStrategy static CacheIndentEngine CreateIndentEngine(IDocument document, TextEditorOptions options) { - // TODO Use project-specific formatter settings. But how to get a project from here? - var formattingOptions = CSharpFormattingOptionsPersistence.GlobalOptions; + IProject currentProject = null; + var projectService = SD.GetService(); + if (projectService != null) { + currentProject = projectService.FindProjectContainingFile(new FileName(document.FileName)); + } + var formattingOptions = CSharpFormattingOptionsPersistence.GetProjectOptions(currentProject); var engine = new CSharpIndentEngine(document, options, formattingOptions.OptionsContainer.GetEffectiveOptions()); return new CacheIndentEngine(engine); }