Skip to content

Commit 0987307

Browse files
committed
feat: Highlight currently open entry in file panel (fixes #284)
1 parent c1247f6 commit 0987307

File tree

7 files changed

+16
-16
lines changed

7 files changed

+16
-16
lines changed

lua/diffview/hl.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,7 @@ M.hl_links = {
405405
EndOfBuffer = "EndOfBuffer",
406406
FilePanelRootPath = "DiffviewFilePanelTitle",
407407
FilePanelFileName = "Normal",
408+
FilePanelSelected = "Type",
408409
FilePanelPath = "Comment",
409410
FilePanelInsertions = "diffAdded",
410411
FilePanelDeletions = "diffRemoved",

lua/diffview/scene/views/diff/diff_view.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,8 @@ end
171171
---@private
172172
---@param file FileEntry
173173
function DiffView:_set_file(file)
174+
self.panel:render()
175+
self.panel:redraw()
174176
vim.cmd("redraw")
175177

176178
self.cur_layout:detach_files()

lua/diffview/scene/views/diff/render.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ local utils = require("diffview.utils")
66
---@param show_path boolean
77
---@param depth integer|nil
88
local function render_file(comp, show_path, depth)
9-
---@type table
9+
---@type FileEntry
1010
local file = comp.context
1111

1212
comp:add_text(file.status .. " ", hl.get_git_hl(file.status))
@@ -17,7 +17,7 @@ local function render_file(comp, show_path, depth)
1717

1818
local icon, icon_hl = hl.get_file_icon(file.basename, file.extension)
1919
comp:add_text(icon, icon_hl)
20-
comp:add_text(file.basename, "DiffviewFilePanelFileName")
20+
comp:add_text(file.basename, file.active and "DiffviewFilePanelSelected" or "DiffviewFilePanelFileName")
2121

2222
if file.stats then
2323
if file.stats.additions then

lua/diffview/scene/views/file_history/file_history_view.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ end
8383
---@private
8484
---@param file FileEntry
8585
function FileHistoryView:_set_file(file)
86+
self.panel:render()
87+
self.panel:redraw()
8688
vim.cmd("redraw")
8789

8890
self.cur_layout:detach_files()

lua/diffview/scene/views/file_history/render.lua

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ local function render_files(comp, files)
2626
comp:add_text(file.parent_path .. "/", "DiffviewFilePanelPath")
2727
end
2828

29-
comp:add_text(file.basename, "DiffviewFilePanelFileName")
29+
comp:add_text(file.basename, file.active and "DiffviewFilePanelSelected" or "DiffviewFilePanelFileName")
3030

3131
if file.stats then
3232
comp:add_text(" " .. file.stats.additions, "DiffviewFilePanelInsertions")
@@ -40,10 +40,11 @@ local function render_files(comp, files)
4040
perf:lap("files")
4141
end
4242

43+
---@param panel FileHistoryPanel
4344
---@param parent CompStruct RenderComponent struct
4445
---@param entries LogEntry[]
4546
---@param updating boolean
46-
local function render_entries(parent, entries, updating)
47+
local function render_entries(panel, parent, entries, updating)
4748
local c = config.get_config()
4849
local max_num_files = -1
4950
local max_len_stats = 7
@@ -112,7 +113,10 @@ local function render_entries(parent, entries, updating)
112113
subject = "[empty message]"
113114
end
114115

115-
comp:add_text(subject .. " ", "DiffviewFilePanelFileName")
116+
comp:add_text(
117+
subject .. " ",
118+
panel.cur_item[1] == entry and "DiffviewFilePanelSelected" or "DiffviewFilePanelFileName"
119+
)
116120

117121
if entry.commit then
118122
-- 3 months
@@ -222,7 +226,7 @@ return {
222226
perf:lap("header")
223227

224228
if #panel.entries > 0 then
225-
render_entries(panel.components.log.entries, panel.entries, panel.updating)
229+
render_entries(panel, panel.components.log.entries, panel.entries, panel.updating)
226230
end
227231

228232
perf:time()

lua/diffview/vcs/adapters/git/commit.lua

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,6 @@ local M = {}
99

1010

1111
---@class GitCommit : Commit
12-
---@field hash string
13-
---@field author string
14-
---@field time number
15-
---@field time_offset number
16-
---@field date string
17-
---@field rel_date string
18-
---@field ref_names string
19-
---@field subject string
20-
---@field body string
2112
local GitCommit = oop.create_class("GitCommit", Commit.__get())
2213

2314
function GitCommit:init(opt)

lua/diffview/vcs/commit.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ local M = {}
1212
---@field time number
1313
---@field time_offset number
1414
---@field date string
15+
---@field iso_date string
1516
---@field rel_date string
1617
---@field ref_names string
1718
---@field subject string
@@ -26,7 +27,6 @@ function Commit:init(opt)
2627
self.ref_names = opt.ref_names ~= "" and opt.ref_names or nil
2728
self.subject = opt.subject
2829
self.body = opt.body
29-
3030
end
3131

3232
---@diagnostic disable: unused-local, missing-return

0 commit comments

Comments
 (0)