提交 615ea2b4 编写于 作者: M Matt Bierner 提交者: GitHub

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.
上级 0fe7046f
......@@ -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[];
......
/*---------------------------------------------------------------------------------------------
* 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
};
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册