diff --git a/lua/diffs/highlight.lua b/lua/diffs/highlight.lua index 1045d81..ed9329b 100644 --- a/lua/diffs/highlight.lua +++ b/lua/diffs/highlight.lua @@ -637,17 +637,10 @@ function M.highlight_hunk(bufnr, ns, hunk, opts) if opts.highlights.background and is_diff_line then pcall(vim.api.nvim_buf_set_extmark, bufnr, ns, buf_line, 0, { - end_row = buf_line + 1, - hl_group = line_hl, - hl_eol = true, + line_hl_group = line_hl, + number_hl_group = opts.highlights.gutter and number_hl or nil, priority = p.line_bg, }) - if opts.highlights.gutter then - pcall(vim.api.nvim_buf_set_extmark, bufnr, ns, buf_line, 0, { - number_hl_group = number_hl, - priority = p.line_bg, - }) - end end if is_marker and line_len > pw then diff --git a/lua/diffs/init.lua b/lua/diffs/init.lua index 81d4f97..6975af1 100644 --- a/lua/diffs/init.lua +++ b/lua/diffs/init.lua @@ -347,9 +347,6 @@ end ---@param path string ---@return string[]? local function read_file_lines(path) - if vim.fn.isdirectory(path) == 1 then - return nil - end local f = io.open(path, 'r') if not f then return nil @@ -543,10 +540,11 @@ local function compute_highlight_groups(is_default) local normal_fg = normal.fg or (dark and 0xcccccc or 0x333333) local alpha = config.highlights.blend_alpha or 0.6 + local text_alpha = math.min(alpha + 0.3, 1.0) local blended_add = blend_color(add_bg, bg, alpha) local blended_del = blend_color(del_bg, bg, alpha) - local blended_add_text = add_bg - local blended_del_text = del_bg + local blended_add_text = blend_color(add_bg, bg, text_alpha) + local blended_del_text = blend_color(del_bg, bg, text_alpha) local clear_hl = { default = dflt, fg = normal_fg } if not transparent then diff --git a/spec/context_spec.lua b/spec/context_spec.lua index 84243f4..237b7f3 100644 --- a/spec/context_spec.lua +++ b/spec/context_spec.lua @@ -165,39 +165,6 @@ describe('context', function() assert.is_nil(hunks[1].context_after) end) - it('skips when path is a directory', function() - vim.fn.mkdir(vim.fs.joinpath(tmpdir, 'subdir'), 'p') - - local hunks = { - make_hunk('subdir', { - file_new_start = 1, - file_new_count = 1, - lines = { '+x' }, - }), - } - compute_hunk_context(hunks, 25) - - assert.is_nil(hunks[1].context_before) - assert.is_nil(hunks[1].context_after) - end) - - it('skips when path is a symlink to a directory', function() - vim.fn.mkdir(vim.fs.joinpath(tmpdir, 'real_dir'), 'p') - vim.uv.fs_symlink(vim.fs.joinpath(tmpdir, 'real_dir'), vim.fs.joinpath(tmpdir, 'link_dir')) - - local hunks = { - make_hunk('link_dir', { - file_new_start = 1, - file_new_count = 1, - lines = { '+x' }, - }), - } - compute_hunk_context(hunks, 25) - - assert.is_nil(hunks[1].context_before) - assert.is_nil(hunks[1].context_after) - end) - it('skips when file does not exist on disk', function() local hunks = { make_hunk('nonexistent.lua', {