mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-06 12:44:23 +08:00
Fix #1960 - Do not fix files on :wq
This commit is contained in:
@@ -29,7 +29,7 @@ function! ale#events#SaveEvent(buffer) abort
|
|||||||
call setbufvar(a:buffer, 'ale_save_event_fired', 1)
|
call setbufvar(a:buffer, 'ale_save_event_fired', 1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if ale#Var(a:buffer, 'fix_on_save')
|
if ale#Var(a:buffer, 'fix_on_save') && !ale#events#QuitRecently(a:buffer)
|
||||||
let l:will_fix = ale#fix#Fix(a:buffer, 'save_file')
|
let l:will_fix = ale#fix#Fix(a:buffer, 'save_file')
|
||||||
let l:should_lint = l:should_lint && !l:will_fix
|
let l:should_lint = l:should_lint && !l:will_fix
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1186,6 +1186,9 @@ b:ale_fix_on_save *b:ale_fix_on_save*
|
|||||||
after files are fixed, only when the buffer is open, or re-opened. Changes
|
after files are fixed, only when the buffer is open, or re-opened. Changes
|
||||||
to the file will be saved to the file on disk.
|
to the file will be saved to the file on disk.
|
||||||
|
|
||||||
|
Files will not be fixed on `:wq`, so you should check your code before
|
||||||
|
closing a buffer.
|
||||||
|
|
||||||
Fixing files can be disabled or enabled for individual buffers by setting
|
Fixing files can be disabled or enabled for individual buffers by setting
|
||||||
`b:ale_fix_on_save` to `0` or `1`.
|
`b:ale_fix_on_save` to `0` or `1`.
|
||||||
|
|
||||||
|
|||||||
@@ -180,6 +180,7 @@ After:
|
|||||||
unlet! g:ale_emulate_job_failure
|
unlet! g:ale_emulate_job_failure
|
||||||
unlet! b:ale_fixers
|
unlet! b:ale_fixers
|
||||||
unlet! b:ale_fix_on_save
|
unlet! b:ale_fix_on_save
|
||||||
|
unlet! b:ale_quitting
|
||||||
delfunction AddCarets
|
delfunction AddCarets
|
||||||
delfunction AddDollars
|
delfunction AddDollars
|
||||||
delfunction DoNothing
|
delfunction DoNothing
|
||||||
@@ -431,7 +432,7 @@ Given testft (A file with three lines):
|
|||||||
b
|
b
|
||||||
c
|
c
|
||||||
|
|
||||||
Execute(ALEFix should save files on the save event):
|
Execute(ALEFix should fix files on the save event):
|
||||||
let g:ale_fix_on_save = 1
|
let g:ale_fix_on_save = 1
|
||||||
let g:ale_lint_on_save = 1
|
let g:ale_lint_on_save = 1
|
||||||
let g:ale_enabled = 1
|
let g:ale_enabled = 1
|
||||||
@@ -471,6 +472,36 @@ Expect(The buffer should be modified):
|
|||||||
$b
|
$b
|
||||||
$c
|
$c
|
||||||
|
|
||||||
|
Execute(ALEFix should not fix files on :wq):
|
||||||
|
let g:ale_fix_on_save = 1
|
||||||
|
let g:ale_lint_on_save = 1
|
||||||
|
let g:ale_enabled = 1
|
||||||
|
|
||||||
|
noautocmd silent file fix_test_file
|
||||||
|
call writefile(getline(1, '$'), 'fix_test_file')
|
||||||
|
|
||||||
|
let g:ale_fixers.testft = ['AddDollars']
|
||||||
|
|
||||||
|
" We have to set the buftype to empty so the file will be written.
|
||||||
|
setlocal buftype=
|
||||||
|
|
||||||
|
call ale#events#QuitEvent(bufnr(''))
|
||||||
|
|
||||||
|
call SetUpLinters()
|
||||||
|
call ale#events#SaveEvent(bufnr(''))
|
||||||
|
|
||||||
|
" We should save the file.
|
||||||
|
AssertEqual ['a', 'b', 'c'], readfile('fix_test_file')
|
||||||
|
Assert &modified, 'The was not marked as ''modified'''
|
||||||
|
|
||||||
|
" We should not run the linter.
|
||||||
|
AssertEqual [], ale#test#GetLoclistWithoutModule()
|
||||||
|
|
||||||
|
Expect(The buffer should not be modified):
|
||||||
|
a
|
||||||
|
b
|
||||||
|
c
|
||||||
|
|
||||||
Given testft (A file with three lines):
|
Given testft (A file with three lines):
|
||||||
a
|
a
|
||||||
b
|
b
|
||||||
|
|||||||
Reference in New Issue
Block a user