summaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
Diffstat (limited to 'autoload')
-rw-r--r--autoload/ale/lsp.vim64
-rw-r--r--autoload/ale/lsp/message.vim7
2 files changed, 66 insertions, 5 deletions
diff --git a/autoload/ale/lsp.vim b/autoload/ale/lsp.vim
index 986e4c1b..017096cd 100644
--- a/autoload/ale/lsp.vim
+++ b/autoload/ale/lsp.vim
@@ -321,7 +321,69 @@ endfunction
function! s:SendInitMessage(conn) abort
let [l:init_id, l:init_data] = ale#lsp#CreateMessageData(
- \ ale#lsp#message#Initialize(a:conn.root, a:conn.init_options),
+ \ ale#lsp#message#Initialize(
+ \ a:conn.root,
+ \ a:conn.init_options,
+ \ {
+ \ 'workspace': {
+ \ 'applyEdit': v:false,
+ \ 'didChangeConfiguration': {
+ \ 'dynamicRegistration': v:false,
+ \ },
+ \ 'symbol': {
+ \ 'dynamicRegistration': v:false,
+ \ },
+ \ 'workspaceFolders': v:false,
+ \ 'configuration': v:false,
+ \ },
+ \ 'textDocument': {
+ \ 'synchronization': {
+ \ 'dynamicRegistration': v:false,
+ \ 'willSave': v:false,
+ \ 'willSaveWaitUntil': v:false,
+ \ 'didSave': v:true,
+ \ },
+ \ 'completion': {
+ \ 'dynamicRegistration': v:false,
+ \ 'completionItem': {
+ \ 'snippetSupport': v:false,
+ \ 'commitCharactersSupport': v:false,
+ \ 'documentationFormat': ['plaintext'],
+ \ 'deprecatedSupport': v:false,
+ \ 'preselectSupport': v:false,
+ \ },
+ \ 'contextSupport': v:false,
+ \ },
+ \ 'hover': {
+ \ 'dynamicRegistration': v:false,
+ \ 'contentFormat': ['plaintext'],
+ \ },
+ \ 'references': {
+ \ 'dynamicRegistration': v:false,
+ \ },
+ \ 'documentSymbol': {
+ \ 'dynamicRegistration': v:false,
+ \ 'hierarchicalDocumentSymbolSupport': v:false,
+ \ },
+ \ 'definition': {
+ \ 'dynamicRegistration': v:false,
+ \ 'linkSupport': v:false,
+ \ },
+ \ 'typeDefinition': {
+ \ 'dynamicRegistration': v:false,
+ \ },
+ \ 'publishDiagnostics': {
+ \ 'relatedInformation': v:true,
+ \ },
+ \ 'codeAction': {
+ \ 'dynamicRegistration': v:false,
+ \ },
+ \ 'rename': {
+ \ 'dynamicRegistration': v:false,
+ \ },
+ \ },
+ \ },
+ \ ),
\)
let a:conn.init_request_id = l:init_id
call s:SendMessageData(a:conn, l:init_data)
diff --git a/autoload/ale/lsp/message.vim b/autoload/ale/lsp/message.vim
index 4ad94c4b..b6b14a22 100644
--- a/autoload/ale/lsp/message.vim
+++ b/autoload/ale/lsp/message.vim
@@ -28,14 +28,13 @@ function! ale#lsp#message#GetNextVersionID() abort
return l:id
endfunction
-function! ale#lsp#message#Initialize(root_path, initialization_options) abort
- " TODO: Define needed capabilities.
+function! ale#lsp#message#Initialize(root_path, options, capabilities) abort
" NOTE: rootPath is deprecated in favour of rootUri
return [0, 'initialize', {
\ 'processId': getpid(),
\ 'rootPath': a:root_path,
- \ 'capabilities': {},
- \ 'initializationOptions': a:initialization_options,
+ \ 'capabilities': a:capabilities,
+ \ 'initializationOptions': a:options,
\ 'rootUri': ale#path#ToURI(a:root_path),
\}]
endfunction