A powerful snippet engine for Neovim, written in Lua, supporting LSP-style snippets and advanced transformations.
LuaSnip is a snippet engine for Neovim that expands code and text templates using customizable snippets. It solves the problem of repetitive coding by enabling fast, context-aware text expansion with support for complex behaviors like transformations, choices, and dynamic generation. It integrates deeply with Neovim's ecosystem, including Treesitter and popular completion plugins.
Neovim users, particularly developers who want to enhance their editing efficiency with powerful, programmable snippets. It is especially suited for those already using or willing to write Lua for advanced snippet logic.
Developers choose LuaSnip for its high performance, extensive feature set supporting complex snippet behaviors, and seamless compatibility with multiple snippet formats (LSP, VS Code, SnipMate). Its unique selling point is leveraging Lua for advanced, dynamic snippet creation while maintaining easy adoption through format compatibility.
Snippet Engine for Neovim written in Lua.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports dynamic and conditional snippets using Lua functions, enabling context-aware expansions that adapt based on user input or filetype, as shown in the features list.
Parses LSP-style, VS Code, and SnipMate snippets directly, allowing users to leverage existing snippet collections without rewriting, with loaders for easy integration.
Built with Lua for speed and leverages Neovim's extmarks, emphasizing performance and extensibility in its philosophy, making it fast for complex snippets.
Integrates with Treesitter for accurate filetype detection and works seamlessly with completion plugins like nvim-cmp via cmp_luasnip, enhancing Neovim's native capabilities.
To access the full feature set, including complex transformations and dynamic nodes, snippets must be written in Lua, which the README admits adds complexity for 95% of snippets.
Installing the optional jsregexp dependency requires a C compiler and make, with noted complications on Windows and FreeBSD, adding setup hurdles for some users.
Exclusively designed for Neovim >= 0.7, excluding Vim users and older Neovim versions, which restricts its applicability to a specific editor ecosystem.