Skip to content

Editor Support

alsi-lawr edited this page Jul 26, 2026 · 2 revisions

Editor support

viset init generates a Lua capture scaffold and LuaLS metadata. The optional editor integrations are installed separately and only add highlighting for embedded TOML and JavaScript.

Neovim

Install getviset/viset.nvim with your plugin manager. It requires Neovim 0.12 or newer and the Lua, TOML, and JavaScript Tree-sitter parsers.

The plugin highlights the entire content of a Lua comment containing # viset as TOML and strings passed directly to viset.javascript as JavaScript.

Emacs

Install getviset/viset.el from Git in Emacs 30.1 or newer:

(package-vc-install
 '(viset-ts-mode :url "https://github.com/getviset/viset.el"))

Emacs must have Tree-sitter support and compatible Lua, TOML, and JavaScript grammar libraries installed and loadable. viset-ts-mode highlights the entire content of any Lua comment containing # viset as TOML and strings passed directly to viset.javascript as JavaScript.

VS Code

For VS Code 1.130 or newer, install the getviset.viset v0.1.0 VSIX from its GitHub release. getviset.viset is not currently listed on the Marketplace.

The declarative extension highlights:

  • the entire content of a marker-bearing line comment as TOML;
  • a block comment's entire content when # viset is on its opener line;
  • a later-marker block as TOML from the start of the marker-bearing line, while earlier lines retain Lua comment highlighting; and
  • ordinary or long strings passed directly to viset.javascript as JavaScript.

For a later-marker block, the TOML range ends at the first delimiter-shaped ]=*] lexical closer. Normal Lua long-comment closers work at their actual level, but highlighting is not guaranteed to match the Lua syntax tree when an earlier differently levelled delimiter-shaped sequence occurs.

Scope

These integrations classify syntax only. They do not execute Viset or capture files, validate embedded TOML or JavaScript, provide completion or embedded diagnostics, or add language-server/LSP support. Marker-free comments remain ordinary Lua.

Clone this wiki locally