MCPcopy Create free account
hub / github.com/OpenEndedGroup/Field2 / findDef

Function findDef

lib/web/tern/tern.js:969–996  ·  view source on GitHub ↗
(srv, query, file)

Source from the content-addressed store, hash-verified

967 };
968
969 function findDef(srv, query, file) {
970 var expr = findExpr(file, query);
971 var type = findExprType(srv, query, file, expr);
972 if (infer.didGuess()) return {};
973
974 var span = getSpan(type);
975 var result = {url: type.url, doc: parseDoc(query, type.doc), origin: type.origin};
976
977 if (type.types) for (var i = type.types.length - 1; i >= 0; --i) {
978 var tp = type.types[i];
979 storeTypeDocs(query, tp, result);
980 if (!span) span = getSpan(tp);
981 }
982
983 if (span && span.node) { // refers to a loaded file
984 var spanFile = span.node.sourceFile || srv.fileMap[span.origin];
985 var start = outputPos(query, spanFile, span.node.start), end = outputPos(query, spanFile, span.node.end);
986 result.start = start; result.end = end;
987 result.file = span.origin;
988 var cxStart = Math.max(0, span.node.start - 50);
989 result.contextOffset = span.node.start - cxStart;
990 result.context = spanFile.text.slice(cxStart, cxStart + 50);
991 } else if (span) { // external
992 result.file = span.origin;
993 storeSpan(srv, query, span, result);
994 }
995 return clean(result);
996 }
997
998 function findRefsToVariable(srv, query, file, expr, isRename) {
999 var name = expr.node.name;

Callers

nothing calls this directly

Calls 5

findExprTypeFunction · 0.85
parseDocFunction · 0.85
storeTypeDocsFunction · 0.85
cleanFunction · 0.85
maxMethod · 0.45

Tested by

no test coverage detected