mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-20 19:21:18 +08:00
#904 - Allow linting to run on save a second after :q fails
This commit is contained in:
@@ -55,6 +55,19 @@ Execute(No linting should be done on :wq or :x):
|
||||
|
||||
AssertEqual [], getloclist(0)
|
||||
|
||||
Execute(No linting should be for :w after :q fails):
|
||||
let g:ale_lint_on_save = 1
|
||||
let g:ale_fix_on_save = 0
|
||||
|
||||
call ale#events#QuitEvent(bufnr(''))
|
||||
|
||||
" Simulate 2 seconds passing.
|
||||
let b:ale_quitting -= 1000
|
||||
|
||||
call ale#events#SaveEvent(bufnr(''))
|
||||
|
||||
AssertEqual 1, len(getloclist(0))
|
||||
|
||||
Execute(No linting should be done on :wq or :x after fixing files):
|
||||
let g:ale_lint_on_save = 0
|
||||
let g:ale_fix_on_save = 1
|
||||
@@ -69,3 +82,16 @@ Execute(No linting should be done on :wq or :x after fixing files):
|
||||
call ale#events#SaveEvent(bufnr(''))
|
||||
|
||||
AssertEqual [], getloclist(0)
|
||||
|
||||
Execute(Linting should be done after :q fails and fixing files):
|
||||
let g:ale_lint_on_save = 0
|
||||
let g:ale_fix_on_save = 1
|
||||
|
||||
call ale#events#QuitEvent(bufnr(''))
|
||||
|
||||
" Simulate 2 seconds passing.
|
||||
let b:ale_quitting -= 1000
|
||||
|
||||
call ale#events#SaveEvent(bufnr(''))
|
||||
|
||||
AssertEqual 1, len(getloclist(0))
|
||||
|
||||
@@ -8,11 +8,15 @@ After:
|
||||
Restore
|
||||
|
||||
unlet! b:ale_quitting
|
||||
unlet! b:time_before
|
||||
|
||||
Execute(QuitEvent should set b:ale_quitting some time from the clock):
|
||||
let b:time_before = ale#util#ClockMilliseconds()
|
||||
|
||||
Execute(QuitEvent should set b:ale_quitting to 1):
|
||||
call ale#events#QuitEvent(bufnr(''))
|
||||
|
||||
AssertEqual 1, b:ale_quitting
|
||||
Assert b:ale_quitting >= b:time_before
|
||||
Assert b:ale_quitting <= ale#util#ClockMilliseconds()
|
||||
|
||||
Execute(EnterEvent should set b:ale_quitting to 0):
|
||||
let b:ale_quitting = 1
|
||||
@@ -20,3 +24,16 @@ Execute(EnterEvent should set b:ale_quitting to 0):
|
||||
call ale#events#EnterEvent(bufnr(''))
|
||||
|
||||
AssertEqual 0, b:ale_quitting
|
||||
|
||||
Execute(The QuitRecently function should work when the variable isn't set):
|
||||
AssertEqual 0, ale#events#QuitRecently(bufnr(''))
|
||||
|
||||
Execute(The QuitRecently function should return 1 when ALE quit recently):
|
||||
let b:ale_quitting = ale#util#ClockMilliseconds()
|
||||
|
||||
AssertEqual 1, ale#events#QuitRecently(bufnr(''))
|
||||
|
||||
Execute(The QuitRecently function should return 0 when a second has passed):
|
||||
let b:ale_quitting = ale#util#ClockMilliseconds() - 1001
|
||||
|
||||
AssertEqual 0, ale#events#QuitRecently(bufnr(''))
|
||||
|
||||
Reference in New Issue
Block a user