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

Function getCompletionEntryDetails

test/fixtures/snapshot/typescript.js:133137–133178  ·  view source on GitHub ↗
(program, log, sourceFile, position, entryId, host, formatContext, preferences, cancellationToken)

Source from the content-addressed store, hash-verified

133135 }) || { type: "none" };
133136 }
133137 function getCompletionEntryDetails(program, log, sourceFile, position, entryId, host, formatContext, preferences, cancellationToken) {
133138 var typeChecker = program.getTypeChecker();
133139 var compilerOptions = program.getCompilerOptions();
133140 var name = entryId.name, source = entryId.source, data = entryId.data;
133141 var contextToken = ts.findPrecedingToken(position, sourceFile);
133142 if (ts.isInString(sourceFile, position, contextToken)) {
133143 return Completions.StringCompletions.getStringLiteralCompletionDetails(name, sourceFile, position, contextToken, typeChecker, compilerOptions, host, cancellationToken, preferences);
133144 }
133145 // Compute all the completion symbols again.
133146 var symbolCompletion = getSymbolCompletionFromEntryId(program, log, sourceFile, position, entryId, host, preferences);
133147 switch (symbolCompletion.type) {
133148 case "request": {
133149 var request = symbolCompletion.request;
133150 switch (request.kind) {
133151 case 1 /* CompletionDataKind.JsDocTagName */:
133152 return ts.JsDoc.getJSDocTagNameCompletionDetails(name);
133153 case 2 /* CompletionDataKind.JsDocTag */:
133154 return ts.JsDoc.getJSDocTagCompletionDetails(name);
133155 case 3 /* CompletionDataKind.JsDocParameterName */:
133156 return ts.JsDoc.getJSDocParameterNameCompletionDetails(name);
133157 case 4 /* CompletionDataKind.Keywords */:
133158 return ts.some(request.keywordCompletions, function (c) { return c.name === name; }) ? createSimpleDetails(name, "keyword" /* ScriptElementKind.keyword */, ts.SymbolDisplayPartKind.keyword) : undefined;
133159 default:
133160 return ts.Debug.assertNever(request);
133161 }
133162 }
133163 case "symbol": {
133164 var symbol = symbolCompletion.symbol, location = symbolCompletion.location, contextToken_2 = symbolCompletion.contextToken, origin = symbolCompletion.origin, previousToken = symbolCompletion.previousToken;
133165 var _a = getCompletionEntryCodeActionsAndSourceDisplay(name, location, contextToken_2, origin, symbol, program, host, compilerOptions, sourceFile, position, previousToken, formatContext, preferences, data, source), codeActions = _a.codeActions, sourceDisplay = _a.sourceDisplay;
133166 return createCompletionDetailsForSymbol(symbol, typeChecker, sourceFile, location, cancellationToken, codeActions, sourceDisplay); // TODO: GH#18217
133167 }
133168 case "literal": {
133169 var literal = symbolCompletion.literal;
133170 return createSimpleDetails(completionNameForLiteral(sourceFile, preferences, literal), "string" /* ScriptElementKind.string */, typeof literal === "string" ? ts.SymbolDisplayPartKind.stringLiteral : ts.SymbolDisplayPartKind.numericLiteral);
133171 }
133172 case "none":
133173 // Didn't find a symbol with this name. See if we can find a keyword instead.
133174 return allKeywordsCompletions().some(function (c) { return c.name === name; }) ? createSimpleDetails(name, "keyword" /* ScriptElementKind.keyword */, ts.SymbolDisplayPartKind.keyword) : undefined;
133175 default:
133176 ts.Debug.assertNever(symbolCompletion);
133177 }
133178 }
133179 Completions.getCompletionEntryDetails = getCompletionEntryDetails;
133180 function createSimpleDetails(name, kind, kind2) {
133181 return createCompletionDetails(name, "" /* ScriptElementKindModifier.none */, kind, [ts.displayPart(name, kind2)]);

Callers

nothing calls this directly

Calls 8

createSimpleDetailsFunction · 0.85
completionNameForLiteralFunction · 0.85
synchronizeHostDataFunction · 0.85
getValidSourceFileFunction · 0.85
someMethod · 0.80

Tested by

no test coverage detected