Skip to content

Commit eed6f0d

Browse files
Use an output format for quickinfo that more closely matches the original source.
i.e. use "var v: string" instead of "(var) v: string". The parens case should only be used when we're using an english description instead of an actual language construct.
1 parent 2af1b92 commit eed6f0d

161 files changed

Lines changed: 913 additions & 865 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/compiler/scanner.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,11 @@ module ts {
256256
return tokenStrings[t];
257257
}
258258

259+
/* @internal */
260+
export function stringToToken(s: string): SyntaxKind {
261+
return textToToken[s];
262+
}
263+
259264
export function computeLineStarts(text: string): number[] {
260265
let result: number[] = new Array();
261266
let pos = 0;

src/services/services.ts

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,10 @@ module ts {
418418

419419
function pushDocCommentLineText(docComments: SymbolDisplayPart[], text: string, blankLineCount: number) {
420420
// Add the empty lines in between texts
421-
while (blankLineCount--) docComments.push(textPart(""));
421+
while (blankLineCount--) {
422+
docComments.push(textPart(""));
423+
}
424+
422425
docComments.push(textPart(text));
423426
}
424427

@@ -3069,12 +3072,14 @@ module ts {
30693072
typeResolver: TypeChecker, location: Node,
30703073
// TODO(drosen): Currently completion entry details passes the SemanticMeaning.All instead of using semanticMeaning of location
30713074
semanticMeaning = getMeaningFromLocation(location)) {
3075+
30723076
let displayParts: SymbolDisplayPart[] = [];
30733077
let documentation: SymbolDisplayPart[];
30743078
let symbolFlags = symbol.flags;
30753079
let symbolKind = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, symbolFlags, typeResolver, location);
30763080
let hasAddedSymbolInfo: boolean;
30773081
let type: Type;
3082+
30783083
// Class at constructor site need to be shown as constructor apart from property,method, vars
30793084
if (symbolKind !== ScriptElementKind.unknown || symbolFlags & SymbolFlags.Class || symbolFlags & SymbolFlags.Alias) {
30803085
// If it is accessor they are allowed only if location is at name of the accessor
@@ -3126,9 +3131,7 @@ module ts {
31263131
}
31273132
else if (symbolFlags & SymbolFlags.Alias) {
31283133
symbolKind = ScriptElementKind.alias;
3129-
displayParts.push(punctuationPart(SyntaxKind.OpenParenToken));
3130-
displayParts.push(textPart(symbolKind));
3131-
displayParts.push(punctuationPart(SyntaxKind.CloseParenToken));
3134+
pushTypePart(symbolKind);
31323135
displayParts.push(spacePart());
31333136
if (useConstructSignatures) {
31343137
displayParts.push(keywordPart(SyntaxKind.NewKeyword));
@@ -3364,14 +3367,27 @@ module ts {
33643367
function addPrefixForAnyFunctionOrVar(symbol: Symbol, symbolKind: string) {
33653368
addNewLineIfDisplayPartsExist();
33663369
if (symbolKind) {
3367-
displayParts.push(punctuationPart(SyntaxKind.OpenParenToken));
3368-
displayParts.push(textPart(symbolKind));
3369-
displayParts.push(punctuationPart(SyntaxKind.CloseParenToken));
3370+
pushTypePart(symbolKind);
33703371
displayParts.push(spacePart());
33713372
addFullSymbolName(symbol);
33723373
}
33733374
}
33743375

3376+
function pushTypePart(symbolKind: string) {
3377+
if (symbolKind === ScriptElementKind.variableElement ||
3378+
symbolKind === ScriptElementKind.functionElement ||
3379+
symbolKind === ScriptElementKind.letElement ||
3380+
symbolKind === ScriptElementKind.constElement ||
3381+
symbolKind === ScriptElementKind.constructorImplementationElement) {
3382+
displayParts.push(textOrKeywordPart(symbolKind));
3383+
}
3384+
else {
3385+
displayParts.push(punctuationPart(SyntaxKind.OpenParenToken));
3386+
displayParts.push(textOrKeywordPart(symbolKind));
3387+
displayParts.push(punctuationPart(SyntaxKind.CloseParenToken));
3388+
}
3389+
}
3390+
33753391
function addSignatureDisplayParts(signature: Signature, allSignatures: Signature[], flags?: TypeFormatFlags) {
33763392
displayParts.push.apply(displayParts, signatureToDisplayParts(typeResolver, signature, enclosingDeclaration, flags | TypeFormatFlags.WriteTypeArgumentsOfSignature));
33773393
if (allSignatures.length > 1) {

src/services/utilities.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -611,6 +611,13 @@ module ts {
611611
return displayPart(tokenToString(kind), SymbolDisplayPartKind.operator);
612612
}
613613

614+
export function textOrKeywordPart(text: string) {
615+
var kind = stringToToken(text);
616+
return kind === undefined
617+
? textPart(text)
618+
: keywordPart(kind);
619+
}
620+
614621
export function textPart(text: string) {
615622
return displayPart(text, SymbolDisplayPartKind.text);
616623
}

tests/cases/fourslash/arrayCallAndConstructTypings.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,31 +13,31 @@
1313

1414

1515
goTo.marker('1');
16-
verify.quickInfoIs('(var) a1: any[]');
16+
verify.quickInfoIs('var a1: any[]');
1717

1818
goTo.marker('2');
19-
verify.quickInfoIs('(var) a2: any[]');
19+
verify.quickInfoIs('var a2: any[]');
2020

2121
goTo.marker('3');
22-
verify.quickInfoIs('(var) a3: boolean[]');
22+
verify.quickInfoIs('var a3: boolean[]');
2323

2424
goTo.marker('4');
25-
verify.quickInfoIs('(var) a4: boolean[]');
25+
verify.quickInfoIs('var a4: boolean[]');
2626

2727
goTo.marker('5');
28-
verify.quickInfoIs('(var) a5: string[]');
28+
verify.quickInfoIs('var a5: string[]');
2929

3030
goTo.marker('6');
31-
verify.quickInfoIs('(var) a6: any[]');
31+
verify.quickInfoIs('var a6: any[]');
3232

3333
goTo.marker('7');
34-
verify.quickInfoIs('(var) a7: any[]');
34+
verify.quickInfoIs('var a7: any[]');
3535

3636
goTo.marker('8');
37-
verify.quickInfoIs('(var) a8: boolean[]');
37+
verify.quickInfoIs('var a8: boolean[]');
3838

3939
goTo.marker('9');
40-
verify.quickInfoIs('(var) a9: boolean[]');
40+
verify.quickInfoIs('var a9: boolean[]');
4141

4242
goTo.marker('10');
43-
verify.quickInfoIs('(var) a10: string[]');
43+
verify.quickInfoIs('var a10: string[]');

tests/cases/fourslash/augmentedTypesClass2.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
////r./*2*/
88

99
goTo.marker('1');
10-
verify.not.completionListContains('y', '(var) y: number');
10+
verify.not.completionListContains('y', 'var y: number');
1111
edit.backspace(4);
1212
goTo.marker('2');
1313
verify.completionListContains('foo', '(method) c5b.foo(): void');

tests/cases/fourslash/augmentedTypesModule1.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ verify.completionListContains('I');
1212
verify.not.completionListContains('foo');
1313

1414
goTo.marker('2');
15-
verify.quickInfoIs('(var) r: number');
15+
verify.quickInfoIs('var r: number');

tests/cases/fourslash/augmentedTypesModule2.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
////var /*2*/r = m2f/*3*/;
77

88
goTo.marker('11');
9-
verify.quickInfoIs('(function) m2f(x: number): void\nmodule m2f');
9+
verify.quickInfoIs('function m2f(x: number): void\nmodule m2f');
1010

1111
goTo.marker('1');
1212
verify.completionListContains('I');
@@ -16,7 +16,7 @@ verify.not.completionListContains('foo');
1616
edit.backspace(1);
1717

1818
goTo.marker('2');
19-
verify.quickInfoIs('(var) r: (x: number) => void');
19+
verify.quickInfoIs('var r: (x: number) => void');
2020

2121
goTo.marker('3');
2222
edit.insert('(');

tests/cases/fourslash/augmentedTypesModule3.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ verify.not.completionListContains('foo');
1313
edit.backspace(1);
1414

1515
goTo.marker('2');
16-
verify.quickInfoIs("(var) r: typeof m2g");
16+
verify.quickInfoIs("var r: typeof m2g");
1717

1818
goTo.marker('3');
1919
edit.insert('(');

tests/cases/fourslash/augmentedTypesModule4.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
////var /*4*/r2 = m3d./*3*/
88

99
goTo.marker('1');
10-
verify.quickInfoIs('(var) r: m3d');
10+
verify.quickInfoIs('var r: m3d');
1111

1212
goTo.marker('2');
1313
verify.completionListContains('foo');
@@ -18,4 +18,4 @@ verify.completionListContains('y');
1818
edit.insert('y;');
1919

2020
goTo.marker('4');
21-
verify.quickInfoIs('(var) r2: number');
21+
verify.quickInfoIs('var r2: number');

tests/cases/fourslash/augmentedTypesModule5.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
////var /*4*/r2 = m3e./*3*/
88

99
goTo.marker('1');
10-
verify.quickInfoIs('(var) r: m3e');
10+
verify.quickInfoIs('var r: m3e');
1111

1212
goTo.marker('2');
1313
verify.completionListContains('foo');
@@ -19,4 +19,4 @@ verify.completionListContains('y');
1919
edit.insert('y;');
2020

2121
goTo.marker('4');
22-
verify.quickInfoIs('(var) r2: number');
22+
verify.quickInfoIs('var r2: number');

0 commit comments

Comments
 (0)