blob: 5bcd1512f79f6b1275a0b7e9e144cf1141254461 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
function! lsp_settings#utils#msg(msg) abort
redraw
echohl Comment
echo a:msg
echohl None
endfunction
function! lsp_settings#utils#error(msg) abort
redraw
echohl Error
echomsg a:msg
echohl None
endfunction
function! lsp_settings#utils#valid_name(command) abort
return a:command =~# '^[a-zA-Z0-9_-]\+$'
endfunction
function! lsp_settings#utils#group_name(ft) abort
return printf('vim_lsp_suggest_%s', a:ft)
endfunction
function! lsp_settings#utils#first_one(lines) abort
if empty(a:lines)
return ''
endif
let l:path = fnamemodify(split(a:lines, "\n")[0], ':p')
if has('win32')
let l:path = substitute(l:path, '/', '\', 'g')
endif
return l:path
endfunction
function! lsp_settings#utils#dotmerge(d) abort
let l:ret = {}
let l:keys = keys(a:d)
for l:k in sort(keys(a:d))
let l:new = {}
let l:cur = l:new
let l:arr = split(l:k, '\.')
for l:i in range(len(l:arr))
let l:kk = l:arr[l:i]
if type(l:cur) == v:t_dict && !has_key(l:cur, l:kk)
if l:i == len(l:arr) - 1
let l:cur[l:kk] = a:d[l:k]
break
else
let l:cur[l:kk] = {}
endif
endif
let l:cur = l:cur[l:kk]
endfor
let l:ret = extend(l:ret, l:new)
endfor
return l:ret
endfunction
|