aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/diagnostic.lua
diff options
context:
space:
mode:
authormohsen <36933074+smoka7@users.noreply.github.com>2022-06-08 23:25:39 +0430
committerGitHub <noreply@github.com>2022-06-08 12:55:39 -0600
commit94181ad7dcb75e1e188164276696434e03302a21 (patch)
tree0fe9190761e4077df08505354e32b2a0a1049059 /runtime/lua/vim/diagnostic.lua
parent4d9e2247c939a5df0a79a06f37ab882ff66aeb01 (diff)
downloadrneovim-94181ad7dcb75e1e188164276696434e03302a21.tar.gz
rneovim-94181ad7dcb75e1e188164276696434e03302a21.tar.bz2
rneovim-94181ad7dcb75e1e188164276696434e03302a21.zip
fix(diagnostic): check for negative column value (#18868)
Diffstat (limited to 'runtime/lua/vim/diagnostic.lua')
-rw-r--r--runtime/lua/vim/diagnostic.lua11
1 files changed, 10 insertions, 1 deletions
diff --git a/runtime/lua/vim/diagnostic.lua b/runtime/lua/vim/diagnostic.lua
index bb12362234..afc0a4095c 100644
--- a/runtime/lua/vim/diagnostic.lua
+++ b/runtime/lua/vim/diagnostic.lua
@@ -398,10 +398,19 @@ 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 or d.lnum < 0 or d.end_lnum < 0 then
+ if
+ d.lnum > line_count
+ or d.end_lnum > line_count
+ or d.lnum < 0
+ or d.end_lnum < 0
+ or d.col < 0
+ or d.end_col < 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)
+ d.col = math.max(d.col, 0)
+ d.end_col = math.max(d.end_col, 0)
end
end
table.insert(diagnostics, d)