summaryrefslogtreecommitdiff
path: root/test/test_alelint_autocmd.vader
diff options
context:
space:
mode:
authorMartin Tournoij <martin@arp242.net>2017-12-07 15:26:20 +0000
committerMartin Tournoij <martin@arp242.net>2017-12-07 16:14:20 +0000
commitd6bf13502ad7a018a739b82bc068d299aacc5d26 (patch)
treebfffd7cb039527e17cbdf85f9d466799c0df698b /test/test_alelint_autocmd.vader
parente2a8f759d870ed7a1f0ee4698a73b65e9f36e54d (diff)
downloadale-d6bf13502ad7a018a739b82bc068d299aacc5d26.zip
Add ALEStartLint autocmd
This grew out of my work in #1193; to ensure the statusline was being updated I had to add: fun! s:redraw(timer) redrawstatus endfun augroup ALEProgress autocmd! autocmd BufWritePost * call timer_start(100, function('s:redraw')) autocmd User ALELint redrawstatus augroup end Which kind of works, but is ugly. With this, I can replace the `BufWritePost` with: autocmd User ALEStartLint redrawstatus Which is much better, IMHO. Actually, this patch actually replaces adding a function, since you can do: augroup ALEProgress autocmd! autocmd User ALEStartLint hi Statusline ctermfg=darkgrey autocmd User ALELint hi Statusline ctermfg=NONE augroup end or: let s:ale_running = 0 let l:stl .= '%{s:ale_running ? "[linting]" : ""}' augroup ALEProgress autocmd! autocmd User ALEStartLint let s:ale_running = 1 | redrawstatus autocmd User ALELint let s:ale_running = 0 | redrawstatus augroup end Both seem to work very well in my testing. No need to `ale#Statusline#IsRunning()` anymore, I think?
Diffstat (limited to 'test/test_alelint_autocmd.vader')
-rw-r--r--test/test_alelint_autocmd.vader25
1 files changed, 24 insertions, 1 deletions
diff --git a/test/test_alelint_autocmd.vader b/test/test_alelint_autocmd.vader
index 4503005b..bf96abfb 100644
--- a/test/test_alelint_autocmd.vader
+++ b/test/test_alelint_autocmd.vader
@@ -1,18 +1,41 @@
Before:
+ let g:start = 0
let g:success = 0
let g:ale_run_synchronously = 1
+ function! TestCallback(buffer, output)
+ return [{
+ \ 'lnum': 1,
+ \ 'col': 3,
+ \ 'text': 'baz boz',
+ \}]
+ endfunction
+
+ call ale#linter#Define('foobar', {
+ \ 'name': 'testlinter',
+ \ 'callback': 'TestCallback',
+ \ 'executable': has('win32') ? 'cmd' : 'true',
+ \ 'command': has('win32') ? 'echo' : 'true',
+ \})
+ "let g:ale_linters = {'foobar': ['lint_file_linter']}
+
After:
let g:ale_run_synchronously = 0
let g:ale_buffer_info = {}
+ let g:ale_linters = {}
+ call ale#linter#Reset()
+ delfunction TestCallback
augroup! VaderTest
Execute (Run a lint cycle, and check that a variable is set in the autocmd):
+ set filetype=foobar
augroup VaderTest
autocmd!
- autocmd User ALELint let g:success = 1
+ autocmd User ALEStartLint let g:start = 1
+ autocmd User ALELint let g:success = 1
augroup end
call ale#Lint()
+ AssertEqual g:start, 1
AssertEqual g:success, 1