LuaSnip is a snippet engine for Neovim written in Lua.
The tool addresses the need for flexible snippet expansion in Neovim by supporting multiple snippet definition formats and advanced expansion features. It can parse LSP-style snippets directly in Lua, from VSCode packages, or from SnipMate collections, then expand them through integration with completion plugins like nvim-cmp. The engine handles tabstops, text transformations via Lua functions, conditional expansion, nested snippets, filetype-specific variants, choices, dynamic creation, regex triggers, and autotriggering. It also maintains snippet history, allowing users to jump back into previously expanded snippets.
Developers should choose this tool if they use Neovim and want snippet functionality that goes beyond basic expansion. It suits projects where users need advanced features like Lua-based transformations or dynamic snippet generation. The main tradeoff is that snippets leveraging the full feature set must be written in Lua, though the README notes that most snippets can be expressed in LSP syntax. The tool requires Neovim 0.9 or later and the jsregexp library for LSP snippet transformations, with additional setup complexity on Windows and FreeBSD systems due to compilation requirements.
Development activity shows consistent maintenance with attention to platform-specific issues. The project uses semantic versioning and recommends tracking releases for major version updates. Documentation is comprehensive, with detailed guides for loader configuration and feature usage. Setup instructions account for compiler variations and system-specific build challenges, indicating the maintainers actively support diverse development environments.