A Neovim plugin that converts snippets between different formats and engines like VSCode, UltiSnips, SnipMate, and YASnippet.
snippet-converter.nvim is a Neovim plugin that parses, transforms, and converts code snippets between various formats and snippet engines. It decouples snippets from specific syntax or engines, enabling users to migrate, customize, and validate snippets without maintaining multiple collections.
Neovim users who work with multiple snippet engines or collections, such as those switching engines, customizing shared snippet sets, or plugin authors needing a standardized snippet AST.
It provides a unified, extensible conversion framework that liberates users from snippet engine lock-in, simplifies snippet management, and encourages sharing and reuse of snippet collections through format-gnostic parsing and transformation.
Bundle snippets from multiple sources and convert them to your format of choice.
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 conversion between VSCode, UltiSnips, SnipMate, YASnippet, and LuaSnip/vim-vsnip flavors, as detailed in the 'Supported snippet engines' section, enabling seamless migration across engines.
Allows modification or removal of snippets from external collections like friendly-snippets using simple Lua configurations, avoiding the need to maintain separate forks, as highlighted in the use cases.
Includes a UI that pinpoints parsing errors and integrates with the quickfix list for debugging, making it easier to validate and fix snippet syntax, as mentioned in the validation use case.
Generates a format-agnostic abstract syntax tree for easy plugin integration, allowing authors to leverage parsing without reinventing the wheel, as noted for plugin developers.
Requires running the :ConvertSnippets command manually for each conversion, which lacks automation and may not suit users expecting continuous or real-time updates.
Only works with Neovim version 0.7 or higher, excluding users on older versions or other editors, as stated in the requirements, limiting its portability.
Setup involves writing Lua tables for templates and specifying paths, which can be daunting for users unfamiliar with Neovim's Lua API or snippet engine structures, as seen in the getting started example.