fix(diagnostic): check for extmark in get_logical_pos #37127

Problem: The function get_logical_pos did not account for the possibility that a diagnostic might not have an associated extmark, leading to potential errors or incorrect behavior.

Solution: Add a check for diagnostic._extmark_id and return the logical positions directly if it does not exist.
This commit is contained in:
Kira Kawai
2026-01-02 15:49:28 +09:00
committed by GitHub
parent ed562c296a
commit 3ac76977bc
2 changed files with 19 additions and 0 deletions

View File

@@ -655,6 +655,10 @@ local sign_highlight_map = make_highlight_map('Sign')
--- @return integer end_col
--- @return boolean valid
local function get_logical_pos(diagnostic)
if not diagnostic._extmark_id then
return diagnostic.lnum, diagnostic.col, diagnostic.end_lnum, diagnostic.end_col, true
end
local ns = M.get_namespace(diagnostic.namespace)
local extmark = api.nvim_buf_get_extmark_by_id(
diagnostic.bufnr,