diff --git a/extensions/css/server/src/cssServerMain.ts b/extensions/css/server/src/cssServerMain.ts index 408a82c14f5..573b4b61c5f 100644 --- a/extensions/css/server/src/cssServerMain.ts +++ b/extensions/css/server/src/cssServerMain.ts @@ -46,11 +46,12 @@ connection.onShutdown(() => { // After the server has started the client sends an initilize request. The server receives // in the passed params the rootPath of the workspace plus the client capabilities. connection.onInitialize((params: InitializeParams): InitializeResult => { + let snippetSupport = params.capabilities && params.capabilities.textDocument && params.capabilities.textDocument.completion && params.capabilities.textDocument.completion.completionItem && params.capabilities.textDocument.completion.completionItem.snippetSupport; return { capabilities: { // Tell the client that the server works in FULL text document sync mode textDocumentSync: documents.syncKind, - completionProvider: { resolveProvider: false }, + completionProvider: snippetSupport ? { resolveProvider: false } : null, hoverProvider: true, documentSymbolProvider: true, referencesProvider: true, diff --git a/extensions/html/server/src/htmlServerMain.ts b/extensions/html/server/src/htmlServerMain.ts index 374ba87703d..1db818fd726 100644 --- a/extensions/html/server/src/htmlServerMain.ts +++ b/extensions/html/server/src/htmlServerMain.ts @@ -53,12 +53,12 @@ connection.onInitialize((params: InitializeParams): InitializeResult => { connection.onShutdown(() => { languageModes.dispose(); }); - + let snippetSupport = params.capabilities && params.capabilities.textDocument && params.capabilities.textDocument.completion && params.capabilities.textDocument.completion.completionItem && params.capabilities.textDocument.completion.completionItem.snippetSupport; return { capabilities: { // Tell the client that the server works in FULL text document sync mode textDocumentSync: documents.syncKind, - completionProvider: { resolveProvider: true, triggerCharacters: ['.', ':', '<', '"', '=', '/'] }, + completionProvider: snippetSupport ? { resolveProvider: true, triggerCharacters: ['.', ':', '<', '"', '=', '/'] } : null, hoverProvider: true, documentHighlightProvider: true, documentRangeFormattingProvider: initializationOptions && initializationOptions['format.enable'], diff --git a/extensions/json/server/src/jsonServerMain.ts b/extensions/json/server/src/jsonServerMain.ts index 1584597b39b..daafb4e19fb 100644 --- a/extensions/json/server/src/jsonServerMain.ts +++ b/extensions/json/server/src/jsonServerMain.ts @@ -59,11 +59,12 @@ connection.onInitialize((params: InitializeParams): InitializeResult => { if (params.initializationOptions) { filesAssociationContribution.setLanguageIds(params.initializationOptions.languageIds); } + let snippetSupport = params.capabilities && params.capabilities.textDocument && params.capabilities.textDocument.completion && params.capabilities.textDocument.completion.completionItem && params.capabilities.textDocument.completion.completionItem.snippetSupport; return { capabilities: { // Tell the client that the server works in FULL text document sync mode textDocumentSync: documents.syncKind, - completionProvider: { resolveProvider: true, triggerCharacters: ['"', ':'] }, + completionProvider: snippetSupport ? { resolveProvider: true, triggerCharacters: ['"', ':'] } : null, hoverProvider: true, documentSymbolProvider: true, documentRangeFormattingProvider: !params.initializationOptions || params.initializationOptions['format.enable']