mirror of
https://github.com/LazyVim/LazyVim.git
synced 2025-06-22 08:53:33 +02:00
feat(coding)!: native snippets are now the default on Neovim 0.10. Install the luasnip extra to get luasnip back
This commit is contained in:
parent
d999be7401
commit
3c4ebd522e
4 changed files with 96 additions and 105 deletions
|
@ -96,50 +96,65 @@ return {
|
||||||
},
|
},
|
||||||
|
|
||||||
-- snippets
|
-- snippets
|
||||||
{
|
vim.snippet
|
||||||
"L3MON4D3/LuaSnip",
|
and {
|
||||||
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()
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nvim-cmp",
|
"nvim-cmp",
|
||||||
dependencies = {
|
dependencies = {
|
||||||
"saadparwaiz1/cmp_luasnip",
|
{ "rafamadriz/friendly-snippets" },
|
||||||
|
{ "garymjr/nvim-snippets", opts = { friendly_snippets = true } },
|
||||||
},
|
},
|
||||||
opts = function(_, opts)
|
opts = function(_, opts)
|
||||||
opts.snippet = {
|
opts.snippet = {
|
||||||
expand = function(args)
|
expand = function(args)
|
||||||
require("luasnip").lsp_expand(args.body)
|
vim.snippet.expand(args.body)
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
table.insert(opts.sources, { name = "luasnip" })
|
table.insert(opts.sources, { name = "snippets" })
|
||||||
end,
|
end,
|
||||||
},
|
|
||||||
},
|
|
||||||
opts = {
|
|
||||||
history = true,
|
|
||||||
delete_check_events = "TextChanged",
|
|
||||||
},
|
|
||||||
-- stylua: ignore
|
|
||||||
keys = {
|
keys = {
|
||||||
{
|
{
|
||||||
"<tab>",
|
"<Tab>",
|
||||||
function()
|
function()
|
||||||
return require("luasnip").jumpable(1) and "<Plug>luasnip-jump-next" or "<tab>"
|
if vim.snippet.active({ direction = 1 }) then
|
||||||
|
vim.schedule(function()
|
||||||
|
vim.snippet.jump(1)
|
||||||
|
end)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
return "<Tab>"
|
||||||
end,
|
end,
|
||||||
expr = true, silent = true, mode = "i",
|
expr = true,
|
||||||
|
silent = true,
|
||||||
|
mode = "i",
|
||||||
},
|
},
|
||||||
{ "<tab>", function() require("luasnip").jump(1) end, mode = "s" },
|
{
|
||||||
{ "<s-tab>", function() require("luasnip").jump(-1) end, mode = { "i", "s" } },
|
"<Tab>",
|
||||||
|
function()
|
||||||
|
vim.schedule(function()
|
||||||
|
vim.snippet.jump(1)
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
silent = true,
|
||||||
|
mode = "s",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"<S-Tab>",
|
||||||
|
function()
|
||||||
|
if vim.snippet.active({ direction = -1 }) then
|
||||||
|
vim.schedule(function()
|
||||||
|
vim.snippet.jump(-1)
|
||||||
|
end)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
return "<S-Tab>"
|
||||||
|
end,
|
||||||
|
expr = true,
|
||||||
|
silent = true,
|
||||||
|
mode = { "i", "s" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
}
|
||||||
|
or { import = "lazyvim.plugins.extras.coding.luasnip", enabled = vim.fn.has("nvim-0.10") == 0 },
|
||||||
|
|
||||||
-- auto pairs
|
-- auto pairs
|
||||||
{
|
{
|
||||||
|
|
44
lua/lazyvim/plugins/extras/coding/luasnip.lua
Normal file
44
lua/lazyvim/plugins/extras/coding/luasnip.lua
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
return {
|
||||||
|
"L3MON4D3/LuaSnip",
|
||||||
|
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()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nvim-cmp",
|
||||||
|
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,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
history = true,
|
||||||
|
delete_check_events = "TextChanged",
|
||||||
|
},
|
||||||
|
-- stylua: ignore
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<tab>",
|
||||||
|
function()
|
||||||
|
return require("luasnip").jumpable(1) and "<Plug>luasnip-jump-next" or "<tab>"
|
||||||
|
end,
|
||||||
|
expr = true, silent = true, mode = "i",
|
||||||
|
},
|
||||||
|
{ "<tab>", function() require("luasnip").jump(1) end, mode = "s" },
|
||||||
|
{ "<s-tab>", function() require("luasnip").jump(-1) end, mode = { "i", "s" } },
|
||||||
|
},
|
||||||
|
}
|
|
@ -1,69 +0,0 @@
|
||||||
if not vim.snippet then
|
|
||||||
LazyVim.warn("Native snippets are only supported on Neovim >= 0.10.0")
|
|
||||||
return {}
|
|
||||||
end
|
|
||||||
|
|
||||||
return {
|
|
||||||
desc = "Use native snippets instead of LuaSnip. Only works on Neovim >= 0.10!",
|
|
||||||
{
|
|
||||||
"L3MON4D3/LuaSnip",
|
|
||||||
enabled = false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nvim-cmp",
|
|
||||||
dependencies = {
|
|
||||||
{ "rafamadriz/friendly-snippets" },
|
|
||||||
{ "garymjr/nvim-snippets", opts = { friendly_snippets = true } },
|
|
||||||
},
|
|
||||||
opts = function(_, opts)
|
|
||||||
opts.snippet = {
|
|
||||||
expand = function(args)
|
|
||||||
vim.snippet.expand(args.body)
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
table.insert(opts.sources, { name = "snippets" })
|
|
||||||
end,
|
|
||||||
keys = {
|
|
||||||
{
|
|
||||||
"<Tab>",
|
|
||||||
function()
|
|
||||||
if vim.snippet.active({ direction = 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,
|
|
||||||
silent = true,
|
|
||||||
mode = "s",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"<S-Tab>",
|
|
||||||
function()
|
|
||||||
if vim.snippet.active({ direction = -1 }) then
|
|
||||||
vim.schedule(function()
|
|
||||||
vim.snippet.jump(-1)
|
|
||||||
end)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
return "<S-Tab>"
|
|
||||||
end,
|
|
||||||
expr = true,
|
|
||||||
silent = true,
|
|
||||||
mode = { "i", "s" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -10,6 +10,7 @@ M.deprecated_extras = {
|
||||||
["lazyvim.plugins.extras.formatting.conform"] = "`conform.nvim` is now the default **LazyVim** formatter.",
|
["lazyvim.plugins.extras.formatting.conform"] = "`conform.nvim` is now the default **LazyVim** formatter.",
|
||||||
["lazyvim.plugins.extras.linting.nvim-lint"] = "`nvim-lint` is now the default **LazyVim** linter.",
|
["lazyvim.plugins.extras.linting.nvim-lint"] = "`nvim-lint` is now the default **LazyVim** linter.",
|
||||||
["lazyvim.plugins.extras.ui.dashboard"] = "`dashboard.nvim` is now the default **LazyVim** starter.",
|
["lazyvim.plugins.extras.ui.dashboard"] = "`dashboard.nvim` is now the default **LazyVim** starter.",
|
||||||
|
["lazyvim.plugins.extras.coding.native_snippets"] = "Native snippets are now the default for **Neovim >= 0.10**",
|
||||||
}
|
}
|
||||||
|
|
||||||
M.deprecated_modules = {
|
M.deprecated_modules = {
|
||||||
|
@ -91,7 +92,7 @@ function M.fix_imports()
|
||||||
Plugin.Spec.import = LazyVim.inject.args(Plugin.Spec.import, function(_, spec)
|
Plugin.Spec.import = LazyVim.inject.args(Plugin.Spec.import, function(_, spec)
|
||||||
local dep = M.deprecated_extras[spec and spec.import]
|
local dep = M.deprecated_extras[spec and spec.import]
|
||||||
if dep then
|
if dep then
|
||||||
dep = dep .. "\n" .. "Please remove the extra to hide this warning."
|
dep = dep .. "\n" .. "Please remove the extra from `lazyvim.json` to hide this warning."
|
||||||
LazyVim.warn(dep, { title = "LazyVim", once = true, stacktrace = true, stacklevel = 6 })
|
LazyVim.warn(dep, { title = "LazyVim", once = true, stacktrace = true, stacklevel = 6 })
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue