From a940b77cb25ae12cc1269cf64bdede698a4c5aac Mon Sep 17 00:00:00 2001 From: Shadman Date: Fri, 27 Mar 2026 17:39:09 +0600 Subject: feat(prompt): prompt_appendbuf() appends to prompt buffer #37763 Problem: Currently, we recommend always inserting text above prompt-line in prompt-buffer. This can be done using the `:` mark. However, although we recommend it this way it can sometimes get confusing how to do it best. Solution: Provide an api to append text to prompt buffer. This is a common use-case for things using prompt-buffer. --- runtime/lua/vim/_meta/vimfn.lua | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'runtime/lua/vim/_meta/vimfn.lua') diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua index 1d3412d20a..a5822c9c84 100644 --- a/runtime/lua/vim/_meta/vimfn.lua +++ b/runtime/lua/vim/_meta/vimfn.lua @@ -6893,6 +6893,28 @@ function vim.fn.prevnonblank(lnum) end --- @return string function vim.fn.printf(fmt, expr1) end +--- Appends text to prompt buffer before current prompt. When {text} is +--- a |List|: Append each item of the |List| as a text line above +--- prompt-line in the buffer. Any type of item is accepted and converted +--- to a String. Returns 1 for failure ({buf} not a prmopt buffer), +--- 0 for success. When {text} is an empty list zero is returned. +--- +--- Example: >vim +--- func TextEntered(text) +--- call prompt_appendbuf(bufnr(''), split('Entered: "' . a:text . '"', '\n')) +--- endfunc +--- +--- set buftype=prompt +--- call prompt_setcallback(bufnr(''), function("TextEntered")) +--- eval bufnr("")->prompt_setprompt("cmd: ") +--- startinsert +--- < +--- +--- @param buf integer|string +--- @param text string|string[] +--- @return 0|1 +function vim.fn.prompt_appendbuf(buf, text) end + --- Gets the current user-input in |prompt-buffer| {buf} without invoking --- prompt_callback. {buf} can be a buffer name or number. --- -- cgit