Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit f07b9ee

Browse files
committed
Indent engine now initialized with project formatting settings if possible, not only with global settings.
1 parent 7afed71 commit f07b9ee

3 files changed

Lines changed: 8 additions & 6 deletions

File tree

src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@
119119
label = "${res:Dialog.ProjectOptions.Publish}"
120120
class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.Publish"/>-->
121121
<Include id = "AllManaged" path="/SharpDevelop/BackendBindings/ProjectOptions/AllManaged"/>
122-
<!-- TODO Localize label! -->
123122
<OptionPanel id = "CSharpProjectFormattingOptions"
124123
label = "${res:Dialog.ProjectOptions.CodeFormatting}"
125124
class = "CSharpBinding.OptionPanels.CSharpProjectFormattingOptionPanel"/>

src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsPersistence.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,12 +132,10 @@ static void SolutionClosed(object sender, SolutionEventArgs e)
132132
/// <param name="initialContainer">Initial (empty) instance of formatting options container.</param>
133133
public CSharpFormattingOptionsPersistence(Properties propertiesContainer, CSharpFormattingOptionsContainer initialContainer)
134134
{
135-
if (propertiesContainer == null)
136-
throw new ArgumentNullException("propertiesContainer");
137135
if (initialContainer == null)
138136
throw new ArgumentNullException("initialContainer");
139137

140-
this.propertiesContainer = propertiesContainer;
138+
this.propertiesContainer = propertiesContainer ?? new Properties();
141139
optionsContainer = initialContainer;
142140
}
143141

src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
using ICSharpCode.SharpDevelop;
3232
using ICSharpCode.SharpDevelop.Editor;
3333
using ICSharpCode.SharpDevelop.Parser;
34+
using ICSharpCode.SharpDevelop.Project;
3435

3536
namespace CSharpBinding.FormattingStrategy
3637
{
@@ -73,8 +74,12 @@ static void IndentSingleLine(CacheIndentEngine engine, IDocument document, IDocu
7374

7475
static CacheIndentEngine CreateIndentEngine(IDocument document, TextEditorOptions options)
7576
{
76-
// TODO Use project-specific formatter settings. But how to get a project from here?
77-
var formattingOptions = CSharpFormattingOptionsPersistence.GlobalOptions;
77+
IProject currentProject = null;
78+
var projectService = SD.GetService<IProjectService>();
79+
if (projectService != null) {
80+
currentProject = projectService.FindProjectContainingFile(new FileName(document.FileName));
81+
}
82+
var formattingOptions = CSharpFormattingOptionsPersistence.GetProjectOptions(currentProject);
7883
var engine = new CSharpIndentEngine(document, options, formattingOptions.OptionsContainer.GetEffectiveOptions());
7984
return new CacheIndentEngine(engine);
8085
}

0 commit comments

Comments
 (0)