neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

vvars.lua (28222B)


      1 --- @meta _
      2 -- THIS FILE IS GENERATED
      3 -- DO NOT EDIT
      4 error('Cannot require a meta file')
      5 
      6 --- @class vim.v
      7 vim.v = ...
      8 
      9 --- The list of file arguments passed on the command line at startup.
     10 ---
     11 --- Each filename is expanded to an absolute path, so that v:argf
     12 --- remains valid even if the current working directory changes later.
     13 ---
     14 --- Unlike `v:argv`, this does not include option arguments
     15 --- such as `-u`, `--cmd`, or `+cmd`. Unlike `argv()`, it is not
     16 --- affected by later `:args`, `:argadd`, or plugin modifications.
     17 --- It also handles the `--` separator correctly, including only
     18 --- files specified after it.
     19 ---
     20 --- This is a read-only snapshot of the original startup file arguments.
     21 --- @type string[]
     22 vim.v.argf = ...
     23 
     24 --- The command line arguments Vim was invoked with.  This is a
     25 --- list of strings.  The first item is the Vim command.
     26 --- See `v:progpath` for the command with full path.
     27 --- @type string[]
     28 vim.v.argv = ...
     29 
     30 --- Argument for evaluating 'formatexpr' and used for the typed
     31 --- character when using <expr> in an abbreviation `:map-<expr>`.
     32 --- It is also used by the `InsertCharPre`, `InsertEnter`,
     33 --- `CmdlineLeave` and `CmdlineLeavePre` events.
     34 --- @type string
     35 vim.v.char = ...
     36 
     37 --- The name of the character encoding of a file to be converted.
     38 --- Only valid while evaluating the 'charconvert' option.
     39 --- @type string
     40 vim.v.charconvert_from = ...
     41 
     42 --- The name of the character encoding of a file after conversion.
     43 --- Only valid while evaluating the 'charconvert' option.
     44 --- @type string
     45 vim.v.charconvert_to = ...
     46 
     47 --- The extra arguments ("++p", "++enc=", "++ff=") given to a file
     48 --- read/write command.  This is set before an autocommand event
     49 --- for a file read/write command is triggered.  There is a
     50 --- leading space to make it possible to append this variable
     51 --- directly after the read/write command. Note: "+cmd" isn't
     52 --- included here, because it will be executed anyway.
     53 --- @type string
     54 vim.v.cmdarg = ...
     55 
     56 --- Set like v:cmdarg for a file read/write command.  When a "!"
     57 --- was used the value is 1, otherwise it is 0.  Note that this
     58 --- can only be used in autocommands.  For user commands `<bang>`
     59 --- can be used.
     60 --- @type integer
     61 vim.v.cmdbang = ...
     62 
     63 --- The current locale setting for collation order of the runtime
     64 --- environment.  This allows Vim scripts to be aware of the
     65 --- current locale encoding.  Technical: it's the value of
     66 --- LC_COLLATE.  When not using a locale the value is "C".
     67 --- This variable can not be set directly, use the `:language`
     68 --- command.
     69 --- See `multi-lang`.
     70 --- @type string
     71 vim.v.collate = ...
     72 
     73 --- Dictionary containing the `complete-items` for the most
     74 --- recently completed word after `CompleteDone`.  Empty if the
     75 --- completion failed, or after leaving and re-entering insert
     76 --- mode.
     77 --- Note: Plugins can modify the value to emulate the builtin
     78 --- `CompleteDone` event behavior.
     79 --- @type vim.v.completed_item
     80 vim.v.completed_item = ...
     81 
     82 --- The count given for the last Normal mode command.  Can be used
     83 --- to get the count before a mapping.  Read-only.  Example:
     84 ---
     85 --- ```vim
     86 ---   :map _x :<C-U>echo "the count is " .. v:count<CR>
     87 --- ```
     88 ---
     89 --- Note: The <C-U> is required to remove the line range that you
     90 --- get when typing ':' after a count.
     91 --- When there are two counts, as in "3d2w", they are multiplied,
     92 --- just like what happens in the command, "d6w" for the example.
     93 --- Also used for evaluating the 'formatexpr' option.
     94 --- @type integer
     95 vim.v.count = ...
     96 
     97 --- Just like "v:count", but defaults to one when no count is
     98 --- used.
     99 --- @type integer
    100 vim.v.count1 = ...
    101 
    102 --- The current locale setting for characters of the runtime
    103 --- environment.  This allows Vim scripts to be aware of the
    104 --- current locale encoding.  Technical: it's the value of
    105 --- LC_CTYPE.  When not using a locale the value is "C".
    106 --- This variable can not be set directly, use the `:language`
    107 --- command.
    108 --- See `multi-lang`.
    109 --- @type string
    110 vim.v.ctype = ...
    111 
    112 --- Normally zero.  When a deadly signal is caught it's set to
    113 --- one.  When multiple signals are caught the number increases.
    114 --- Can be used in an autocommand to check if Vim didn't
    115 --- terminate normally.
    116 --- Example:
    117 ---
    118 --- ```vim
    119 ---   :au VimLeave * if v:dying | echo "\nAAAAaaaarrrggghhhh!!!\n" | endif
    120 --- ```
    121 ---
    122 --- Note: if another deadly signal is caught when v:dying is one,
    123 --- VimLeave autocommands will not be executed.
    124 --- @type integer
    125 vim.v.dying = ...
    126 
    127 --- Number of screen cells that can be used for an `:echo` message
    128 --- in the last screen line before causing the `hit-enter-prompt`.
    129 --- Depends on 'showcmd', 'ruler' and 'columns'.  You need to
    130 --- check 'cmdheight' for whether there are full-width lines
    131 --- available above the last line.
    132 --- @type integer
    133 vim.v.echospace = ...
    134 
    135 --- Last error message that occurred (not necessarily displayed).
    136 --- Modifiable (can be set).
    137 --- Example:
    138 ---
    139 --- ```vim
    140 ---   let v:errmsg = ""
    141 ---   silent! next
    142 ---   if v:errmsg != ""
    143 ---     " ... handle error
    144 --- ```
    145 --- @type string
    146 vim.v.errmsg = ...
    147 
    148 --- Errors found by assert functions, such as `assert_true()`.
    149 --- This is a list of strings.
    150 --- The assert functions append an item when an assert fails.
    151 --- The return value indicates this: a one is returned if an item
    152 --- was added to v:errors, otherwise zero is returned.
    153 --- To remove old results make it empty:
    154 ---
    155 --- ```vim
    156 ---   let v:errors = []
    157 --- ```
    158 ---
    159 --- If v:errors is set to anything but a list it is made an empty
    160 --- list by the assert function.
    161 --- @type string[]
    162 vim.v.errors = ...
    163 
    164 --- Dictionary of event data for the current `autocommand`.  Valid
    165 --- only during the event lifetime; storing or passing v:event is
    166 --- invalid!  Copy it instead:
    167 ---
    168 --- ```vim
    169 ---   au TextYankPost * let g:foo = deepcopy(v:event)
    170 --- ```
    171 ---
    172 --- Keys vary by event; see the documentation for the specific
    173 --- event, e.g. `DirChanged` or `TextYankPost`.
    174 ---   KEY              DESCRIPTION ~
    175 ---   abort            Whether the event triggered during
    176 ---                    an aborting condition (e.g. `c_Esc` or
    177 ---                    `c_CTRL-C` for `CmdlineLeave`).
    178 ---   chan             `channel-id`
    179 ---   changed_window   Is `v:true` if the event fired while
    180 ---                    changing window  (or tab) on `DirChanged`.
    181 ---   cmdlevel         Level of cmdline.
    182 ---   cmdtype          Type of cmdline, `cmdline-char`.
    183 ---   col              Column count of popup menu on `CompleteChanged`,
    184 ---                    relative to screen.
    185 ---   complete_type    See `complete_info_mode`
    186 ---   complete_word    The selected word, or empty if completion
    187 ---                    was abandoned/discarded.
    188 ---   completed_item   Current selected item on `CompleteChanged`,
    189 ---                    or `{}` if no item selected.
    190 ---   cwd              Current working directory.
    191 ---   height           Height of popup menu on `CompleteChanged`
    192 ---   inclusive        Motion is `inclusive`, else exclusive.
    193 ---   info             Dict of arbitrary event data.
    194 ---   operator         Current `operator`.  Also set for Ex
    195 ---                    commands (unlike `v:operator`). For
    196 ---                    example if `TextYankPost` is triggered
    197 ---                    by the `:yank` Ex command then
    198 ---                    `v:event.operator` is "y".
    199 ---   reason           `CompleteDone` reason.
    200 ---   regcontents      Text stored in the register as a
    201 ---                    `readfile()`-style list of lines.
    202 ---   regname          Requested register (e.g "x" for "xyy), or
    203 ---                    empty string for an unnamed operation.
    204 ---   regtype          Type of register as returned by
    205 ---                    `getregtype()`.
    206 ---   row              Row count of popup menu on `CompleteChanged`,
    207 ---                    relative to screen.
    208 ---   scope            Event-specific scope name.
    209 ---   scrollbar        `v:true` if popup menu has a scrollbar, or
    210 ---                    `v:false` if not.
    211 ---   size             Total number of completion items on
    212 ---                    `CompleteChanged`.
    213 ---   status           Job status or exit code, -1 means "unknown". `TermClose`
    214 ---   visual           Selection is visual (as opposed to e.g. a motion range).
    215 ---   width            Width of popup menu on `CompleteChanged`
    216 ---   windows          List of window IDs that changed on `WinResized`
    217 --- @type vim.v.event
    218 vim.v.event = ...
    219 
    220 --- The value of the exception most recently caught and not
    221 --- finished.  See also `v:stacktrace`, `v:throwpoint`, and
    222 --- `throw-variables`.
    223 --- Example:
    224 ---
    225 --- ```vim
    226 ---   try
    227 ---     throw "oops"
    228 ---   catch /.*/
    229 ---     echo "caught " .. v:exception
    230 ---   endtry
    231 --- ```
    232 ---
    233 --- Output: "caught oops".
    234 --- @type string
    235 vim.v.exception = ...
    236 
    237 --- Exit code, or `v:null` before invoking the `VimLeavePre`
    238 --- and `VimLeave` autocmds.  See `:q`, `:x` and `:cquit`.
    239 --- Example:
    240 ---
    241 --- ```vim
    242 ---   :au VimLeave * echo "Exit value is " .. v:exiting
    243 --- ```
    244 --- @type integer?
    245 vim.v.exiting = ...
    246 
    247 --- Special value used to put "false" in JSON and msgpack.  See
    248 --- `json_encode()`.  This value is converted to "v:false" when used
    249 --- as a String (e.g. in `expr5` with string concatenation
    250 --- operator) and to zero when used as a Number (e.g. in `expr5`
    251 --- or `expr7` when used with numeric operators).  Read-only.
    252 --- @type boolean
    253 vim.v['false'] = ...
    254 
    255 --- What should happen after a `FileChangedShell` event was
    256 --- triggered.  Can be used in an autocommand to tell Vim what to
    257 --- do with the affected buffer:
    258 ---   reload  Reload the buffer (does not work if
    259 ---           the file was deleted).
    260 ---   edit    Reload the buffer and detect the
    261 ---           values for options such as
    262 ---           'fileformat', 'fileencoding', 'binary'
    263 ---           (does not work if the file was
    264 ---           deleted).
    265 ---   ask     Ask the user what to do, as if there
    266 ---           was no autocommand.  Except that when
    267 ---           only the timestamp changed nothing
    268 ---           will happen.
    269 ---   <empty> Nothing, the autocommand should do
    270 ---           everything that needs to be done.
    271 --- The default is empty.  If another (invalid) value is used then
    272 --- Vim behaves like it is empty, there is no warning message.
    273 --- @type string
    274 vim.v.fcs_choice = ...
    275 
    276 --- The reason why the `FileChangedShell` event was triggered.
    277 --- Can be used in an autocommand to decide what to do and/or what
    278 --- to set v:fcs_choice to.  Possible values:
    279 ---   deleted   file no longer exists
    280 ---   conflict  file contents, mode or timestamp was
    281 ---             changed and buffer is modified
    282 ---   changed   file contents has changed
    283 ---   mode      mode of file changed
    284 ---   time      only file timestamp changed
    285 --- @type string
    286 vim.v.fcs_reason = ...
    287 
    288 --- When evaluating 'includeexpr': the file name that was
    289 --- detected.  Empty otherwise.
    290 --- @type string
    291 vim.v.fname = ...
    292 
    293 --- The name of the diff (patch) file.  Only valid while
    294 --- evaluating 'patchexpr'.
    295 --- @type string
    296 vim.v.fname_diff = ...
    297 
    298 --- The name of the input file.  Valid while evaluating:
    299 ---   option         used for ~
    300 ---   'charconvert'  file to be converted
    301 ---   'diffexpr'     original file
    302 ---   'patchexpr'    original file
    303 --- And set to the swap file name for `SwapExists`.
    304 --- @type string
    305 vim.v.fname_in = ...
    306 
    307 --- The name of the new version of the file.  Only valid while
    308 --- evaluating 'diffexpr'.
    309 --- @type string
    310 vim.v.fname_new = ...
    311 
    312 --- The name of the output file.  Only valid while
    313 --- evaluating:
    314 ---   option           used for ~
    315 ---   'charconvert'    resulting converted file [1]
    316 ---   'diffexpr'       output of diff
    317 ---   'patchexpr'      resulting patched file
    318 --- [1] When doing conversion for a write command (e.g., ":w
    319 --- file") it will be equal to v:fname_in.  When doing conversion
    320 --- for a read command (e.g., ":e file") it will be a temporary
    321 --- file and different from v:fname_in.
    322 --- @type string
    323 vim.v.fname_out = ...
    324 
    325 --- Used for 'foldtext': dashes representing foldlevel of a closed
    326 --- fold.
    327 --- Read-only in the `sandbox`. `fold-foldtext`
    328 --- @type string
    329 vim.v.folddashes = ...
    330 
    331 --- Used for 'foldtext': last line of closed fold.
    332 --- Read-only in the `sandbox`. `fold-foldtext`
    333 --- @type integer
    334 vim.v.foldend = ...
    335 
    336 --- Used for 'foldtext': foldlevel of closed fold.
    337 --- Read-only in the `sandbox`. `fold-foldtext`
    338 --- @type integer
    339 vim.v.foldlevel = ...
    340 
    341 --- Used for 'foldtext': first line of closed fold.
    342 --- Read-only in the `sandbox`. `fold-foldtext`
    343 --- @type integer
    344 vim.v.foldstart = ...
    345 
    346 --- Variable that indicates whether search highlighting is on.
    347 --- Setting it makes sense only if 'hlsearch' is enabled.  Setting
    348 --- this variable to zero acts like the `:nohlsearch` command,
    349 --- setting it to one acts like
    350 ---
    351 --- ```vim
    352 ---   let &hlsearch = &hlsearch
    353 --- ```
    354 ---
    355 --- Note that the value is restored when returning from a
    356 --- function. `function-search-undo`.
    357 --- @type integer
    358 vim.v.hlsearch = ...
    359 
    360 --- Used for the `InsertEnter` and `InsertChange` autocommand
    361 --- events.  Values:
    362 ---   i    Insert mode
    363 ---   r    Replace mode
    364 ---   v    Virtual Replace mode
    365 --- @type string
    366 vim.v.insertmode = ...
    367 
    368 --- Key of the current item of a `Dictionary`.  Only valid while
    369 --- evaluating the expression used with `map()` and `filter()`.
    370 --- Read-only.
    371 --- @type string
    372 vim.v.key = ...
    373 
    374 --- The current locale setting for messages of the runtime
    375 --- environment.  This allows Vim scripts to be aware of the
    376 --- current language.  Technical: it's the value of LC_MESSAGES.
    377 --- The value is system dependent.
    378 --- This variable can not be set directly, use the `:language`
    379 --- command.
    380 --- It can be different from `v:ctype` when messages are desired
    381 --- in a different language than what is used for character
    382 --- encoding.  See `multi-lang`.
    383 --- @type string
    384 vim.v.lang = ...
    385 
    386 --- The current locale setting for time messages of the runtime
    387 --- environment.  This allows Vim scripts to be aware of the
    388 --- current language.  Technical: it's the value of LC_TIME.
    389 --- This variable can not be set directly, use the `:language`
    390 --- command.  See `multi-lang`.
    391 --- @type string
    392 vim.v.lc_time = ...
    393 
    394 --- Line number for the 'foldexpr' `fold-expr`, 'formatexpr',
    395 --- 'indentexpr' and 'statuscolumn' expressions, tab page number
    396 --- for 'guitablabel' and 'guitabtooltip'.  Only valid while one of
    397 --- these expressions is being evaluated.  Read-only when in the
    398 --- `sandbox`.
    399 --- @type integer
    400 vim.v.lnum = ...
    401 
    402 --- Prefix for calling Lua functions from expressions.
    403 --- See `v:lua-call` for more information.
    404 --- @type any
    405 vim.v.lua = ...
    406 
    407 --- Maximum line length.  Depending on where it is used it can be
    408 --- screen columns, characters or bytes.  The value currently is
    409 --- 2147483647 on all systems.
    410 --- @type integer
    411 vim.v.maxcol = ...
    412 
    413 --- Column number for a mouse click obtained with `getchar()`.
    414 --- This is the screen column number, like with `virtcol()`.  The
    415 --- value is zero when there was no mouse button click.
    416 --- @type integer
    417 vim.v.mouse_col = ...
    418 
    419 --- Line number for a mouse click obtained with `getchar()`.
    420 --- This is the text line number, not the screen line number.  The
    421 --- value is zero when there was no mouse button click.
    422 --- @type integer
    423 vim.v.mouse_lnum = ...
    424 
    425 --- Window number for a mouse click obtained with `getchar()`.
    426 --- First window has number 1, like with `winnr()`.  The value is
    427 --- zero when there was no mouse button click.
    428 --- @type integer
    429 vim.v.mouse_win = ...
    430 
    431 --- `window-ID` for a mouse click obtained with `getchar()`.
    432 --- The value is zero when there was no mouse button click.
    433 --- @type integer
    434 vim.v.mouse_winid = ...
    435 
    436 --- Dictionary containing msgpack types used by `msgpackparse()`
    437 --- and `msgpackdump()`. All types inside dictionary are fixed
    438 --- (not editable) empty lists. To check whether some list is one
    439 --- of msgpack types, use `is` operator.
    440 --- @type table
    441 vim.v.msgpack_types = ...
    442 
    443 --- Special value used to put "null" in JSON and NIL in msgpack.
    444 --- See `json_encode()`.  This value is converted to "v:null" when
    445 --- used as a String (e.g. in `expr5` with string concatenation
    446 --- operator) and to zero when used as a Number (e.g. in `expr5`
    447 --- or `expr7` when used with numeric operators).  Read-only.
    448 --- In some places `v:null` can be used for a List, Dict, etc.
    449 --- that is not set.  That is slightly different than an empty
    450 --- List, Dict, etc.
    451 --- @type vim.NIL
    452 vim.v.null = ...
    453 
    454 --- Maximum value of a number.
    455 --- @type integer
    456 vim.v.numbermax = ...
    457 
    458 --- Minimum value of a number (negative).
    459 --- @type integer
    460 vim.v.numbermin = ...
    461 
    462 --- Number of bits in a Number.  This is normally 64, but on some
    463 --- systems it may be 32.
    464 --- @type integer
    465 vim.v.numbersize = ...
    466 
    467 --- List of file names that is loaded from the `shada` file on
    468 --- startup.  These are the files that Vim remembers marks for.
    469 --- The length of the List is limited by the ' argument of the
    470 --- 'shada' option (default is 100).
    471 --- When the `shada` file is not used the List is empty.
    472 --- Also see `:oldfiles` and `c_#<`.
    473 --- The List can be modified, but this has no effect on what is
    474 --- stored in the `shada` file later.  If you use values other
    475 --- than String this will cause trouble.
    476 --- @type string[]
    477 vim.v.oldfiles = ...
    478 
    479 --- The last operator given in Normal mode.  This is a single
    480 --- character except for commands starting with <g> or <z>,
    481 --- in which case it is two characters.  Best used alongside
    482 --- `v:prevcount` and `v:register`.  Useful if you want to cancel
    483 --- Operator-pending mode and then use the operator, e.g.:
    484 ---
    485 --- ```vim
    486 ---   :omap O <Esc>:call MyMotion(v:operator)<CR>
    487 --- ```
    488 ---
    489 --- The value remains set until another operator is entered, thus
    490 --- don't expect it to be empty.
    491 --- v:operator is not set for `:delete`, `:yank` or other Ex
    492 --- commands.
    493 --- Read-only.
    494 --- @type string
    495 vim.v.operator = ...
    496 
    497 --- Command used to set the option.  Valid while executing an
    498 --- `OptionSet` autocommand.
    499 ---   value        option was set via ~
    500 ---   "setlocal"   `:setlocal` or `:let l:xxx`
    501 ---   "setglobal"  `:setglobal` or `:let g:xxx`
    502 ---   "set"        `:set` or `:let`
    503 ---   "modeline"   `modeline`
    504 --- @type string
    505 vim.v.option_command = ...
    506 
    507 --- New value of the option.  Valid while executing an `OptionSet`
    508 --- autocommand.
    509 --- @type any
    510 vim.v.option_new = ...
    511 
    512 --- Old value of the option.  Valid while executing an `OptionSet`
    513 --- autocommand.  Depending on the command used for setting and
    514 --- the kind of option this is either the local old value or the
    515 --- global old value.
    516 --- @type any
    517 vim.v.option_old = ...
    518 
    519 --- Old global value of the option.  Valid while executing an
    520 --- `OptionSet` autocommand.
    521 --- @type any
    522 vim.v.option_oldglobal = ...
    523 
    524 --- Old local value of the option.  Valid while executing an
    525 --- `OptionSet` autocommand.
    526 --- @type any
    527 vim.v.option_oldlocal = ...
    528 
    529 --- Scope of the set command.  Valid while executing an
    530 --- `OptionSet` autocommand.  Can be either "global" or "local"
    531 --- @type string
    532 vim.v.option_type = ...
    533 
    534 --- The count given for the last but one Normal mode command.
    535 --- This is the v:count value of the previous command.  Useful if
    536 --- you want to cancel Visual or Operator-pending mode and then
    537 --- use the count, e.g.:
    538 ---
    539 --- ```vim
    540 ---   :vmap % <Esc>:call MyFilter(v:prevcount)<CR>
    541 --- ```
    542 ---
    543 --- Read-only.
    544 --- @type integer
    545 vim.v.prevcount = ...
    546 
    547 --- Normally zero.  Set to one after using ":profile start".
    548 --- See `profiling`.
    549 --- @type integer
    550 vim.v.profiling = ...
    551 
    552 --- The name by which Nvim was invoked (with path removed).
    553 --- Read-only.
    554 --- @type string
    555 vim.v.progname = ...
    556 
    557 --- Absolute path to the current running Nvim.
    558 --- Read-only.
    559 --- @type string
    560 vim.v.progpath = ...
    561 
    562 --- The name of the register in effect for the current normal mode
    563 --- command (regardless of whether that command actually used a
    564 --- register).  Or for the currently executing normal mode mapping
    565 --- (use this in custom commands that take a register).
    566 --- If none is supplied it is the default register '"', unless
    567 --- 'clipboard' contains "unnamed" or "unnamedplus", then it is
    568 --- "*" or '+'.
    569 --- Also see `getreg()` and `setreg()`
    570 --- @type string
    571 vim.v.register = ...
    572 
    573 --- Relative line number for the 'statuscolumn' expression.
    574 --- Read-only.
    575 --- @type integer
    576 vim.v.relnum = ...
    577 
    578 --- String describing the script or function that caused the
    579 --- screen to scroll up.  It's only set when it is empty, thus the
    580 --- first reason is remembered.  It is set to "Unknown" for a
    581 --- typed command.
    582 --- This can be used to find out why your script causes the
    583 --- hit-enter prompt.
    584 --- @type string
    585 vim.v.scrollstart = ...
    586 
    587 --- Search direction:  1 after a forward search, 0 after a
    588 --- backward search.  It is reset to forward when directly setting
    589 --- the last search pattern, see `quote/`.
    590 --- Note that the value is restored when returning from a
    591 --- function. `function-search-undo`.
    592 --- Read-write.
    593 --- @type integer
    594 vim.v.searchforward = ...
    595 
    596 --- Primary listen-address of Nvim, the first item returned by
    597 --- `serverlist()`. Usually this is the named pipe created by Nvim
    598 --- at `startup` or given by `--listen` (or the deprecated
    599 --- `$NVIM_LISTEN_ADDRESS` env var).
    600 ---
    601 --- See also `serverstart()` `serverstop()`.
    602 --- Read-only.
    603 ---
    604 ---                                                      *$NVIM*
    605 --- $NVIM is set to v:servername by `terminal` and `jobstart()`,
    606 --- and is thus a hint that the current environment is a child
    607 --- (direct subprocess) of Nvim.
    608 ---
    609 --- Example: a child Nvim process can detect and make requests to
    610 --- its parent Nvim:
    611 ---
    612 --- ```lua
    613 ---
    614 ---   if vim.env.NVIM then
    615 ---     local ok, chan = pcall(vim.fn.sockconnect, 'pipe', vim.env.NVIM, {rpc=true})
    616 ---     if ok and chan then
    617 ---       local client = vim.api.nvim_get_chan_info(chan).client
    618 ---       local rv = vim.rpcrequest(chan, 'nvim_exec_lua', [[return ... + 1]], { 41 })
    619 ---       vim.print(('got "%s" from parent Nvim'):format(rv))
    620 ---     end
    621 ---   end
    622 --- ```
    623 --- @type string
    624 vim.v.servername = ...
    625 
    626 --- Result of the last shell command.  When non-zero, the last
    627 --- shell command had an error.  When zero, there was no problem.
    628 --- This only works when the shell returns the error code to Vim.
    629 --- The value -1 is often used when the command could not be
    630 --- executed.  Read-only.
    631 --- Example:
    632 ---
    633 --- ```vim
    634 ---   !mv foo bar
    635 ---   if v:shell_error
    636 ---     echo 'could not rename "foo" to "bar"!'
    637 ---   endif
    638 --- ```
    639 --- @type integer
    640 vim.v.shell_error = ...
    641 
    642 --- The stack trace of the exception most recently caught and
    643 --- not finished.  Refer to `getstacktrace()` for the structure of
    644 --- stack trace.  See also `v:exception`, `v:throwpoint`, and
    645 --- `throw-variables`.
    646 --- @type table[]
    647 vim.v.stacktrace = ...
    648 
    649 --- Last given status message.
    650 --- Modifiable (can be set).
    651 --- @type string
    652 vim.v.statusmsg = ...
    653 
    654 --- `channel-id` corresponding to stderr. The value is always 2;
    655 --- use this variable to make your code more descriptive.
    656 --- Unlike stdin and stdout (see `stdioopen()`), stderr is always
    657 --- open for writing. Example:
    658 ---
    659 --- ```vim
    660 --- :call chansend(v:stderr, "error: toaster empty\n")
    661 --- ```
    662 --- @type integer
    663 vim.v.stderr = ...
    664 
    665 --- `SwapExists` autocommands can set this to the selected choice
    666 --- for handling an existing swapfile:
    667 ---   'o'    Open read-only
    668 ---   'e'    Edit anyway
    669 ---   'r'    Recover
    670 ---   'd'    Delete swapfile
    671 ---   'q'    Quit
    672 ---   'a'    Abort
    673 --- The value should be a single-character string.  An empty value
    674 --- results in the user being asked, as would happen when there is
    675 --- no SwapExists autocommand.  The default is empty.
    676 --- @type string
    677 vim.v.swapchoice = ...
    678 
    679 --- Normal mode command to be executed after a file has been
    680 --- opened.  Can be used for a `SwapExists` autocommand to have
    681 --- another Vim open the file and jump to the right place.  For
    682 --- example, when jumping to a tag the value is ":tag tagname\r".
    683 --- For ":edit +cmd file" the value is ":cmd\r".
    684 --- @type string
    685 vim.v.swapcommand = ...
    686 
    687 --- Name of the swapfile found.
    688 --- Only valid during `SwapExists` event.
    689 --- Read-only.
    690 --- @type string
    691 vim.v.swapname = ...
    692 
    693 --- Value of `Blob` type.  Read-only.  See: `type()`
    694 --- @type integer
    695 vim.v.t_blob = ...
    696 
    697 --- Value of `Boolean` type.  Read-only.  See: `type()`
    698 --- @type integer
    699 vim.v.t_bool = ...
    700 
    701 --- Value of `Dictionary` type.  Read-only.  See: `type()`
    702 --- @type integer
    703 vim.v.t_dict = ...
    704 
    705 --- Value of `Float` type.  Read-only.  See: `type()`
    706 --- @type integer
    707 vim.v.t_float = ...
    708 
    709 --- Value of `Funcref` type.  Read-only.  See: `type()`
    710 --- @type integer
    711 vim.v.t_func = ...
    712 
    713 --- Value of `List` type.  Read-only.  See: `type()`
    714 --- @type integer
    715 vim.v.t_list = ...
    716 
    717 --- Value of `Number` type.  Read-only.  See: `type()`
    718 --- @type integer
    719 vim.v.t_number = ...
    720 
    721 --- Value of `String` type.  Read-only.  See: `type()`
    722 --- @type integer
    723 vim.v.t_string = ...
    724 
    725 --- The value of the most recent OSC, DCS or APC control sequence
    726 --- sent from a process running in the embedded `terminal`.
    727 --- This can be read in a `TermRequest` event handler to respond
    728 --- to queries from embedded applications.
    729 --- @type string
    730 vim.v.termrequest = ...
    731 
    732 --- The value of the most recent OSC or DCS control sequence
    733 --- received by Nvim from the terminal. This can be read in a
    734 --- `TermResponse` event handler after querying the terminal using
    735 --- another escape sequence.
    736 --- @type string
    737 vim.v.termresponse = ...
    738 
    739 --- Must be set before using `test_garbagecollect_now()`.
    740 --- @type integer
    741 vim.v.testing = ...
    742 
    743 --- Full filename of the last loaded or saved session file.
    744 --- Empty when no session file has been saved.  See `:mksession`.
    745 --- Modifiable (can be set).
    746 --- @type string
    747 vim.v.this_session = ...
    748 
    749 --- The point where the exception most recently caught and not
    750 --- finished was thrown.  Not set when commands are typed.  See
    751 --- also `v:exception`, `v:stacktrace`, and `throw-variables`.
    752 --- Example:
    753 ---
    754 --- ```vim
    755 ---   try
    756 ---     throw "oops"
    757 ---   catch /.*/
    758 ---     echo "Exception from" v:throwpoint
    759 ---   endtry
    760 --- ```
    761 ---
    762 --- Output: "Exception from test.vim, line 2"
    763 --- @type string
    764 vim.v.throwpoint = ...
    765 
    766 --- Special value used to put "true" in JSON and msgpack.  See
    767 --- `json_encode()`.  This value is converted to "v:true" when used
    768 --- as a String (e.g. in `expr5` with string concatenation
    769 --- operator) and to one when used as a Number (e.g. in `expr5` or
    770 --- `expr7` when used with numeric operators).  Read-only.
    771 --- @type boolean
    772 vim.v['true'] = ...
    773 
    774 --- Value of the current item of a `List` or `Dictionary`.  Only
    775 --- valid while evaluating the expression used with `map()` and
    776 --- `filter()`.  Read-only.
    777 --- @type any
    778 vim.v.val = ...
    779 
    780 --- Vim version number: major version times 100 plus minor
    781 --- version.  Vim 5.0 is 500, Vim 5.1 is 501.
    782 --- Read-only.
    783 --- Use `has()` to check the Nvim (not Vim) version:
    784 ---
    785 --- ```vim
    786 ---   :if has("nvim-0.2.1")
    787 --- ```
    788 --- @type integer
    789 vim.v.version = ...
    790 
    791 --- Like v:version, but also including the patchlevel in the last
    792 --- four digits.  Version 8.1 with patch 123 has value 8010123.
    793 --- This can be used like this:
    794 --- ```
    795 ---   if v:versionlong >= 8010123
    796 --- ```
    797 ---
    798 --- However, if there are gaps in the list of patches included
    799 --- this will not work well.  This can happen if a recent patch
    800 --- was included into an older version, e.g. for a security fix.
    801 --- Use the has() function to make sure the patch is actually
    802 --- included.
    803 --- @type integer
    804 vim.v.versionlong = ...
    805 
    806 --- 0 during startup, 1 just before `VimEnter`.
    807 --- Read-only.
    808 --- @type integer
    809 vim.v.vim_did_enter = ...
    810 
    811 --- 0 during initialization, 1 after sourcing `vimrc` and just
    812 --- before `load-plugins`.
    813 --- Read-only.
    814 --- @type integer
    815 vim.v.vim_did_init = ...
    816 
    817 --- Virtual line number for the 'statuscolumn' expression.
    818 --- Negative when drawing the status column for virtual lines, zero
    819 --- when drawing an actual buffer line, and positive when drawing
    820 --- the wrapped part of a buffer line.
    821 --- Read-only.
    822 --- @type integer
    823 vim.v.virtnum = ...
    824 
    825 --- Last given warning message.
    826 --- Modifiable (can be set).
    827 --- @type string
    828 vim.v.warningmsg = ...
    829 
    830 --- Application-specific window "handle" which may be set by any
    831 --- attached UI. Defaults to zero.
    832 --- Note: For Nvim `windows` use `winnr()` or `win_getid()`, see
    833 --- `window-ID`.
    834 --- @type integer
    835 vim.v.windowid = ...