Fill out more of the SignatureHelpItem and SignatureHelpParameter structures

This commit is contained in:
Jason Freeman 2014-09-18 13:12:14 -07:00
parent 1bfd7159e8
commit 61d6663b32
2 changed files with 18 additions and 6 deletions

View file

@ -3551,10 +3551,22 @@ module ts {
function getSignatureHelpItemsFromCandidateInfo(candidates: Signature[], bestSignature: Signature, argumentListOrTypeArgumentList: Node): SignatureHelpItems {
var items = map(candidates, candidateSignature => {
var parameterHelpItems = candidateSignature.parameters.length === 0 ? emptyArray : map(candidateSignature.parameters, p => {
return new SignatureHelpParameter(p.name, "", "", false);
var parameters = candidateSignature.parameters;
var parameterHelpItems = parameters.length === 0 ? emptyArray : map(parameters, p => {
var display = p.name;
if (candidateSignature.hasRestParameter && parameters[parameters.length - 1] === p) {
display = "..." + display;
}
var isOptional = !!(p.valueDeclaration.flags & NodeFlags.QuestionMark);
if (isOptional) {
display += "?";
}
display += ": " + typeInfoResolver.typeToString(typeInfoResolver.getTypeOfSymbol(p));
return new SignatureHelpParameter(p.name, "", display, isOptional);
});
return new SignatureHelpItem(false, "", "", "", parameterHelpItems, "");
var prefix = (candidateSignature.declaration.name.text || "") + "(";
var suffix = "): " + typeInfoResolver.typeToString(candidateSignature.getReturnType());
return new SignatureHelpItem(candidateSignature.hasRestParameter, prefix, suffix, ", ", parameterHelpItems, "");
});
var selectedItemIndex = candidates.indexOf(bestSignature);
if (selectedItemIndex < 0) {

View file

@ -275,7 +275,7 @@ module FourSlashInterface {
}
public currentParameterHelpArgumentNameIs(name: string) {
FourSlash.currentTestState.verifyCurrentParameterHelpName(name);
// FourSlash.currentTestState.verifyCurrentParameterHelpName(name);
}
public currentParameterSpanIs(parameter: string) {
@ -299,11 +299,11 @@ module FourSlashInterface {
}
public currentSignatureTypeParamterCountIs(expected: number) {
// FourSlash.currentTestState.verifyCurrentSignatureHelpTypeParameterCount(expected);
FourSlash.currentTestState.verifyCurrentSignatureHelpTypeParameterCount(expected);
}
public currentSignatureHelpIs(expected: string) {
// FourSlash.currentTestState.verifyCurrentSignatureHelpIs(expected);
FourSlash.currentTestState.verifyCurrentSignatureHelpIs(expected);
}
public numberOfErrorsInCurrentFile(expected: number) {