summaryrefslogtreecommitdiff
path: root/plugin/ale.vim
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/ale.vim')
-rw-r--r--plugin/ale.vim10
1 files changed, 9 insertions, 1 deletions
diff --git a/plugin/ale.vim b/plugin/ale.vim
index b6f6f296..0e8c369f 100644
--- a/plugin/ale.vim
+++ b/plugin/ale.vim
@@ -181,7 +181,15 @@ function! ALEInitAuGroups() abort
augroup ALERunOnFiletypeChangeGroup
autocmd!
if g:ale_enabled && g:ale_lint_on_filetype_changed
- autocmd FileType * call ale#Queue(300, 'lint_file')
+ " Set the filetype after a buffer is opened or read.
+ autocmd BufEnter,BufRead * let b:ale_original_filetype = &filetype
+ " Only start linting if the FileType actually changes after
+ " opening a buffer. The FileType will fire when buffers are opened.
+ autocmd FileType *
+ \ if has_key(b:, 'ale_original_filetype')
+ \ && b:ale_original_filetype !=# expand('<amatch>')
+ \| call ale#Queue(300, 'lint_file')
+ \| endif
endif
augroup END