The goals of this fork are to expend the functionality of the original project
Mostly just be adding way to set snippets during runtime
And maybe some other stuff
Allow vscode style snippets to be used with native neovim snippets vim.snippet
. Also comes with support for friendly-snippets.
- Supports vscode style snippets
- Has builtin support for friendly-snippets
- Uses
vim.snippet
under the hood for snippet expansion
- Requires neovim >= 0.10 (with commit f1775da or later)
- (optional) nvim-cmp for completion support
- (optional) friendly-snippets for pre-built snippets
Using lazy.nvim
{
"garymjr/nvim-snippets",
keys = {
{
"<Tab>",
function()
if vim.snippet.jumpable(1) then
vim.schedule(function()
vim.snippet.jump(1)
end)
return
end
return "<Tab>"
end,
expr = true,
silent = true,
mode = "i",
},
{
"<Tab>",
function()
vim.schedule(function()
vim.snippet.jump(1)
end)
end,
expr = true,
silent = true,
mode = "s",
},
{
"<S-Tab>",
function()
if vim.snippet.jumpable(-1) then
vim.schedule(function()
vim.snippet.jump(-1)
end)
return
end
return "<S-Tab>"
end,
expr = true,
silent = true,
mode = { "i", "s" },
},
},
}
Option | Type | Default | Description |
---|---|---|---|
create_autocmd | boolean? |
false |
Optionally load all snippets when opening a file. Only needed if not using nvim-cmp. |
create_cmp_source | boolean? |
true |
Optionally create a nvim-cmp source. Source name will be snippets . |
friendly_snippets | boolean? |
false |
Set to true if using friendly-snippets. |
ignored_filetypes | string[]? |
nil |
Filetypes to ignore when loading snippets. |
extended_filetypes | table? |
nil |
Filetypes to load snippets for in addition to the default ones. ex: {typescript = {'javascript'}} |
global_snippets | string[]? |
{'all'} |
Snippets to load for all filetypes. |
search_paths | string[] |
{vim.fn.stdpath('config') .. '/snippets'} |
Paths to search for snippets. |
{
"Say hello to the world": {
"prefix": ["hw", "hello"],
"body": "Hello, ${1:world}!$0"
}
}
- Automatically detect if friendly-snippets is installed
- Add overrides to support overriding filetype snippets
- (Undecided) Add support for friendly-snippets
package.json
definitions