From 36f9631512fe164ae115c4a216d3cddbf81e6daa Mon Sep 17 00:00:00 2001 From: taylorskalyo Date: Thu, 30 Mar 2017 18:21:37 -0400 Subject: Add options to facilitate linting only in normal mode (#425) * [#420] Add options to facilitate linting only in normal mode ale_lint_on_text_changed: Allow setting to 'insert' or 'normal' to lint when text is changed only in insert or normal mode respectively. ale_lint_on_insert_leave: This flag can be set to 1 to enable linting when leaving insert mode. * [#420] Test updated global options Ale should - bind to TextChanged events when g:ale_lint_on_text_changed = 1 - bind to TextChanged events when g:ale_lint_on_text_changed = 'always' - bind to InsertLeave event when g:ale_lint_on_insert_leave = 1 --- test/test_ale_init_au_groups.vader | 66 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 test/test_ale_init_au_groups.vader (limited to 'test/test_ale_init_au_groups.vader') diff --git a/test/test_ale_init_au_groups.vader b/test/test_ale_init_au_groups.vader new file mode 100644 index 00000000..bcefabe1 --- /dev/null +++ b/test/test_ale_init_au_groups.vader @@ -0,0 +1,66 @@ +Before: + Save g:ale_lint_on_text_changed + Save g:ale_lint_on_insert_leave + autocmd! + +After: + Restore g:ale_lint_on_text_changed + Restore g:ale_lint_on_insert_leave + unlet! g:output + unlet! g:expected_autocmd + autocmd! + +Execute (ALE should bind to TextChanged events when g:ale_lint_on_text_changed = 1): + let g:expected_autocmd = join([ + \ '', + \ '--- Auto-Commands ---', + \ 'ALERunOnTextChangedGroup TextChanged', + \ ' * call ale#Queue(g:ale_lint_delay)', + \ 'ALERunOnTextChangedGroup TextChangedI', + \ ' * call ale#Queue(g:ale_lint_delay)', + \], "\n") + + let g:ale_lint_on_text_changed = 1 + call ALEInitAuGroups() + + redir => g:output + autocmd ALERunOnTextChangedGroup TextChanged,TextChangedI * + redir END + + AssertEqual g:expected_autocmd, g:output + +Execute (ALE should bind to TextChanged events when g:ale_lint_on_text_changed = 'always'): + let g:expected_autocmd = join([ + \ '', + \ '--- Auto-Commands ---', + \ 'ALERunOnTextChangedGroup TextChanged', + \ ' * call ale#Queue(g:ale_lint_delay)', + \ 'ALERunOnTextChangedGroup TextChangedI', + \ ' * call ale#Queue(g:ale_lint_delay)', + \], "\n") + + let g:ale_lint_on_text_changed = 'always' + call ALEInitAuGroups() + + redir => g:output + autocmd ALERunOnTextChangedGroup TextChanged,TextChangedI * + redir END + + AssertEqual g:expected_autocmd, g:output + +Execute (ALE should bind to InsertLeave event when g:ale_lint_on_insert_leave = 1): + let g:expected_autocmd = join([ + \ "", + \ "--- Auto-Commands ---", + \ "ALERunOnInsertLeave InsertLeave", + \ " * call ale#Queue(0, 'lint_file')", + \], "\n") + + let g:ale_lint_on_insert_leave = 1 + call ALEInitAuGroups() + + redir => g:output + autocmd ALERunOnInsertLeave InsertLeave * + redir END + + AssertEqual g:expected_autocmd, g:output -- cgit v1.2.3