These are the events the nxvim editor currently emits. Register a handler for
one with nx.autocmd.create (or vim.api.nvim_create_autocmd). The event name is
matched exactly, and a handler’s callback receives the event table
{ id, event, match, buf, file, data }.
The list is the emitted set, not all of vim’s events. nxvim fires events as
features come to need them. A handler registered for an event that isn’t emitted
yet (e.g. OptionSet) is accepted but simply never
fires — it does not error. If you need one that’s missing, it’s a feature gap, not
a config mistake.
Patterns support shell globs: a pattern such as "*.rs" (no /) matches a file
event by the path tail, one containing a / matches the whole path, and "*" (or
an omitted pattern) matches everything. A pattern with no glob metacharacter is an
exact compare — so a FileType rust autocmd never glob-matches a path.
A window’s rectangle changes (split/resize/layout change).
WinScrolled
A window’s viewport scrolls — topline (vertical) or leftcol (horizontal) changes. match is the scrolled window’s id; fires per-window. Gated on a registered handler (high-frequency), so it costs nothing when nothing listens.
The editor enters / leaves Insert (or Replace) mode.
ModeChanged
The reported mode() code changes. match is the transition old:new (e.g. "n:i", "v:n"); a handler’s pattern glob-matches it ("*:i", "n:*", "*:*"). A Normal↔MultiCursor swap fires "n:m" / "m:n" (MultiCursor reports its own "m"). Gated on a registered handler.