summaryrefslogtreecommitdiff
path: root/lua/99/window
diff options
context:
space:
mode:
authortheprimeagain <the.primeagen@gmail.com>2026-02-24 07:52:00 -0700
committertheprimeagain <the.primeagen@gmail.com>2026-02-24 07:52:00 -0700
commit5ba6065538e572b042f2b3a10ef60bd21973688c (patch)
tree31b936cfe8e0a9591636efe2399d1523ab403bbd /lua/99/window
parent0ed30513bc55bd25832a2d06a0595df88dea3f41 (diff)
downloada4-5ba6065538e572b042f2b3a10ef60bd21973688c.tar.xz
a4-5ba6065538e572b042f2b3a10ef60bd21973688c.zip
vibe search may be working!
Diffstat (limited to 'lua/99/window')
-rw-r--r--lua/99/window/init.lua40
1 files changed, 40 insertions, 0 deletions
diff --git a/lua/99/window/init.lua b/lua/99/window/init.lua
index f546fac..47f6f1c 100644
--- a/lua/99/window/init.lua
+++ b/lua/99/window/init.lua
@@ -445,6 +445,46 @@ function M.capture_input(name, opts)
ensure_no_new_lines(opts.content)
)
end
+
+ return win
+end
+
+--- @param name string
+--- @param opts _99.window.CaptureInputOpts
+function M.capture_select_input(name, opts)
+ local win
+ win = M.capture_input(name, {
+ content = opts.content,
+ rules = opts.rules,
+ cb = function(success, result)
+ if not success then
+ opts.cb(false, result)
+ end
+ end,
+ on_load = function()
+ vim.bo[win.buf_id].modifiable = false
+ vim.bo[win.buf_id].readonly = true
+ if opts.on_load then
+ opts.on_load()
+ end
+ end,
+ })
+
+ vim.keymap.set("n", "<CR>", function()
+ if not nvim_win_is_valid(win.win_id) then
+ return
+ end
+
+ local cursor = vim.api.nvim_win_get_cursor(win.win_id)
+ local line = vim.api.nvim_buf_get_lines(
+ win.buf_id,
+ cursor[1] - 1,
+ cursor[1],
+ false
+ )[1] or ""
+ M.clear_active_popups()
+ opts.cb(true, line)
+ end, { buffer = win.buf_id, nowait = true })
end
function M.clear_active_popups()