diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs index c2ecc02e16..01aaac4b90 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/CSharpFormattingStrategy.cs @@ -417,8 +417,8 @@ namespace CSharpBinding.FormattingStrategy return IndentLine(textArea, lineNr) + "#endregion".Length; } - if (lineAbove.HighlightSpanStack != null && lineAbove.HighlightSpanStack.Count > 0) { - if (!((Span)lineAbove.HighlightSpanStack.Peek()).StopEOL) { // case for /* style comments + if (lineAbove.HighlightSpanStack != null && !lineAbove.HighlightSpanStack.IsEmpty) { + if (!lineAbove.HighlightSpanStack.Peek().StopEOL) { // case for /* style comments int index = lineAboveText.IndexOf("/*"); if (index > 0) { StringBuilder indentation = new StringBuilder(GetIndentation(textArea, lineNr - 1)); diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/Indentation.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/Indentation.cs index 27c3143491..b7262c1a29 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/Indentation.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormattingStrategy/Indentation.cs @@ -321,7 +321,8 @@ namespace CSharpBinding.FormattingStrategy // statement). if (!oldBlock.Continuation && !oldBlock.OneLineBlock && oldBlock.StartLine == block.StartLine && - block.StartLine < doc.LineNumber && lastRealChar != ':') { + block.StartLine < doc.LineNumber && lastRealChar != ':') + { // use indent StringBuilder to get the indentation of the current line indent.Length = 0; line = doc.Text; // get untrimmed line @@ -330,6 +331,11 @@ namespace CSharpBinding.FormattingStrategy break; indent.Append(line[i]); } + // /* */ multiline comments have an extra space - do not count it + // for the block's indentation. + if (startInComment && indent.Length > 0 && indent[indent.Length - 1] == ' ') { + indent.Length -= 1; + } block.InnerIndent = indent.ToString(); } return; diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs index 1f59e0af41..fe70d27f63 100644 --- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs +++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs @@ -452,7 +452,7 @@ namespace ICSharpCode.TextEditor.Document void UpdateSpanStateVariables() { inSpan = (currentSpanStack != null && !currentSpanStack.IsEmpty); - activeSpan = inSpan ? (Span)currentSpanStack.Peek() : null; + activeSpan = inSpan ? currentSpanStack.Peek() : null; activeRuleSet = GetRuleSet(activeSpan); }