mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-06 12:44:23 +08:00
diagnostics: support sending ALE output to Neovim's diagnostics API (#4345)
Support replacing ALE's display of problems with sending problems to the Neovim diagnostics API. :help g:ale_use_neovim_diagnostics_api Co-authored-by: David Balatero <dbalatero@users.noreply.github.com> Co-authored-by: Georgi Angelchev <angelchev@live.co.uk> Co-authored-by: w0rp <devw0rp@gmail.com>
This commit is contained in:
@@ -11,6 +11,7 @@ Before:
|
||||
Save g:ale_set_quickfix
|
||||
Save g:ale_set_signs
|
||||
Save g:ale_command_wrapper
|
||||
Save g:ale_use_neovim_diagnostics_api
|
||||
|
||||
let g:ale_command_wrapper = ''
|
||||
let g:ale_buffer_info = {}
|
||||
@@ -22,6 +23,7 @@ Before:
|
||||
let g:ale_set_loclist = 0
|
||||
let g:ale_set_highlights = 0
|
||||
let g:ale_echo_cursor = 0
|
||||
let g:ale_use_neovim_diagnostics_api = 0
|
||||
|
||||
call ale#sign#Clear()
|
||||
|
||||
@@ -74,3 +76,10 @@ Execute(The signs should be updated after linting is done):
|
||||
call ale#test#FlushJobs()
|
||||
|
||||
AssertEqual [['1', 'ALEWarningSign'], ['2', 'ALEErrorSign']], CollectSigns()
|
||||
|
||||
Execute(Signs should not be set when diagnostics API integration is enabled):
|
||||
let g:ale_use_neovim_diagnostics_api = 1
|
||||
ALELint
|
||||
call ale#test#FlushJobs()
|
||||
|
||||
AssertEqual [], CollectSigns()
|
||||
|
||||
@@ -52,6 +52,7 @@ Before:
|
||||
Save g:ale_sign_highlight_linenrs
|
||||
Save g:ale_statusline_format
|
||||
Save g:ale_type_map
|
||||
Save g:ale_use_neovim_diagnostics_api
|
||||
Save g:ale_use_global_executables
|
||||
Save g:ale_virtualtext_cursor
|
||||
Save g:ale_warn_about_trailing_blank_lines
|
||||
@@ -110,6 +111,7 @@ Before:
|
||||
let g:ale_sign_highlight_linenrs = 0
|
||||
let g:ale_statusline_format = ['%d error(s)', '%d warning(s)', 'OK']
|
||||
let g:ale_type_map = {}
|
||||
let g:ale_use_neovim_diagnostics_api = 0
|
||||
let g:ale_use_global_executables = v:null
|
||||
let g:ale_virtualtext_cursor = 'disabled'
|
||||
let g:ale_warn_about_trailing_blank_lines = 1
|
||||
@@ -189,6 +191,7 @@ Before:
|
||||
\ 'let g:ale_sign_highlight_linenrs = 0',
|
||||
\ 'let g:ale_statusline_format = [''%d error(s)'', ''%d warning(s)'', ''OK'']',
|
||||
\ 'let g:ale_type_map = {}',
|
||||
\ 'let g:ale_use_neovim_diagnostics_api = 0',
|
||||
\ 'let g:ale_use_global_executables = v:null',
|
||||
\ 'let g:ale_virtualtext_cursor = ''disabled''',
|
||||
\ 'let g:ale_warn_about_trailing_blank_lines = 1',
|
||||
|
||||
@@ -4,6 +4,7 @@ Before:
|
||||
Save g:ale_virtualtext_delay
|
||||
Save g:ale_virtualtext_prefix
|
||||
Save b:ale_virtualtext_prefix
|
||||
Save g:ale_use_neovim_diagnostics_api
|
||||
|
||||
call ale#virtualtext#ResetDataForTests()
|
||||
|
||||
@@ -36,6 +37,7 @@ Before:
|
||||
\ ],
|
||||
\ },
|
||||
\}
|
||||
let g:ale_use_neovim_diagnostics_api = 0
|
||||
|
||||
After:
|
||||
Restore
|
||||
@@ -177,3 +179,16 @@ Execute(We should set errors across all lines):
|
||||
\ map(prop_list(2), {_, v -> v.type})
|
||||
endif
|
||||
endif
|
||||
|
||||
Execute(We should not set cursor messages when Neovim diagnostics are enabled):
|
||||
let g:ale_use_neovim_diagnostics_api = 1
|
||||
|
||||
if has('patch-9.0.0297') || has('nvim-0.8.0')
|
||||
let g:ale_virtualtext_cursor = 'current'
|
||||
call cursor(1, 1)
|
||||
call ale#virtualtext#ShowCursorWarningWithDelay()
|
||||
" Tick the timer.
|
||||
sleep 1ms
|
||||
|
||||
AssertEqual '', ale#virtualtext#GetLastMessageForTests()
|
||||
endif
|
||||
|
||||
Reference in New Issue
Block a user