Browse Source

Fix #447: Revert to old indent engine

Re-opens #109 and #144.
pull/463/head
Daniel Grunwald 12 years ago
parent
commit
c11c509e87
  1. 28
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs

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

@ -44,22 +44,29 @@ namespace CSharpBinding.FormattingStrategy
#region Smart Indentation #region Smart Indentation
public override void IndentLine(ITextEditor editor, IDocumentLine line) public override void IndentLine(ITextEditor editor, IDocumentLine line)
{ {
var document = editor.Document; int lineNr = line.LineNumber;
var engine = CreateIndentEngine(document, editor.ToEditorOptions()); DocumentAccessor acc = new DocumentAccessor(editor.Document, lineNr, lineNr);
IndentSingleLine(engine, document, line);
CSharpIndentationStrategy indentStrategy = new CSharpIndentationStrategy();
indentStrategy.IndentationString = editor.Options.IndentationString;
indentStrategy.Indent(acc, false);
string t = acc.Text;
if (t.Length == 0) {
// use AutoIndentation for new lines in comments / verbatim strings.
base.IndentLine(editor, line);
}
} }
public override void IndentLines(ITextEditor editor, int beginLine, int endLine) public override void IndentLines(ITextEditor editor, int beginLine, int endLine)
{ {
var document = editor.Document; DocumentAccessor acc = new DocumentAccessor(editor.Document, beginLine, endLine);
var engine = CreateIndentEngine(document, editor.ToEditorOptions()); CSharpIndentationStrategy indentStrategy = new CSharpIndentationStrategy();
int currentLine = beginLine; indentStrategy.IndentationString = editor.Options.IndentationString;
do { indentStrategy.Indent(acc, true);
var line = document.GetLineByNumber(currentLine);
IndentSingleLine(engine, document, line);
} while (++currentLine <= endLine);
} }
/* NR indent engine (temporarily?) disabled as per #447
static void IndentSingleLine(CacheIndentEngine engine, IDocument document, IDocumentLine line) static void IndentSingleLine(CacheIndentEngine engine, IDocument document, IDocumentLine line)
{ {
engine.Update(line.EndOffset); engine.Update(line.EndOffset);
@ -83,6 +90,7 @@ namespace CSharpBinding.FormattingStrategy
var engine = new CSharpIndentEngine(document, options, formattingOptions.OptionsContainer.GetEffectiveOptions()); var engine = new CSharpIndentEngine(document, options, formattingOptions.OptionsContainer.GetEffectiveOptions());
return new CacheIndentEngine(engine); return new CacheIndentEngine(engine);
} }
*/
#endregion #endregion
#region Private functions #region Private functions

Loading…
Cancel
Save