mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-15 12:51:30 -05:00
Suppress brace completion of Quotes in Comments
This commit is contained in:
@@ -1117,6 +1117,25 @@ namespace ts.formatting {
|
||||
}
|
||||
}
|
||||
|
||||
export function getRangeOfEnclosingComment(sourceFile: SourceFile, position: number, onlyMultiLine: boolean): CommentRange | undefined {
|
||||
const precedingToken = findPrecedingToken(position, sourceFile);
|
||||
const trailingRangesOfPreviousToken = precedingToken && getTrailingCommentRanges(sourceFile.text, precedingToken.end);
|
||||
const leadingCommentRangesOfNextToken = getLeadingCommentRangesOfNode(getTokenAtPosition(sourceFile, position, /*includeJsDocComment*/ false), sourceFile);
|
||||
const commentRanges = trailingRangesOfPreviousToken && leadingCommentRangesOfNextToken ?
|
||||
trailingRangesOfPreviousToken.concat(leadingCommentRangesOfNextToken) :
|
||||
trailingRangesOfPreviousToken || leadingCommentRangesOfNextToken;
|
||||
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 && (range.kind === SyntaxKind.SingleLineCommentTrivia || position === sourceFile.getFullWidth())) {
|
||||
return onlyMultiLine && range.kind !== SyntaxKind.MultiLineCommentTrivia ? undefined : range;
|
||||
}
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function getOpenTokenForList(node: Node, list: Node[]) {
|
||||
switch (node.kind) {
|
||||
case SyntaxKind.Constructor:
|
||||
|
||||
@@ -1822,6 +1822,13 @@ namespace ts {
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (openingBrace) {
|
||||
case CharacterCodes.singleQuote:
|
||||
case CharacterCodes.doubleQuote:
|
||||
case CharacterCodes.backtick:
|
||||
return !ts.formatting.getRangeOfEnclosingComment(sourceFile, position, /*onlyMultiLine*/ false);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,9 +15,14 @@
|
||||
|
||||
goTo.marker('1');
|
||||
verify.isValidBraceCompletionAtPosition('(');
|
||||
verify.not.isValidBraceCompletionAtPosition('"');
|
||||
verify.not.isValidBraceCompletionAtPosition(`'`);
|
||||
verify.not.isValidBraceCompletionAtPosition('`');
|
||||
|
||||
goTo.marker('2');
|
||||
verify.isValidBraceCompletionAtPosition('(');
|
||||
verify.not.isValidBraceCompletionAtPosition('"');
|
||||
|
||||
goTo.marker('3');
|
||||
verify.isValidBraceCompletionAtPosition('(');
|
||||
verify.isValidBraceCompletionAtPosition('(');
|
||||
verify.not.isValidBraceCompletionAtPosition('"');
|
||||
Reference in New Issue
Block a user