From a29549239befbfd0136b512411c71001b9df5597 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 24 Sep 2014 13:58:03 -0700 Subject: [PATCH] Merge changes after signature help work --- src/services/services.ts | 6 +++--- src/services/signatureHelp.ts | 29 ++++++++++++++++++++--------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 14a8a5414d3..bd77b2d5c0d 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3699,9 +3699,9 @@ module ts { // Reset writer back to undefined to make sure that we produce an error message if CompilerHost.writeFile method is called when we are not in getEmitOutput writer = undefined; - return emitOutput; - } - + return emitOutput; + } + // Signature help /** * This is a semantic operation. diff --git a/src/services/signatureHelp.ts b/src/services/signatureHelp.ts index f129cabc00a..b4ed515cf97 100644 --- a/src/services/signatureHelp.ts +++ b/src/services/signatureHelp.ts @@ -261,7 +261,7 @@ module ts.SignatureHelp { display += "?"; } display += ": " + typeInfoResolver.typeToString(typeInfoResolver.getTypeOfSymbol(p), argumentListOrTypeArgumentList); - return new SignatureHelpParameter(p.name, "", display, isOptional); + return { name: p.name, documentation: "", display: display, isOptiona: isOptional }; }); var callTargetNode = (argumentListOrTypeArgumentList.parent).func; var callTargetSymbol = typeInfoResolver.getSymbolInfo(callTargetNode); @@ -273,7 +273,14 @@ module ts.SignatureHelp { } prefix += "("; var suffix = "): " + typeInfoResolver.typeToString(candidateSignature.getReturnType(), argumentListOrTypeArgumentList); - return new SignatureHelpItem(candidateSignature.hasRestParameter, prefix, suffix, ", ", parameterHelpItems, ""); + return { + isVariadic: candidateSignature.hasRestParameter, + prefix: prefix, + suffix: suffix, + separator: ", ", + parameters: parameterHelpItems, + documentation: "" + }; }); var selectedItemIndex = candidates.indexOf(bestSignature); if (selectedItemIndex < 0) { @@ -291,7 +298,11 @@ module ts.SignatureHelp { var applicableSpanStart = argumentListOrTypeArgumentList.getFullStart(); var applicableSpanEnd = skipTrivia(sourceFile.text, argumentListOrTypeArgumentList.end, /*stopAfterLineBreak*/ false); var applicableSpan = new TypeScript.TextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart); - return new SignatureHelpItems(items, applicableSpan, selectedItemIndex); + return { + items: items, + applicableSpan: applicableSpan, + selectedItemIndex: selectedItemIndex + }; } } @@ -327,7 +338,7 @@ module ts.SignatureHelp { var numberOfCommas = countWhere(argumentListOrTypeArgumentList.getChildren(), arg => arg.kind === SyntaxKind.CommaToken); var argumentCount = numberOfCommas + 1; if (argumentCount <= 1) { - return new SignatureHelpState(/*argumentIndex*/ 0, argumentCount); + return { argumentIndex: 0, argumentCount: argumentCount }; } var indexOfNodeContainingPosition = findListItemIndexContainingPosition(argumentListOrTypeArgumentList, position); @@ -338,12 +349,12 @@ module ts.SignatureHelp { // Alternatively, we could be in range of one of the arguments, in which case we need to divide // by 2 to exclude commas. Use bit shifting in order to take the floor of the division. var argumentIndex = indexOfNodeContainingPosition < 0 ? argumentCount - 1 : indexOfNodeContainingPosition >> 1; - return new SignatureHelpState(argumentIndex, argumentCount); - } - - function getChildListThatStartsWithOpenerToken(parent: Node, openerToken: Node, sourceFile: SourceFile): Node { + return { argumentIndex: argumentIndex, argumentCount: argumentCount }; + } + + function getChildListThatStartsWithOpenerToken(parent: Node, openerToken: Node, sourceFile: SourceFile): Node { var children = parent.getChildren(sourceFile); var indexOfOpenerToken = children.indexOf(openerToken); - return children[indexOfOpenerToken + 1]; + return children[indexOfOpenerToken + 1]; } } \ No newline at end of file