]> git.lizzy.rs Git - rust.git/commitdiff
Do not register all proposed features
authorkjeremy <kjeremy@gmail.com>
Fri, 14 Feb 2020 16:48:27 +0000 (11:48 -0500)
committerkjeremy <kjeremy@gmail.com>
Fri, 14 Feb 2020 16:48:27 +0000 (11:48 -0500)
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

editors/code/src/client.ts

index 2e3d4aba2d882ad71db2b127f25e5863dd795791..d2759969be0e3aae9f6c113d400a549dd10c477f 100644 (file)
@@ -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;
 }