l3mon4d3/luasnip

Snippet Engine for Neovim written in Lua.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 48 minutes ago
Type:Plugin / ExtensionCategory(s):Editors & IDEsDeveloper Tools
Added to GitGenius on September 15th, 2026
Created on March 19th, 2021
Open Issues & Pull Requests: 137 (+0)
GitHub issues: Enabled
Number of forks: 269
Total Stargazers: 4,426 (+0)
Total Subscribers: 15 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 17.2 hours
Mean response time: 15.1 days
90th percentile: 31.0 days
Tracked items: 136

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 61
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 639 days
Stale 30+ days: 60
Stale 90+ days: 54

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 1
Events in 7 days: 1

Top labels

No label distribution available yet.

Detailed Description

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.