aboutsummaryrefslogtreecommitdiff
path: root/runtime/doc/api.txt
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/doc/api.txt')
-rw-r--r--runtime/doc/api.txt4682
1 files changed, 2228 insertions, 2454 deletions
diff --git a/runtime/doc/api.txt b/runtime/doc/api.txt
index be42b7c14e..a388592981 100644
--- a/runtime/doc/api.txt
+++ b/runtime/doc/api.txt
@@ -1,10 +1,10 @@
-*api.txt* Nvim
+*api.txt* Nvim
- NVIM REFERENCE MANUAL by Thiago de Arruda
+ NVIM REFERENCE MANUAL by Thiago de Arruda
-Nvim API *API* *api*
+Nvim API *API* *api*
Nvim exposes a powerful API that can be used by plugins and external processes
via |RPC|, |Lua| and VimL (|eval-api|).
@@ -14,9 +14,9 @@ Applications can also embed libnvim to work with the C API directly.
Type |gO| to see the table of contents.
==============================================================================
-API Usage *api-rpc* *RPC* *rpc*
+API Usage *api-rpc* *RPC* *rpc*
- *msgpack-rpc*
+ *msgpack-rpc*
RPC is the typical way to control Nvim programmatically. Nvim implements the
MessagePack-RPC protocol:
https://github.com/msgpack-rpc/msgpack-rpc/blob/master/spec.md
@@ -32,7 +32,7 @@ other Nvim instances. API clients can:
The RPC API is like a more powerful version of Vim's "clientserver" feature.
-CONNECTING *rpc-connecting*
+CONNECTING *rpc-connecting*
See |channel-intro| for various ways to open a channel. Channel-opening
functions take an `rpc` key in the options dictionary. RPC channels can also
@@ -85,21 +85,21 @@ and |rpcnotify()|:
call jobstop(nvim)
==============================================================================
-API Definitions *api-definitions*
+API Definitions *api-definitions*
- *api-types*
+ *api-types*
The Nvim C API defines custom types for all function parameters. Some are just
typedefs around C99 standard types, others are Nvim-defined data structures.
Basic types ~
- API Type C type
+ API Type C type
------------------------------------------------------------------------
Nil
- Boolean bool
- Integer (signed 64-bit integer) int64_t
- Float (IEEE 754 double precision) double
- String {char* data, size_t size} struct
+ Boolean bool
+ Integer (signed 64-bit integer) int64_t
+ Float (IEEE 754 double precision) double
+ String {char* data, size_t size} struct
Array
Dictionary (msgpack: map)
Object
@@ -116,14 +116,14 @@ Special types (msgpack EXT) ~
in the |api-metadata| `types` key are stable: they will not change and are
thus forward-compatible.
- EXT Type C type Data
+ EXT Type C type Data
------------------------------------------------------------------------
- Buffer enum value kObjectTypeBuffer |bufnr()|
- Window enum value kObjectTypeWindow |window-ID|
- Tabpage enum value kObjectTypeTabpage internal handle
+ Buffer enum value kObjectTypeBuffer |bufnr()|
+ Window enum value kObjectTypeWindow |window-ID|
+ Tabpage enum value kObjectTypeTabpage internal handle
- *api-indexing*
+ *api-indexing*
Most of the API uses 0-based indices, and ranges are end-exclusive. For the
end of a range, -1 denotes the last line/column.
@@ -144,7 +144,7 @@ indices, end-inclusive):
|nvim_buf_get_extmarks()|
|nvim_buf_set_extmark()|
- *api-fast*
+ *api-fast*
Most API functions are "deferred": they are queued on the main loop and
processed sequentially with normal input. So if the editor is waiting for
user input in a "modal" fashion (e.g. the |hit-enter-prompt|), the request
@@ -153,7 +153,7 @@ will block. Non-deferred (fast) functions such as |nvim_get_mode()| and
queue). Lua code can use |vim.in_fast_event()| to detect a fast context.
==============================================================================
-API metadata *api-metadata*
+API metadata *api-metadata*
The Nvim C API is automatically exposed to RPC by the build system, which
parses headers in src/nvim/api/* and generates dispatch-functions mapping RPC
@@ -162,19 +162,19 @@ and return values.
Nvim exposes its API metadata as a Dictionary with these items:
-version Nvim version, API level/compatibility
-version.api_level API version integer *api-level*
-version.api_compatible API is backwards-compatible with this level
-version.api_prerelease Declares the API as unstable/unreleased >
- (version.api_prerelease && fn.since == version.api_level)
-functions API function signatures, containing |api-types| info
+version Nvim version, API level/compatibility
+version.api_level API version integer *api-level*
+version.api_compatible API is backwards-compatible with this level
+version.api_prerelease Declares the API as unstable/unreleased >
+ (version.api_prerelease && fn.since == version.api_level)
+functions API function signatures, containing |api-types| info
describing the return value and parameters.
-ui_events |UI| event signatures
-ui_options Supported |ui-option|s
-{fn}.since API level where function {fn} was introduced
-{fn}.deprecated_since API level where function {fn} was deprecated
-types Custom handle types defined by Nvim
-error_types Possible error types returned by API functions
+ui_events |UI| event signatures
+ui_options Supported |ui-option|s
+{fn}.since API level where function {fn} was introduced
+{fn}.deprecated_since API level where function {fn} was deprecated
+types Custom handle types defined by Nvim
+error_types Possible error types returned by API functions
About the `functions` map:
@@ -188,7 +188,7 @@ About the `functions` map:
- Global functions have the "method=false" flag and are prefixed with just
`nvim_`, e.g. `nvim_list_bufs`.
- *api-mapping*
+ *api-mapping*
External programs (clients) can use the metadata to discover the API, using
any of these approaches:
@@ -231,7 +231,7 @@ As Nvim evolves the API may change in compliance with this CONTRACT:
- Deprecated functions will not be removed until Nvim version 2.0
==============================================================================
-Global events *api-global-events*
+Global events *api-global-events*
When a client invokes an API request as an async notification, it is not
possible for Nvim to send an error response. Instead, in case of error, the
@@ -244,7 +244,7 @@ nvim_error_event[{type}, {message}]
a string with the error message.
==============================================================================
-Buffer update events *api-buffer-updates*
+Buffer update events *api-buffer-updates*
API clients can "attach" to Nvim buffers to subscribe to buffer update events.
This is similar to |TextChanged| but more powerful and granular.
@@ -254,89 +254,90 @@ Call |nvim_buf_attach()| to receive these events on the channel:
*nvim_buf_lines_event*
nvim_buf_lines_event[{buf}, {changedtick}, {firstline}, {lastline}, {linedata}, {more}]
- When the buffer text between {firstline} and {lastline} (end-exclusive,
- zero-indexed) were changed to the new text in the {linedata} list. The
- granularity is a line, i.e. if a single character is changed in the editor,
- the entire line is sent.
+ When the buffer text between {firstline} and {lastline} (end-exclusive,
+ zero-indexed) were changed to the new text in the {linedata} list. The
+ granularity is a line, i.e. if a single character is changed in the
+ editor, the entire line is sent.
- When {changedtick} is |v:null| this means the screen lines (display) changed
- but not the buffer contents. {linedata} contains the changed screen lines.
- This happens when 'inccommand' shows a buffer preview.
+ When {changedtick} is |v:null| this means the screen lines (display)
+ changed but not the buffer contents. {linedata} contains the changed
+ screen lines. This happens when 'inccommand' shows a buffer preview.
- Properties:~
- {buf} API buffer handle (buffer number)
+ Properties:~
+ {buf} API buffer handle (buffer number)
- {changedtick} value of |b:changedtick| for the buffer. If you send an API
- command back to nvim you can check the value of |b:changedtick| as part of
- your request to ensure that no other changes have been made.
+ {changedtick} value of |b:changedtick| for the buffer. If you send an
+ API command back to nvim you can check the value of |b:changedtick| as
+ part of your request to ensure that no other changes have been made.
- {firstline} integer line number of the first line that was replaced.
- Zero-indexed: if line 1 was replaced then {firstline} will be 0, not 1.
- {firstline} is always less than or equal to the number of lines that were
- in the buffer before the lines were replaced.
+ {firstline} integer line number of the first line that was replaced.
+ Zero-indexed: if line 1 was replaced then {firstline} will be 0, not
+ 1. {firstline} is always less than or equal to the number of lines
+ that were in the buffer before the lines were replaced.
- {lastline} integer line number of the first line that was not replaced
- (i.e. the range {firstline}, {lastline} is end-exclusive).
- Zero-indexed: if line numbers 2 to 5 were replaced, this will be 5 instead
- of 6. {lastline} is always be less than or equal to the number of lines
- that were in the buffer before the lines were replaced. {lastline} will be
- -1 if the event is part of the initial update after attaching.
+ {lastline} integer line number of the first line that was not replaced
+ (i.e. the range {firstline}, {lastline} is end-exclusive).
+ Zero-indexed: if line numbers 2 to 5 were replaced, this will be 5
+ instead of 6. {lastline} is always be less than or equal to the number
+ of lines that were in the buffer before the lines were replaced.
+ {lastline} will be -1 if the event is part of the initial update after
+ attaching.
- {linedata} list of strings containing the contents of the new buffer
- lines. Newline characters are omitted; empty lines are sent as empty
- strings.
+ {linedata} list of strings containing the contents of the new buffer
+ lines. Newline characters are omitted; empty lines are sent as empty
+ strings.
- {more} boolean, true for a "multipart" change notification: the current
- change was chunked into multiple |nvim_buf_lines_event| notifications
- (e.g. because it was too big).
+ {more} boolean, true for a "multipart" change notification: the
+ current change was chunked into multiple |nvim_buf_lines_event|
+ notifications (e.g. because it was too big).
nvim_buf_changedtick_event[{buf}, {changedtick}] *nvim_buf_changedtick_event*
- When |b:changedtick| was incremented but no text was changed. Relevant for
- undo/redo.
+ When |b:changedtick| was incremented but no text was changed. Relevant for
+ undo/redo.
- Properties:~
- {buf} API buffer handle (buffer number)
- {changedtick} new value of |b:changedtick| for the buffer
+ Properties:~
+ {buf} API buffer handle (buffer number)
+ {changedtick} new value of |b:changedtick| for the buffer
nvim_buf_detach_event[{buf}] *nvim_buf_detach_event*
- When buffer is detached (i.e. updates are disabled). Triggered explicitly by
- |nvim_buf_detach()| or implicitly in these cases:
- - Buffer was |abandon|ed and 'hidden' is not set.
- - Buffer was reloaded, e.g. with |:edit| or an external change triggered
- |:checktime| or 'autoread'.
- - Generally: whenever the buffer contents are unloaded from memory.
+ When buffer is detached (i.e. updates are disabled). Triggered explicitly by
+ |nvim_buf_detach()| or implicitly in these cases:
+ - Buffer was |abandon|ed and 'hidden' is not set.
+ - Buffer was reloaded, e.g. with |:edit| or an external change triggered
+ |:checktime| or 'autoread'.
+ - Generally: whenever the buffer contents are unloaded from memory.
- Properties:~
- {buf} API buffer handle (buffer number)
+ Properties:~
+ {buf} API buffer handle (buffer number)
EXAMPLE ~
Calling |nvim_buf_attach()| with send_buffer=true on an empty buffer, emits: >
- nvim_buf_lines_event[{buf}, {changedtick}, 0, -1, [""], v:false]
+ nvim_buf_lines_event[{buf}, {changedtick}, 0, -1, [""], v:false]
User adds two lines to the buffer, emits: >
- nvim_buf_lines_event[{buf}, {changedtick}, 0, 0, ["line1", "line2"], v:false]
+ nvim_buf_lines_event[{buf}, {changedtick}, 0, 0, ["line1", "line2"], v:false]
User moves to a line containing the text "Hello world" and inserts "!", emits: >
- nvim_buf_lines_event[{buf}, {changedtick}, {linenr}, {linenr} + 1,
- ["Hello world!"], v:false]
+ nvim_buf_lines_event[{buf}, {changedtick}, {linenr}, {linenr} + 1,
+ ["Hello world!"], v:false]
User moves to line 3 and deletes 20 lines using "20dd", emits: >
- nvim_buf_lines_event[{buf}, {changedtick}, 2, 22, [], v:false]
+ nvim_buf_lines_event[{buf}, {changedtick}, 2, 22, [], v:false]
User selects lines 3-5 using |linewise-visual| mode and then types "p" to
paste a block of 6 lines, emits: >
- nvim_buf_lines_event[{buf}, {changedtick}, 2, 5,
- ['pasted line 1', 'pasted line 2', 'pasted line 3', 'pasted line 4',
- 'pasted line 5', 'pasted line 6'],
- v:false
- ]
+ nvim_buf_lines_event[{buf}, {changedtick}, 2, 5,
+ ['pasted line 1', 'pasted line 2', 'pasted line 3', 'pasted line 4',
+ 'pasted line 5', 'pasted line 6'],
+ v:false
+ ]
User reloads the buffer with ":edit", emits: >
- nvim_buf_detach_event[{buf}]
+ nvim_buf_detach_event[{buf}]
<
LUA ~
@@ -369,7 +370,7 @@ callbacks attached with the same |nvim_buf_attach()| call.
==============================================================================
-Buffer highlighting *api-highlights*
+Buffer highlighting *api-highlights*
Nvim allows plugins to add position-based highlights to buffers. This is
similar to |matchaddpos()| but with some key differences. The added highlights
@@ -413,7 +414,7 @@ Example using the API from Vimscript: >
==============================================================================
-Floating windows *api-floatwin*
+Floating windows *api-floatwin*
Floating windows ("floats") are displayed on top of normal windows. This is
useful to implement simple widgets, such as tooltips displayed next to the
@@ -457,7 +458,7 @@ Example: create a float with scratch buffer: >
>
==============================================================================
-Extended marks *api-extended-marks* *extmarks*
+Extended marks *api-extended-marks* *extmarks*
Extended marks (extmarks) represent buffer annotations that track text changes
in the buffer. They can represent cursors, folds, misspelled words, anything
@@ -537,1025 +538,961 @@ created for extmark changes.
Global Functions *api-global*
nvim__get_runtime({pat}, {all}, {*opts}) *nvim__get_runtime()*
- Find files in runtime directories
+ Find files in runtime directories
- Attributes: ~
- |api-fast|
+ Attributes: ~
+ |api-fast|
- Parameters: ~
- {pat} pattern of files to search for
- {all} whether to return all matches or only the first
- {opts} is_lua: only search lua subdirs
+ Parameters: ~
+ {pat} pattern of files to search for
+ {all} whether to return all matches or only the first
+ {opts} is_lua: only search lua subdirs
- Return: ~
- list of absolute paths to the found files
+ Return: ~
+ list of absolute paths to the found files
nvim__id({obj}) *nvim__id()*
- Returns object given as argument.
+ Returns object given as argument.
- This API function is used for testing. One should not rely on
- its presence in plugins.
+ This API function is used for testing. One should not rely on its presence
+ in plugins.
- Parameters: ~
- {obj} Object to return.
+ Parameters: ~
+ {obj} Object to return.
- Return: ~
- its argument.
+ Return: ~
+ its argument.
nvim__id_array({arr}) *nvim__id_array()*
- Returns array given as argument.
+ Returns array given as argument.
- This API function is used for testing. One should not rely on
- its presence in plugins.
+ This API function is used for testing. One should not rely on its presence
+ in plugins.
- Parameters: ~
- {arr} Array to return.
+ Parameters: ~
+ {arr} Array to return.
- Return: ~
- its argument.
+ Return: ~
+ its argument.
nvim__id_dictionary({dct}) *nvim__id_dictionary()*
- Returns dictionary given as argument.
+ Returns dictionary given as argument.
- This API function is used for testing. One should not rely on
- its presence in plugins.
+ This API function is used for testing. One should not rely on its presence
+ in plugins.
- Parameters: ~
- {dct} Dictionary to return.
+ Parameters: ~
+ {dct} Dictionary to return.
- Return: ~
- its argument.
+ Return: ~
+ its argument.
nvim__id_float({flt}) *nvim__id_float()*
- Returns floating-point value given as argument.
+ Returns floating-point value given as argument.
- This API function is used for testing. One should not rely on
- its presence in plugins.
+ This API function is used for testing. One should not rely on its presence
+ in plugins.
- Parameters: ~
- {flt} Value to return.
+ Parameters: ~
+ {flt} Value to return.
- Return: ~
- its argument.
+ Return: ~
+ its argument.
nvim__inspect_cell({grid}, {row}, {col}) *nvim__inspect_cell()*
- NB: if your UI doesn't use hlstate, this will not return
- hlstate first time.
-
-nvim__set_hl_ns({ns_id}) *nvim__set_hl_ns()*
- Set active namespace for highlights.
-
- NB: this function can be called from async contexts, but the
- semantics are not yet well-defined. To start with
- |nvim_set_decoration_provider| on_win and on_line callbacks
- are explicitly allowed to change the namespace during a redraw
- cycle.
-
- Attributes: ~
- |api-fast|
-
- Parameters: ~
- {ns_id} the namespace to activate
+ NB: if your UI doesn't use hlstate, this will not return hlstate first
+ time.
nvim__stats() *nvim__stats()*
- Gets internal stats.
+ Gets internal stats.
- Return: ~
- Map of various internal stats.
+ Return: ~
+ Map of various internal stats.
nvim_call_atomic({calls}) *nvim_call_atomic()*
- Calls many API methods atomically.
-
- This has two main usages:
- 1. To perform several requests from an async context
- atomically, i.e. without interleaving redraws, RPC requests
- from other clients, or user interactions (however API
- methods may trigger autocommands or event processing which
- have such side effects, e.g. |:sleep| may wake timers).
- 2. To minimize RPC overhead (roundtrips) of a sequence of many
- requests.
-
- Attributes: ~
- |RPC| only
-
- Parameters: ~
- {calls} an array of calls, where each call is described
- by an array with two elements: the request name,
- and an array of arguments.
-
- Return: ~
- Array of two elements. The first is an array of return
- values. The second is NIL if all calls succeeded. If a
- call resulted in an error, it is a three-element array
- with the zero-based index of the call which resulted in an
- error, the error type and the error message. If an error
- occurred, the values from all preceding calls will still
- be returned.
+ Calls many API methods atomically.
+
+ This has two main usages:
+ 1. To perform several requests from an async context atomically, i.e.
+ without interleaving redraws, RPC requests from other clients, or user
+ interactions (however API methods may trigger autocommands or event
+ processing which have such side effects, e.g. |:sleep| may wake
+ timers).
+ 2. To minimize RPC overhead (roundtrips) of a sequence of many requests.
+
+ Attributes: ~
+ |RPC| only
+
+ Parameters: ~
+ {calls} an array of calls, where each call is described by an array
+ with two elements: the request name, and an array of
+ arguments.
+
+ Return: ~
+ Array of two elements. The first is an array of return values. The
+ second is NIL if all calls succeeded. If a call resulted in an error,
+ it is a three-element array with the zero-based index of the call
+ which resulted in an error, the error type and the error message. If
+ an error occurred, the values from all preceding calls will still be
+ returned.
nvim_chan_send({chan}, {data}) *nvim_chan_send()*
- Send data to channel `id`. For a job, it writes it to the
- stdin of the process. For the stdio channel |channel-stdio|,
- it writes to Nvim's stdout. For an internal terminal instance
- (|nvim_open_term()|) it writes directly to terminal output.
- See |channel-bytes| for more information.
+ Send data to channel `id`. For a job, it writes it to the stdin of the
+ process. For the stdio channel |channel-stdio|, it writes to Nvim's
+ stdout. For an internal terminal instance (|nvim_open_term()|) it writes
+ directly to terminal output. See |channel-bytes| for more information.
- This function writes raw data, not RPC messages. If the
- channel was created with `rpc=true` then the channel expects
- RPC messages, use |vim.rpcnotify()| and |vim.rpcrequest()|
- instead.
+ This function writes raw data, not RPC messages. If the channel was
+ created with `rpc=true` then the channel expects RPC messages, use
+ |vim.rpcnotify()| and |vim.rpcrequest()| instead.
- Attributes: ~
- |RPC| only
- |vim.api| only
+ Attributes: ~
+ |RPC| only
+ |vim.api| only
- Parameters: ~
- {chan} id of the channel
- {data} data to write. 8-bit clean: can contain NUL bytes.
+ Parameters: ~
+ {chan} id of the channel
+ {data} data to write. 8-bit clean: can contain NUL bytes.
nvim_create_buf({listed}, {scratch}) *nvim_create_buf()*
- Creates a new, empty, unnamed buffer.
+ Creates a new, empty, unnamed buffer.
- Parameters: ~
- {listed} Sets 'buflisted'
- {scratch} Creates a "throwaway" |scratch-buffer| for
- temporary work (always 'nomodified'). Also sets
- 'nomodeline' on the buffer.
+ Parameters: ~
+ {listed} Sets 'buflisted'
+ {scratch} Creates a "throwaway" |scratch-buffer| for temporary work
+ (always 'nomodified'). Also sets 'nomodeline' on the
+ buffer.
- Return: ~
- Buffer handle, or 0 on error
+ Return: ~
+ Buffer handle, or 0 on error
- See also: ~
- buf_open_scratch
+ See also: ~
+ buf_open_scratch
nvim_del_current_line() *nvim_del_current_line()*
- Deletes the current line.
+ Deletes the current line.
- Attributes: ~
- not allowed when |textlock| is active
+ Attributes: ~
+ not allowed when |textlock| is active
nvim_del_keymap({mode}, {lhs}) *nvim_del_keymap()*
- Unmaps a global |mapping| for the given mode.
+ Unmaps a global |mapping| for the given mode.
- To unmap a buffer-local mapping, use |nvim_buf_del_keymap()|.
+ To unmap a buffer-local mapping, use |nvim_buf_del_keymap()|.
- See also: ~
- |nvim_set_keymap()|
+ See also: ~
+ |nvim_set_keymap()|
nvim_del_mark({name}) *nvim_del_mark()*
- Deletes an uppercase/file named mark. See |mark-motions|.
+ Deletes an uppercase/file named mark. See |mark-motions|.
- Note:
- fails with error if a lowercase or buffer local named mark
- is used.
+ Note:
+ fails with error if a lowercase or buffer local named mark is used.
- Parameters: ~
- {name} Mark name
+ Parameters: ~
+ {name} Mark name
- Return: ~
- true if the mark was deleted, else false.
+ Return: ~
+ true if the mark was deleted, else false.
- See also: ~
- |nvim_buf_del_mark()|
- |nvim_get_mark()|
+ See also: ~
+ |nvim_buf_del_mark()|
+ |nvim_get_mark()|
nvim_del_var({name}) *nvim_del_var()*
- Removes a global (g:) variable.
+ Removes a global (g:) variable.
- Parameters: ~
- {name} Variable name
+ Parameters: ~
+ {name} Variable name
nvim_echo({chunks}, {history}, {opts}) *nvim_echo()*
- Echo a message.
+ Echo a message.
- Parameters: ~
- {chunks} A list of [text, hl_group] arrays, each
- representing a text chunk with specified
- highlight. `hl_group` element can be omitted
- for no highlight.
- {history} if true, add to |message-history|.
- {opts} Optional parameters. Reserved for future use.
+ Parameters: ~
+ {chunks} A list of [text, hl_group] arrays, each representing a text
+ chunk with specified highlight. `hl_group` element can be
+ omitted for no highlight.
+ {history} if true, add to |message-history|.
+ {opts} Optional parameters. Reserved for future use.
nvim_err_write({str}) *nvim_err_write()*
- Writes a message to the Vim error buffer. Does not append
- "\n", the message is buffered (won't display) until a linefeed
- is written.
+ Writes a message to the Vim error buffer. Does not append "\n", the
+ message is buffered (won't display) until a linefeed is written.
- Parameters: ~
- {str} Message
+ Parameters: ~
+ {str} Message
nvim_err_writeln({str}) *nvim_err_writeln()*
- Writes a message to the Vim error buffer. Appends "\n", so the
- buffer is flushed (and displayed).
+ Writes a message to the Vim error buffer. Appends "\n", so the buffer is
+ flushed (and displayed).
- Parameters: ~
- {str} Message
+ Parameters: ~
+ {str} Message
- See also: ~
- nvim_err_write()
+ See also: ~
+ nvim_err_write()
nvim_eval_statusline({str}, {*opts}) *nvim_eval_statusline()*
- Evaluates statusline string.
-
- Attributes: ~
- |api-fast|
-
- Parameters: ~
- {str} Statusline string (see 'statusline').
- {opts} Optional parameters.
- • winid: (number) |window-ID| of the window to use
- as context for statusline.
- • maxwidth: (number) Maximum width of statusline.
- • fillchar: (string) Character to fill blank
- spaces in the statusline (see 'fillchars').
- Treated as single-width even if it isn't.
- • highlights: (boolean) Return highlight
- information.
- • use_winbar: (boolean) Evaluate winbar instead of
- statusline.
- • use_tabline: (boolean) Evaluate tabline instead
- of statusline. When |TRUE|, {winid} is ignored.
- Mutually exclusive with {use_winbar}.
-
- Return: ~
- Dictionary containing statusline information, with these
- keys:
- • str: (string) Characters that will be displayed on the
- statusline.
- • width: (number) Display width of the statusline.
- • highlights: Array containing highlight information of
- the statusline. Only included when the "highlights" key
- in {opts} is |TRUE|. Each element of the array is a
- |Dictionary| with these keys:
- • start: (number) Byte index (0-based) of first
- character that uses the highlight.
- • group: (string) Name of highlight group.
+ Evaluates statusline string.
+
+ Attributes: ~
+ |api-fast|
+
+ Parameters: ~
+ {str} Statusline string (see 'statusline').
+ {opts} Optional parameters.
+ • winid: (number) |window-ID| of the window to use as context
+ for statusline.
+ • maxwidth: (number) Maximum width of statusline.
+ • fillchar: (string) Character to fill blank spaces in the
+ statusline (see 'fillchars'). Treated as single-width even
+ if it isn't.
+ • highlights: (boolean) Return highlight information.
+ • use_winbar: (boolean) Evaluate winbar instead of statusline.
+ • use_tabline: (boolean) Evaluate tabline instead of
+ statusline. When |TRUE|, {winid} is ignored. Mutually
+ exclusive with {use_winbar}.
+
+ Return: ~
+ Dictionary containing statusline information, with these keys:
+ • str: (string) Characters that will be displayed on the statusline.
+ • width: (number) Display width of the statusline.
+ • highlights: Array containing highlight information of the
+ statusline. Only included when the "highlights" key in {opts} is
+ |TRUE|. Each element of the array is a |Dictionary| with these keys:
+ • start: (number) Byte index (0-based) of first character that uses
+ the highlight.
+ • group: (string) Name of highlight group.
nvim_exec_lua({code}, {args}) *nvim_exec_lua()*
- Execute Lua code. Parameters (if any) are available as `...`
- inside the chunk. The chunk can return a value.
+ Execute Lua code. Parameters (if any) are available as `...` inside the
+ chunk. The chunk can return a value.
- Only statements are executed. To evaluate an expression,
- prefix it with `return`: return my_function(...)
+ Only statements are executed. To evaluate an expression, prefix it with
+ `return`: return my_function(...)
- Attributes: ~
- |RPC| only
+ Attributes: ~
+ |RPC| only
- Parameters: ~
- {code} Lua code to execute
- {args} Arguments to the code
+ Parameters: ~
+ {code} Lua code to execute
+ {args} Arguments to the code
- Return: ~
- Return value of Lua code if present or NIL.
+ Return: ~
+ Return value of Lua code if present or NIL.
nvim_feedkeys({keys}, {mode}, {escape_ks}) *nvim_feedkeys()*
- Sends input-keys to Nvim, subject to various quirks controlled
- by `mode` flags. This is a blocking call, unlike
- |nvim_input()|.
+ Sends input-keys to Nvim, subject to various quirks controlled by `mode`
+ flags. This is a blocking call, unlike |nvim_input()|.
- On execution error: does not fail, but updates v:errmsg.
+ On execution error: does not fail, but updates v:errmsg.
- To input sequences like <C-o> use |nvim_replace_termcodes()|
- (typically with escape_ks=false) to replace |keycodes|, then
- pass the result to nvim_feedkeys().
+ To input sequences like <C-o> use |nvim_replace_termcodes()| (typically
+ with escape_ks=false) to replace |keycodes|, then pass the result to
+ nvim_feedkeys().
- Example: >
- :let key = nvim_replace_termcodes("<C-o>", v:true, v:false, v:true)
- :call nvim_feedkeys(key, 'n', v:false)
+ Example: >
+ :let key = nvim_replace_termcodes("<C-o>", v:true, v:false, v:true)
+ :call nvim_feedkeys(key, 'n', v:false)
<
- Parameters: ~
- {keys} to be typed
- {mode} behavior flags, see |feedkeys()|
- {escape_ks} If true, escape K_SPECIAL bytes in `keys`
- This should be false if you already used
- |nvim_replace_termcodes()|, and true
- otherwise.
+ Parameters: ~
+ {keys} to be typed
+ {mode} behavior flags, see |feedkeys()|
+ {escape_ks} If true, escape K_SPECIAL bytes in `keys` This should be
+ false if you already used |nvim_replace_termcodes()|, and
+ true otherwise.
- See also: ~
- feedkeys()
- vim_strsave_escape_ks
+ See also: ~
+ feedkeys()
+ vim_strsave_escape_ks
nvim_get_api_info() *nvim_get_api_info()*
- Returns a 2-tuple (Array), where item 0 is the current channel
- id and item 1 is the |api-metadata| map (Dictionary).
+ Returns a 2-tuple (Array), where item 0 is the current channel id and item
+ 1 is the |api-metadata| map (Dictionary).
- Return: ~
- 2-tuple [{channel-id}, {api-metadata}]
+ Return: ~
+ 2-tuple [{channel-id}, {api-metadata}]
- Attributes: ~
- |api-fast|
- |RPC| only
+ Attributes: ~
+ |api-fast|
+ |RPC| only
nvim_get_chan_info({chan}) *nvim_get_chan_info()*
- Gets information about a channel.
-
- Return: ~
- Dictionary describing a channel, with these keys:
- • "id" Channel id.
- • "argv" (optional) Job arguments list.
- • "stream" Stream underlying the channel.
- • "stdio" stdin and stdout of this Nvim instance
- • "stderr" stderr of this Nvim instance
- • "socket" TCP/IP socket or named pipe
- • "job" Job with communication over its stdio.
-
- • "mode" How data received on the channel is interpreted.
- • "bytes" Send and receive raw bytes.
- • "terminal" |terminal| instance interprets ASCII
- sequences.
- • "rpc" |RPC| communication on the channel is active.
-
- • "pty" (optional) Name of pseudoterminal. On a POSIX
- system this is a device path like "/dev/pts/1". If the
- name is unknown, the key will still be present if a pty
- is used (e.g. for conpty on Windows).
- • "buffer" (optional) Buffer with connected |terminal|
- instance.
- • "client" (optional) Info about the peer (client on the
- other end of the RPC channel), if provided by it via
- |nvim_set_client_info()|.
+ Gets information about a channel.
+
+ Return: ~
+ Dictionary describing a channel, with these keys:
+ • "id" Channel id.
+ • "argv" (optional) Job arguments list.
+ • "stream" Stream underlying the channel.
+ • "stdio" stdin and stdout of this Nvim instance
+ • "stderr" stderr of this Nvim instance
+ • "socket" TCP/IP socket or named pipe
+ • "job" Job with communication over its stdio.
+
+ • "mode" How data received on the channel is interpreted.
+ • "bytes" Send and receive raw bytes.
+ • "terminal" |terminal| instance interprets ASCII sequences.
+ • "rpc" |RPC| communication on the channel is active.
+
+ • "pty" (optional) Name of pseudoterminal. On a POSIX system this is a
+ device path like "/dev/pts/1". If the name is unknown, the key will
+ still be present if a pty is used (e.g. for conpty on Windows).
+ • "buffer" (optional) Buffer with connected |terminal| instance.
+ • "client" (optional) Info about the peer (client on the other end of
+ the RPC channel), if pro