import { nvim_buf_attach } from "https://deno.land/x/denops_std@v3.9.0/function/nvim/mod.ts";
Activates buffer-update events on a channel, or as Lua
callbacks.
Example (Lua): capture buffer updates in a global events
variable (use "print(vim.inspect(events))" to see its
contents):
events = {}
vim.api.nvim_buf_attach(0, false, {
on_lines=function(...) table.insert(events, {...}) end})
Parameters: ~
{buffer} Buffer handle, or 0 for current buffer
{send_buffer} True if the initial notification should
contain the whole buffer: first
notification will be nvim_buf_lines_event
. Else the first notification will be
nvim_buf_changedtick_event
. Not for Lua
callbacks.
{opts} Optional parameters.
• on_lines: Lua callback invoked on change.
Return true
to detach. Args:
• the string "lines"
• buffer handle
• b:changedtick
• first line that changed (zero-indexed)
• last line that was changed
• last line in the updated range
• byte count of previous contents
• deleted_codepoints (if utf_sizes
is
true)
• deleted_codeunits (if utf_sizes
is
true)
• on_bytes: lua callback invoked on change.
This callback receives more granular
information about the change compared to
on_lines. Return true
to detach. Args:
• the string "bytes"
• buffer handle
• b:changedtick
• start row of the changed text
(zero-indexed)
• start column of the changed text
• byte offset of the changed text (from
the start of the buffer)
• old end row of the changed text
• old end column of the changed text
• old end byte length of the changed text
• new end row of the changed text
• new end column of the changed text
• new end byte length of the changed text
• on_changedtick: Lua callback invoked on
changedtick increment without text
change. Args:
• the string "changedtick"
• buffer handle
• b:changedtick
• on_detach: Lua callback invoked on
detach. Args:
• the string "detach"
• buffer handle
• on_reload: Lua callback invoked on
reload. The entire buffer content should
be considered changed. Args:
• the string "detach"
• buffer handle
• utf_sizes: include UTF-32 and UTF-16 size
of the replaced region, as args to
on_lines
.
• preview: also attach to command preview
(i.e. 'inccommand') events.
Return: ~
False if attach failed (invalid parameter, or buffer isn't
loaded); otherwise True. TODO: LUA_API_NO_EVAL
See also: ~
|nvim_buf_detach()|
|api-buffer-updates-lua|