MCPcopy Index your code
hub / github.com/ternjs/tern / findDef

Function findDef

lib/tern.js:1034–1061  ·  view source on GitHub ↗
(srv, query, file)

Source from the content-addressed store, hash-verified

1032 };
1033
1034 function findDef(srv, query, file) {
1035 var expr = findExpr(file, query);
1036 var type = findExprType(srv, query, file, expr);
1037 if (infer.didGuess()) return {};
1038
1039 var span = getSpan(type);
1040 var result = {url: type.url, doc: parseDoc(query, type.doc), origin: type.origin};
1041
1042 if (type.types) for (var i = type.types.length - 1; i >= 0; --i) {
1043 var tp = type.types[i];
1044 storeTypeDocs(query, tp, result);
1045 if (!span) span = getSpan(tp);
1046 }
1047
1048 if (span && span.node) { // refers to a loaded file
1049 var spanFile = span.node.sourceFile || srv.fileMap[span.origin];
1050 var start = outputPos(query, spanFile, span.node.start), end = outputPos(query, spanFile, span.node.end);
1051 result.start = start; result.end = end;
1052 result.file = span.origin;
1053 var cxStart = Math.max(0, span.node.start - 50);
1054 result.contextOffset = span.node.start - cxStart;
1055 result.context = spanFile.text.slice(cxStart, cxStart + 50);
1056 } else if (span) { // external
1057 result.file = span.origin;
1058 storeSpan(srv, query, span, result);
1059 }
1060 return clean(result);
1061 }
1062
1063 function findRefsToVariable(srv, query, file, expr, isRename) {
1064 var name = expr.node.name;

Callers

nothing calls this directly

Calls 4

findExprTypeFunction · 0.85
parseDocFunction · 0.85
storeTypeDocsFunction · 0.85
cleanFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…