diff options
author | Michael Lingelbach <m.j.lbach@gmail.com> | 2021-12-02 09:38:44 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-02 06:38:44 -0800 |
commit | 254c22afc39ecfd926276884e13af0638cf8341a (patch) | |
tree | 35f40f86f95616355ee278d55f142a207ce044a7 | |
parent | 73b35ef10f95536874bfa147c44f62c4fea08f0f (diff) | |
download | rneovim-254c22afc39ecfd926276884e13af0638cf8341a.tar.gz rneovim-254c22afc39ecfd926276884e13af0638cf8341a.tar.bz2 rneovim-254c22afc39ecfd926276884e13af0638cf8341a.zip |
fix(diagnostic): clamp diagnostics on negative line numbers (#16496)
Closes https://github.com/neovim/neovim/issues/16492
Despite having logic for setting the maximum diagnostic line
number to at minimum 0, previously the conditional statement only
checked if lnum and end_lnum were greater than the line count.
Fix: also check if lnum and end_lnum are less than 0.
-rw-r--r-- | runtime/lua/vim/diagnostic.lua | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/runtime/lua/vim/diagnostic.lua b/runtime/lua/vim/diagnostic.lua index 71bf96baee..a903f25b58 100644 --- a/runtime/lua/vim/diagnostic.lua +++ b/runtime/lua/vim/diagnostic.lua @@ -386,7 +386,7 @@ local function get_diagnostics(bufnr, opts, clamp) if not opts.lnum or d.lnum == opts.lnum then if clamp and vim.api.nvim_buf_is_loaded(b) then local line_count = buf_line_count[b] - 1 - if (d.lnum > line_count or d.end_lnum > line_count) then + if (d.lnum > line_count or d.end_lnum > line_count or d.lnum < 0 or d.end_lnum < 0) then d = vim.deepcopy(d) d.lnum = math.max(math.min(d.lnum, line_count), 0) d.end_lnum = math.max(math.min(d.end_lnum, line_count), 0) |