Home Explore Blog CI



neovim

51th chunk of `runtime/doc/lua.txt`
80bda0173e427f84f1bdc5447a2db413170046c0cdab0cd00000000100000fb3
   Since: 0.9.0

    Parameters: ~
      • {path}  (`string`) Path to a file or directory to read.

    Return: ~
        (`boolean|string?`) If {path} is not trusted or does not exist,
        returns `nil`. Otherwise, returns the contents of {path} if it is a
        file, or true if {path} is a directory.

    See also: ~
      • |:trust|

vim.secure.trust({opts})                                  *vim.secure.trust()*
    Manage the trust database.

    The trust database is located at |$XDG_STATE_HOME|/nvim/trust.

    Attributes: ~
        Since: 0.9.0

    Parameters: ~
      • {opts}  (`table`) A table with the following fields:
                • {action} (`'allow'|'deny'|'remove'`) - `'allow'` to add a
                  file to the trust database and trust it,
                • `'deny'` to add a file to the trust database and deny it,
                • `'remove'` to remove file from the trust database
                • {path}? (`string`) Path to a file to update. Mutually
                  exclusive with {bufnr}. Cannot be used when {action} is
                  "allow".
                • {bufnr}? (`integer`) Buffer number to update. Mutually
                  exclusive with {path}.

    Return (multiple): ~
        (`boolean`) success true if operation was successful
        (`string`) msg full path if operation was successful, else error
        message


==============================================================================
Lua module: vim.version                                          *vim.version*

The `vim.version` module provides functions for comparing versions and ranges
conforming to the https://semver.org spec. Plugins, and plugin managers, can
use this to check available tools and dependencies on the current system.

Example: >lua
    local v = vim.version.parse(vim.fn.system({'tmux', '-V'}), {strict=false})
    if vim.version.gt(v, {3, 2, 0}) then
      -- ...
    end
<

*vim.version()* returns the version of the current Nvim process.

VERSION RANGE SPEC                                             *version-range*

A version "range spec" defines a semantic version range which can be tested
against a version, using |vim.version.range()|.

Supported range specs are shown in the following table. Note: suffixed
versions (1.2.3-rc1) are not matched. >
    1.2.3             is 1.2.3
    =1.2.3            is 1.2.3
    >1.2.3            greater than 1.2.3
    <1.2.3            before 1.2.3
    >=1.2.3           at least 1.2.3
    ~1.2.3            is >=1.2.3 <1.3.0       "reasonably close to 1.2.3"
    ^1.2.3            is >=1.2.3 <2.0.0       "compatible with 1.2.3"
    ^0.2.3            is >=0.2.3 <0.3.0       (0.x.x is special)
    ^0.0.1            is =0.0.1               (0.0.x is special)
    ^1.2              is >=1.2.0 <2.0.0       (like ^1.2.0)
    ~1.2              is >=1.2.0 <1.3.0       (like ~1.2.0)
    ^1                is >=1.0.0 <2.0.0       "compatible with 1"
    ~1                same                    "reasonably close to 1"
    1.x               same
    1.*               same
    1                 same
    *                 any version
    x                 same

    1.2.3 - 2.3.4     is >=1.2.3 <=2.3.4

    Partial right: missing pieces treated as x (2.3 => 2.3.x).
    1.2.3 - 2.3       is >=1.2.3 <2.4.0
    1.2.3 - 2         is >=1.2.3 <3.0.0

    Partial left: missing pieces treated as 0 (1.2 => 1.2.0).
    1.2 - 2.3.0       is 1.2.0 - 2.3.0
<


vim.version.cmp({v1}, {v2})                                *vim.version.cmp()*
    Parses and compares two version objects (the result of
    |vim.version.parse()|, or specified literally as a `{major, minor, patch}`
    tuple, e.g. `{1, 0, 3}`).

    Example: >lua
        if vim.version.cmp({1,0,3}, {0,2,1}) == 0 then
          -- ...
        end
        local v1 = vim.version.parse('1.0.3-pre')
        local v2 = vim.version.parse('0.2.1')
        if vim.version.cmp(v1, v2) == 0 then
          -- ...
        end
<

    Note: ~
      • Per

Title: Lua API: vim.secure.trust() and vim.version Module
Summary
This section continues describing the `vim.secure` module, focusing on `vim.secure.trust()`, which manages the trust database for file and directory access. It then introduces the `vim.version` module, providing functions for comparing versions conforming to the semver.org specification. The module includes functions for parsing, comparing, and checking version ranges. It details the supported version range specifications, including examples and explanations of how partial versions are handled. The section also covers `vim.version.cmp()` which compares two version objects.