Skip to content

Commit 4d028a8

Browse files
author
Andy Hanson
committed
getTokenAtPositionWorker: Remove duplicate loop
1 parent 687ab54 commit 4d028a8

File tree

1 file changed

+15
-33
lines changed

1 file changed

+15
-33
lines changed

src/services/utilities.ts

Lines changed: 15 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -651,44 +651,26 @@ namespace ts {
651651
return current;
652652
}
653653

654-
if (includeJsDocComment) {
655-
const jsDocChildren = ts.filter(current.getChildren(), isJSDocNode);
656-
for (const jsDocChild of jsDocChildren) {
657-
const start = allowPositionInLeadingTrivia ? jsDocChild.getFullStart() : jsDocChild.getStart(sourceFile, includeJsDocComment);
658-
if (start <= position) {
659-
const end = jsDocChild.getEnd();
660-
if (position < end || (position === end && jsDocChild.kind === SyntaxKind.EndOfFileToken)) {
661-
current = jsDocChild;
662-
continue outer;
663-
}
664-
else if (includeItemAtEndPosition && end === position) {
665-
const previousToken = findPrecedingToken(position, sourceFile, jsDocChild);
666-
if (previousToken && includeItemAtEndPosition(previousToken)) {
667-
return previousToken;
668-
}
669-
}
670-
}
671-
}
672-
}
673-
674654
// find the child that contains 'position'
675655
for (const child of current.getChildren()) {
676-
// all jsDocComment nodes were already visited
677-
if (isJSDocNode(child)) {
656+
if (isJSDocNode(child) && !includeJsDocComment) {
678657
continue;
679658
}
659+
680660
const start = allowPositionInLeadingTrivia ? child.getFullStart() : child.getStart(sourceFile, includeJsDocComment);
681-
if (start <= position) {
682-
const end = child.getEnd();
683-
if (position < end || (position === end && child.kind === SyntaxKind.EndOfFileToken)) {
684-
current = child;
685-
continue outer;
686-
}
687-
else if (includeItemAtEndPosition && end === position) {
688-
const previousToken = findPrecedingToken(position, sourceFile, child);
689-
if (previousToken && includeItemAtEndPosition(previousToken)) {
690-
return previousToken;
691-
}
661+
if (start > position) {
662+
break;
663+
}
664+
665+
const end = child.getEnd();
666+
if (position < end || (position === end && child.kind === SyntaxKind.EndOfFileToken)) {
667+
current = child;
668+
continue outer;
669+
}
670+
else if (includeItemAtEndPosition && end === position) {
671+
const previousToken = findPrecedingToken(position, sourceFile, child);
672+
if (previousToken && includeItemAtEndPosition(previousToken)) {
673+
return previousToken;
692674
}
693675
}
694676
}

0 commit comments

Comments
 (0)