From 5a8d79847b1959f9c9515b51a062f6acbe22f1a4 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Thu, 30 Jan 2025 10:39:03 +0100 Subject: [PATCH] feat(picker): `opts.focus = "input"|"list"|false` to configure what to focus (if anything) when showing the picker --- lua/snacks/picker/config/defaults.lua | 2 ++ lua/snacks/picker/core/picker.lua | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lua/snacks/picker/config/defaults.lua b/lua/snacks/picker/config/defaults.lua index a193d5e0..c88c1c96 100644 --- a/lua/snacks/picker/config/defaults.lua +++ b/lua/snacks/picker/config/defaults.lua @@ -83,6 +83,7 @@ local M = {} ---@field prompt? string prompt text / icon ---@field title? string defaults to a capitalized source name ---@field auto_close? boolean automatically close the picker when focusing another window (defaults to true) +---@field focus? "input"|"list"|false where to focus when the picker is opened (defaults to "input") --- Preset options ---@field previewers? snacks.picker.previewers.Config|{} ---@field formatters? snacks.picker.formatters.Config|{} @@ -101,6 +102,7 @@ local M = {} local defaults = { prompt = " ", sources = {}, + focus = "input", layout = { cycle = true, --- Use the default layout or vertical if the window is too narrow diff --git a/lua/snacks/picker/core/picker.lua b/lua/snacks/picker/core/picker.lua index 8d672086..11ee35a6 100644 --- a/lua/snacks/picker/core/picker.lua +++ b/lua/snacks/picker/core/picker.lua @@ -436,7 +436,11 @@ function M:show() if self.preview.main then self.preview.win:show() end - self.input.win:focus() + if self.opts.focus == "input" then + self.input.win:focus() + elseif self.opts.focus == "list" then + self.list.win:focus() + end if self.opts.on_show then self.opts.on_show(self) end