#427 Add a function for looking up ALE variables in buffer scope, and then global scope
This commit is contained in:
parent
7682fab294
commit
e80116cee0
2 changed files with 27 additions and 0 deletions
|
@ -96,3 +96,14 @@ endfunction
|
|||
function! ale#ResetLintFileMarkers() abort
|
||||
let s:should_lint_file_for_buffer = {}
|
||||
endfunction
|
||||
|
||||
" Given a buffer number and a variable name, look for that variable in the
|
||||
" buffer scope, then in global scope. If the name does not exist in the global
|
||||
" scope, an exception will be thrown.
|
||||
"
|
||||
" Every variable name will be prefixed with 'ale_'.
|
||||
function! ale#Var(buffer, variable_name) abort
|
||||
let l:full_name = 'ale_' . a:variable_name
|
||||
|
||||
return getbufvar(a:buffer, l:full_name, g:[l:full_name])
|
||||
endfunction
|
||||
|
|
16
test/test_ale_var.vader
Normal file
16
test/test_ale_var.vader
Normal file
|
@ -0,0 +1,16 @@
|
|||
Before:
|
||||
let g:ale_some_variable = 'abc'
|
||||
|
||||
After:
|
||||
unlet! g:ale_some_variable
|
||||
|
||||
Execute(ale#Var should return global variables):
|
||||
AssertEqual 'abc', ale#Var(bufnr(''), 'some_variable')
|
||||
|
||||
Execute(ale#Var should return buffer overrides):
|
||||
let b:ale_some_variable = 'def'
|
||||
|
||||
AssertEqual 'def', ale#Var(bufnr(''), 'some_variable')
|
||||
|
||||
Execute(ale#Var should throw exceptions for undefined variables):
|
||||
AssertThrows call ale#Var(bufnr(''), 'undefined_variable_name')
|
Reference in a new issue