Skip to content

Commit 8718b96

Browse files
authored
Fix extract to function formatting. (#12679)
1 parent 8111083 commit 8718b96

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

Extension/src/LanguageServer/client.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3774,6 +3774,7 @@ export class DefaultClient implements Client {
37743774
const formatRangeStartLine: number = range.start.line + lineOffset;
37753775
let rangeStartLine: number = formatRangeStartLine;
37763776
let rangeStartCharacter: number = 0;
3777+
let startWithNewLine: boolean = true;
37773778
if (edit.newText.startsWith("\r\n\r\n")) {
37783779
rangeStartCharacter = 4;
37793780
rangeStartLine += 2;
@@ -3786,12 +3787,16 @@ export class DefaultClient implements Client {
37863787
} else if (edit.newText.startsWith("\n")) {
37873788
rangeStartCharacter = 1;
37883789
rangeStartLine += 1;
3790+
} else {
3791+
startWithNewLine = false;
37893792
}
37903793
const newFormatRange: vscode.Range = new vscode.Range(
37913794
new vscode.Position(formatRangeStartLine + (nextLineOffset < 0 ? nextLineOffset : 0), range.start.character),
3792-
new vscode.Position(rangeStartLine + (nextLineOffset < 0 ? 0 : nextLineOffset),
3795+
new vscode.Position(formatRangeStartLine + (nextLineOffset < 0 ? 0 : nextLineOffset),
37933796
isReplace ? range.end.character :
3794-
range.end.character + edit.newText.length - rangeStartCharacter));
3797+
((startWithNewLine ? 0 : range.end.character) + (edit.newText.endsWith("\n") ? 0 : edit.newText.length - rangeStartCharacter))
3798+
)
3799+
);
37953800
if (isSourceFile) {
37963801
sourceFormatUriAndRanges.push({ uri, range: newFormatRange });
37973802
} else {

0 commit comments

Comments
 (0)