vim-patch:631a50c: runtime(doc): mention cannot ignored events in eventignorewin (#34522)

closes: vim/vim#17545

631a50ceb9

Co-authored-by: glepnir <glephunter@gmail.com>
This commit is contained in:
zeertzjq
2025-06-16 10:14:20 +08:00
committed by GitHub
parent 4b2c2eb120
commit b92e3889fe
5 changed files with 170 additions and 1 deletions

View File

@@ -2435,6 +2435,79 @@ A jump table for the options with a short description can be found at |Q_op|.
buffers, for which window and buffer related autocommands can be buffers, for which window and buffer related autocommands can be
ignored indefinitely without affecting the global 'eventignore'. ignored indefinitely without affecting the global 'eventignore'.
Note: The following events are considered to happen outside of a
window context and thus cannot be ignored by 'eventignorewin':
|ChanInfo|,
|ChanOpen|,
|CmdUndefined|,
|CmdlineChanged|,
|CmdlineEnter|,
|CmdlineLeave|,
|CmdlineLeavePre|,
|CmdwinEnter|,
|CmdwinLeave|,
|ColorScheme|,
|ColorSchemePre|,
|CompleteChanged|,
|CompleteDone|,
|CompleteDonePre|,
|DiagnosticChanged|,
|DiffUpdated|,
|DirChanged|,
|DirChangedPre|,
|ExitPre|,
|FocusGained|,
|FocusLost|,
|FuncUndefined|,
|LspAttach|,
|LspDetach|,
|LspNotify|,
|LspProgress|,
|LspRequest|,
|LspTokenUpdate|,
|MenuPopup|,
|ModeChanged|,
|OptionSet|,
|QuickFixCmdPost|,
|QuickFixCmdPre|,
|QuitPre|,
|RemoteReply|,
|SafeState|,
|SessionLoadPost|,
|SessionWritePost|,
|ShellCmdPost|,
|Signal|,
|SourceCmd|,
|SourcePost|,
|SourcePre|,
|SpellFileMissing|,
|StdinReadPost|,
|StdinReadPre|,
|SwapExists|,
|Syntax|,
|TabClosed|,
|TabEnter|,
|TabLeave|,
|TabNew|,
|TabNewEntered|,
|TermClose|,
|TermEnter|,
|TermLeave|,
|TermOpen|,
|TermRequest|,
|TermResponse|,
|UIEnter|,
|UILeave|,
|User|,
|VimEnter|,
|VimLeave|,
|VimLeavePre|,
|VimResized|,
|VimResume|,
|VimSuspend|,
|WinNew|
*'expandtab'* *'et'* *'noexpandtab'* *'noet'* *'expandtab'* *'et'* *'noexpandtab'* *'noet'*
'expandtab' 'et' boolean (default off) 'expandtab' 'et' boolean (default off)
local to buffer local to buffer

View File

@@ -2096,6 +2096,79 @@ vim.go.ei = vim.go.eventignore
--- buffers, for which window and buffer related autocommands can be --- buffers, for which window and buffer related autocommands can be
--- ignored indefinitely without affecting the global 'eventignore'. --- ignored indefinitely without affecting the global 'eventignore'.
--- ---
--- Note: The following events are considered to happen outside of a
--- window context and thus cannot be ignored by 'eventignorewin':
---
--- `ChanInfo`,
--- `ChanOpen`,
--- `CmdUndefined`,
--- `CmdlineChanged`,
--- `CmdlineEnter`,
--- `CmdlineLeave`,
--- `CmdlineLeavePre`,
--- `CmdwinEnter`,
--- `CmdwinLeave`,
--- `ColorScheme`,
--- `ColorSchemePre`,
--- `CompleteChanged`,
--- `CompleteDone`,
--- `CompleteDonePre`,
--- `DiagnosticChanged`,
--- `DiffUpdated`,
--- `DirChanged`,
--- `DirChangedPre`,
--- `ExitPre`,
--- `FocusGained`,
--- `FocusLost`,
--- `FuncUndefined`,
--- `LspAttach`,
--- `LspDetach`,
--- `LspNotify`,
--- `LspProgress`,
--- `LspRequest`,
--- `LspTokenUpdate`,
--- `MenuPopup`,
--- `ModeChanged`,
--- `OptionSet`,
--- `QuickFixCmdPost`,
--- `QuickFixCmdPre`,
--- `QuitPre`,
--- `RemoteReply`,
--- `SafeState`,
--- `SessionLoadPost`,
--- `SessionWritePost`,
--- `ShellCmdPost`,
--- `Signal`,
--- `SourceCmd`,
--- `SourcePost`,
--- `SourcePre`,
--- `SpellFileMissing`,
--- `StdinReadPost`,
--- `StdinReadPre`,
--- `SwapExists`,
--- `Syntax`,
--- `TabClosed`,
--- `TabEnter`,
--- `TabLeave`,
--- `TabNew`,
--- `TabNewEntered`,
--- `TermClose`,
--- `TermEnter`,
--- `TermLeave`,
--- `TermOpen`,
--- `TermRequest`,
--- `TermResponse`,
--- `UIEnter`,
--- `UILeave`,
--- `User`,
--- `VimEnter`,
--- `VimLeave`,
--- `VimLeavePre`,
--- `VimResized`,
--- `VimResume`,
--- `VimSuspend`,
--- `WinNew`
---
--- @type string --- @type string
vim.o.eventignorewin = "" vim.o.eventignorewin = ""
vim.o.eiw = vim.o.eventignorewin vim.o.eiw = vim.o.eventignorewin

View File

@@ -6,6 +6,7 @@ local util = require('gen.util')
local fmt = string.format local fmt = string.format
local DEP_API_METADATA = arg[1] local DEP_API_METADATA = arg[1]
local TAGS_FILE = arg[2]
local TEXT_WIDTH = 78 local TEXT_WIDTH = 78
--- @class vim.api.metadata --- @class vim.api.metadata
@@ -797,6 +798,23 @@ local function get_option_meta()
end end
local r = vim.deepcopy(o) --[[@as vim.option_meta]] local r = vim.deepcopy(o) --[[@as vim.option_meta]]
r.desc = o.desc:gsub('^ ', ''):gsub('\n ', '\n') r.desc = o.desc:gsub('^ ', ''):gsub('\n ', '\n')
if o.full_name == 'eventignorewin' then
local events = require('nvim.auevents').events
local tags_file = assert(io.open(TAGS_FILE))
local tags_text = tags_file:read('*a')
tags_file:close()
local map_fn = function(k, v)
if v then
return nil
end
local tag_pat = ('\n%s\t([^\t]+)\t'):format(k)
local link_text = ('|%s|'):format(k)
local tags_match = tags_text:match(tag_pat) --- @type string?
return tags_match and tags_match ~= 'deprecated.txt' and link_text or nil
end
local extra_desc = vim.iter(vim.spairs(events)):map(map_fn):join(',\n\t')
r.desc = r.desc:gsub('<PLACEHOLDER>', extra_desc)
end
r.defaults = r.defaults or {} r.defaults = r.defaults or {}
if r.defaults.meta == nil then if r.defaults.meta == nil then
r.defaults.meta = optinfo[o.full_name].default r.defaults.meta = optinfo[o.full_name].default

View File

@@ -973,7 +973,7 @@ add_target(doc-vim
) )
add_target(doc-eval add_target(doc-eval
COMMAND ${NVIM_LUA} ${PROJECT_SOURCE_DIR}/src/gen/gen_eval_files.lua ${FUNCS_METADATA} COMMAND ${NVIM_LUA} ${PROJECT_SOURCE_DIR}/src/gen/gen_eval_files.lua ${FUNCS_METADATA} ${PROJECT_BINARY_DIR}/runtime/doc/tags
DEPENDS DEPENDS
nvim nvim
${FUNCS_METADATA} ${FUNCS_METADATA}

View File

@@ -2752,6 +2752,11 @@ local options = {
Similar to 'eventignore' but applies to a particular window and its Similar to 'eventignore' but applies to a particular window and its
buffers, for which window and buffer related autocommands can be buffers, for which window and buffer related autocommands can be
ignored indefinitely without affecting the global 'eventignore'. ignored indefinitely without affecting the global 'eventignore'.
Note: The following events are considered to happen outside of a
window context and thus cannot be ignored by 'eventignorewin':
<PLACEHOLDER>
]=], ]=],
expand_cb = 'expand_set_eventignore', expand_cb = 'expand_set_eventignore',
full_name = 'eventignorewin', full_name = 'eventignorewin',