From ff7b7272e4f218727f01d4cef1e8c8f621c44591 Mon Sep 17 00:00:00 2001 From: "Bob Brown (DEVDIV)" Date: Thu, 18 Oct 2018 10:00:50 -0700 Subject: [PATCH] Don't allow configuration providers to activate the extension when IntelliSense is disabled --- Extension/src/LanguageServer/customProviders.ts | 8 +++++++- Extension/src/LanguageServer/extension.ts | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Extension/src/LanguageServer/customProviders.ts b/Extension/src/LanguageServer/customProviders.ts index d3888982c3..7a5d087aa6 100644 --- a/Extension/src/LanguageServer/customProviders.ts +++ b/Extension/src/LanguageServer/customProviders.ts @@ -4,8 +4,9 @@ * ------------------------------------------------------------------------------------------ */ 'use strict'; -import { CustomConfigurationProvider, Version, SourceFileConfigurationItem, WorkspaceBrowseConfiguration } from 'vscode-cpptools'; import * as vscode from 'vscode'; +import { CustomConfigurationProvider, Version, SourceFileConfigurationItem, WorkspaceBrowseConfiguration } from 'vscode-cpptools'; +import { CppSettings } from './settings'; /** * An interface that is guaranteed to be backward compatible with version 0 @@ -135,6 +136,11 @@ export class CustomConfigurationProviderCollection { } public add(provider: CustomConfigurationProvider, version: Version): boolean { + if (new CppSettings().intelliSenseEngine === "Disabled") { + console.warn("IntelliSense is disabled. Provider will not be registered."); + return false; + } + let wrapper: CustomProviderWrapper = new CustomProviderWrapper(provider, version); if (!wrapper.isValid) { this.logProblems(provider, version); diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index 19b3547dd8..2ad763a2fb 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -105,6 +105,10 @@ function onActivationEvent(): void { } function realActivation(): void { + if (new CppSettings().intelliSenseEngine === "Disabled") { + throw new Error("Do not activate the extension when IntelliSense is disabled."); + } + realActivationOccurred = true; console.log("starting language server"); clients = new ClientCollection();