Files
LazyVim-mirror/lua/lazyvim/plugins/extras/coding/luasnip.lua
Frestein ☁️ 37a1c1af5d fix(luasnip): add missing optional tag to garymjr/nvim-snippets (#5733)
## Description

This pull request fixes an issue where the `nvim-snippets` plugin was
incorrectly marked as disabled due to the missing optional tag in the
configuration. By adding the `optional = true` tag, the plugin will no
longer appear as disabled when it is not installed.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

Before:

![image](https://github.com/user-attachments/assets/8391b047-22e6-416b-acb8-3b8af3932469)

After:

![image](https://github.com/user-attachments/assets/8c1775ce-8aa9-434e-986d-a1db3ac7bd56)


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-21 15:51:56 +02:00

79 lines
2.0 KiB
Lua

return {
-- disable builtin snippet support
{ "garymjr/nvim-snippets", optional = true, enabled = false },
-- add luasnip
{
"L3MON4D3/LuaSnip",
lazy = true,
build = (not LazyVim.is_win())
and "echo 'NOTE: jsregexp is optional, so not a big deal if it fails to build'; make install_jsregexp"
or nil,
dependencies = {
{
"rafamadriz/friendly-snippets",
config = function()
require("luasnip.loaders.from_vscode").lazy_load()
require("luasnip.loaders.from_vscode").lazy_load({ paths = { vim.fn.stdpath("config") .. "/snippets" } })
end,
},
},
opts = {
history = true,
delete_check_events = "TextChanged",
},
},
-- add snippet_forward action
{
"L3MON4D3/LuaSnip",
opts = function()
LazyVim.cmp.actions.snippet_forward = function()
if require("luasnip").jumpable(1) then
vim.schedule(function()
require("luasnip").jump(1)
end)
return true
end
end
LazyVim.cmp.actions.snippet_stop = function()
if require("luasnip").expand_or_jumpable() then -- or just jumpable(1) is fine?
require("luasnip").unlink_current()
return true
end
end
end,
},
-- nvim-cmp integration
{
"hrsh7th/nvim-cmp",
optional = true,
dependencies = { "saadparwaiz1/cmp_luasnip" },
opts = function(_, opts)
opts.snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
}
table.insert(opts.sources, { name = "luasnip" })
end,
-- stylua: ignore
keys = {
{ "<tab>", function() require("luasnip").jump(1) end, mode = "s" },
{ "<s-tab>", function() require("luasnip").jump(-1) end, mode = { "i", "s" } },
},
},
-- blink.cmp integration
{
"saghen/blink.cmp",
optional = true,
opts = {
snippets = {
preset = "luasnip",
},
},
},
}