@@ -91,15 +91,17 @@ public CodeString Prettify(ICodeModule module, CodeString original)
91
91
var originalCode = original . Code . Replace ( "\r " , string . Empty ) . Split ( '\n ' ) ;
92
92
var originalPosition = original . CaretPosition . StartColumn ;
93
93
var originalNonWhitespaceCharacters = 0 ;
94
+ var isAllWhitespace = true ;
94
95
for ( var i = 0 ; i <= Math . Min ( originalPosition - 1 , originalCode [ original . CaretPosition . StartLine ] . Length - 1 ) ; i ++ )
95
96
{
96
97
if ( originalCode [ original . CaretPosition . StartLine ] [ i ] != ' ' )
97
98
{
98
99
originalNonWhitespaceCharacters ++ ;
100
+ isAllWhitespace = false ;
99
101
}
100
102
}
101
103
102
- var indent = originalCode [ original . CaretPosition . StartLine ] . TakeWhile ( c => c == ' ' ) . Count ( ) ;
104
+ var indent = original . CaretLine . TakeWhile ( c => c == ' ' ) . Count ( ) ;
103
105
104
106
module . DeleteLines ( original . SnippetPosition . StartLine , original . SnippetPosition . LineCount ) ;
105
107
module . InsertLines ( original . SnippetPosition . StartLine , string . Join ( "\r \n " , originalCode ) ) ;
@@ -126,9 +128,9 @@ public CodeString Prettify(ICodeModule module, CodeString original)
126
128
127
129
var prettifiedPosition = new Selection (
128
130
original . SnippetPosition . ToZeroBased ( ) . StartLine + original . CaretPosition . StartLine ,
129
- prettifiedCode [ original . CaretPosition . StartLine ] . Trim ( ) . Length == 0
130
- ? indent
131
- : Math . Min ( prettifiedCode [ original . CaretPosition . StartLine ] . Length , original . CaretPosition . StartColumn ) )
131
+ prettifiedCode [ original . CaretPosition . StartLine ] . Trim ( ) . Length == 0 || ( isAllWhitespace && ! string . IsNullOrEmpty ( original . CaretLine . Substring ( original . CaretPosition . StartColumn ) . Trim ( ) ) )
132
+ ? Math . Min ( indent , original . CaretPosition . StartColumn )
133
+ : Math . Min ( prettifiedCode [ original . CaretPosition . StartLine ] . Length , prettifiedCaretCharIndex + 1 ) )
132
134
. ToOneBased ( ) ;
133
135
134
136
SetSelection ( module , prettifiedPosition ) ;
0 commit comments