diff options
| author | theprimeagain <the.primeagen@gmail.com> | 2026-02-24 07:52:00 -0700 |
|---|---|---|
| committer | theprimeagain <the.primeagen@gmail.com> | 2026-02-24 07:52:00 -0700 |
| commit | 5ba6065538e572b042f2b3a10ef60bd21973688c (patch) | |
| tree | 31b936cfe8e0a9591636efe2399d1523ab403bbd /lua/99/window | |
| parent | 0ed30513bc55bd25832a2d06a0595df88dea3f41 (diff) | |
| download | a4-5ba6065538e572b042f2b3a10ef60bd21973688c.tar.xz a4-5ba6065538e572b042f2b3a10ef60bd21973688c.zip | |
vibe search may be working!
Diffstat (limited to 'lua/99/window')
| -rw-r--r-- | lua/99/window/init.lua | 40 |
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() |
