MCPcopy Index your code
hub / github.com/nodejs/node / getReferenceAtPosition

Function getReferenceAtPosition

test/fixtures/snapshot/typescript.js:139833–139869  ·  view source on GitHub ↗
(sourceFile, position, program)

Source from the content-addressed store, hash-verified

139831 return getDefinitionFromSymbol(typeChecker, symbol, node);
139832 }
139833 function getReferenceAtPosition(sourceFile, position, program) {
139834 var _a, _b;
139835 var referencePath = findReferenceInPosition(sourceFile.referencedFiles, position);
139836 if (referencePath) {
139837 var file = program.getSourceFileFromReference(sourceFile, referencePath);
139838 return file && { reference: referencePath, fileName: file.fileName, file: file, unverified: false };
139839 }
139840 var typeReferenceDirective = findReferenceInPosition(sourceFile.typeReferenceDirectives, position);
139841 if (typeReferenceDirective) {
139842 var reference = program.getResolvedTypeReferenceDirectives().get(typeReferenceDirective.fileName, typeReferenceDirective.resolutionMode || sourceFile.impliedNodeFormat);
139843 var file = reference && program.getSourceFile(reference.resolvedFileName); // TODO:GH#18217
139844 return file && { reference: typeReferenceDirective, fileName: file.fileName, file: file, unverified: false };
139845 }
139846 var libReferenceDirective = findReferenceInPosition(sourceFile.libReferenceDirectives, position);
139847 if (libReferenceDirective) {
139848 var file = program.getLibFileFromReference(libReferenceDirective);
139849 return file && { reference: libReferenceDirective, fileName: file.fileName, file: file, unverified: false };
139850 }
139851 if ((_a = sourceFile.resolvedModules) === null || _a === void 0 ? void 0 : _a.size()) {
139852 var node = ts.getTouchingToken(sourceFile, position);
139853 if (ts.isModuleSpecifierLike(node) && ts.isExternalModuleNameRelative(node.text) && sourceFile.resolvedModules.has(node.text, ts.getModeForUsageLocation(sourceFile, node))) {
139854 var verifiedFileName = (_b = sourceFile.resolvedModules.get(node.text, ts.getModeForUsageLocation(sourceFile, node))) === null || _b === void 0 ? void 0 : _b.resolvedFileName;
139855 var fileName = verifiedFileName || ts.resolvePath(ts.getDirectoryPath(sourceFile.fileName), node.text);
139856 return {
139857 file: program.getSourceFile(fileName),
139858 fileName: fileName,
139859 reference: {
139860 pos: node.getStart(),
139861 end: node.getEnd(),
139862 fileName: node.text
139863 },
139864 unverified: !verifiedFileName,
139865 };
139866 }
139867 }
139868 return undefined;
139869 }
139870 GoToDefinition.getReferenceAtPosition = getReferenceAtPosition;
139871 /// Goto type
139872 function getTypeDefinitionAtPosition(typeChecker, sourceFile, position) {

Callers 1

getDefinitionAtPositionFunction · 0.85

Calls 4

findReferenceInPositionFunction · 0.85
getMethod · 0.65
hasMethod · 0.65
sizeMethod · 0.45

Tested by

no test coverage detected