mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-23 07:07:09 -05:00
Revert "Proposed expandable hover API" (#61132)
This commit is contained in:
committed by
GitHub
parent
c3ae7c418f
commit
34ea32f8ce
@@ -2274,7 +2274,7 @@ export function createLanguageService(
|
||||
return Completions.getCompletionEntrySymbol(program, log, getValidSourceFile(fileName), position, { name, source }, host, preferences);
|
||||
}
|
||||
|
||||
function getQuickInfoAtPosition(fileName: string, position: number, verbosityLevel?: number): QuickInfo | undefined {
|
||||
function getQuickInfoAtPosition(fileName: string, position: number): QuickInfo | undefined {
|
||||
synchronizeHostData();
|
||||
|
||||
const sourceFile = getValidSourceFile(fileName);
|
||||
@@ -2293,26 +2293,13 @@ export function createLanguageService(
|
||||
kind: ScriptElementKind.unknown,
|
||||
kindModifiers: ScriptElementKindModifier.none,
|
||||
textSpan: createTextSpanFromNode(nodeForQuickInfo, sourceFile),
|
||||
displayParts: typeChecker.runWithCancellationToken(cancellationToken, typeChecker => typeToDisplayParts(typeChecker, type, getContainerNode(nodeForQuickInfo), /*flags*/ undefined, verbosityLevel)),
|
||||
displayParts: typeChecker.runWithCancellationToken(cancellationToken, typeChecker => typeToDisplayParts(typeChecker, type, getContainerNode(nodeForQuickInfo))),
|
||||
documentation: type.symbol ? type.symbol.getDocumentationComment(typeChecker) : undefined,
|
||||
tags: type.symbol ? type.symbol.getJsDocTags(typeChecker) : undefined,
|
||||
};
|
||||
}
|
||||
|
||||
const { symbolKind, displayParts, documentation, tags, canIncreaseVerbosityLevel } = typeChecker.runWithCancellationToken(
|
||||
cancellationToken,
|
||||
typeChecker =>
|
||||
SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(
|
||||
typeChecker,
|
||||
symbol,
|
||||
sourceFile,
|
||||
getContainerNode(nodeForQuickInfo),
|
||||
nodeForQuickInfo,
|
||||
/*semanticMeaning*/ undefined,
|
||||
/*alias*/ undefined,
|
||||
verbosityLevel,
|
||||
),
|
||||
);
|
||||
const { symbolKind, displayParts, documentation, tags } = typeChecker.runWithCancellationToken(cancellationToken, typeChecker => SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, sourceFile, getContainerNode(nodeForQuickInfo), nodeForQuickInfo));
|
||||
return {
|
||||
kind: symbolKind,
|
||||
kindModifiers: SymbolDisplay.getSymbolModifiers(typeChecker, symbol),
|
||||
@@ -2320,7 +2307,6 @@ export function createLanguageService(
|
||||
displayParts,
|
||||
documentation,
|
||||
tags,
|
||||
canIncreaseVerbosityLevel,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -108,7 +108,6 @@ import {
|
||||
TypeParameter,
|
||||
typeToDisplayParts,
|
||||
VariableDeclaration,
|
||||
WriterContextOut,
|
||||
} from "./_namespaces/ts.js";
|
||||
|
||||
const symbolDisplayNodeBuilderFlags = NodeBuilderFlags.OmitParameterModifiers | NodeBuilderFlags.IgnoreErrors | NodeBuilderFlags.UseAliasDefinedOutsideCurrentScope;
|
||||
@@ -255,20 +254,9 @@ export interface SymbolDisplayPartsDocumentationAndSymbolKind {
|
||||
documentation: SymbolDisplayPart[];
|
||||
symbolKind: ScriptElementKind;
|
||||
tags: JSDocTagInfo[] | undefined;
|
||||
canIncreaseVerbosityLevel?: boolean;
|
||||
}
|
||||
|
||||
function getSymbolDisplayPartsDocumentationAndSymbolKindWorker(
|
||||
typeChecker: TypeChecker,
|
||||
symbol: Symbol,
|
||||
sourceFile: SourceFile,
|
||||
enclosingDeclaration: Node | undefined,
|
||||
location: Node,
|
||||
type: Type | undefined,
|
||||
semanticMeaning: SemanticMeaning,
|
||||
alias?: Symbol,
|
||||
verbosityLevel?: number,
|
||||
): SymbolDisplayPartsDocumentationAndSymbolKind {
|
||||
function getSymbolDisplayPartsDocumentationAndSymbolKindWorker(typeChecker: TypeChecker, symbol: Symbol, sourceFile: SourceFile, enclosingDeclaration: Node | undefined, location: Node, type: Type | undefined, semanticMeaning: SemanticMeaning, alias?: Symbol): SymbolDisplayPartsDocumentationAndSymbolKind {
|
||||
const displayParts: SymbolDisplayPart[] = [];
|
||||
let documentation: SymbolDisplayPart[] = [];
|
||||
let tags: JSDocTagInfo[] = [];
|
||||
@@ -279,7 +267,6 @@ function getSymbolDisplayPartsDocumentationAndSymbolKindWorker(
|
||||
let documentationFromAlias: SymbolDisplayPart[] | undefined;
|
||||
let tagsFromAlias: JSDocTagInfo[] | undefined;
|
||||
let hasMultipleSignatures = false;
|
||||
const typeWriterOut: WriterContextOut | undefined = verbosityLevel !== undefined ? { couldUnfoldMore: false } : undefined;
|
||||
|
||||
if (location.kind === SyntaxKind.ThisKeyword && !isThisExpression) {
|
||||
return { displayParts: [keywordPart(SyntaxKind.ThisKeyword)], documentation: [], symbolKind: ScriptElementKind.primitiveType, tags: undefined };
|
||||
@@ -475,17 +462,7 @@ function getSymbolDisplayPartsDocumentationAndSymbolKindWorker(
|
||||
displayParts.push(spacePart());
|
||||
displayParts.push(operatorPart(SyntaxKind.EqualsToken));
|
||||
displayParts.push(spacePart());
|
||||
addRange(
|
||||
displayParts,
|
||||
typeToDisplayParts(
|
||||
typeChecker,
|
||||
location.parent && isConstTypeReference(location.parent) ? typeChecker.getTypeAtLocation(location.parent) : typeChecker.getDeclaredTypeOfSymbol(symbol),
|
||||
enclosingDeclaration,
|
||||
TypeFormatFlags.InTypeAlias,
|
||||
verbosityLevel,
|
||||
typeWriterOut,
|
||||
),
|
||||
);
|
||||
addRange(displayParts, typeToDisplayParts(typeChecker, location.parent && isConstTypeReference(location.parent) ? typeChecker.getTypeAtLocation(location.parent) : typeChecker.getDeclaredTypeOfSymbol(symbol), enclosingDeclaration, TypeFormatFlags.InTypeAlias));
|
||||
}
|
||||
if (symbolFlags & SymbolFlags.Enum) {
|
||||
prefixNextMeaning();
|
||||
@@ -673,30 +650,13 @@ function getSymbolDisplayPartsDocumentationAndSymbolKindWorker(
|
||||
// If the type is type parameter, format it specially
|
||||
if (type.symbol && type.symbol.flags & SymbolFlags.TypeParameter && symbolKind !== ScriptElementKind.indexSignatureElement) {
|
||||
const typeParameterParts = mapToDisplayParts(writer => {
|
||||
const param = typeChecker.typeParameterToDeclaration(
|
||||
type as TypeParameter,
|
||||
enclosingDeclaration,
|
||||
symbolDisplayNodeBuilderFlags,
|
||||
/*internalFlags*/ undefined,
|
||||
/*tracker*/ undefined,
|
||||
verbosityLevel,
|
||||
)!;
|
||||
const param = typeChecker.typeParameterToDeclaration(type as TypeParameter, enclosingDeclaration, symbolDisplayNodeBuilderFlags)!;
|
||||
getPrinter().writeNode(EmitHint.Unspecified, param, getSourceFileOfNode(getParseTreeNode(enclosingDeclaration)), writer);
|
||||
});
|
||||
addRange(displayParts, typeParameterParts);
|
||||
}
|
||||
else {
|
||||
addRange(
|
||||
displayParts,
|
||||
typeToDisplayParts(
|
||||
typeChecker,
|
||||
type,
|
||||
enclosingDeclaration,
|
||||
/*flags*/ undefined,
|
||||
verbosityLevel,
|
||||
typeWriterOut,
|
||||
),
|
||||
);
|
||||
addRange(displayParts, typeToDisplayParts(typeChecker, type, enclosingDeclaration));
|
||||
}
|
||||
if (isTransientSymbol(symbol) && symbol.links.target && isTransientSymbol(symbol.links.target) && symbol.links.target.links.tupleLabelDeclaration) {
|
||||
const labelDecl = symbol.links.target.links.tupleLabelDeclaration;
|
||||
@@ -782,13 +742,7 @@ function getSymbolDisplayPartsDocumentationAndSymbolKindWorker(
|
||||
tags = tagsFromAlias;
|
||||
}
|
||||
|
||||
return {
|
||||
displayParts,
|
||||
documentation,
|
||||
symbolKind,
|
||||
tags: tags.length === 0 ? undefined : tags,
|
||||
canIncreaseVerbosityLevel: typeWriterOut?.couldUnfoldMore,
|
||||
};
|
||||
return { displayParts, documentation, symbolKind, tags: tags.length === 0 ? undefined : tags };
|
||||
|
||||
function getPrinter() {
|
||||
return createPrinterWithRemoveComments();
|
||||
@@ -920,9 +874,8 @@ export function getSymbolDisplayPartsDocumentationAndSymbolKind(
|
||||
location: Node,
|
||||
semanticMeaning: SemanticMeaning = getMeaningFromLocation(location),
|
||||
alias?: Symbol,
|
||||
verbosityLevel?: number,
|
||||
): SymbolDisplayPartsDocumentationAndSymbolKind {
|
||||
return getSymbolDisplayPartsDocumentationAndSymbolKindWorker(typeChecker, symbol, sourceFile, enclosingDeclaration, location, /*type*/ undefined, semanticMeaning, alias, verbosityLevel);
|
||||
return getSymbolDisplayPartsDocumentationAndSymbolKindWorker(typeChecker, symbol, sourceFile, enclosingDeclaration, location, /*type*/ undefined, semanticMeaning, alias);
|
||||
}
|
||||
|
||||
function isLocalVariableOrFunction(symbol: Symbol) {
|
||||
|
||||
@@ -583,8 +583,6 @@ export interface LanguageService {
|
||||
* @param position A zero-based index of the character where you want the quick info
|
||||
*/
|
||||
getQuickInfoAtPosition(fileName: string, position: number): QuickInfo | undefined;
|
||||
/** @internal */
|
||||
getQuickInfoAtPosition(fileName: string, position: number, verbosityLevel: number | undefined): QuickInfo | undefined; // eslint-disable-line @typescript-eslint/unified-signatures
|
||||
|
||||
getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TextSpan | undefined;
|
||||
|
||||
@@ -1326,7 +1324,6 @@ export interface QuickInfo {
|
||||
displayParts?: SymbolDisplayPart[];
|
||||
documentation?: SymbolDisplayPart[];
|
||||
tags?: JSDocTagInfo[];
|
||||
canIncreaseVerbosityLevel?: boolean;
|
||||
}
|
||||
|
||||
export type RenameInfo = RenameInfoSuccess | RenameInfoFailure;
|
||||
|
||||
@@ -390,7 +390,6 @@ import {
|
||||
visitEachChild,
|
||||
VoidExpression,
|
||||
walkUpParenthesizedExpressions,
|
||||
WriterContextOut,
|
||||
YieldExpression,
|
||||
} from "./_namespaces/ts.js";
|
||||
|
||||
@@ -3056,9 +3055,9 @@ export function mapToDisplayParts(writeDisplayParts: (writer: DisplayPartsSymbol
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export function typeToDisplayParts(typechecker: TypeChecker, type: Type, enclosingDeclaration?: Node, flags: TypeFormatFlags = TypeFormatFlags.None, verbosityLevel?: number, out?: WriterContextOut): SymbolDisplayPart[] {
|
||||
export function typeToDisplayParts(typechecker: TypeChecker, type: Type, enclosingDeclaration?: Node, flags: TypeFormatFlags = TypeFormatFlags.None): SymbolDisplayPart[] {
|
||||
return mapToDisplayParts(writer => {
|
||||
typechecker.writeType(type, enclosingDeclaration, flags | TypeFormatFlags.MultilineObjectLiterals | TypeFormatFlags.UseAliasDefinedOutsideCurrentScope, writer, verbosityLevel, out);
|
||||
typechecker.writeType(type, enclosingDeclaration, flags | TypeFormatFlags.MultilineObjectLiterals | TypeFormatFlags.UseAliasDefinedOutsideCurrentScope, writer);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user