aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/diagnostic.lua
diff options
context:
space:
mode:
authorMichael Lingelbach <m.j.lbach@gmail.com>2021-03-02 00:27:45 -0800
committerMichael Lingelbach <m.j.lbach@gmail.com>2021-03-02 09:42:00 -0800
commitdb96edb58d2a490b245c7a9f57e12b632fed290f (patch)
treeda8a7ee0d66424e6774df3d024f5270e06e2a2f1 /runtime/lua/vim/lsp/diagnostic.lua
parentc1fbc2ddf15b2f44b615f90b2511349ab974cb83 (diff)
downloadrneovim-db96edb58d2a490b245c7a9f57e12b632fed290f.tar.gz
rneovim-db96edb58d2a490b245c7a9f57e12b632fed290f.tar.bz2
rneovim-db96edb58d2a490b245c7a9f57e12b632fed290f.zip
lsp: fix diagnostic reported on terminating EOL character
Diffstat (limited to 'runtime/lua/vim/lsp/diagnostic.lua')
-rw-r--r--runtime/lua/vim/lsp/diagnostic.lua4
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/lua/vim/lsp/diagnostic.lua b/runtime/lua/vim/lsp/diagnostic.lua
index df25943ecd..a1f24706c0 100644
--- a/runtime/lua/vim/lsp/diagnostic.lua
+++ b/runtime/lua/vim/lsp/diagnostic.lua
@@ -264,10 +264,14 @@ local function set_diagnostic_cache(diagnostics, bufnr, client_id)
-- The diagnostic's severity. Can be omitted. If omitted it is up to the
-- client to interpret diagnostics as error, warning, info or hint.
-- TODO: Replace this with server-specific heuristics to infer severity.
+ local buf_line_count = vim.api.nvim_buf_line_count(bufnr)
for _, diagnostic in ipairs(diagnostics) do
if diagnostic.severity == nil then
diagnostic.severity = DiagnosticSeverity.Error
end
+ -- Account for servers that place diagnostics on terminating newline
+ local start = diagnostic.range.start
+ start.line = math.min(start.line, buf_line_count - 1)
end
diagnostic_cache[bufnr][client_id] = diagnostics