Skip to content

Commit 9c5117e

Browse files
committed
fixes #4543
1 parent a64b339 commit 9c5117e

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

Rubberduck.VBEEditor/SourceCodeHandling/CodePaneSourceCodeHandler.cs

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,19 @@ public CodeString Prettify(ICodeModule module, CodeString original)
9999
{
100100
var originalCode = original.Code.Replace("\r", string.Empty).Split('\n');
101101
var originalPosition = original.CaretPosition.StartColumn;
102+
var isAtLastCharacter = originalPosition == original.CaretLine.Length;
103+
102104
var originalNonWhitespaceCharacters = 0;
103-
var isAllWhitespace = true;
104-
for (var i = 0; i <= Math.Min(originalPosition - 1, originalCode[original.CaretPosition.StartLine].Length - 1); i++)
105+
var isAllWhitespace = !isAtLastCharacter;
106+
if (!isAtLastCharacter)
105107
{
106-
if (originalCode[original.CaretPosition.StartLine][i] != ' ')
108+
for (var i = 0; i <= Math.Min(originalPosition - 1, original.CaretLine.Length - 1); i++)
107109
{
108-
originalNonWhitespaceCharacters++;
109-
isAllWhitespace = false;
110+
if (originalCode[original.CaretPosition.StartLine][i] != ' ')
111+
{
112+
originalNonWhitespaceCharacters++;
113+
isAllWhitespace = false;
114+
}
110115
}
111116
}
112117

@@ -121,19 +126,26 @@ public CodeString Prettify(ICodeModule module, CodeString original)
121126

122127
var prettifiedNonWhitespaceCharacters = 0;
123128
var prettifiedCaretCharIndex = 0;
124-
for (var i = 0; i < prettifiedCode[original.CaretPosition.StartLine].Length; i++)
129+
if (!isAtLastCharacter)
125130
{
126-
if (prettifiedCode[original.CaretPosition.StartLine][i] != ' ')
131+
for (var i = 0; i < prettifiedCode[original.CaretPosition.StartLine].Length; i++)
127132
{
128-
prettifiedNonWhitespaceCharacters++;
129-
if (prettifiedNonWhitespaceCharacters == originalNonWhitespaceCharacters
130-
|| i == prettifiedCode[original.CaretPosition.StartLine].Length - 1)
133+
if (prettifiedCode[original.CaretPosition.StartLine][i] != ' ')
131134
{
132-
prettifiedCaretCharIndex = i;
133-
break;
135+
prettifiedNonWhitespaceCharacters++;
136+
if (prettifiedNonWhitespaceCharacters == originalNonWhitespaceCharacters
137+
|| i == prettifiedCode[original.CaretPosition.StartLine].Length - 1)
138+
{
139+
prettifiedCaretCharIndex = i;
140+
break;
141+
}
134142
}
135143
}
136144
}
145+
else
146+
{
147+
prettifiedCaretCharIndex = prettifiedCode[original.CaretPosition.StartLine].Length;
148+
}
137149

138150
var prettifiedPosition = new Selection(
139151
original.SnippetPosition.ToZeroBased().StartLine + original.CaretPosition.StartLine,

0 commit comments

Comments
 (0)