From ad76b050eb2cd03174c108b5ae6759b3c1ea8941 Mon Sep 17 00:00:00 2001 From: Raphael Date: Tue, 23 Apr 2024 19:06:41 +0800 Subject: fix(diagnostic): open_float on multi-line diagnostics #28301 Problem: when diagnostic have a range of line, open_float not work. Solution: filter diagnostic by line number range. --- runtime/lua/vim/diagnostic.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime/lua/vim/diagnostic.lua') diff --git a/runtime/lua/vim/diagnostic.lua b/runtime/lua/vim/diagnostic.lua index 5e4835ab88..7371b5241f 100644 --- a/runtime/lua/vim/diagnostic.lua +++ b/runtime/lua/vim/diagnostic.lua @@ -1697,7 +1697,7 @@ function M.open_float(opts, ...) if scope == 'line' then --- @param d vim.Diagnostic diagnostics = vim.tbl_filter(function(d) - return d.lnum == lnum + return lnum >= d.lnum and lnum <= d.end_lnum end, diagnostics) elseif scope == 'cursor' then -- LSP servers can send diagnostics with `end_col` past the length of the line -- cgit