mirror of
https://github.com/mattn/vim-lsp-settings.git
synced 2025-12-12 20:35:54 +01:00
Fix YAML
This commit is contained in:
@@ -69,7 +69,13 @@ let s:catalog_path = expand('<sfile>:h:h:h') . '/data/catalog.json'
|
||||
|
||||
function! lsp_settings#utils#load_schemas(name) abort
|
||||
let l:schemas = json_decode(join(readfile(s:catalog_path), "\n"))['schemas']
|
||||
return extend(l:schemas, lsp_settings#get(a:name, 'schemas', []))
|
||||
let l:result = {}
|
||||
for l:v in extend(l:schemas, lsp_settings#get(a:name, 'schemas', []))
|
||||
if has_key(l:v, 'fileMatch')
|
||||
let l:result[l:v['url']] = l:v['fileMatch']
|
||||
endif
|
||||
endfor
|
||||
return l:result
|
||||
endfunction
|
||||
|
||||
function! lsp_settings#utils#term_start(cmd, options) abort
|
||||
|
||||
@@ -13,15 +13,15 @@ augroup vim_lsp_settings_yaml_language_server
|
||||
\ }
|
||||
augroup END
|
||||
|
||||
function! s:update_schema(url) abort
|
||||
function! s:set_schema(url) abort
|
||||
let l:name = fnamemodify(lsp#utils#get_buffer_uri(), ':t')
|
||||
let l:schema = {a:url : l:name}
|
||||
let l:config = lsp_settings#merge('yaml-language-server', 'workspace_config', {'yaml': {'format': {'enable': v:true}, 'schemas': [l:schema] + lsp_settings#utils#load_schemas('yaml-language-server')}})
|
||||
let l:config = lsp_settings#merge('yaml-language-server', 'workspace_config', {'yaml': {'format': {'enable': v:true}, 'schemas': l:schema}})
|
||||
call lsp#update_workspace_config('yaml-language-server', l:config)
|
||||
endfunction
|
||||
|
||||
function! s:on_lsp_buffer_enabled() abort
|
||||
command! -buffer -nargs=1 LspYamlSchema call <SID>update_schema(<q-args>)
|
||||
command! -buffer -nargs=1 LspYamlSetSchema call <SID>set_schema(<q-args>)
|
||||
endfunction
|
||||
|
||||
augroup lsp_install_yaml
|
||||
|
||||
Reference in New Issue
Block a user