import * as denopsStd from "https://deno.land/x/denops_std@v6.3.0/function/vim/mod.ts";
A module to provide functions of Vim native functions.
import type { Denops } from "https://deno.land/x/denops_std@v6.3.0/mod.ts";
import * as vimFn from "https://deno.land/x/denops_std@v6.3.0/function/vim/mod.ts";
export async function main(denops: Denops): Promise<void> {
// vimFn holds functions exists only in Vim
console.log(vimFn.balloon_gettext(denops));
}
Functions
Run {cmd} and add an error message to | |
When {expected} and {actual} are not equal an error message is
added to | |
When the files {fname-one} and {fname-two} do not contain
exactly the same text an error message is added to | |
When v:exception does not contain the string {error} an error
message is added to | |
Run {cmd} and add an error message to | |
When {actual} is not false an error message is added to
| |
This asserts number and | |
When {pattern} does not match {actual} an error message is
added to | |
Run {cmd} and add an error message to | |
The opposite of | |
The opposite of | |
Report a test failure directly, using String {msg}. Always returns one. | |
When {actual} is not true an error message is added to
| |
Adds a List of autocmds and autocmd groups. | |
Deletes a List of autocmds and autocmd groups. | |
Returns a | |
Return the current text in the balloon. Only for the string, not used for the List. Returns an empty string if balloon is not present. | |
Show {expr} inside the balloon. For the GUI {expr} is used as
a string. For a terminal {expr} can be a list, which contains
the lines of the balloon. If {expr} is not a list it will be
split with | |
Split String {msg} into lines to be displayed in a balloon.
The splits are made for the current window size and optimize
to show debugger output.
Returns a | |
Return non-zero when there is something to read from {handle}. {handle} can be a Channel or a Job that has a Channel. | |
Close {handle}. See | |
Close the "in" part of {handle}. See | |
Send {expr} over {handle}. The {expr} is encoded
according to the type of channel. The function cannot be used
with a raw channel. See | |
Send {string} over {handle}. {handle} can be a Channel or a Job that has a Channel. | |
Get the buffer number that {handle} is using for String {what}. {handle} can be a Channel or a Job that has a Channel. {what} can be "err" for stderr, "out" for stdout or empty for socket output. Returns -1 when there is no buffer. | |
Get the Job associated with {channel}.
If there is no job calling | |
Returns a Dictionary with information about {handle}. The items are: "id" number of the channel "status" "open", "buffered" or "closed", like ch_status() When opened with ch_open(): "hostname" the hostname of the address "port" the port of the address "path" the path of the Unix-domain socket "sock_status" "open" or "closed" "sock_mode" "NL", "RAW", "JSON" or "JS" "sock_io" "socket" "sock_timeout" timeout in msec | |
Write String {msg} in the channel log file, if it was opened
with | |
Start logging channel activity to {fname}. When {fname} is an empty string: stop logging. | |
Open a channel to {address}. See | |
Read from {handle} and return the received message.
{handle} can be a Channel or a Job that has a Channel.
For a NL channel this waits for a NL to arrive, except when
there is nothing more to read (channel was closed).
See | |
Like ch_read() but reads binary data and returns a | |
Like ch_read() but for a JS and JSON channel does not decode
the message. For a NL channel it does not block waiting for
the NL to arrive, but otherwise works like ch_read().
See | |
Send {expr} over {handle}. The {expr} is encoded
according to the type of channel. The function cannot be used
with a raw channel.
See | |
Send | |
Set options on {handle}:
"callback" the channel callback
"timeout" default read timeout in msec
"mode" mode for the whole channel
See | |
Return the status of {handle}:
"fail" failed to open the channel
"open" channel can be used
"buffered" channel can be read, not written to
"closed" channel can not be used
{handle} can be a Channel or a Job that has a Channel.
"buffered" is used when the channel was closed but there is
still data that can be obtained with | |
Checks for the existence of a | |
Output {string} as-is, including unprintable characters. This can be used to output a terminal code. For example, to disable modifyOtherKeys: | |
Produce an error with number 418, needed for implementation of RFC 2324. If {expr} is present and it is TRUE error 503 is given, indicating that coffee is temporarily not available. If {expr} is present it must be a String. | |
Like | |
Move the Vim window to the foreground. Useful when sent from
a client to a Vim server. | |
The result is a Number, which is | |
Returns the name of the currently showing mouse pointer.
When the | |
Returns a List of all the highlight group attributes. If the optional {name} is specified, then returns a List with only the attributes of the specified highlight group. Returns an empty List if the highlight group {name} is not present. | |
Creates or modifies the attributes of a List of highlight
groups. Each item in {list} is a dictionary containing the
attributes of a highlight group. See | |
Like | |
The result is a Number, which is | |
The result is a Number, which is | |
Get the channel handle that {job} is using. To check if the job has no channel: | |
Returns a Dictionary with information about {job}:
"status" what | |
Change options for {job}. Supported are:
"stoponexit" | |
Start a job and return a Job object. Unlike | |
Returns a String with the status of {job}: "run" job is running "fail" job failed to start "dead" job died or was stopped after running | |
Stop the {job}. This can also be used to signal the job. | |
This is similar to
| |
This is similar to
| |
Add a callback function that will be invoked when changes have
been made to buffer {buf}.
{buf} refers to a buffer name or number. For the accepted
values, see | |
Invoke listener callbacks for buffer {buf}. If there are no pending changes then no callbacks are invoked. | |
Remove a listener previously added with listener_add(). Returns FALSE when {id} could not be found, TRUE when {id} was removed. | |
Evaluate Lua expression {expr} and return its result converted
to Vim data structures. Second {expr} may hold additional
argument accessible as _A inside first {expr}.
Strings are returned as they are.
Boolean objects are converted to numbers.
Numbers are converted to | |
Returns a | |
Like | |
Evaluate MzScheme expression {expr} and return its result
converted to Vim data structures.
Numbers and strings are returned as they are.
Pairs (including lists and improper lists) and vectors are
returned as Vim | |
Show the {what} above the cursor, and close it when the cursor moves. This works like: | |
Show the {what} above the position from 'ballooneval' and close it when the mouse moves. This works like: | |
Emergency solution to a misbehaving plugin: close all popup
windows for the current tab and global popups.
Close callbacks are not invoked.
When {force} is not present this will fail if the current
window is a popup.
When {force} is present and | |
Close popup {id}. The window and the associated buffer will be deleted. | |
Open a popup window showing {what}, which is either:
| |
Just like | |
Filter that can be used for a popup. These keys can be used:
j | |
Filter that can be used for a popup. It handles only the keys
'y', 'Y' and 'n' or 'N'. Invokes the "callback" of the
popup menu with the 1 for 'y' or 'Y' and zero for 'n' or 'N'
as the second argument. Pressing Esc and 'x' works like
pressing 'n'. CTRL-C invokes the callback with -1. Other
keys are ignored.
See the example here: | |
Get the | |
Get the | |
Get the | |
Return the {options} for popup {id} in a Dict. A zero value means the option was not set. For "zindex" the default value is returned, not zero. | |
Return the position and size of popup {id}. Returns a Dict
with these entries:
col screen column of the popup, one-based
line screen line of the popup, one-based
width width of the whole popup in screen cells
height height of the whole popup in screen cells
core_col screen column of the text box
core_line screen line of the text box
core_width width of the text box in screen cells
core_height height of the text box in screen cells
firstline line of the buffer at top (1 unless scrolled)
(not the value of the "firstline" property)
lastline line of the buffer at the bottom (updated when
the popup is redrawn)
scrollbar non-zero if a scrollbar is displayed
visible one if the popup is displayed, zero if hidden
Note that these are the actual screen positions. They differ
from the values in | |
If {id} is a displayed popup, hide it now. If the popup has a filter it will not be invoked for so long as the popup is hidden. If window {id} does not exist nothing happens. If window {id} exists but is not a popup window an error is given. If popup window {id} contains a terminal an error is given. | |
Return a List with the | |
Return the | |
Show the {what} near the cursor, handle selecting one of the items with cursorkeys, and close it an item is selected with Space or Enter. {what} should have multiple lines to make this useful. This works like: | |
Move popup {id} to the position specified with {options}.
{options} may contain the items from | |
Show the {what} for 3 seconds at the top of the Vim window. This works like: | |
Override options in popup {id} with entries in {options}.
These options can be set:
border
borderchars
borderhighlight
callback
close
cursorline
drag
filter
firstline
flip
highlight
mapping
mask
moved
padding
resize
scrollbar
scrollbarhighlight
thumbhighlight
time
title
wrap
zindex
The options from | |
Set the text of the buffer in popup win {id}. {text} is the
same as supplied to | |
If {id} is a hidden popup, show it now.
For {id} see | |
Attach a text property at position {lnum}, {col}. {col} is counted in bytes, use one for the first column. If {lnum} is invalid an error is given. If {col} is invalid an error is given. | |
Similar to prop_add(), but attaches a text property at multiple positions in a buffer. | |
Remove all text properties from line {lnum}. When {lnum-end} is given, remove all text properties from line {lnum} to {lnum-end} (inclusive). | |
Search for a text property as specified with {props}: id property with this ID type property with this type name both "id" and "type" must both match bufnr buffer to search in; when present a start position with "lnum" and "col" must be given; when omitted the current buffer is used lnum start in this line (when omitted start at the cursor) col start at this column (when omitted and "lnum" is given: use column 1, otherwise start at the cursor) skipstart do not look for a match at the start position | |
Returns a List with all the text properties in line {lnum}. | |
Remove a matching text property from line {lnum}. When {lnum-end} is given, remove matching text properties from line {lnum} to {lnum-end} (inclusive). When {lnum} is omitted remove matching text properties from all lines (this requires going over all lines, thus will be a bit slow for a buffer with many lines). | |
Add a text property type {name}. If a property type with this name already exists an error is given. Nothing is returned. {props} is a dictionary with these optional fields: bufnr define the property only for this buffer; this avoids name collisions and automatically clears the property types when the buffer is deleted. highlight name of highlight group to use priority when a character has multiple text properties the one with the highest priority will be used; negative values can be used, the default priority is zero combine when omitted or TRUE combine the highlight with any syntax highlight; when FALSE syntax highlight will not be used override when TRUE the highlight overrides any other, including 'cursorline' and Visual start_incl when TRUE inserts at the start position will be included in the text property end_incl when TRUE inserts at the end position will be included in the text property | |
Change properties of an existing text property type. If a
property with this name does not exist an error is given.
The {props} argument is just like | |
Remove the text property type {name}. When text properties using the type {name} are still in place, they will not have an effect and can no longer be removed by name. | |
Returns the properties of property type {name}. This is a dictionary with the same fields as was given to prop_type_add(). When the property type {name} does not exist, an empty dictionary is returned. | |
Returns a list with all property type names. | |
Extended version of | |
Send the {string} to {server}. The {server} argument is a
string, also see | |
Move the Vim server with the name {server} to the foreground.
The {server} argument is a string, also see | |
Returns a positive number if there are available strings
from {serverid}. Copies any reply string into the variable
{retvar} if specified. {retvar} must be a string with the
name of a variable.
Returns zero if none are available.
Returns -1 if something is wrong.
See also | |
Return the oldest available reply from {serverid} and consume
it. Unless a {timeout} in seconds is given, it blocks until a
reply is available. Returns an empty string, if a reply is
not available or on error.
See also | |
Send the {string} to {server}. The {server} argument is a
string, also see | |
Become the server {name}. {name} must be a non-empty string.
This fails if already running as a server, when | |
Send a reply string to {clientid}. The most recent {clientid}
that sent a string can be retrieved with expand( | |
Similar to using a | |
Stop playing all sounds. | |
Play a sound identified by {name}. Which event names are supported depends on the system. Often the XDG sound names are used. On Ubuntu they may be found in /usr/share/sounds/freedesktop/stereo. Example: | |
Like | |
Stop playing sound {id}. {id} must be previously returned by
| |
Return a string which contains characters indicating the current state. Mostly useful in callbacks that want to do work that may not always be safe. Roughly this works like:
| |
The result is a Number, which is the number of UTF-16 code units in String {string} (after converting it to UTF-16). | |
Returns a list of swap file names, like what "vim -r" shows.
See the | |
Open a new window displaying the difference between the two
files. The files must have been created with
| |
Open a new window displaying the contents of {filename}
The file must have been created with | |
Dump the contents of the terminal screen of {buf} in the file
{filename}. This uses a format that can be used with
| |
Returns 1 if the terminal of {buf} is using the alternate
screen.
{buf} is used as with | |
Get the ANSI color palette in use by terminal {buf}.
Returns a List of length 16 where each element is a String
representing a color in hexadecimal "#rrggbb" format.
Also see | |
Given {attr}, a value returned by term_scrape() in the "attr" item, return whether {what} is on. {what} can be one of: bold italic underline strike reverse | |
Get the cursor position of terminal {buf}. Returns a list with two numbers and a dictionary: [row, col, dict]. | |
Get the Job associated with terminal window {buf}.
{buf} is used as with | |
Get a line of text from the terminal window of {buf}.
{buf} is used as with | |
Return the number of lines that scrolled to above the top of
terminal {buf}. This is the offset between the row number
used for | |
Get the size of terminal {buf}. Returns a list with two numbers: [rows, cols]. This is the size of the terminal, not the window containing the terminal. | |
Get the status of terminal {buf}. This returns a String with a comma-separated list of these items: running job is running finished job has finished normal in Terminal-Normal mode One of "running" or "finished" is always present. | |
Get the title of terminal {buf}. This is the title that the job in the terminal has set. | |
Get the name of the controlling terminal associated with
terminal window {buf}. {buf} is used as with | |
Return a list with the buffer numbers of all buffers for terminal windows. | |
Get the contents of {row} of terminal screen of {buf}.
For {buf} see | |
Send keystrokes {keys} to terminal {buf}.
{buf} is used as with | |
Set the ANSI color palette used by terminal {buf}.
{colors} must be a List of 16 valid color names or hexadecimal
color codes, like those accepted by | |
Set the function name prefix to be used for the | |
When exiting Vim or trying to close the terminal window in
another way, {how} defines whether the job in the terminal can
be stopped.
When {how} is empty (the default), the job will not be
stopped, trying to exit will result in | |
Set the command to write in a session file to restore the job in this terminal. The line written in the session file is: | |
Set the size of terminal {buf}. The size of the window containing the terminal will also be adjusted, if possible. If {rows} or {cols} is zero or negative, that dimension is not changed. | |
Open a terminal window and run {cmd} in it. | |
Wait for pending updates of {buf} to be handled.
{buf} is used as with | |
Returns a | |
This is for testing: If the memory allocation with {id} is called, then decrement {countdown}, and when it reaches zero let memory allocation fail {repeat} times. When {repeat} is smaller than one it fails one time. | |
Set a flag to enable the effect of 'autochdir' before Vim startup has finished. | |
Characters in {string} are queued for processing as if they
were typed by the user. This uses a low level input buffer.
This function works only when with | |
Like garbagecollect(), but executed right away. This must
only be called directly to avoid any structure to exist
internally, and | |
Set the flag to call the garbagecollector as if in the main loop. Only to be used in tests. | |
Get the value of an internal variable. These values for {name} are supported: need_fileinfo | |
Generate a GUI {event} with arguments {args} for testing Vim functionality. This function works only when the GUI is running. | |
Ignore any error containing {expr}. A normal message is given instead. This is only meant to be used in tests, where catching the error with try/catch cannot be used (because it skips over following code). {expr} is used literally, not as a pattern. When the {expr} is the string "RESET" then the list of ignored errors is made empty. | |
Generate a low-level MS-Windows {event} with arguments {args} for testing Vim functionality. It works for MS-Windows GUI and for the console. | |
Return a | |
Return a | |
Return a | |
Return a | |
Return a | |
Return a | |
Return a | |
Return a | |
Reset the flag that indicates option {name} was set. Thus it looks like it still has the default value. Use like this: | |
Overrides certain parts of Vim's internal processing to be able to run tests. Only to be used for testing Vim! The override is enabled when {val} is non-zero and removed when {val} is zero. Current supported values for {name} are: | |
Return the reference count of {expr}. When {expr} is of a type that does not have a reference count, returns -1. Only to be used for testing. | |
Set the mouse position to be used for the next mouse action. {row} and {col} are one based. For example: | |
Set the time Vim uses internally. Currently only used for timestamps in the history, as they are used in viminfo, and for undo. Using a value of 1 makes Vim not sleep after a warning or error message. {expr} must evaluate to a number. When the value is zero the normal behavior is restored. | |
When [seed] is given this sets the seed value used by
| |
Return a value with unknown type. Only useful for testing. | |
Return a value with void type. Only useful for testing. | |
Return a string representation of the type of {expr}. Example: | |
Same as |
Interfaces
These are similar to the third argument of |prop_add()| except:
|