diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2020-12-07 21:46:39 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-07 21:46:39 +1100 |
commit | 301d3e4b6849d24154ac2d65c00a9b30223d000e (patch) | |
tree | ab3bc074493e6c9be8d1875233bc141bdc0da3b4 /cli/lsp/capabilities.rs | |
parent | c8e9b2654ec0d54c77bb3f49fa31c3986203d517 (diff) |
feat: add mvp language server (#8515)
Resolves #8400
Diffstat (limited to 'cli/lsp/capabilities.rs')
-rw-r--r-- | cli/lsp/capabilities.rs | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/cli/lsp/capabilities.rs b/cli/lsp/capabilities.rs new file mode 100644 index 000000000..cf8f150ca --- /dev/null +++ b/cli/lsp/capabilities.rs @@ -0,0 +1,59 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. + +///! +///! Provides information about what capabilities that are supported by the +///! language server, which helps determine what messages are sent from the +///! client. +///! +use lsp_types::ClientCapabilities; +use lsp_types::HoverProviderCapability; +use lsp_types::OneOf; +use lsp_types::SaveOptions; +use lsp_types::ServerCapabilities; +use lsp_types::TextDocumentSyncCapability; +use lsp_types::TextDocumentSyncKind; +use lsp_types::TextDocumentSyncOptions; + +pub fn server_capabilities( + _client_capabilities: &ClientCapabilities, +) -> ServerCapabilities { + ServerCapabilities { + text_document_sync: Some(TextDocumentSyncCapability::Options( + TextDocumentSyncOptions { + open_close: Some(true), + change: Some(TextDocumentSyncKind::Incremental), + will_save: None, + will_save_wait_until: None, + save: Some(SaveOptions::default().into()), + }, + )), + hover_provider: Some(HoverProviderCapability::Simple(true)), + completion_provider: None, + signature_help_provider: None, + declaration_provider: None, + definition_provider: Some(OneOf::Left(true)), + type_definition_provider: None, + implementation_provider: None, + references_provider: Some(OneOf::Left(true)), + document_highlight_provider: Some(OneOf::Left(true)), + document_symbol_provider: None, + workspace_symbol_provider: None, + code_action_provider: None, + code_lens_provider: None, + document_formatting_provider: Some(OneOf::Left(true)), + document_range_formatting_provider: None, + document_on_type_formatting_provider: None, + selection_range_provider: None, + semantic_highlighting: None, + folding_range_provider: None, + rename_provider: None, + document_link_provider: None, + color_provider: None, + execute_command_provider: None, + workspace: None, + call_hierarchy_provider: None, + semantic_tokens_provider: None, + on_type_rename_provider: None, + experimental: None, + } +} |