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.
This commit is contained in:
Shadman
2026-03-27 17:39:09 +06:00
committed by GitHub
parent 0fa96585dc
commit a940b77cb2
12 changed files with 167 additions and 8 deletions

View File

@@ -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.
---