This commit is contained in:
Yasuhiro Matsumoto
2021-12-03 01:33:37 +09:00
parent ce48a590f6
commit 65e078604b
2 changed files with 10 additions and 4 deletions

View File

@@ -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

View File

@@ -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