summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-04-27 00:07:41 +0100
committerw0rp <devw0rp@gmail.com>2017-04-27 00:07:41 +0100
commit6853d2c304e5eae22393208f91b0d072d2f22d74 (patch)
treeefe8396a63cd9c67e71f713f7711567aaffd1474
parentb25dbd6ea5725591b32f6b4379dd4993b454e523 (diff)
downloadale-6853d2c304e5eae22393208f91b0d072d2f22d74.zip
#427 - Output buffer-local variables with :ALEInfo
-rw-r--r--autoload/ale/debugging.vim8
-rw-r--r--test/test_ale_info.vader42
2 files changed, 50 insertions, 0 deletions
diff --git a/autoload/ale/debugging.vim b/autoload/ale/debugging.vim
index 60c1b37c..f42c9e82 100644
--- a/autoload/ale/debugging.vim
+++ b/autoload/ale/debugging.vim
@@ -51,12 +51,20 @@ endfunction
function! s:EchoLinterVariables(variable_list) abort
for l:key in a:variable_list
echom 'let g:' . l:key . ' = ' . string(g:[l:key])
+
+ if has_key(b:, l:key)
+ echom 'let b:' . l:key . ' = ' . string(b:[l:key])
+ endif
endfor
endfunction
function! s:EchoGlobalVariables() abort
for l:key in s:global_variable_list
echom 'let g:' . l:key . ' = ' . string(get(g:, l:key, v:null))
+
+ if has_key(b:, l:key)
+ echom 'let b:' . l:key . ' = ' . string(b:[l:key])
+ endif
endfor
endfunction
diff --git a/test/test_ale_info.vader b/test/test_ale_info.vader
index d5a8ed62..83d32cb0 100644
--- a/test/test_ale_info.vader
+++ b/test/test_ale_info.vader
@@ -37,6 +37,7 @@ Before:
let g:command_header = "\n Command History:\n"
After:
+ unlet! b:ale_linters
unlet! g:output
unlet! g:globals_string
unlet! g:command_header
@@ -45,6 +46,7 @@ After:
unlet! g:ale_testft_testlinter1_foo
unlet! g:ale_testft_testlinter1_bar
unlet! g:ale_testft2_testlinter2_foo
+ unlet! b:ale_testft2_testlinter2_foo
unlet! g:ale_testft2_testlinter2_bar
Given nolintersft (Empty buffer with no linters):
@@ -60,6 +62,26 @@ Execute (ALEInfo with no linters should return the right output):
\" . g:globals_string . g:command_header, g:output
Given (Empty buffer with no filetype):
+Execute (ALEInfo should return buffer-local global ALE settings):
+ let b:ale_linters = {'x': ['y']}
+ let g:globals_string = substitute(
+ \ g:globals_string,
+ \ 'let g:ale_linters = {}',
+ \ "let g:ale_linters = {}\nlet b:ale_linters = {'x': ['y']}",
+ \ ''
+ \)
+
+ redir => g:output
+ silent ALEInfo
+ redir END
+ AssertEqual "\n
+ \ Current Filetype: \n
+ \Available Linters: []\n
+ \ Enabled Linters: []\n
+ \ Linter Variables:\n
+ \" . g:globals_string . g:command_header, g:output
+
+Given (Empty buffer with no filetype):
Execute (ALEInfo with no filetype should return the right output):
redir => g:output
silent ALEInfo
@@ -167,6 +189,26 @@ Execute (ALEInfo should return appropriately named global variables):
\ . g:globals_string . g:command_header, g:output
Given testft.testft2 (Empty buffer with two filetypes):
+Execute (ALEInfo should buffer-local linter variables):
+ let g:ale_testft2_testlinter2_foo = 123
+ let b:ale_testft2_testlinter2_foo = 456
+
+ call ale#linter#Define('testft', g:testlinter1)
+ call ale#linter#Define('testft2', g:testlinter2)
+ redir => g:output
+ silent ALEInfo
+ redir END
+ AssertEqual "\n
+ \ Current Filetype: testft.testft2\n
+ \Available Linters: ['testlinter1', 'testlinter2']\n
+ \ Enabled Linters: ['testlinter1', 'testlinter2']\n
+ \ Linter Variables:\n
+ \\n
+ \let g:ale_testft2_testlinter2_foo = 123\n
+ \let b:ale_testft2_testlinter2_foo = 456"
+ \ . g:globals_string . g:command_header, g:output
+
+Given testft.testft2 (Empty buffer with two filetypes):
Execute (ALEInfo should return command history):
let g:ale_buffer_info[bufnr('%')] = {
\ 'history': [