Skip to content

Commit cc88091

Browse files
committed
fix offsetting and tests
1 parent 8fc3fd9 commit cc88091

4 files changed

Lines changed: 16 additions & 26 deletions

File tree

src/services/formatting/formatting.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1127,7 +1127,7 @@ namespace ts.formatting {
11271127
const commentStart = range.pos;
11281128
const commentLineStart = getLineStartPositionForPosition(commentStart, sourceFile);
11291129
const { column, character } = SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(commentLineStart, commentStart, sourceFile, options);
1130-
return range.pos - character + column;
1130+
return column + /*length after whitespace ends*/ range.pos - (commentLineStart + character);
11311131
}
11321132
return undefined;
11331133
}
@@ -1142,7 +1142,8 @@ namespace ts.formatting {
11421142
if (commentRanges) {
11431143
for (const range of commentRanges) {
11441144
// We need to extend the range when in an unclosed multi-line comment.
1145-
if (range.pos < position && (position < range.end || position === range.end && position === sourceFile.getFullWidth())) {
1145+
if (range.pos < position && position < range.end ||
1146+
position === range.end && (range.kind === SyntaxKind.SingleLineCommentTrivia || position === sourceFile.getFullWidth())) {
11461147
return onlyMultiLine && range.kind !== SyntaxKind.MultiLineCommentTrivia ? undefined : range;
11471148
}
11481149
}

tests/cases/fourslash/fourslash.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ declare namespace FourSlashInterface {
149149
typeDefinitionCountIs(expectedCount: number): void;
150150
implementationListIsEmpty(): void;
151151
isValidBraceCompletionAtPosition(openingBrace?: string): void;
152-
isInMultiLineCommentAtPosition(): void;
152+
isInCommentAtPosition(onlyMultiLine: boolean): void;
153153
codeFixAvailable(): void;
154154
applicableRefactorAvailableAtMarker(markerName: string): void;
155155
codeFixDiagnosticsAvailableAtMarkers(markerNames: string[], diagnosticCode?: number): void;

tests/cases/fourslash/isInMultiLineComment.ts

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,36 +11,37 @@
1111
const firstCommentStart = 0;
1212
const firstCommentEnd = 7;
1313
goTo.position(firstCommentStart);
14-
verify.not.isInMultiLineCommentAtPosition();
14+
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
1515

1616
goTo.position(firstCommentStart + 1);
17-
verify.isInMultiLineCommentAtPosition();
17+
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
1818
goTo.position(firstCommentEnd - 1);
19-
verify.isInMultiLineCommentAtPosition();
19+
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
2020

2121
goTo.position(firstCommentEnd);
22-
verify.not.isInMultiLineCommentAtPosition();
22+
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
2323

2424
const multilineJsDocStart = firstCommentEnd + 1;
2525
const multilineJsDocEnd = multilineJsDocStart + 49;
2626

2727
goTo.position(multilineJsDocStart);
28-
verify.not.isInMultiLineCommentAtPosition();
28+
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
2929
goTo.position(multilineJsDocStart + 1);
30-
verify.isInMultiLineCommentAtPosition();
30+
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
3131
goTo.position(multilineJsDocEnd - 1);
32-
verify.isInMultiLineCommentAtPosition();
32+
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
3333
goTo.position(multilineJsDocEnd);
34-
verify.not.isInMultiLineCommentAtPosition();
34+
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
3535

3636
const singleLineCommentStart = multilineJsDocEnd + 1;
3737

3838
goTo.position(singleLineCommentStart + 1);
39-
verify.not.isInMultiLineCommentAtPosition();
39+
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
40+
verify.isInCommentAtPosition(/*onlyMultiLine*/ false);
4041

4142
const postNodeCommentStart = singleLineCommentStart + 16;
4243

4344
goTo.position(postNodeCommentStart);
44-
verify.not.isInMultiLineCommentAtPosition();
45+
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
4546
goTo.position(postNodeCommentStart + 1);
46-
verify.isInMultiLineCommentAtPosition();
47+
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);

tests/cases/fourslash/isInMultiLineCommentEOF.ts

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)