feat(diagnostics): Add support for nvims diagnostic API
- neovim added new diagnostics api in https://github.com/neovim/neovim/pull/15585. So I've added a new diagnostics source named `nvim` (Yes I couldn't find a name for it :P) that shows diagnostics from that api. In neovim nightly with vim.diagnostics you can consider source `nvim_lsp` obsolete. - Diagnostics source `vim_lsp` was removed in a mistake now it's restored.
This commit is contained in:
parent
f7702d8841
commit
c5cb601a6a
|
@ -366,7 +366,7 @@ sections = {
|
|||
{
|
||||
'diagnostics',
|
||||
-- table of diagnostic sources, available sources:
|
||||
-- 'nvim_lsp', 'coc', 'ale', 'vim_lsp'
|
||||
-- 'nvim_lsp', 'nvim', 'coc', 'ale', 'vim_lsp'
|
||||
-- Or a function that returns a table like
|
||||
-- {error=error_cnt, warn=warn_cnt, info=info_cnt, hint=hint_cnt}
|
||||
sources = {},
|
||||
|
|
|
@ -349,7 +349,7 @@ Component specific local options ~
|
|||
{
|
||||
'diagnostics',
|
||||
-- table of diagnostic sources, available sources:
|
||||
-- 'nvim_lsp', 'coc', 'ale', 'vim_lsp'
|
||||
-- 'nvim_lsp', 'nvim', 'coc', 'ale', 'vim_lsp'
|
||||
-- Or a function that returns a table like
|
||||
-- {error=error_cnt, warn=warn_cnt, info=info_cnt, hint=hint_cnt}
|
||||
sources = {},
|
||||
|
|
|
@ -183,6 +183,17 @@ Diagnostics.diagnostic_sources = {
|
|||
local hint_count = vim.lsp.diagnostic.get_count(0, 'Hint')
|
||||
return error_count, warning_count, info_count, hint_count
|
||||
end,
|
||||
nvim = function()
|
||||
local diagnostics = vim.diagnostic.get(0)
|
||||
local count = { 0, 0, 0, 0 }
|
||||
for _, diagnostic in ipairs(diagnostics) do
|
||||
count[diagnostic.severity] = count[diagnostic.severity] + 1
|
||||
end
|
||||
return count[vim.diagnostic.severity.ERROR],
|
||||
count[vim.diagnostic.severity.WARN],
|
||||
count[vim.diagnostic.severity.INFO],
|
||||
count[vim.diagnostic.severity.HINT]
|
||||
end,
|
||||
coc = function()
|
||||
local data = vim.b.coc_diagnostic_info
|
||||
if data then
|
||||
|
@ -199,6 +210,14 @@ Diagnostics.diagnostic_sources = {
|
|||
return 0, 0, 0, 0
|
||||
end
|
||||
end,
|
||||
vim_lsp = function()
|
||||
local ok, data = pcall(vim.fn['lsp#get_buffer_diagnostics_counts'])
|
||||
if ok then
|
||||
return data.error, data.warning, data.information
|
||||
else
|
||||
return 0, 0, 0
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
Diagnostics.get_diagnostics = function(sources)
|
||||
|
|
Loading…
Reference in New Issue