blob: c44cf94b605e8b363073997fb1c045aaa117266a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
" Split a comma-separated option value into parts, accounting for escaped
" commas and leading whitespace as Vim itself does internally
"
function! option#Split(expr, ...) abort
if a:0 > 1
echoerr 'Too many arguments'
endif
let keepempty = a:0 ? a:1 : 0
let parts = split(a:expr, '\\\@<!,[, ]*', keepempty)
return map(parts, 'substitute(v:val, ''\\,'', '','', ''g'')')
endfunction
" Escape the right-hand side of a :set option value
"
function! option#Escape(expr) abort
return escape(a:expr, ' |"\')
endfunction
|