forked from VimPlug/emmet-vim
fix merge configuration
This commit is contained in:
+41
-26
@@ -126,37 +126,52 @@ endfunction
|
|||||||
|
|
||||||
function! emmet#mergeConfig(lhs, rhs) abort
|
function! emmet#mergeConfig(lhs, rhs) abort
|
||||||
let [lhs, rhs] = [a:lhs, a:rhs]
|
let [lhs, rhs] = [a:lhs, a:rhs]
|
||||||
if type(lhs) ==# 3 && type(rhs) ==# 3
|
if type(lhs) ==# 3
|
||||||
let lhs += rhs
|
if type(rhs) ==# 3
|
||||||
if len(lhs)
|
let lhs += rhs
|
||||||
call remove(lhs, 0, len(lhs)-1)
|
if len(lhs)
|
||||||
|
call remove(lhs, 0, len(lhs)-1)
|
||||||
|
endif
|
||||||
|
for rhi in rhs
|
||||||
|
call add(lhs, rhs[rhi])
|
||||||
|
endfor
|
||||||
|
elseif type(rhs) ==# 4
|
||||||
|
let lhs += map(keys(rhs), '{v:val : rhs[v:val]}')
|
||||||
endif
|
endif
|
||||||
for rhi in rhs
|
elseif type(lhs) ==# 4
|
||||||
call add(lhs, rhs[rhi])
|
if type(rhs) ==# 3
|
||||||
endfor
|
for V in rhs
|
||||||
elseif type(lhs) ==# 4 && type(rhs) ==# 4
|
if type(V) != 4
|
||||||
for key in keys(rhs)
|
continue
|
||||||
if type(rhs[key]) ==# 3
|
|
||||||
if !has_key(lhs, key)
|
|
||||||
let lhs[key] = []
|
|
||||||
endif
|
endif
|
||||||
if type(lhs[key]) == 3
|
for VV in keys(V)
|
||||||
let lhs[key] += rhs[key]
|
let lhs[VV] = V[VV]
|
||||||
elseif type(lhs[key]) == 4
|
endfor
|
||||||
for k in keys(rhs[key])
|
endfor
|
||||||
let lhs[key][k] = rhs[key][k]
|
elseif type(rhs) ==# 4
|
||||||
endfor
|
for key in keys(rhs)
|
||||||
endif
|
if type(rhs[key]) ==# 3
|
||||||
elseif type(rhs[key]) ==# 4
|
if !has_key(lhs, key)
|
||||||
if has_key(lhs, key)
|
let lhs[key] = []
|
||||||
call emmet#mergeConfig(lhs[key], rhs[key])
|
endif
|
||||||
|
if type(lhs[key]) == 3
|
||||||
|
let lhs[key] += rhs[key]
|
||||||
|
elseif type(lhs[key]) == 4
|
||||||
|
for k in keys(rhs[key])
|
||||||
|
let lhs[key][k] = rhs[key][k]
|
||||||
|
endfor
|
||||||
|
endif
|
||||||
|
elseif type(rhs[key]) ==# 4
|
||||||
|
if has_key(lhs, key)
|
||||||
|
call emmet#mergeConfig(lhs[key], rhs[key])
|
||||||
|
else
|
||||||
|
let lhs[key] = rhs[key]
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
let lhs[key] = rhs[key]
|
let lhs[key] = rhs[key]
|
||||||
endif
|
endif
|
||||||
else
|
endfor
|
||||||
let lhs[key] = rhs[key]
|
endif
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user