Skip to content

Commit dd875f7

Browse files
committed
feat(previewer): <F6> to toggle preview extend behavior
1 parent 15f1f40 commit dd875f7

4 files changed

Lines changed: 21 additions & 10 deletions

File tree

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -546,8 +546,9 @@ keymap = {
546546
["<F3>"] = "toggle-preview-wrap",
547547
["<F4>"] = "toggle-preview",
548548
-- Rotate preview clockwise/counter-clockwise
549-
["<F5>"] = "toggle-preview-ccw",
550-
["<F6>"] = "toggle-preview-cw",
549+
["<F5>"] = "toggle-preview-cw",
550+
-- Preview toggle behavior default/extend
551+
["<F6>"] = "toggle-preview-behavior",
551552
-- `ts-ctx` binds require `nvim-treesitter-context`
552553
["<F7>"] = "toggle-preview-ts-ctx",
553554
["<F8>"] = "preview-ts-ctx-dec",

lua/fzf-lua/defaults.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ M.defaults = {
100100
-- Only valid with the 'builtin' previewer
101101
["<F3>"] = "toggle-preview-wrap",
102102
["<F4>"] = "toggle-preview",
103-
["<F5>"] = "toggle-preview-ccw",
104-
["<F6>"] = "toggle-preview-cw",
103+
["<F5>"] = "toggle-preview-cw",
104+
["<F6>"] = "toggle-preview-behavior",
105105
["<F7>"] = "toggle-preview-ts-ctx",
106106
["<F8>"] = "preview-ts-ctx-dec",
107107
["<F9>"] = "preview-ts-ctx-inc",

lua/fzf-lua/types.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,7 @@ _G.FzfLua = require("fzf-lua")
252252
---@field preview fzf-lua.config.PreviewWinopts
253253
---@field on_create fun(e: { winid: integer, bufnr: integer })
254254
---@field on_close fun()
255+
---@field toggle_behavior string?
255256
---@field __winhls { main: [string, string][], prev: [string, string][] }
256257

257258
---@class fzf-lua.config.TreesitterWinopts

lua/fzf-lua/win.lua

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -145,12 +145,13 @@ function FzfWin:setup_keybinds()
145145
self.keymap.fzf = type(self.keymap.fzf) == "table" and self.keymap.fzf or {}
146146
self.keymap.builtin = type(self.keymap.builtin) == "table" and self.keymap.builtin or {}
147147
local keymap_tbl = {
148-
["hide"] = { module = "win", fnc = "hide()" },
149-
["toggle-help"] = { module = "win", fnc = "toggle_help()" },
150-
["toggle-fullscreen"] = { module = "win", fnc = "toggle_fullscreen()" },
151-
["toggle-preview"] = { module = "win", fnc = "toggle_preview()" },
152-
["toggle-preview-cw"] = { module = "win", fnc = "toggle_preview_cw(1)" },
153-
["toggle-preview-ccw"] = { module = "win", fnc = "toggle_preview_cw(-1)" },
148+
["hide"] = { module = "win", fnc = "hide()" },
149+
["toggle-help"] = { module = "win", fnc = "toggle_help()" },
150+
["toggle-fullscreen"] = { module = "win", fnc = "toggle_fullscreen()" },
151+
["toggle-preview"] = { module = "win", fnc = "toggle_preview()" },
152+
["toggle-preview-cw"] = { module = "win", fnc = "toggle_preview_cw(1)" },
153+
["toggle-preview-ccw"] = { module = "win", fnc = "toggle_preview_cw(-1)" },
154+
["toggle-preview-behavior"] = { module = "win", fnc = "toggle_preview_behavior()" },
154155
}
155156
-- use signal when user bind toggle-preview in FZF_DEFAULT_OPTS/FZF_DEFAULT_FILE_OPTS
156157
local function on_SIGWINCH_toggle_preview()
@@ -1640,6 +1641,14 @@ function FzfWin.toggle_preview_cw(direction)
16401641
self:redraw()
16411642
end
16421643

1644+
function FzfWin.toggle_preview_behavior()
1645+
if not _self then return end
1646+
local self = _self
1647+
self.toggle_behavior = not self.toggle_behavior and "extend" or nil
1648+
utils.info("preview toggle behavior set to %s", self.toggle_behavior or "default")
1649+
self:redraw()
1650+
end
1651+
16431652
function FzfWin.toggle_preview_ts_ctx()
16441653
if not _self then return end
16451654
local self = _self

0 commit comments

Comments
 (0)