From 614a30a508bc324b9349cd1814964fb93146bee8 Mon Sep 17 00:00:00 2001 From: w0rp Date: Mon, 31 Oct 2016 14:47:08 +0000 Subject: [PATCH] Improve file blacklisting to make Unite.vim not fuck up. --- autoload/ale.vim | 10 ++++++++++ autoload/ale/cursor.vim | 5 +++++ plugin/ale.vim | 19 +++++-------------- test/test_linting_blacklist.vader | 11 +++++++++++ 4 files changed, 31 insertions(+), 14 deletions(-) create mode 100644 test/test_linting_blacklist.vader diff --git a/autoload/ale.vim b/autoload/ale.vim index 96588e59..a5251f64 100644 --- a/autoload/ale.vim +++ b/autoload/ale.vim @@ -5,6 +5,11 @@ let s:lint_timer = -1 function! ale#Queue(delay) abort + " Do nothing for blacklisted files. + if index(g:ale_filetype_blacklist, &filetype) >= 0 + return + endif + if s:lint_timer != -1 call timer_stop(s:lint_timer) let s:lint_timer = -1 @@ -24,6 +29,11 @@ function! ale#Queue(delay) abort endfunction function! ale#Lint(...) abort + " Do nothing for blacklisted files. + if index(g:ale_filetype_blacklist, &filetype) >= 0 + return + endif + let l:buffer = bufnr('%') let l:linters = ale#linter#Get(&filetype) diff --git a/autoload/ale/cursor.vim b/autoload/ale/cursor.vim index ebac5ab0..864f6f28 100644 --- a/autoload/ale/cursor.vim +++ b/autoload/ale/cursor.vim @@ -73,6 +73,11 @@ let s:cursor_timer = -1 let s:last_pos = [0, 0, 0] function! ale#cursor#EchoCursorWarningWithDelay() abort + " Do nothing for blacklisted files. + if index(g:ale_filetype_blacklist, &filetype) >= 0 + return + endif + if s:cursor_timer != -1 call timer_stop(s:cursor_timer) let s:cursor_timer = -1 diff --git a/plugin/ale.vim b/plugin/ale.vim index 20adae63..0ed1360f 100644 --- a/plugin/ale.vim +++ b/plugin/ale.vim @@ -33,15 +33,6 @@ let g:ale_buffer_info = {} " filetypes which can cause issues. let g:ale_filetype_blacklist = ['nerdtree', 'unite'] -" This function lets you define autocmd commands which blacklist particular -" filetypes. -function! ALEAutoCMD(events, function_call) - execute 'autocmd ' - \ . a:events - \ ' * if index(g:ale_filetype_blacklist, &filetype) < 0 | call ' - \ . a:function_call -endfunction - " This Dictionary configures which linters are enabled for which languages. let g:ale_linters = get(g:, 'ale_linters', {}) @@ -59,7 +50,7 @@ let g:ale_lint_on_text_changed = get(g:, 'ale_lint_on_text_changed', 1) if g:ale_lint_on_text_changed augroup ALERunOnTextChangedGroup autocmd! - call ALEAutoCMD('TextChanged,TextChangedI', 'ale#Queue(g:ale_lint_delay)') + autocmd TextChanged,TextChangedI * call ale#Queue(g:ale_lint_delay) augroup END endif @@ -68,7 +59,7 @@ let g:ale_lint_on_enter = get(g:, 'ale_lint_on_enter', 1) if g:ale_lint_on_enter augroup ALERunOnEnterGroup autocmd! - call ALEAutoCMD('BufEnter,BufRead', 'ale#Queue(300)') + autocmd BufEnter,BufRead * call ale#Queue(300) augroup END endif @@ -77,7 +68,7 @@ let g:ale_lint_on_save = get(g:, 'ale_lint_on_save', 0) if g:ale_lint_on_save augroup ALERunOnSaveGroup autocmd! - call ALEAutoCMD('BufWrite', 'ale#Queue(0)') + autocmd BufWrite * call ale#Queue(0) augroup END endif @@ -114,7 +105,7 @@ let g:ale_echo_cursor = get(g:, 'ale_echo_cursor', 1) if g:ale_echo_cursor augroup ALECursorGroup autocmd! - call ALEAutoCMD('CursorMoved,CursorHold', 'ale#cursor#EchoCursorWarningWithDelay()') + autocmd CursorMoved,CursorHold * call ale#cursor#EchoCursorWarningWithDelay() augroup END endif @@ -148,7 +139,7 @@ nnoremap (ale_next_wrap) :ALENextWrap augroup ALECleanupGroup autocmd! " Clean up buffers automatically when they are unloaded. - call ALEAutoCMD('BufUnload', "ale#cleanup#Buffer(expand(''))") + autocmd BufUnload * call ale#cleanup#Buffer(expand('')) augroup END " Backwards Compatibility diff --git a/test/test_linting_blacklist.vader b/test/test_linting_blacklist.vader new file mode 100644 index 00000000..918209d5 --- /dev/null +++ b/test/test_linting_blacklist.vader @@ -0,0 +1,11 @@ +Given unite (A Unite.vim file): + anything + +After: + let g:ale_buffer_info = {} + +Execute(Running ALE on a blacklisted file shouldn't change anything): + call ale#Lint() + call ale#engine#WaitForJobs(2000) + + AssertEqual {}, g:ale_buffer_info