Implemented support for trigger characters in signature help.

This commit is contained in:
Daniel Rosenwasser
2018-06-12 15:36:53 -07:00
parent 61fb222cd2
commit 5e3c96bb9a
16 changed files with 109 additions and 56 deletions

View File

@@ -471,7 +471,7 @@ namespace ts.server {
this.hostConfiguration = {
formatCodeOptions: getDefaultFormatCodeSettings(this.host),
preferences: defaultPreferences,
preferences: emptyOptions,
hostInfo: "Unknown host",
extraFileExtensions: []
};

View File

@@ -1787,6 +1787,10 @@ namespace ts.server.protocol {
* Optional prefix to apply to possible completions.
*/
prefix?: string;
/**
* Character that was responsible for triggering completion.
* Should be `undefined` if a user manually requested completion.
*/
triggerCharacter?: CompletionsTriggerCharacter;
/**
* @deprecated Use UserPreferences.includeCompletionsForModuleExports
@@ -2048,10 +2052,17 @@ namespace ts.server.protocol {
argumentCount: number;
}
export type SignatureHelpTriggerCharacter = "," | "(" | "<";
/**
* Arguments of a signature help request.
*/
export interface SignatureHelpRequestArgs extends FileLocationRequestArgs {
/**
* Character that was responsible for triggering signature help.
* Should be `undefined` if a user manually requested completion.
*/
triggerCharacter?: SignatureHelpTriggerCharacter;
}
/**

View File

@@ -419,7 +419,7 @@ namespace ts.server {
if (preferences) {
if (!this.preferences) {
this.preferences = defaultPreferences;
this.preferences = emptyOptions;
}
this.preferences = { ...this.preferences, ...preferences };
}

View File

@@ -1398,7 +1398,7 @@ namespace ts.server {
const { file, project } = this.getFileAndProject(args);
const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file)!;
const position = this.getPosition(args, scriptInfo);
const helpItems = project.getLanguageService().getSignatureHelpItems(file, position);
const helpItems = project.getLanguageService().getSignatureHelpItems(file, position, args);
if (!helpItems) {
return undefined;
}