/
capabilities.ts
29 lines (25 loc) · 1.18 KB
/
capabilities.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
* Defines the capabilities of the Language Server
* @module Capabilities
*/
import { ClientCapabilities } from "vscode-languageserver";
export class Capabilities {
hasConfigurationCapability: boolean;
hasWorkspaceFolderCapability: boolean;
hasDiagnosticRelatedInformationCapability: boolean;
hasDocumentSemanticTokensCapability: boolean;
constructor() {
this.hasConfigurationCapability = false;
this.hasWorkspaceFolderCapability = false;
this.hasDiagnosticRelatedInformationCapability = false;
this.hasDocumentSemanticTokensCapability = true;
}
initialize(capabilities: ClientCapabilities) {
// Does the client support the `workspace/configuration` request?
// If not, we will fall back using global settings
this.hasConfigurationCapability = !!(capabilities.workspace?.configuration);
this.hasWorkspaceFolderCapability = !!(capabilities.workspace?.workspaceFolders);
this.hasDiagnosticRelatedInformationCapability = !!(capabilities.textDocument?.publishDiagnostics?.relatedInformation);
this.hasDocumentSemanticTokensCapability = !!(capabilities.textDocument?.semanticTokens);
}
}