From cd8cf290346764471617802d2336b42cd5b29374 Mon Sep 17 00:00:00 2001 From: Dirk Baeumer Date: Mon, 30 Oct 2017 21:26:37 +0100 Subject: [PATCH] Update the example to demo server side for workspace folder change events --- lsp-multi-root-sample/server/src/server.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lsp-multi-root-sample/server/src/server.ts b/lsp-multi-root-sample/server/src/server.ts index b9737289..4129b46a 100644 --- a/lsp-multi-root-sample/server/src/server.ts +++ b/lsp-multi-root-sample/server/src/server.ts @@ -17,6 +17,7 @@ let connection = createConnection(ProposedFeatures.all); let documents: TextDocuments = new TextDocuments(); let hasConfigurationCapability = false; +let hasWorkspaceFolderCapability = false; connection.onInitialize((params: InitializeParams) => { function hasClientCapability(...keys: string[]) { @@ -29,6 +30,7 @@ connection.onInitialize((params: InitializeParams) => { // Does the client support the `workspace/configuration` request? // If not, we will fall back using global settings hasConfigurationCapability = hasClientCapability('workspace', 'configuration'); + hasWorkspaceFolderCapability = hasClientCapability('workspace', 'workspaceFolders'); return { capabilities: { textDocumentSync: documents.syncKind @@ -36,6 +38,14 @@ connection.onInitialize((params: InitializeParams) => { } }); +connection.onInitialized(() => { + if (hasWorkspaceFolderCapability) { + connection.workspace.onDidChangeWorkspaceFolders((_event) => { + connection.console.log('Workspace folder change event received'); + }); + } +}); + // The example settings interface MultiRootExampleSettings { maxNumberOfProblems: number;