Skip to content

Commit 42f162e

Browse files
Adjust sig help implementation to match the new simpler sig help API.
1 parent 317b69e commit 42f162e

File tree

4 files changed

+17
-33
lines changed

4 files changed

+17
-33
lines changed

src/harness/fourslash.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -959,10 +959,9 @@ module FourSlash {
959959
var help = this.languageService.getSignatureHelpItems(this.activeFile.fileName, this.currentCaretPosition);
960960

961961
var item = help.items[help.selectedItemIndex];
962-
var state = this.languageService.getSignatureHelpCurrentArgumentState(this.activeFile.fileName, this.currentCaretPosition, help.applicableSpan.start());
963-
962+
964963
// Same logic as in getActiveSignatureHelp - this value might be -1 until a parameter value actually gets typed
965-
var currentParam = state === undefined ? 0 : state.argumentIndex;
964+
var currentParam = help.argumentIndex < 0 ? 0 : help.argumentIndex;
966965
return item.parameters[currentParam];
967966
}
968967

src/services/services.ts

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -651,16 +651,18 @@ module ts {
651651
getCompletionsAtPosition(fileName: string, position: number, isMemberCompletion: boolean): CompletionInfo;
652652
getCompletionEntryDetails(fileName: string, position: number, entryName: string): CompletionEntryDetails;
653653

654-
getTypeAtPosition(fileName: string, position: number): TypeInfo;
655654
getQuickInfoAtPosition(fileName: string, position: number): QuickInfo;
656655

656+
// Obsolete. Use getQuickInfoAtPosition instead.
657+
getTypeAtPosition(fileName: string, position: number): TypeInfo;
658+
657659
getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): TypeScript.TextSpan;
658660

659661
getBreakpointStatementAtPosition(fileName: string, position: number): TypeScript.TextSpan;
660662

661663
getSignatureHelpItems(fileName: string, position: number): SignatureHelpItems;
662-
getSignatureHelpCurrentArgumentState(fileName: string, position: number, applicableSpanStart: number): SignatureHelpState;
663664

665+
// Obsolete. Use getSignatureHelpItems instead.
664666
getSignatureAtPosition(fileName: string, position: number): SignatureInfo;
665667

666668
getRenameInfo(fileName: string, position: number): RenameInfo;
@@ -861,9 +863,6 @@ module ts {
861863
items: SignatureHelpItem[];
862864
applicableSpan: TypeScript.TextSpan;
863865
selectedItemIndex: number;
864-
}
865-
866-
export interface SignatureHelpState {
867866
argumentIndex: number;
868867
argumentCount: number;
869868
}
@@ -3765,24 +3764,14 @@ module ts {
37653764
return SignatureHelp.getSignatureHelpItems(sourceFile, position, typeInfoResolver, cancellationToken);
37663765
}
37673766

3768-
/**
3769-
* This is a syntactic operation
3770-
*/
3771-
function getSignatureHelpCurrentArgumentState(fileName: string, position: number, applicableSpanStart: number): SignatureHelpState {
3772-
fileName = TypeScript.switchToForwardSlashes(fileName);
3773-
var sourceFile = getCurrentSourceFile(fileName);
3774-
3775-
return SignatureHelp.getSignatureHelpCurrentArgumentState(sourceFile, position, applicableSpanStart);
3776-
}
3777-
37783767
function getSignatureAtPosition(filename: string, position: number): SignatureInfo {
37793768
var signatureHelpItems = getSignatureHelpItems(filename, position);
37803769

37813770
if (!signatureHelpItems) {
37823771
return undefined;
37833772
}
37843773

3785-
var currentArguemntState = getSignatureHelpCurrentArgumentState(filename, position, signatureHelpItems.applicableSpan.start());
3774+
var currentArgumentState = { argumentIndex: signatureHelpItems.argumentIndex, argumentCount: signatureHelpItems.argumentCount };
37863775

37873776
var formalSignatures: FormalSignatureItemInfo[] = [];
37883777
forEach(signatureHelpItems.items, signature => {
@@ -3827,7 +3816,7 @@ module ts {
38273816
parameterMinChar: signatureHelpItems.applicableSpan.start(),
38283817
parameterLimChar: signatureHelpItems.applicableSpan.end(),
38293818
currentParameterIsTypeParameter: false,
3830-
currentParameter: currentArguemntState.argumentIndex
3819+
currentParameter: currentArgumentState.argumentIndex
38313820
};
38323821

38333822
return {
@@ -4465,7 +4454,6 @@ module ts {
44654454
getCompletionEntryDetails: getCompletionEntryDetails,
44664455
getTypeAtPosition: getTypeAtPosition,
44674456
getSignatureHelpItems: getSignatureHelpItems,
4468-
getSignatureHelpCurrentArgumentState: getSignatureHelpCurrentArgumentState,
44694457
getQuickInfoAtPosition: getQuickInfoAtPosition,
44704458
getDefinitionAtPosition: getDefinitionAtPosition,
44714459
getReferencesAtPosition: getReferencesAtPosition,

src/services/shims.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,16 @@ module ts {
8484
getCompletionEntryDetails(fileName: string, position: number, entryName: string): string;
8585

8686
getQuickInfoAtPosition(fileName: string, position: number): string;
87+
88+
// Obsolete. Use getQuickInfoAtPosition instead.
8789
getTypeAtPosition(fileName: string, position: number): string;
8890

8991
getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): string;
9092
getBreakpointStatementAtPosition(fileName: string, position: number): string;
9193

9294
getSignatureHelpItems(fileName: string, position: number): string;
93-
getSignatureHelpCurrentArgumentState(fileName: string, position: number, applicableSpanStart: number): string;
9495

96+
// Obsolete. Use getSignatureHelpItems instead.
9597
getSignatureAtPosition(fileName: string, position: number): string;
9698

9799
/**
@@ -623,15 +625,6 @@ module ts {
623625
});
624626
}
625627

626-
public getSignatureHelpCurrentArgumentState(fileName: string, position: number, applicableSpanStart: number): string {
627-
return this.forwardJSONCall(
628-
"getSignatureHelpCurrentArgumentState('" + fileName + "', " + position + ", " + applicableSpanStart + ")",
629-
() => {
630-
var signatureHelpState = this.languageService.getSignatureHelpCurrentArgumentState(fileName, position, applicableSpanStart);
631-
return signatureHelpState;
632-
});
633-
}
634-
635628
public getSignatureAtPosition(fileName: string, position: number): string {
636629
return this.forwardJSONCall(
637630
"getSignatureAtPosition('" + fileName + "', " + position + ")",

src/services/signatureHelp.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,15 +337,19 @@ module ts.SignatureHelp {
337337
var applicableSpanStart = argumentListOrTypeArgumentList.getFullStart();
338338
var applicableSpanEnd = skipTrivia(sourceFile.text, argumentListOrTypeArgumentList.end, /*stopAfterLineBreak*/ false);
339339
var applicableSpan = new TypeScript.TextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart);
340+
341+
var state = getSignatureHelpCurrentArgumentState(sourceFile, position, applicableSpanStart);
340342
return {
341343
items: items,
342344
applicableSpan: applicableSpan,
343-
selectedItemIndex: selectedItemIndex
345+
selectedItemIndex: selectedItemIndex,
346+
argumentIndex: state.argumentIndex,
347+
argumentCount: state.argumentCount
344348
};
345349
}
346350
}
347351

348-
export function getSignatureHelpCurrentArgumentState(sourceFile: SourceFile, position: number, applicableSpanStart: number): SignatureHelpState {
352+
function getSignatureHelpCurrentArgumentState(sourceFile: SourceFile, position: number, applicableSpanStart: number): { argumentIndex: number; argumentCount: number } {
349353
var tokenPrecedingSpanStart = findPrecedingToken(applicableSpanStart, sourceFile);
350354
if (!tokenPrecedingSpanStart) {
351355
return undefined;

0 commit comments

Comments
 (0)