mirror of
https://github.com/neovim/neovim.git
synced 2026-08-27 09:31:47 +00:00
Merge #38833
This commit is contained in:
@@ -2409,6 +2409,20 @@ vim.filetype.get_option({filetype}, {option})
|
||||
Return: ~
|
||||
(`string|boolean|integer`) Option value
|
||||
|
||||
vim.filetype.inspect() *vim.filetype.inspect()*
|
||||
Inspect the current state of the filetype registry.
|
||||
|
||||
Returns a copy of the internal tables used for filetype detection by
|
||||
extension, filename, or pattern. Note: Due to the dynamic nature of
|
||||
filetype detection, this is only useful for checking whether a certain
|
||||
extension, filename, or pattern has been registered so far. In addition,
|
||||
the `pattern` table is in an internal format optimized for fast lookup.
|
||||
Prefer |vim.filetype.match()| for checking the detected filetype for a
|
||||
given pattern.
|
||||
|
||||
Return: ~
|
||||
(`table<string, table<string, vim.filetype.mapping|table<string, vim.filetype.mapping>>>`)
|
||||
|
||||
vim.filetype.match({args}) *vim.filetype.match()*
|
||||
Perform filetype detection.
|
||||
|
||||
|
||||
@@ -299,6 +299,8 @@ LUA
|
||||
• |vim.json.encode()| `sort_keys` option sorts by key.
|
||||
• |vim.json.decode()| `skip_comments` option allows comments in JSON data.
|
||||
• EXPERIMENTAL: |vim.pos|, |vim.range| provide Position/Range abstraction.
|
||||
• |vim.filetype.inspect()| returns a copy of the internal tables used for
|
||||
filetype detection.
|
||||
|
||||
OPTIONS
|
||||
|
||||
@@ -394,6 +396,8 @@ TUI
|
||||
sequence.
|
||||
• The TUI now renders the SGR dim (faint), blink, conceal, and overline
|
||||
attributes.
|
||||
• The TUI will re-query the terminal's background color when resuming from
|
||||
a suspended state, and Nvim will update 'background' accordingly.
|
||||
|
||||
UI
|
||||
|
||||
|
||||
@@ -3295,4 +3295,20 @@ function M.get_option(filetype, option)
|
||||
return require('vim.filetype.options').get_option(filetype, option)
|
||||
end
|
||||
|
||||
--- Inspect the current state of the filetype registry.
|
||||
---
|
||||
--- Returns a copy of the internal tables used for filetype detection by extension, filename, or
|
||||
--- pattern. Note: Due to the dynamic nature of filetype detection, this is only useful for checking
|
||||
--- whether a certain extension, filename, or pattern has been registered so far. In addition, the
|
||||
--- `pattern` table is in an internal format optimized for fast lookup. Prefer |vim.filetype.match()|
|
||||
--- for checking the detected filetype for a given pattern.
|
||||
---@return table<string, table<string, vim.filetype.mapping|table<string, vim.filetype.mapping>>>
|
||||
function M.inspect()
|
||||
return {
|
||||
extension = vim.deepcopy(extension),
|
||||
filename = vim.deepcopy(filename),
|
||||
pattern = vim.deepcopy(pattern),
|
||||
}
|
||||
end
|
||||
|
||||
return M
|
||||
|
||||
@@ -337,14 +337,20 @@ static void tui_reset_key_encoding(TUIData *tui)
|
||||
}
|
||||
}
|
||||
|
||||
static void tui_query_bg_color_noflush(TUIData *tui)
|
||||
FUNC_ATTR_NONNULL_ALL
|
||||
{
|
||||
out(tui, S_LEN("\x1b]11;?\x07\x1b[5n"));
|
||||
}
|
||||
|
||||
/// Write the OSC 11 + DSR sequence to the terminal emulator to query the current
|
||||
/// background color.
|
||||
/// background color, and flush the terminal.
|
||||
///
|
||||
/// Response will be handled by the TermResponse handler in _core/defaults.lua.
|
||||
void tui_query_bg_color(TUIData *tui)
|
||||
FUNC_ATTR_NONNULL_ALL
|
||||
{
|
||||
out(tui, S_LEN("\x1b]11;?\x07\x1b[5n"));
|
||||
tui_query_bg_color_noflush(tui);
|
||||
flush_buf(tui);
|
||||
}
|
||||
|
||||
@@ -483,6 +489,11 @@ static void terminfo_start(TUIData *tui)
|
||||
// Query the terminal to see if it supports Kitty's keyboard protocol
|
||||
tui_query_kitty_keyboard(tui);
|
||||
|
||||
// Query the terminal's background color. We normally get it via continuous reporting (set via
|
||||
// `kTermModeThemeUpdates` above), but if we were backgrounded while the light/dark mode changed,
|
||||
// we won't have received the report, so we also query it on resume.
|
||||
tui_query_bg_color_noflush(tui);
|
||||
|
||||
int ret;
|
||||
uv_loop_init(&tui->write_loop);
|
||||
if (tui->out_isatty) {
|
||||
|
||||
Reference in New Issue
Block a user