Skip to content

Commit 8f9c086

Browse files
authored
Use external aliases in quickinfo and signature help return types (microsoft#24391)
* Dont include import types in quick info type names * Add UseAliasDefinedOutsideCurrentScope flag to LS operations which were missing it
1 parent 9761c09 commit 8f9c086

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

src/compiler/checker.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2993,7 +2993,7 @@ namespace ts {
29932993
}
29942994
}
29952995

2996-
function typeToString(type: Type, enclosingDeclaration?: Node, flags: TypeFormatFlags = TypeFormatFlags.AllowUniqueESSymbolType, writer: EmitTextWriter = createTextWriter("")): string {
2996+
function typeToString(type: Type, enclosingDeclaration?: Node, flags: TypeFormatFlags = TypeFormatFlags.AllowUniqueESSymbolType | TypeFormatFlags.UseAliasDefinedOutsideCurrentScope, writer: EmitTextWriter = createTextWriter("")): string {
29972997
const typeNode = nodeBuilder.typeToTypeNode(type, enclosingDeclaration, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors, writer);
29982998
if (typeNode === undefined) return Debug.fail("should always get typenode");
29992999
const options = { removeComments: true };
@@ -3941,7 +3941,7 @@ namespace ts {
39413941
}
39423942
}
39433943

3944-
function typePredicateToString(typePredicate: TypePredicate, enclosingDeclaration?: Node, flags?: TypeFormatFlags, writer?: EmitTextWriter): string {
3944+
function typePredicateToString(typePredicate: TypePredicate, enclosingDeclaration?: Node, flags: TypeFormatFlags = TypeFormatFlags.UseAliasDefinedOutsideCurrentScope, writer?: EmitTextWriter): string {
39453945
return writer ? typePredicateToStringWorker(writer).getText() : usingSingleLineStringWriter(typePredicateToStringWorker);
39463946

39473947
function typePredicateToStringWorker(writer: EmitTextWriter) {

src/services/utilities.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1473,7 +1473,7 @@ namespace ts {
14731473

14741474
export function typeToDisplayParts(typechecker: TypeChecker, type: Type, enclosingDeclaration?: Node, flags: TypeFormatFlags = TypeFormatFlags.None): SymbolDisplayPart[] {
14751475
return mapToDisplayParts(writer => {
1476-
typechecker.writeType(type, enclosingDeclaration, flags | TypeFormatFlags.MultilineObjectLiterals, writer);
1476+
typechecker.writeType(type, enclosingDeclaration, flags | TypeFormatFlags.MultilineObjectLiterals | TypeFormatFlags.UseAliasDefinedOutsideCurrentScope, writer);
14771477
});
14781478
}
14791479

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/// <reference path="fourslash.ts" />
2+
3+
// @Filename: b.ts
4+
////export interface B {}
5+
////export function foob(): {
6+
//// x: B,
7+
//// y: B
8+
////} {
9+
//// return null as any;
10+
////}
11+
// @Filename: a.ts
12+
////import { foob } from "./b";
13+
////const thing/*1*/ = foob(/*2*/);
14+
15+
verify.quickInfoAt("1", "const thing: {\n x: B;\n y: B;\n}");
16+
verify.signatureHelp({
17+
marker: "2",
18+
text: "foob(): { x: B; y: B; }"
19+
});

0 commit comments

Comments
 (0)