From cf77a2cf8cd68f5f98f3c3810b56a67dcb8993ba Mon Sep 17 00:00:00 2001 From: Sara Itani Date: Sun, 22 Jan 2017 22:15:49 -0800 Subject: [PATCH] #9003 Provide temporary option to disable the built-in PHP completion provider. This option enables extension authors providing PHP support to prevent needless duplication in the completions list. We can remove it when we extract this functionality to a separate extension. --- extensions/php/package.json | 5 +++++ extensions/php/package.nls.json | 5 +++-- extensions/php/src/features/completionItemProvider.ts | 8 +++++++- src/vs/platform/telemetry/common/telemetryUtils.ts | 3 ++- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/extensions/php/package.json b/extensions/php/package.json index d13c4cf4db7..ac54a389342 100644 --- a/extensions/php/package.json +++ b/extensions/php/package.json @@ -39,6 +39,11 @@ "type": "object", "order": 20, "properties": { + "php.builtInCompletions.enable": { + "type": "boolean", + "default": true, + "description": "%configuration.builtInCompletions.enable%" + }, "php.validate.enable": { "type": "boolean", "default": true, diff --git a/extensions/php/package.nls.json b/extensions/php/package.nls.json index 170a5a38f1d..ca608ff9853 100644 --- a/extensions/php/package.nls.json +++ b/extensions/php/package.nls.json @@ -1,6 +1,7 @@ { - "configuration.validate.enable": "Whether php validation is enabled or not.", - "configuration.validate.executablePath": "Points to the php executable.", + "configuration.builtInCompletions.enable": "Enable/disable built-in PHP completions.", + "configuration.validate.enable": "Enable/disable built-in PHP validation.", + "configuration.validate.executablePath": "Points to the PHP executable.", "configuration.validate.run": "Whether the linter is run on save or on type.", "configuration.title": "PHP" } \ No newline at end of file diff --git a/extensions/php/src/features/completionItemProvider.ts b/extensions/php/src/features/completionItemProvider.ts index 94bd75e4e5c..544be05374d 100644 --- a/extensions/php/src/features/completionItemProvider.ts +++ b/extensions/php/src/features/completionItemProvider.ts @@ -5,7 +5,7 @@ 'use strict'; -import { CompletionItemProvider, CompletionItem, CompletionItemKind, CancellationToken, TextDocument, Position, Range, TextEdit } from 'vscode'; +import { CompletionItemProvider, CompletionItem, CompletionItemKind, CancellationToken, TextDocument, Position, Range, TextEdit, workspace } from 'vscode'; import phpGlobals = require('./phpGlobals'); export default class PHPCompletionItemProvider implements CompletionItemProvider { @@ -14,6 +14,12 @@ export default class PHPCompletionItemProvider implements CompletionItemProvider public provideCompletionItems(document: TextDocument, position: Position, token: CancellationToken): Promise { let result: CompletionItem[] = []; + + let shouldProvideCompletionItems = workspace.getConfiguration('php').get('builtInCompletions.enable', true); + if (!shouldProvideCompletionItems) { + return Promise.resolve(result); + } + var range = document.getWordRangeAtPosition(position); var prefix = range ? document.getText(range) : ''; if (!range) { diff --git a/src/vs/platform/telemetry/common/telemetryUtils.ts b/src/vs/platform/telemetry/common/telemetryUtils.ts index 29acbba0d9f..cf370fa01e6 100644 --- a/src/vs/platform/telemetry/common/telemetryUtils.ts +++ b/src/vs/platform/telemetry/common/telemetryUtils.ts @@ -211,7 +211,6 @@ const configurationValueWhitelist = [ 'editor.snippetSuggestions', 'editor.selectionHighlight', 'editor.glyphMargin', - 'php.validate.run', 'editor.wordSeparators', 'editor.mouseWheelScrollSensitivity', 'editor.suggestOnTriggerCharacters', @@ -224,7 +223,9 @@ const configurationValueWhitelist = [ 'editor.trimAutoWhitespace', 'editor.folding', 'workbench.editor.enablePreviewFromQuickOpen', + 'php.builtInCompletions.enable', 'php.validate.enable', + 'php.validate.run', 'editor.parameterHints', ];