Skip to content

Commit cf77a2c

Browse files
committed
microsoft#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.
1 parent f675d51 commit cf77a2c

4 files changed

Lines changed: 17 additions & 4 deletions

File tree

extensions/php/package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@
3939
"type": "object",
4040
"order": 20,
4141
"properties": {
42+
"php.builtInCompletions.enable": {
43+
"type": "boolean",
44+
"default": true,
45+
"description": "%configuration.builtInCompletions.enable%"
46+
},
4247
"php.validate.enable": {
4348
"type": "boolean",
4449
"default": true,

extensions/php/package.nls.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
2-
"configuration.validate.enable": "Whether php validation is enabled or not.",
3-
"configuration.validate.executablePath": "Points to the php executable.",
2+
"configuration.builtInCompletions.enable": "Enable/disable built-in PHP completions.",
3+
"configuration.validate.enable": "Enable/disable built-in PHP validation.",
4+
"configuration.validate.executablePath": "Points to the PHP executable.",
45
"configuration.validate.run": "Whether the linter is run on save or on type.",
56
"configuration.title": "PHP"
67
}

extensions/php/src/features/completionItemProvider.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
'use strict';
77

8-
import { CompletionItemProvider, CompletionItem, CompletionItemKind, CancellationToken, TextDocument, Position, Range, TextEdit } from 'vscode';
8+
import { CompletionItemProvider, CompletionItem, CompletionItemKind, CancellationToken, TextDocument, Position, Range, TextEdit, workspace } from 'vscode';
99
import phpGlobals = require('./phpGlobals');
1010

1111
export default class PHPCompletionItemProvider implements CompletionItemProvider {
@@ -14,6 +14,12 @@ export default class PHPCompletionItemProvider implements CompletionItemProvider
1414

1515
public provideCompletionItems(document: TextDocument, position: Position, token: CancellationToken): Promise<CompletionItem[]> {
1616
let result: CompletionItem[] = [];
17+
18+
let shouldProvideCompletionItems = workspace.getConfiguration('php').get<boolean>('builtInCompletions.enable', true);
19+
if (!shouldProvideCompletionItems) {
20+
return Promise.resolve(result);
21+
}
22+
1723
var range = document.getWordRangeAtPosition(position);
1824
var prefix = range ? document.getText(range) : '';
1925
if (!range) {

src/vs/platform/telemetry/common/telemetryUtils.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,6 @@ const configurationValueWhitelist = [
211211
'editor.snippetSuggestions',
212212
'editor.selectionHighlight',
213213
'editor.glyphMargin',
214-
'php.validate.run',
215214
'editor.wordSeparators',
216215
'editor.mouseWheelScrollSensitivity',
217216
'editor.suggestOnTriggerCharacters',
@@ -224,7 +223,9 @@ const configurationValueWhitelist = [
224223
'editor.trimAutoWhitespace',
225224
'editor.folding',
226225
'workbench.editor.enablePreviewFromQuickOpen',
226+
'php.builtInCompletions.enable',
227227
'php.validate.enable',
228+
'php.validate.run',
228229
'editor.parameterHints',
229230
];
230231

0 commit comments

Comments
 (0)