#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.
This commit is contained in:
Sara Itani
2017-01-22 22:15:49 -08:00
parent f675d5105d
commit cf77a2cf8c
4 changed files with 17 additions and 4 deletions

View File

@@ -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<CompletionItem[]> {
let result: CompletionItem[] = [];
let shouldProvideCompletionItems = workspace.getConfiguration('php').get<boolean>('builtInCompletions.enable', true);
if (!shouldProvideCompletionItems) {
return Promise.resolve(result);
}
var range = document.getWordRangeAtPosition(position);
var prefix = range ? document.getText(range) : '';
if (!range) {