@@ -99,14 +99,19 @@ public CodeString Prettify(ICodeModule module, CodeString original)
99
99
{
100
100
var originalCode = original . Code . Replace ( "\r " , string . Empty ) . Split ( '\n ' ) ;
101
101
var originalPosition = original . CaretPosition . StartColumn ;
102
+ var isAtLastCharacter = originalPosition == original . CaretLine . Length ;
103
+
102
104
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 )
105
107
{
106
- if ( originalCode [ original . CaretPosition . StartLine ] [ i ] != ' ' )
108
+ for ( var i = 0 ; i <= Math . Min ( originalPosition - 1 , original . CaretLine . Length - 1 ) ; i ++ )
107
109
{
108
- originalNonWhitespaceCharacters ++ ;
109
- isAllWhitespace = false ;
110
+ if ( originalCode [ original . CaretPosition . StartLine ] [ i ] != ' ' )
111
+ {
112
+ originalNonWhitespaceCharacters ++ ;
113
+ isAllWhitespace = false ;
114
+ }
110
115
}
111
116
}
112
117
@@ -121,19 +126,26 @@ public CodeString Prettify(ICodeModule module, CodeString original)
121
126
122
127
var prettifiedNonWhitespaceCharacters = 0 ;
123
128
var prettifiedCaretCharIndex = 0 ;
124
- for ( var i = 0 ; i < prettifiedCode [ original . CaretPosition . StartLine ] . Length ; i ++ )
129
+ if ( ! isAtLastCharacter )
125
130
{
126
- if ( prettifiedCode [ original . CaretPosition . StartLine ] [ i ] != ' ' )
131
+ for ( var i = 0 ; i < prettifiedCode [ original . CaretPosition . StartLine ] . Length ; i ++ )
127
132
{
128
- prettifiedNonWhitespaceCharacters ++ ;
129
- if ( prettifiedNonWhitespaceCharacters == originalNonWhitespaceCharacters
130
- || i == prettifiedCode [ original . CaretPosition . StartLine ] . Length - 1 )
133
+ if ( prettifiedCode [ original . CaretPosition . StartLine ] [ i ] != ' ' )
131
134
{
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
+ }
134
142
}
135
143
}
136
144
}
145
+ else
146
+ {
147
+ prettifiedCaretCharIndex = prettifiedCode [ original . CaretPosition . StartLine ] . Length ;
148
+ }
137
149
138
150
var prettifiedPosition = new Selection (
139
151
original . SnippetPosition . ToZeroBased ( ) . StartLine + original . CaretPosition . StartLine ,
0 commit comments