fix(highlight): use hl_group instead of line_hl_group for diff backgrounds
line_hl_group bg occupies a separate rendering channel from hl_group in Neovim's extmark system, causing character-level bg-only highlights to be invisible regardless of priority. Switching to hl_group + hl_eol ensures all backgrounds compete in the same channel. Also reorders priorities (Normal 198 < line bg 199 < syntax 200 < char bg 201), bumps char-level blend alpha from 0.4 to 0.7 for visibility, and adds debug logging throughout the intra pipeline.
This commit is contained in:
parent
f1c13966ba
commit
3482e25c41
5 changed files with 429 additions and 20 deletions
|
|
@ -312,13 +312,28 @@ function M.compute_intra_hunks(hunk_lines, algorithm)
|
|||
---@type diffs.CharSpan[]
|
||||
local all_del = {}
|
||||
|
||||
for _, group in ipairs(groups) do
|
||||
dbg(
|
||||
'intra: %d change groups, algorithm=%s, vscode=%s',
|
||||
#groups,
|
||||
algorithm,
|
||||
vscode_handle and 'yes' or 'no'
|
||||
)
|
||||
|
||||
for gi, group in ipairs(groups) do
|
||||
dbg('group %d: %d del lines, %d add lines', gi, #group.del_lines, #group.add_lines)
|
||||
local ds, as
|
||||
if vscode_handle then
|
||||
ds, as = diff_group_vscode(group, vscode_handle)
|
||||
else
|
||||
ds, as = diff_group_native(group)
|
||||
end
|
||||
dbg('group %d result: %d del spans, %d add spans', gi, #ds, #as)
|
||||
for _, s in ipairs(ds) do
|
||||
dbg(' del span: line=%d col=%d..%d', s.line, s.col_start, s.col_end)
|
||||
end
|
||||
for _, s in ipairs(as) do
|
||||
dbg(' add span: line=%d col=%d..%d', s.line, s.col_start, s.col_end)
|
||||
end
|
||||
vim.list_extend(all_del, ds)
|
||||
vim.list_extend(all_add, as)
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue