summaryrefslogtreecommitdiff
path: root/cli/lsp/capabilities.rs
diff options
context:
space:
mode:
authorJean Pierre <jeanp413@hotmail.com>2021-04-19 20:26:36 -0500
committerGitHub <noreply@github.com>2021-04-20 11:26:36 +1000
commit6d404ec54bab00d9f86c8d69a70dd94e5ab83434 (patch)
tree5c1d99cc17da1134b9fb728ff8e9689e00a1694c /cli/lsp/capabilities.rs
parentb6203cb4657f8269bf80b135b3c49fb9304895c1 (diff)
feat(lsp): Implement textDocument/semanticTokens/full (#10233)
Co-authored-by: Kitson Kelly <me@kitsonkelly.com>
Diffstat (limited to 'cli/lsp/capabilities.rs')
-rw-r--r--cli/lsp/capabilities.rs16
1 files changed, 15 insertions, 1 deletions
diff --git a/cli/lsp/capabilities.rs b/cli/lsp/capabilities.rs
index cce349a5d..f0312cc6d 100644
--- a/cli/lsp/capabilities.rs
+++ b/cli/lsp/capabilities.rs
@@ -18,6 +18,9 @@ use lspower::lsp::ImplementationProviderCapability;
use lspower::lsp::OneOf;
use lspower::lsp::SaveOptions;
use lspower::lsp::SelectionRangeProviderCapability;
+use lspower::lsp::SemanticTokensFullOptions;
+use lspower::lsp::SemanticTokensOptions;
+use lspower::lsp::SemanticTokensServerCapabilities;
use lspower::lsp::ServerCapabilities;
use lspower::lsp::SignatureHelpOptions;
use lspower::lsp::TextDocumentSyncCapability;
@@ -25,6 +28,8 @@ use lspower::lsp::TextDocumentSyncKind;
use lspower::lsp::TextDocumentSyncOptions;
use lspower::lsp::WorkDoneProgressOptions;
+use super::semantic_tokens::get_legend;
+
fn code_action_capabilities(
client_capabilities: &ClientCapabilities,
) -> CodeActionProviderCapability {
@@ -116,7 +121,16 @@ pub fn server_capabilities(
color_provider: None,
execute_command_provider: None,
call_hierarchy_provider: Some(CallHierarchyServerCapability::Simple(true)),
- semantic_tokens_provider: None,
+ semantic_tokens_provider: Some(
+ SemanticTokensServerCapabilities::SemanticTokensOptions(
+ SemanticTokensOptions {
+ legend: get_legend(),
+ range: Some(true),
+ full: Some(SemanticTokensFullOptions::Bool(true)),
+ ..Default::default()
+ },
+ ),
+ ),
workspace: None,
experimental: None,
linked_editing_range_provider: None,