MCPcopy Create free account
hub / github.com/nodejs/node / isSolelyIdentifierDefinitionLocation

Function isSolelyIdentifierDefinitionLocation

test/fixtures/snapshot/typescript.js:134612–134753  ·  view source on GitHub ↗

* @returns true if we are certain that the currently edited location must define a new location; false otherwise.

(contextToken)

Source from the content-addressed store, hash-verified

134610 * @returns true if we are certain that the currently edited location must define a new location; false otherwise.
134611 */
134612 function isSolelyIdentifierDefinitionLocation(contextToken) {
134613 var parent = contextToken.parent;
134614 var containingNodeKind = parent.kind;
134615 switch (contextToken.kind) {
134616 case 27 /* SyntaxKind.CommaToken */:
134617 return containingNodeKind === 254 /* SyntaxKind.VariableDeclaration */ ||
134618 isVariableDeclarationListButNotTypeArgument(contextToken) ||
134619 containingNodeKind === 237 /* SyntaxKind.VariableStatement */ ||
134620 containingNodeKind === 260 /* SyntaxKind.EnumDeclaration */ || // enum a { foo, |
134621 isFunctionLikeButNotConstructor(containingNodeKind) ||
134622 containingNodeKind === 258 /* SyntaxKind.InterfaceDeclaration */ || // interface A<T, |
134623 containingNodeKind === 202 /* SyntaxKind.ArrayBindingPattern */ || // var [x, y|
134624 containingNodeKind === 259 /* SyntaxKind.TypeAliasDeclaration */ || // type Map, K, |
134625 // class A<T, |
134626 // var C = class D<T, |
134627 (ts.isClassLike(parent) &&
134628 !!parent.typeParameters &&
134629 parent.typeParameters.end >= contextToken.pos);
134630 case 24 /* SyntaxKind.DotToken */:
134631 return containingNodeKind === 202 /* SyntaxKind.ArrayBindingPattern */; // var [.|
134632 case 58 /* SyntaxKind.ColonToken */:
134633 return containingNodeKind === 203 /* SyntaxKind.BindingElement */; // var {x :html|
134634 case 22 /* SyntaxKind.OpenBracketToken */:
134635 return containingNodeKind === 202 /* SyntaxKind.ArrayBindingPattern */; // var [x|
134636 case 20 /* SyntaxKind.OpenParenToken */:
134637 return containingNodeKind === 292 /* SyntaxKind.CatchClause */ ||
134638 isFunctionLikeButNotConstructor(containingNodeKind);
134639 case 18 /* SyntaxKind.OpenBraceToken */:
134640 return containingNodeKind === 260 /* SyntaxKind.EnumDeclaration */; // enum a { |
134641 case 29 /* SyntaxKind.LessThanToken */:
134642 return containingNodeKind === 257 /* SyntaxKind.ClassDeclaration */ || // class A< |
134643 containingNodeKind === 226 /* SyntaxKind.ClassExpression */ || // var C = class D< |
134644 containingNodeKind === 258 /* SyntaxKind.InterfaceDeclaration */ || // interface A< |
134645 containingNodeKind === 259 /* SyntaxKind.TypeAliasDeclaration */ || // type List< |
134646 ts.isFunctionLikeKind(containingNodeKind);
134647 case 124 /* SyntaxKind.StaticKeyword */:
134648 return containingNodeKind === 167 /* SyntaxKind.PropertyDeclaration */ && !ts.isClassLike(parent.parent);
134649 case 25 /* SyntaxKind.DotDotDotToken */:
134650 return containingNodeKind === 164 /* SyntaxKind.Parameter */ ||
134651 (!!parent.parent && parent.parent.kind === 202 /* SyntaxKind.ArrayBindingPattern */); // var [...z|
134652 case 123 /* SyntaxKind.PublicKeyword */:
134653 case 121 /* SyntaxKind.PrivateKeyword */:
134654 case 122 /* SyntaxKind.ProtectedKeyword */:
134655 return containingNodeKind === 164 /* SyntaxKind.Parameter */ && !ts.isConstructorDeclaration(parent.parent);
134656 case 127 /* SyntaxKind.AsKeyword */:
134657 return containingNodeKind === 270 /* SyntaxKind.ImportSpecifier */ ||
134658 containingNodeKind === 275 /* SyntaxKind.ExportSpecifier */ ||
134659 containingNodeKind === 268 /* SyntaxKind.NamespaceImport */;
134660 case 136 /* SyntaxKind.GetKeyword */:
134661 case 149 /* SyntaxKind.SetKeyword */:
134662 return !isFromObjectTypeDeclaration(contextToken);
134663 case 79 /* SyntaxKind.Identifier */:
134664 if (containingNodeKind === 270 /* SyntaxKind.ImportSpecifier */ &&
134665 contextToken === parent.name &&
134666 contextToken.text === "type") {
134667 // import { type | }
134668 return false;
134669 }

Callers 1

isCompletionListBlockerFunction · 0.85

Tested by

no test coverage detected