Allow Enabling useCodeSnippetsOnMethodSuggest for JS As Well As TS (#16351)

Fixes #13952

**Bug**
The `typescript.useCodeSnippetsOnMethodSuggest` setting only applies to Typescript files. I believe it should also apply to JavaScript files.

**Fix**
Use `typescript.useCodeSnippetsOnMethodSuggest` to control this behavior for js files as well.

Also delete unused configuration file.

An alternate design would be to add a `javascript.useCodeSnippetsOnMethodSuggest` configuration option, if users really do want to have different behavior between JS and TS.
This commit is contained in:
Matt Bierner
2016-12-02 11:08:27 -08:00
committed by GitHub
parent 0fe7046f49
commit 615ea2b4a4
2 changed files with 5 additions and 29 deletions

View File

@@ -5,7 +5,7 @@
'use strict';
import { CompletionItem, TextDocument, Position, CompletionItemKind, CompletionItemProvider, CancellationToken, WorkspaceConfiguration, TextEdit, Range, SnippetString } from 'vscode';
import { CompletionItem, TextDocument, Position, CompletionItemKind, CompletionItemProvider, CancellationToken, WorkspaceConfiguration, TextEdit, Range, SnippetString, workspace } from 'vscode';
import { ITypescriptServiceClient } from '../typescriptService';
@@ -87,7 +87,9 @@ export default class TypeScriptCompletionItemProvider implements CompletionItemP
}
public updateConfiguration(config: WorkspaceConfiguration): void {
this.config.useCodeSnippetsOnMethodSuggest = config.get(Configuration.useCodeSnippetsOnMethodSuggest, false);
// Use shared setting for js and ts
let typeScriptConfig = workspace.getConfiguration('typescript');
this.config.useCodeSnippetsOnMethodSuggest = typeScriptConfig.get(Configuration.useCodeSnippetsOnMethodSuggest, false);
}
public provideCompletionItems(document: TextDocument, position: Position, token: CancellationToken): Promise<CompletionItem[]> {
@@ -162,7 +164,7 @@ export default class TypeScriptCompletionItemProvider implements CompletionItemP
item.detail = Previewer.plain(detail.displayParts);
}
if (detail && this.config.useCodeSnippetsOnMethodSuggest && item.kind === CompletionItemKind.Function) {
if (detail && this.config.useCodeSnippetsOnMethodSuggest && (item.kind === CompletionItemKind.Function || item.kind === CompletionItemKind.Method)) {
let codeSnippet = detail.name;
let suggestionArgumentNames: string[];

View File

@@ -1,26 +0,0 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { workspace } from 'vscode';
export interface IConfiguration {
useCodeSnippetsOnMethodSuggest?: boolean;
}
export var defaultConfiguration: IConfiguration = {
useCodeSnippetsOnMethodSuggest: false
};
export function load(myPluginId: string): IConfiguration {
let configuration = workspace.getConfiguration(myPluginId);
let useCodeSnippetsOnMethodSuggest = configuration.get('useCodeSnippetsOnMethodSuggest', defaultConfiguration.useCodeSnippetsOnMethodSuggest);
return {
useCodeSnippetsOnMethodSuggest
};
}