diff --git a/extensions/typescript-language-features/src/api.ts b/extensions/typescript-language-features/src/api.ts index ecc6f391cab0d69465e6f39eee8aec55c63ecdda..468f0f22a30924ad1ce556f34d3368667b85021e 100644 --- a/extensions/typescript-language-features/src/api.ts +++ b/extensions/typescript-language-features/src/api.ts @@ -6,7 +6,7 @@ import * as vscode from 'vscode'; interface ApiV0 { - readonly onCompletionAccepted: vscode.Event; + readonly onCompletionAccepted: vscode.Event; } export interface Api { diff --git a/extensions/typescript-language-features/src/features/completions.ts b/extensions/typescript-language-features/src/features/completions.ts index d47d712fa8e08c67f0dc15b78f82576b257c8311..bc1a27d637de9b590bef1d7dffc40dfcb11dd4f5 100644 --- a/extensions/typescript-language-features/src/features/completions.ts +++ b/extensions/typescript-language-features/src/features/completions.ts @@ -36,7 +36,8 @@ class MyCompletionItem extends vscode.CompletionItem { line: string, public readonly tsEntry: Proto.CompletionEntry, useCodeSnippetsOnMethodSuggest: boolean, - public readonly commitCharactersSettings: CommitCharactersSettings + public readonly commitCharactersSettings: CommitCharactersSettings, + public readonly metadata: any | undefined, ) { super(tsEntry.name, MyCompletionItem.convertKind(tsEntry.kind)); @@ -362,7 +363,8 @@ class TypeScriptCompletionItemProvider implements vscode.CompletionItemProvider let isNewIdentifierLocation = true; let isIncomplete = false; - let msg: ReadonlyArray; + let entries: ReadonlyArray; + let metadata: any | undefined; if (this.client.apiVersion.gte(API.v300)) { const response = await this.client.interuptGetErr(() => this.client.execute('completionInfo', args, token)); if (response.type !== 'response' || !response.body) { @@ -370,24 +372,26 @@ class TypeScriptCompletionItemProvider implements vscode.CompletionItemProvider } isNewIdentifierLocation = response.body.isNewIdentifierLocation; isIncomplete = (response as any).metadata && (response as any).metadata.isIncomplete; - msg = response.body.entries; + entries = response.body.entries; + metadata = response.metadata; } else { const response = await this.client.interuptGetErr(() => this.client.execute('completions', args, token)); if (response.type !== 'response' || !response.body) { return null; } - msg = response.body; + entries = response.body; + metadata = response.metadata; } const isInValidCommitCharacterContext = this.isInValidCommitCharacterContext(document, position); - const items = msg + const items = entries .filter(entry => !shouldExcludeCompletionEntry(entry, completionConfiguration)) .map(entry => new MyCompletionItem(position, document, line.text, entry, completionConfiguration.useCodeSnippetsOnMethodSuggest, { isNewIdentifierLocation, isInValidCommitCharacterContext, enableCallCompletions: !completionConfiguration.useCodeSnippetsOnMethodSuggest - })); + }, metadata)); return new vscode.CompletionList(items, isIncomplete); } diff --git a/src/vs/editor/contrib/goToDefinition/goToDefinitionCommands.ts b/src/vs/editor/contrib/goToDefinition/goToDefinitionCommands.ts index 0911d1d296e66ecb5495b390e3a6b3c72735d009..21bff97b88ce888e81b364fb1d97c293991129c4 100644 --- a/src/vs/editor/contrib/goToDefinition/goToDefinitionCommands.ts +++ b/src/vs/editor/contrib/goToDefinition/goToDefinitionCommands.ts @@ -268,9 +268,11 @@ export class DeclarationAction extends DefinitionAction { export class GoToDeclarationAction extends DeclarationAction { + public static readonly ID = 'editor.action.goToRealDeclaration'; + constructor() { super(new DefinitionActionConfig(), { - id: 'editor.action.goToDeclaration', + id: GoToDeclarationAction.ID, label: nls.localize('actions.goToDeclaration.label', "Go to Declaration"), alias: 'Go to Declaration', precondition: ContextKeyExpr.and(