From ab3fd2e849ba74e48987fe64a622d7734dd7624c Mon Sep 17 00:00:00 2001 From: w0rp Date: Mon, 27 Mar 2017 22:40:25 +0100 Subject: [PATCH] Fix #130 - Run linters when the filetype is changed --- doc/ale.txt | 11 +++++++++++ plugin/ale.vim | 10 ++++++++++ test/test_ale_toggle.vader | 1 + 3 files changed, 22 insertions(+) diff --git a/doc/ale.txt b/doc/ale.txt index 932b520..8a9ec47 100644 --- a/doc/ale.txt +++ b/doc/ale.txt @@ -276,6 +276,17 @@ g:ale_lint_on_enter *g:ale_lint_on_enter* behaviour. +g:ale_lint_on_filetype_changed *g:ale_lint_on_filetype_changed* + + Type: |Number| + Default: `1` + + This option will cause ALE to run whenever the filetype is changed. A short + delay will be used before linting will be done, so the filetype can be + changed quickly several times in a row, but resulting in only one lint + cycle. + + g:ale_lint_on_save *g:ale_lint_on_save* Type: |Number| diff --git a/plugin/ale.vim b/plugin/ale.vim index 2e59389..aadecb6 100644 --- a/plugin/ale.vim +++ b/plugin/ale.vim @@ -78,6 +78,9 @@ let g:ale_lint_on_enter = get(g:, 'ale_lint_on_enter', 1) " This flag can be set to 1 to enable linting when a buffer is written. let g:ale_lint_on_save = get(g:, 'ale_lint_on_save', 1) +" This flag can be set to 1 to enable linting when the filetype is changed. +let g:ale_lint_on_filetype_changed = get(g:, 'ale_lint_on_filetype_changed', 1) + " This flag may be set to 0 to disable ale. After ale is loaded, :ALEToggle " should be used instead. let g:ale_enabled = get(g:, 'ale_enabled', 1) @@ -161,6 +164,13 @@ function! s:ALEInitAuGroups() abort endif augroup END + augroup ALERunOnFiletypeChangeGroup + autocmd! + if g:ale_enabled && g:ale_lint_on_filetype_changed + autocmd FileType * call ale#Queue(300, 'lint_file') + endif + augroup END + augroup ALERunOnSaveGroup autocmd! if g:ale_enabled && g:ale_lint_on_save diff --git a/test/test_ale_toggle.vader b/test/test_ale_toggle.vader index e623a08..cbb3185 100644 --- a/test/test_ale_toggle.vader +++ b/test/test_ale_toggle.vader @@ -15,6 +15,7 @@ Before: \ 'ALECursorGroup', \ 'ALEHighlightBufferGroup', \ 'ALERunOnEnterGroup', + \ 'ALERunOnFiletypeChangeGroup', \ 'ALERunOnSaveGroup', \ 'ALERunOnTextChangedGroup', \]