aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/_meta/api.lua
diff options
context:
space:
mode:
authorglepnir <glephunter@gmail.com>2025-11-27 01:10:45 +0800
committerGitHub <noreply@github.com>2025-11-26 09:10:45 -0800
commit8a626e5c4a5254c9ec952abe6ffe1e9b6fef9b2b (patch)
treef29c960caf2c4c8215a6c8ec5719af7b6a66ed1f /runtime/lua/vim/_meta/api.lua
parent23d0d4c92a5758731a84977c08ce16fc8477f4d0 (diff)
downloadrneovim-8a626e5c4a5254c9ec952abe6ffe1e9b6fef9b2b.tar.gz
rneovim-8a626e5c4a5254c9ec952abe6ffe1e9b6fef9b2b.tar.bz2
rneovim-8a626e5c4a5254c9ec952abe6ffe1e9b6fef9b2b.zip
feat(float): 'statusline' in floating windows #36521
Problem: Can't show 'statusline' in floating windows. Solution: Use window-local 'statusline' to control floating window statusline visibility.
Diffstat (limited to 'runtime/lua/vim/_meta/api.lua')
-rw-r--r--runtime/lua/vim/_meta/api.lua138
1 files changed, 69 insertions, 69 deletions
diff --git a/runtime/lua/vim/_meta/api.lua b/runtime/lua/vim/_meta/api.lua
index 545b167e94..38bf263aaf 100644
--- a/runtime/lua/vim/_meta/api.lua
+++ b/runtime/lua/vim/_meta/api.lua
@@ -1758,64 +1758,11 @@ function vim.api.nvim_open_term(buffer, opts) end
--- @param buffer integer Buffer to display, or 0 for current buffer
--- @param enter boolean Enter the window (make it the current window)
--- @param config vim.api.keyset.win_config Map defining the window configuration. Keys:
---- - relative: Sets the window layout to "floating", placed at (row,col)
---- coordinates relative to:
---- - "cursor" Cursor position in current window.
---- - "editor" The global editor grid.
---- - "laststatus" 'laststatus' if present, or last row.
---- - "mouse" Mouse position.
---- - "tabline" Tabline if present, or first row.
---- - "win" Window given by the `win` field, or current window.
---- - win: `window-ID` window to split, or relative window when creating a
---- float (relative="win").
--- - anchor: Decides which corner of the float to place at (row,col):
--- - "NW" northwest (default)
--- - "NE" northeast
--- - "SW" southwest
--- - "SE" southeast
---- - width: Window width (in character cells). Minimum of 1.
---- - height: Window height (in character cells). Minimum of 1.
---- - bufpos: Places float relative to buffer text (only when
---- relative="win"). Takes a tuple of zero-indexed `[line, column]`.
---- `row` and `col` if given are applied relative to this
---- position, else they default to:
---- - `row=1` and `col=0` if `anchor` is "NW" or "NE"
---- - `row=0` and `col=0` if `anchor` is "SW" or "SE"
---- (thus like a tooltip near the buffer text).
---- - row: Row position in units of "screen cell height", may be fractional.
---- - col: Column position in units of screen cell width, may be fractional.
---- - focusable: Enable focus by user actions (wincmds, mouse events).
---- Defaults to true. Non-focusable windows can be entered by
---- `nvim_set_current_win()`, or, when the `mouse` field is set to true,
---- by mouse events. See `focusable`.
---- - mouse: Specify how this window interacts with mouse events.
---- Defaults to `focusable` value.
---- - If false, mouse events pass through this window.
---- - If true, mouse events interact with this window normally.
---- - external: GUI should display the window as an external
---- top-level window. Currently accepts no other positioning
---- configuration together with this.
---- - zindex: Stacking order. floats with higher `zindex` go on top on
---- floats with lower indices. Must be larger than zero. The
---- following screen elements have hard-coded z-indices:
---- - 100: insert completion popupmenu
---- - 200: message scrollback
---- - 250: cmdline completion popupmenu (when wildoptions+=pum)
---- The default value for floats are 50. In general, values below 100 are
---- recommended, unless there is a good reason to overshadow builtin
---- elements.
---- - style: (optional) Configure the appearance of the window. Currently
---- only supports one value:
---- - "minimal" Nvim will display the window with many UI options
---- disabled. This is useful when displaying a temporary
---- float where the text should not be edited. Disables
---- 'number', 'relativenumber', 'cursorline', 'cursorcolumn',
---- 'foldcolumn', 'spell' and 'list' options. 'signcolumn'
---- is changed to `auto` and 'colorcolumn' is cleared.
---- 'statuscolumn' is changed to empty. The end-of-buffer
---- region is hidden by setting `eob` flag of
---- 'fillchars' to a space char, and clearing the
---- `hl-EndOfBuffer` region in 'winhighlight'.
--- - border: (`string|string[]`) (defaults to 'winborder' option) Window border. The string form
--- accepts the same values as the 'winborder' option. The array form must have a length of
--- eight or any divisor of eight, specifying the chars that form the border in a clockwise
@@ -1839,30 +1786,83 @@ function vim.api.nvim_open_term(buffer, opts) end
--- [ "", "", "", ">", "", "", "", "<" ]
--- ```
--- By default, `hl-FloatBorder` highlight is used, which links to `hl-WinSeparator` when not
---- defined. Each border side can specify an optional highlight:
+--- defined. Each border side can specify an optional highlight:
--- ```
--- [ ["+", "MyCorner"], ["x", "MyBorder"] ].
--- ```
---- - title: (optional) Title in window border, string or list.
---- List should consist of `[text, highlight]` tuples.
---- If string, or a tuple lacks a highlight, the default highlight group is `FloatTitle`.
---- - title_pos: Title position. Must be set with `title` option.
---- Value can be one of "left", "center", or "right".
---- Default is `"left"`.
---- - footer: (optional) Footer in window border, string or list.
---- List should consist of `[text, highlight]` tuples.
---- If string, or a tuple lacks a highlight, the default highlight group is `FloatFooter`.
---- - footer_pos: Footer position. Must be set with `footer` option.
---- Value can be one of "left", "center", or "right".
---- Default is `"left"`.
---- - noautocmd: Block all autocommands for the duration of the call. Cannot be changed by
---- `nvim_win_set_config()`.
+--- - bufpos: Places float relative to buffer text (only when
+--- relative="win"). Takes a tuple of zero-indexed `[line, column]`.
+--- `row` and `col` if given are applied relative to this
+--- position, else they default to:
+--- - `row=1` and `col=0` if `anchor` is "NW" or "NE"
+--- - `row=0` and `col=0` if `anchor` is "SW" or "SE"
+--- (thus like a tooltip near the buffer text).
+--- - col: Column position in units of screen cell width, may be fractional.
+--- - external: GUI should display the window as an external
+--- top-level window. Currently accepts no other positioning
+--- configuration together with this.
--- - fixed: If true when anchor is NW or SW, the float window
--- would be kept fixed even if the window would be truncated.
+--- - focusable: Enable focus by user actions (wincmds, mouse events).
+--- Defaults to true. Non-focusable windows can be entered by
+--- `nvim_set_current_win()`, or, when the `mouse` field is set to true,
+--- by mouse events. See `focusable`.
+--- - footer: (optional) Footer in window border, string or list.
+--- List should consist of `[text, highlight]` tuples.
+--- If string, or a tuple lacks a highlight, the default highlight group is `FloatFooter`.
+--- - footer_pos: Footer position. Must be set with `footer` option.
+--- Value can be one of "left", "center", or "right".
+--- Default is `"left"`.
+--- - height: Window height (in character cells). Minimum of 1.
--- - hide: If true the floating window will be hidden and the cursor will be invisible when
--- focused on it.
---- - vertical: Split vertically `:vertical`.
+--- - mouse: Specify how this window interacts with mouse events.
+--- Defaults to `focusable` value.
+--- - If false, mouse events pass through this window.
+--- - If true, mouse events interact with this window normally.
+--- - noautocmd: Block all autocommands for the duration of the call. Cannot be changed by
+--- `nvim_win_set_config()`.
+--- - relative: Sets the window layout to "floating", placed at (row,col)
+--- coordinates relative to:
+--- - "cursor" Cursor position in current window.
+--- - "editor" The global editor grid.
+--- - "laststatus" 'laststatus' if present, or last row.
+--- - "mouse" Mouse position.
+--- - "tabline" Tabline if present, or first row.
+--- - "win" Window given by the `win` field, or current window.
+--- - row: Row position in units of "screen cell height", may be fractional.
--- - split: Split direction: "left", "right", "above", "below".
+--- - style: (optional) Configure the appearance of the window. Currently
+--- only supports one value:
+--- - "minimal" Nvim will display the window with many UI options
+--- disabled. This is useful when displaying a temporary
+--- float where the text should not be edited. Disables
+--- 'number', 'relativenumber', 'cursorline', 'cursorcolumn',
+--- 'foldcolumn', 'spell' and 'list' options. 'signcolumn'
+--- is changed to `auto` and 'colorcolumn' is cleared.
+--- 'statuscolumn' is changed to empty. The end-of-buffer
+--- region is hidden by setting `eob` flag of
+--- 'fillchars' to a space char, and clearing the
+--- `hl-EndOfBuffer` region in 'winhighlight'.
+--- - title: (optional) Title in window border, string or list.
+--- List should consist of `[text, highlight]` tuples.
+--- If string, or a tuple lacks a highlight, the default highlight group is `FloatTitle`.
+--- - title_pos: Title position. Must be set with `title` option.
+--- Value can be one of "left", "center", or "right".
+--- Default is `"left"`.
+--- - vertical: Split vertically `:vertical`.
+--- - width: Window width (in character cells). Minimum of 1.
+--- - win: `window-ID` window to split, or relative window when creating a
+--- float (relative="win").
+--- - zindex: Stacking order. floats with higher `zindex` go on top on
+--- floats with lower indices. Must be larger than zero. The
+--- following screen elements have hard-coded z-indices:
+--- - 100: insert completion popupmenu
+--- - 200: message scrollback
+--- - 250: cmdline completion popupmenu (when wildoptions+=pum)
+--- The default value for floats are 50. In general, values below 100 are
+--- recommended, unless there is a good reason to overshadow builtin
+--- elements.
--- - _cmdline_offset: (EXPERIMENTAL) When provided, anchor the `cmdline-completion`
--- popupmenu to this window, with an offset in screen cell width.
--- @return integer # |window-ID|, or 0 on error