Skip to content

Commit 3772914

Browse files
committed
fix(ui): when closing details, jump to plugin header. Closes #1338
1 parent 5bddef2 commit 3772914

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

lua/lazy/view/init.lua

+11-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,17 @@ function M.create()
9696
name = plugin.name,
9797
kind = plugin._.kind,
9898
}
99-
self.state.plugin = not vim.deep_equal(self.state.plugin, selected) and selected or nil
99+
100+
local open = not vim.deep_equal(self.state.plugin, selected)
101+
102+
if not open then
103+
local row = self.render:get_row(selected)
104+
if row then
105+
vim.api.nvim_win_set_cursor(self.view.win, { row, 8 })
106+
end
107+
end
108+
109+
self.state.plugin = open and selected or nil
100110
self:update()
101111
end
102112
end)

lua/lazy/view/render.lua

+9
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,15 @@ function M:get_plugin(row)
122122
end
123123
end
124124

125+
---@param selected {name:string, kind?: LazyPluginKind}
126+
function M:get_row(selected)
127+
for _, loc in ipairs(self.locations) do
128+
if loc.kind == selected.kind and loc.name == selected.name then
129+
return loc.from
130+
end
131+
end
132+
end
133+
125134
function M:title()
126135
self:nl()
127136
local modes = vim.tbl_filter(function(c)

0 commit comments

Comments
 (0)