about summary refs log tree commit diff
path: root/editors/code/src/client.ts
diff options
context:
space:
mode:
authorkjeremy <kjeremy@gmail.com>2020-02-14 11:48:27 -0500
committerkjeremy <kjeremy@gmail.com>2020-02-14 11:48:27 -0500
commit7a832cdf6b9efef2e6c45f56a4385adddd493ea6 (patch)
tree5724e94f0272b83ebf8d4a042c03d0a5f2b58627 /editors/code/src/client.ts
parentd46b555e31d04feeb6310c52248bba7ff267c453 (diff)
downloadrust-7a832cdf6b9efef2e6c45f56a4385adddd493ea6.tar.gz
rust-7a832cdf6b9efef2e6c45f56a4385adddd493ea6.zip
Do not register all proposed features
Instead only opt-in to CallHierarchy since it has a vscode API but LSP support
is still proposed.

Discovered while working on SemanticTokens which does not have a vscode API
and is still in the proposed state. Somehow enabling it would crash the
language server.

See https://github.com/microsoft/vscode-languageserver-node/issues/572
Diffstat (limited to 'editors/code/src/client.ts')
-rw-r--r--editors/code/src/client.ts7
1 files changed, 6 insertions, 1 deletions
diff --git a/editors/code/src/client.ts b/editors/code/src/client.ts
index 2e3d4aba2d8..d2759969be0 100644
--- a/editors/code/src/client.ts
+++ b/editors/code/src/client.ts
@@ -3,6 +3,7 @@ import * as lc from 'vscode-languageclient';
 import { window, workspace } from 'vscode';
 import { Config } from './config';
 import { ensureLanguageServerBinary } from './installation/language_server';
+import { CallHierarchyFeature } from 'vscode-languageclient/lib/callHierarchy.proposed';
 
 export async function createClient(config: Config): Promise<null | lc.LanguageClient> {
     // '.' Is the fallback if no folder is open
@@ -78,6 +79,10 @@ export async function createClient(config: Config): Promise<null | lc.LanguageCl
             }
         },
     };
-    res.registerProposedFeatures();
+
+    // To turn on all proposed features use: res.registerProposedFeatures();
+    // Here we want to just enable CallHierarchyFeature since it is available on stable.
+    // Note that while the CallHierarchyFeature is stable the LSP protocol is not.
+    res.registerFeature(new CallHierarchyFeature(res));
     return res;
 }