Skip to content

Commit 6db5bd6

Browse files
hiroebeprabirshrestha
authored andcommitted
Add function to update workspace_config (#462)
1 parent 0e811a2 commit 6db5bd6

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

autoload/lsp.vim

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -842,3 +842,24 @@ endfunction
842842
function! lsp#get_buffer_first_error_line() abort
843843
return lsp#ui#vim#diagnostics#get_buffer_first_error_line()
844844
endfunction
845+
846+
function! s:merge_dict(dict_old, dict_new) abort
847+
for l:key in keys(a:dict_new)
848+
if has_key(a:dict_old, l:key) && type(a:dict_old[l:key]) == v:t_dict && type(a:dict_new[l:key]) == v:t_dict
849+
call s:merge_dict(a:dict_old[l:key], a:dict_new[l:key])
850+
else
851+
let a:dict_old[l:key] = a:dict_new[l:key]
852+
endif
853+
endfor
854+
endfunction
855+
856+
function! lsp#update_workspace_config(server_name, workspace_config) abort
857+
let l:server = s:servers[a:server_name]
858+
let l:server_info = l:server['server_info']
859+
if has_key(l:server_info, 'workspace_config')
860+
call s:merge_dict(l:server_info['workspace_config'], a:workspace_config)
861+
else
862+
let l:server_info['workspace_config'] = a:workspace_config
863+
endif
864+
call s:ensure_conf(bufnr('%'), a:server_name, function('s:Noop'))
865+
endfunction

0 commit comments

Comments
 (0)