mirror of
https://github.com/airblade/vim-gitgutter.git
synced 2025-11-08 11:33:48 -05:00
Simplify getting and setting buffer variables
This also avoids the getbufvar(bufnr, '') pattern which is subject to a Vim bug in certain versions. Closes #691.
This commit is contained in:
@@ -9,25 +9,18 @@ endfunction
|
|||||||
function! gitgutter#utility#setbufvar(buffer, varname, val)
|
function! gitgutter#utility#setbufvar(buffer, varname, val)
|
||||||
let buffer = +a:buffer
|
let buffer = +a:buffer
|
||||||
" Default value for getbufvar() was introduced in Vim 7.3.831.
|
" Default value for getbufvar() was introduced in Vim 7.3.831.
|
||||||
let bvars = getbufvar(buffer, '')
|
let ggvars = getbufvar(buffer, 'gitgutter')
|
||||||
if empty(bvars)
|
if type(ggvars) == type('')
|
||||||
let bvars = {}
|
let ggvars = {}
|
||||||
endif
|
call setbufvar(buffer, 'gitgutter', ggvars)
|
||||||
let dict = get(bvars, 'gitgutter', {})
|
|
||||||
let needs_setting = empty(dict)
|
|
||||||
let dict[a:varname] = a:val
|
|
||||||
if needs_setting
|
|
||||||
call setbufvar(buffer, 'gitgutter', dict)
|
|
||||||
endif
|
endif
|
||||||
|
let ggvars[a:varname] = a:val
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! gitgutter#utility#getbufvar(buffer, varname, ...)
|
function! gitgutter#utility#getbufvar(buffer, varname, ...)
|
||||||
let bvars = getbufvar(a:buffer, '')
|
let ggvars = getbufvar(a:buffer, 'gitgutter')
|
||||||
if !empty(bvars)
|
if type(ggvars) == type({}) && has_key(ggvars, a:varname)
|
||||||
let dict = get(bvars, 'gitgutter', {})
|
return ggvars[a:varname]
|
||||||
if has_key(dict, a:varname)
|
|
||||||
return dict[a:varname]
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
if a:0
|
if a:0
|
||||||
return a:1
|
return a:1
|
||||||
|
|||||||
Reference in New Issue
Block a user