summaryrefslogtreecommitdiffstatshomepage
path: root/runtime/lua/vim/_core/ui2.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2026-03-11 13:39:39 -0400
committerGitHub <noreply@github.com>2026-03-11 13:39:39 -0400
commitba0baea620b16cb6ce4ecfcd7c5e69ebe478c276 (patch)
tree2ba9a9f91a54786f6d7d4bfdbea448943e6c0d34 /runtime/lua/vim/_core/ui2.lua
parent0ced2169279bc7d1d1dad906f9841707e336c371 (diff)
parent682f5fee600802236e104ef85b5fbc6d3fe860cf (diff)
Merge #37830 docs
Diffstat (limited to 'runtime/lua/vim/_core/ui2.lua')
-rw-r--r--runtime/lua/vim/_core/ui2.lua57
1 files changed, 28 insertions, 29 deletions
diff --git a/runtime/lua/vim/_core/ui2.lua b/runtime/lua/vim/_core/ui2.lua
index debd1feac5..1414eb75e7 100644
--- a/runtime/lua/vim/_core/ui2.lua
+++ b/runtime/lua/vim/_core/ui2.lua
@@ -1,38 +1,37 @@
--- @brief
---
----WARNING: This is an experimental interface intended to replace the message
----grid in the TUI.
+--- WARNING: This is an experimental feature intended to replace the builtin message + cmdline
+--- presentation layer.
---
----To enable the experimental UI (default opts shown):
----```lua
----require('vim._core.ui2').enable({
---- enable = true, -- Whether to enable or disable the UI.
---- msg = { -- Options related to the message module.
---- ---@type 'cmd'|'msg' Default message target, either in the
---- ---cmdline or in a separate ephemeral message window.
---- ---@type string|table<string, 'cmd'|'msg'|'pager'> Default message target
---- or table mapping |ui-messages| kinds and triggers to a target.
---- targets = 'cmd',
---- timeout = 4000, -- Time a message is visible in the message window.
---- },
----})
----```
+--- To enable this feature (default opts shown):
+--- ```lua
+--- require('vim._core.ui2').enable({
+--- enable = true, -- Whether to enable or disable the UI.
+--- msg = { -- Options related to the message module.
+--- ---@type 'cmd'|'msg' Default message target, either in the
+--- ---cmdline or in a separate ephemeral message window.
+--- ---@type string|table<string, 'cmd'|'msg'|'pager'> Default message target
+--- ---or table mapping |ui-messages| kinds and triggers to a target.
+--- targets = 'cmd',
+--- timeout = 4000, -- Time a message is visible in the message window.
+--- },
+--- })
+--- ```
---
----There are four separate window types used by this interface:
----- "cmd": The cmdline window; also used for 'showcmd', 'showmode', 'ruler', and
---- messages if 'cmdheight' > 0.
----- "msg": The message window; used for messages when 'cmdheight' == 0.
----- "pager": The pager window; used for |:messages| and certain messages
---- that should be shown in full.
----- "dialog": The dialog window; used for prompt messages that expect user input.
+--- There are four special windows/buffers for presenting messages and cmdline:
+--- - "cmd": Cmdline. Also used for 'showcmd', 'showmode', 'ruler', and messages if 'cmdheight' > 0.
+--- - "msg": Message window, shows messages when 'cmdheight' == 0.
+--- - "pager": Pager window, shows |:messages| and certain messages that are never "collapsed".
+--- - "dialog": Dialog window, shows modal prompts that expect user input.
---
----These four windows are assigned the "cmd", "msg", "pager" and "dialog"
----'filetype' respectively. Use a |FileType| autocommand to configure any local
----options for these windows and their respective buffers.
+--- The buffer 'filetype' is to the above-listed id ("cmd", "msg", …). Handle the |FileType| event
+--- to configure any local options for these windows and their respective buffers.
---
----Rather than a |hit-enter-prompt|, messages shown in the cmdline area that do
----not fit are appended with a `[+x]` "spill" indicator, where `x` indicates the
----spilled lines. To see the full message, the |g<| command can be used.
+--- Unlike the legacy |hit-enter| prompt, messages that overflow the cmdline area are instead
+--- "collapsed", followed by a `[+x]` "spill" indicator, where `x` indicates the spilled lines. To
+--- see the full messages, do either:
+--- - ENTER immediately after a message from interactive |:| cmdline.
+--- - |g<| at any time.
local api = vim.api
local M = {