Fix #2497 - ALE should not lint on save when disabled after fixing

This commit is contained in:
w0rp 2019-05-13 13:44:29 +01:00
parent bf17bbf898
commit 42cbff29f8
No known key found for this signature in database
GPG key ID: 0FC1ECAA8C81CD83
3 changed files with 51 additions and 2 deletions

View file

@ -42,6 +42,7 @@ function! ale#fix#ApplyQueuedFixes() abort
if l:data.should_save
let l:should_lint = g:ale_fix_on_save
\ && ale#Var(l:buffer, 'lint_on_save')
else
let l:should_lint = l:data.changes_made
endif

View file

@ -8,6 +8,7 @@ Before:
silent! cd /testplugin/test/fix
unlet! b:ale_lint_on_save
let g:ale_enabled = 0
let g:ale_echo_cursor = 0
let g:ale_run_synchronously = 1
@ -191,6 +192,7 @@ After:
unlet! g:ale_run_synchronously_callbacks
unlet! g:ale_emulate_job_failure
unlet! b:ale_fixers
unlet! b:ale_lint_on_save
unlet! b:ale_fix_on_save
unlet! b:ale_quitting
delfunction AddCarets
@ -631,6 +633,52 @@ Expect(The buffer should be the same):
b
c
Execute(ALEFix should not lint the buffer on save if linting on save is disabled globally):
let g:ale_fix_on_save = 1
let g:ale_lint_on_save = 0
let g:ale_enabled = 1
let g:test_filename = tempname()
execute 'noautocmd silent file ' . fnameescape(g:test_filename)
let g:ale_fixers.testft = ['DoNothing']
call SetUpLinters()
call ale#events#SaveEvent(bufnr(''))
call ale#test#FlushJobs()
Assert !filereadable(g:test_filename), 'The file should not have been saved'
AssertEqual [], ale#test#GetLoclistWithoutModule()
Expect(The buffer should be the same):
a
b
c
Execute(ALEFix should not lint the buffer on save if linting on save is disabled locally):
let g:ale_fix_on_save = 1
let b:ale_lint_on_save = 0
let g:ale_enabled = 1
let g:test_filename = tempname()
execute 'noautocmd silent file ' . fnameescape(g:test_filename)
let g:ale_fixers.testft = ['DoNothing']
call SetUpLinters()
call ale#events#SaveEvent(bufnr(''))
call ale#test#FlushJobs()
Assert !filereadable(g:test_filename), 'The file should not have been saved'
AssertEqual [], ale#test#GetLoclistWithoutModule()
Expect(The buffer should be the same):
a
b
c
Given testft (A file with three lines):
a
b

View file

@ -86,7 +86,7 @@ Execute(No linting should be for :w after :q fails):
AssertEqual 1, len(ale#test#GetLoclistWithoutModule())
Execute(No linting should be done on :wq or :x after fixing files):
let g:ale_lint_on_save = 0
let g:ale_lint_on_save = 1
let g:ale_fix_on_save = 1
call ale#events#SaveEvent(bufnr(''))
@ -103,7 +103,7 @@ Execute(No linting should be done on :wq or :x after fixing files):
AssertEqual [], ale#test#GetLoclistWithoutModule()
Execute(Linting should be done after :q fails and fixing files):
let g:ale_lint_on_save = 0
let g:ale_lint_on_save = 1
let g:ale_fix_on_save = 1
call ale#events#QuitEvent(bufnr(''))