mirror of
https://github.com/dense-analysis/ale
synced 2024-12-22 06:10:07 +00:00
101 lines
2.6 KiB
VimL
101 lines
2.6 KiB
VimL
function! s:EnablePreamble() abort
|
|
" Set pattern options again, if enabled.
|
|
if get(g:, 'ale_pattern_options_enabled', 0)
|
|
call ale#pattern_options#SetOptions(bufnr(''))
|
|
endif
|
|
|
|
" Lint immediately, including running linters against the file.
|
|
call ale#Queue(0, 'lint_file')
|
|
endfunction
|
|
|
|
function! s:DisablePostamble() abort
|
|
" Remove highlights for the current buffer now.
|
|
if g:ale_set_highlights
|
|
call ale#highlight#UpdateHighlights()
|
|
endif
|
|
|
|
if g:ale_virtualtext_cursor
|
|
call ale#virtualtext#Clear()
|
|
endif
|
|
endfunction
|
|
|
|
function! ale#toggle#Toggle() abort
|
|
let g:ale_enabled = !get(g:, 'ale_enabled')
|
|
|
|
if g:ale_enabled
|
|
call s:EnablePreamble()
|
|
|
|
if g:ale_set_balloons
|
|
call ale#balloon#Enable()
|
|
endif
|
|
else
|
|
call ale#engine#CleanupEveryBuffer()
|
|
call s:DisablePostamble()
|
|
|
|
if exists('*ale#balloon#Disable')
|
|
call ale#balloon#Disable()
|
|
endif
|
|
endif
|
|
|
|
call ale#events#Init()
|
|
endfunction
|
|
|
|
function! ale#toggle#Enable() abort
|
|
if !g:ale_enabled
|
|
call ale#toggle#Toggle()
|
|
endif
|
|
endfunction
|
|
|
|
function! ale#toggle#Disable() abort
|
|
if g:ale_enabled
|
|
call ale#toggle#Toggle()
|
|
endif
|
|
endfunction
|
|
|
|
function! ale#toggle#Reset() abort
|
|
call ale#engine#CleanupEveryBuffer()
|
|
call ale#highlight#UpdateHighlights()
|
|
endfunction
|
|
|
|
function! ale#toggle#ToggleBuffer(buffer) abort
|
|
" Get the new value for the toggle.
|
|
let l:enabled = !getbufvar(a:buffer, 'ale_enabled', 1)
|
|
|
|
" Disabling ALE globally removes autocmd events, so we cannot enable
|
|
" linting locally when linting is disabled globally
|
|
if l:enabled && !g:ale_enabled
|
|
execute 'echom ''ALE cannot be enabled locally when disabled globally'''
|
|
|
|
return
|
|
endif
|
|
|
|
call setbufvar(a:buffer, 'ale_enabled', l:enabled)
|
|
|
|
if l:enabled
|
|
call s:EnablePreamble()
|
|
else
|
|
" Stop all jobs and clear the results for everything, and delete
|
|
" all of the data we stored for the buffer.
|
|
call ale#engine#Cleanup(a:buffer)
|
|
call s:DisablePostamble()
|
|
endif
|
|
endfunction
|
|
|
|
function! ale#toggle#EnableBuffer(buffer) abort
|
|
" ALE is enabled by default for all buffers.
|
|
if !getbufvar(a:buffer, 'ale_enabled', 1)
|
|
call ale#toggle#ToggleBuffer(a:buffer)
|
|
endif
|
|
endfunction
|
|
|
|
function! ale#toggle#DisableBuffer(buffer) abort
|
|
if getbufvar(a:buffer, 'ale_enabled', 1)
|
|
call ale#toggle#ToggleBuffer(a:buffer)
|
|
endif
|
|
endfunction
|
|
|
|
function! ale#toggle#ResetBuffer(buffer) abort
|
|
call ale#engine#Cleanup(a:buffer)
|
|
call ale#highlight#UpdateHighlights()
|
|
endfunction
|