mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-07-04 14:56:16 -05:00
PR comments
This commit is contained in:
@@ -1993,7 +1993,7 @@ namespace ts {
|
||||
let isCommenting = insertComment || false;
|
||||
let leftMostPosition = Number.MAX_VALUE;
|
||||
const lineTextStarts = new Map<number>();
|
||||
const whiteSpaceRegex = new RegExp(/\S/);
|
||||
const firstNonWhitespaceCharacterRegex = new RegExp(/\S/);
|
||||
const isJsx = isInsideJsxElement(sourceFile, lineStarts[firstLine]);
|
||||
const openComment = isJsx ? "{/*" : "//";
|
||||
|
||||
@@ -2002,13 +2002,13 @@ namespace ts {
|
||||
const lineText = sourceFile.text.substring(lineStarts[i], sourceFile.getLineEndOfPosition(lineStarts[i]));
|
||||
|
||||
// Find the start of text and the left-most character. No-op on empty lines.
|
||||
const regExec = whiteSpaceRegex.exec(lineText);
|
||||
const regExec = firstNonWhitespaceCharacterRegex.exec(lineText);
|
||||
if (regExec) {
|
||||
leftMostPosition = Math.min(leftMostPosition, regExec.index);
|
||||
lineTextStarts.set(i.toString(), regExec.index);
|
||||
|
||||
if (lineText.substr(regExec.index, openComment.length) !== openComment) {
|
||||
isCommenting = insertComment !== undefined ? insertComment : true;
|
||||
isCommenting = insertComment === undefined || insertComment;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2164,7 +2164,13 @@ namespace ts {
|
||||
}
|
||||
|
||||
function commentSelection(fileName: string, textRange: TextRange): TextChange[] {
|
||||
return toggleLineComment(fileName, textRange, /*insertComment*/ true);
|
||||
const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);
|
||||
const { firstLine, lastLine } = getLinesForRange(sourceFile, textRange);
|
||||
|
||||
// If there is a selection that is on the same line, add multiline.
|
||||
return firstLine === lastLine && textRange.pos !== textRange.end
|
||||
? toggleMultilineComment(fileName, textRange, /*insertComment*/ true)
|
||||
: toggleLineComment(fileName, textRange, /*insertComment*/ true);
|
||||
}
|
||||
|
||||
function uncommentSelection(fileName: string, textRange: TextRange): TextChange[] {
|
||||
|
||||
@@ -486,10 +486,10 @@ namespace ts {
|
||||
|
||||
/* @internal */ getNonBoundSourceFile(fileName: string): SourceFile;
|
||||
|
||||
toggleLineComment(fileName: string, textRanges: TextRange): TextChange[];
|
||||
toggleMultilineComment(fileName: string, textRanges: TextRange): TextChange[];
|
||||
commentSelection(fileName: string, textRanges: TextRange): TextChange[];
|
||||
uncommentSelection(fileName: string, textRanges: TextRange): TextChange[];
|
||||
toggleLineComment(fileName: string, textRange: TextRange): TextChange[];
|
||||
toggleMultilineComment(fileName: string, textRange: TextRange): TextChange[];
|
||||
commentSelection(fileName: string, textRange: TextRange): TextChange[];
|
||||
uncommentSelection(fileName: string, textRange: TextRange): TextChange[];
|
||||
|
||||
dispose(): void;
|
||||
}
|
||||
|
||||
@@ -4,15 +4,23 @@
|
||||
//// let var2 = 2;
|
||||
//// let var3 |]= 3;
|
||||
////
|
||||
//// //let var4[| = 4;
|
||||
//// //let var5 = 5;
|
||||
//// //let var6 |]= 6;
|
||||
//// let var4[| = 4;|]
|
||||
////
|
||||
//// let [||]var5 = 5;
|
||||
////
|
||||
//// //let var6[| = 6;
|
||||
//// //let var7 = 7;
|
||||
//// //let var8 |]= 8;
|
||||
|
||||
verify.commentSelection(
|
||||
`//let var1 = 1;
|
||||
//let var2 = 2;
|
||||
//let var3 = 3;
|
||||
|
||||
////let var4 = 4;
|
||||
////let var5 = 5;
|
||||
////let var6 = 6;`);
|
||||
let var4/* = 4;*/
|
||||
|
||||
//let var5 = 5;
|
||||
|
||||
////let var6 = 6;
|
||||
////let var7 = 7;
|
||||
////let var8 = 8;`);
|
||||
Reference in New Issue
Block a user