Skip to content

Commit 61d6663

Browse files
committed
Fill out more of the SignatureHelpItem and SignatureHelpParameter structures
1 parent 1bfd715 commit 61d6663

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

src/services/services.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3551,10 +3551,22 @@ module ts {
35513551

35523552
function getSignatureHelpItemsFromCandidateInfo(candidates: Signature[], bestSignature: Signature, argumentListOrTypeArgumentList: Node): SignatureHelpItems {
35533553
var items = map(candidates, candidateSignature => {
3554-
var parameterHelpItems = candidateSignature.parameters.length === 0 ? emptyArray : map(candidateSignature.parameters, p => {
3555-
return new SignatureHelpParameter(p.name, "", "", false);
3554+
var parameters = candidateSignature.parameters;
3555+
var parameterHelpItems = parameters.length === 0 ? emptyArray : map(parameters, p => {
3556+
var display = p.name;
3557+
if (candidateSignature.hasRestParameter && parameters[parameters.length - 1] === p) {
3558+
display = "..." + display;
3559+
}
3560+
var isOptional = !!(p.valueDeclaration.flags & NodeFlags.QuestionMark);
3561+
if (isOptional) {
3562+
display += "?";
3563+
}
3564+
display += ": " + typeInfoResolver.typeToString(typeInfoResolver.getTypeOfSymbol(p));
3565+
return new SignatureHelpParameter(p.name, "", display, isOptional);
35563566
});
3557-
return new SignatureHelpItem(false, "", "", "", parameterHelpItems, "");
3567+
var prefix = (candidateSignature.declaration.name.text || "") + "(";
3568+
var suffix = "): " + typeInfoResolver.typeToString(candidateSignature.getReturnType());
3569+
return new SignatureHelpItem(candidateSignature.hasRestParameter, prefix, suffix, ", ", parameterHelpItems, "");
35583570
});
35593571
var selectedItemIndex = candidates.indexOf(bestSignature);
35603572
if (selectedItemIndex < 0) {

tests/cases/fourslash/fourslash.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ module FourSlashInterface {
275275
}
276276

277277
public currentParameterHelpArgumentNameIs(name: string) {
278-
FourSlash.currentTestState.verifyCurrentParameterHelpName(name);
278+
// FourSlash.currentTestState.verifyCurrentParameterHelpName(name);
279279
}
280280

281281
public currentParameterSpanIs(parameter: string) {
@@ -299,11 +299,11 @@ module FourSlashInterface {
299299
}
300300

301301
public currentSignatureTypeParamterCountIs(expected: number) {
302-
// FourSlash.currentTestState.verifyCurrentSignatureHelpTypeParameterCount(expected);
302+
FourSlash.currentTestState.verifyCurrentSignatureHelpTypeParameterCount(expected);
303303
}
304304

305305
public currentSignatureHelpIs(expected: string) {
306-
// FourSlash.currentTestState.verifyCurrentSignatureHelpIs(expected);
306+
FourSlash.currentTestState.verifyCurrentSignatureHelpIs(expected);
307307
}
308308

309309
public numberOfErrorsInCurrentFile(expected: number) {

0 commit comments

Comments
 (0)