mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-04 21:53:42 -06:00
Add '(approximate)' to the beginning of quick info requests in PartialSemantic mode (#40061)
* Add '(approximate)' to the beginning of quick info requests. * Use 'approximation' instead of 'approximate'.
This commit is contained in:
parent
c95cffe111
commit
2426eb4980
@ -1587,7 +1587,9 @@ namespace ts {
|
||||
kind: ScriptElementKind.unknown,
|
||||
kindModifiers: ScriptElementKindModifier.none,
|
||||
textSpan: createTextSpanFromNode(nodeForQuickInfo, sourceFile),
|
||||
displayParts: typeChecker.runWithCancellationToken(cancellationToken, typeChecker => typeToDisplayParts(typeChecker, type, getContainerNode(nodeForQuickInfo))),
|
||||
displayParts: prefixWithApproximation(
|
||||
typeChecker.runWithCancellationToken(cancellationToken, typeChecker => typeToDisplayParts(typeChecker, type, getContainerNode(nodeForQuickInfo)))
|
||||
),
|
||||
documentation: type.symbol ? type.symbol.getDocumentationComment(typeChecker) : undefined,
|
||||
tags: type.symbol ? type.symbol.getJsDocTags() : undefined
|
||||
};
|
||||
@ -1600,7 +1602,7 @@ namespace ts {
|
||||
kind: symbolKind,
|
||||
kindModifiers: SymbolDisplay.getSymbolModifiers(symbol),
|
||||
textSpan: createTextSpanFromNode(nodeForQuickInfo, sourceFile),
|
||||
displayParts,
|
||||
displayParts: prefixWithApproximation(displayParts),
|
||||
documentation,
|
||||
tags,
|
||||
};
|
||||
@ -1630,6 +1632,13 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
|
||||
function prefixWithApproximation(displayParts: SymbolDisplayPart[]): SymbolDisplayPart[] {
|
||||
if (languageServiceMode === LanguageServiceMode.Semantic) {
|
||||
return displayParts;
|
||||
}
|
||||
return [textPart("(approximation)"), spacePart(), ...displayParts];
|
||||
}
|
||||
|
||||
/// Goto definition
|
||||
function getDefinitionAtPosition(fileName: string, position: number): readonly DefinitionInfo[] | undefined {
|
||||
synchronizeHostData();
|
||||
|
||||
@ -30,6 +30,22 @@ import { something } from "something";
|
||||
return { host, session, file1, file2, file3, something, configFile };
|
||||
}
|
||||
|
||||
it("adds '(approximation)' to the description of quick info", () => {
|
||||
const file: File = {
|
||||
path: `${tscWatch.projectRoot}/foo.ts`,
|
||||
content: "export const foo = 100;"
|
||||
};
|
||||
const host = createServerHost([file]);
|
||||
const session = createSession(host, { serverMode: LanguageServiceMode.PartialSemantic, useSingleInferredProject: true });
|
||||
openFilesForSession([file], session);
|
||||
const response = session.executeCommandSeq<protocol.QuickInfoRequest>({
|
||||
command: protocol.CommandTypes.Quickinfo,
|
||||
arguments: protocolFileLocationFromSubstring(file, "foo"),
|
||||
}).response as protocol.QuickInfoResponseBody;
|
||||
|
||||
assert(stringContainsAt(response.displayString, "(approximation)", 0));
|
||||
});
|
||||
|
||||
it("open files are added to inferred project even if config file is present and semantic operations succeed", () => {
|
||||
const { host, session, file1, file2 } = setup();
|
||||
const service = session.getProjectService();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user