Browse Source

Indent engine now initialized with project formatting settings if possible, not only with global settings.

pull/411/head
Andreas Weizel 11 years ago
parent
commit
f07b9ee38b
  1. 1
      src/AddIns/BackendBindings/CSharpBinding/Project/CSharpBinding.addin
  2. 4
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingOptionsPersistence.cs
  3. 9
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs

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

@ -119,7 +119,6 @@ @@ -119,7 +119,6 @@
label = "${res:Dialog.ProjectOptions.Publish}"
class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.Publish"/>-->
<Include id = "AllManaged" path="/SharpDevelop/BackendBindings/ProjectOptions/AllManaged"/>
<!-- TODO Localize label! -->
<OptionPanel id = "CSharpProjectFormattingOptions"
label = "${res:Dialog.ProjectOptions.CodeFormatting}"
class = "CSharpBinding.OptionPanels.CSharpProjectFormattingOptionPanel"/>

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

@ -132,12 +132,10 @@ namespace CSharpBinding.FormattingStrategy @@ -132,12 +132,10 @@ namespace CSharpBinding.FormattingStrategy
/// <param name="initialContainer">Initial (empty) instance of formatting options container.</param>
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;
}

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

@ -31,6 +31,7 @@ using ICSharpCode.NRefactory.TypeSystem; @@ -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 @@ -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<IProjectService>();
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);
}

Loading…
Cancel
Save