mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
fix offsetting and tests
This commit is contained in:
@@ -1127,7 +1127,7 @@ namespace ts.formatting {
|
||||
const commentStart = range.pos;
|
||||
const commentLineStart = getLineStartPositionForPosition(commentStart, sourceFile);
|
||||
const { column, character } = SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(commentLineStart, commentStart, sourceFile, options);
|
||||
return range.pos - character + column;
|
||||
return column + /*length after whitespace ends*/ range.pos - (commentLineStart + character);
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
@@ -1142,7 +1142,8 @@ namespace ts.formatting {
|
||||
if (commentRanges) {
|
||||
for (const range of commentRanges) {
|
||||
// We need to extend the range when in an unclosed multi-line comment.
|
||||
if (range.pos < position && (position < range.end || position === range.end && position === sourceFile.getFullWidth())) {
|
||||
if (range.pos < position && position < range.end ||
|
||||
position === range.end && (range.kind === SyntaxKind.SingleLineCommentTrivia || position === sourceFile.getFullWidth())) {
|
||||
return onlyMultiLine && range.kind !== SyntaxKind.MultiLineCommentTrivia ? undefined : range;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ declare namespace FourSlashInterface {
|
||||
typeDefinitionCountIs(expectedCount: number): void;
|
||||
implementationListIsEmpty(): void;
|
||||
isValidBraceCompletionAtPosition(openingBrace?: string): void;
|
||||
isInMultiLineCommentAtPosition(): void;
|
||||
isInCommentAtPosition(onlyMultiLine: boolean): void;
|
||||
codeFixAvailable(): void;
|
||||
applicableRefactorAvailableAtMarker(markerName: string): void;
|
||||
codeFixDiagnosticsAvailableAtMarkers(markerNames: string[], diagnosticCode?: number): void;
|
||||
|
||||
@@ -11,36 +11,37 @@
|
||||
const firstCommentStart = 0;
|
||||
const firstCommentEnd = 7;
|
||||
goTo.position(firstCommentStart);
|
||||
verify.not.isInMultiLineCommentAtPosition();
|
||||
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
|
||||
|
||||
goTo.position(firstCommentStart + 1);
|
||||
verify.isInMultiLineCommentAtPosition();
|
||||
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
|
||||
goTo.position(firstCommentEnd - 1);
|
||||
verify.isInMultiLineCommentAtPosition();
|
||||
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
|
||||
|
||||
goTo.position(firstCommentEnd);
|
||||
verify.not.isInMultiLineCommentAtPosition();
|
||||
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
|
||||
|
||||
const multilineJsDocStart = firstCommentEnd + 1;
|
||||
const multilineJsDocEnd = multilineJsDocStart + 49;
|
||||
|
||||
goTo.position(multilineJsDocStart);
|
||||
verify.not.isInMultiLineCommentAtPosition();
|
||||
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
|
||||
goTo.position(multilineJsDocStart + 1);
|
||||
verify.isInMultiLineCommentAtPosition();
|
||||
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
|
||||
goTo.position(multilineJsDocEnd - 1);
|
||||
verify.isInMultiLineCommentAtPosition();
|
||||
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
|
||||
goTo.position(multilineJsDocEnd);
|
||||
verify.not.isInMultiLineCommentAtPosition();
|
||||
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
|
||||
|
||||
const singleLineCommentStart = multilineJsDocEnd + 1;
|
||||
|
||||
goTo.position(singleLineCommentStart + 1);
|
||||
verify.not.isInMultiLineCommentAtPosition();
|
||||
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
|
||||
verify.isInCommentAtPosition(/*onlyMultiLine*/ false);
|
||||
|
||||
const postNodeCommentStart = singleLineCommentStart + 16;
|
||||
|
||||
goTo.position(postNodeCommentStart);
|
||||
verify.not.isInMultiLineCommentAtPosition();
|
||||
verify.not.isInCommentAtPosition(/*onlyMultiLine*/ true);
|
||||
goTo.position(postNodeCommentStart + 1);
|
||||
verify.isInMultiLineCommentAtPosition();
|
||||
verify.isInCommentAtPosition(/*onlyMultiLine*/ true);
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
/// <reference path="fourslash.ts" />
|
||||
|
||||
// @Filename: f1.ts
|
||||
//// /* /*0*/ blah /*1*/ */
|
||||
|
||||
// @Filename: f2.ts
|
||||
//// /* /*2*/ blah /*3*/
|
||||
|
||||
for (let i = 0; i < 4; ++i) {
|
||||
goTo.marker(`${i}`);
|
||||
verify.isInMultiLineCommentAtPosition();
|
||||
}
|
||||
Reference in New Issue
Block a user