feat(picker): added toggle/flag/action for follow. Closes #633

This commit is contained in:
Folke Lemaitre 2025-01-19 11:38:02 +01:00
parent a3485d9d8e
commit aa53f6c079
No known key found for this signature in database
GPG key ID: 41F8B1FBACAE2040
4 changed files with 13 additions and 0 deletions

View file

@ -352,6 +352,12 @@ function M.toggle_hidden(picker)
picker:find()
end
function M.toggle_follow(picker)
local opts = picker.opts --[[@as snacks.picker.files.Config]]
opts.follow = not opts.follow
picker:find()
end
function M.list_top(picker)
picker.list:move(1, true)
end

View file

@ -184,6 +184,7 @@ local defaults = {
["<c-q>"] = { "qflist", mode = { "i", "n" } },
["<a-i>"] = { "toggle_ignored", mode = { "i", "n" } },
["<a-h>"] = { "toggle_hidden", mode = { "i", "n" } },
["<a-f>"] = { "toggle_follow", mode = { "i", "n" } },
},
b = {
minipairs_disable = true,
@ -256,6 +257,7 @@ local defaults = {
live = "󰐰 ",
hidden = "h",
ignored = "i",
follow = "f",
selected = "",
unselected = "",
-- selected = " ",

View file

@ -13,6 +13,7 @@ Snacks.util.set_hl({
Flag = "DiagnosticVirtualTextInfo",
FlagHidden = "SnacksPickerFlag",
FlagIgnored = "SnacksPickerFlag",
FlagFollow = "SnacksPickerFlag",
Dir = "NonText",
Dimmed = "Conceal",
Row = "String",

View file

@ -219,6 +219,10 @@ function M:update_titles()
}
local opts = self.opts --[[@as snacks.picker.files.Config]]
local flags = {} ---@type snacks.picker.Text[]
if opts.follow then
flags[#flags + 1] = { " " .. self.opts.icons.ui.follow .. " ", "SnacksPickerFlagFollow" }
flags[#flags + 1] = { " ", "FloatTitle" }
end
if opts.hidden then
flags[#flags + 1] = { " " .. self.opts.icons.ui.hidden .. " ", "SnacksPickerFlagHidden" }
flags[#flags + 1] = { " ", "FloatTitle" }