Unconventional commit (check notes)

This commit fixes up completion, making it easier to see what snippet
node is currently active, and adding/modifying bindings to work better
This commit is contained in:
Robert Morrison 2026-04-10 02:18:40 +01:00
parent 88cec5db46
commit a3ede4bfa4

View File

@ -1,17 +1,31 @@
require("lazy.types") ---@module "lazy"
---@type LazySpec[] ---@type LazySpec
return { return {
{ { "L3MON4D3/LuaSnip",
"L3MON4D3/LuaSnip",
dependencies = { dependencies = {
"rafamadriz/friendly-snippets", "rafamadriz/friendly-snippets",
}, },
config = function() config = function()
local lua_snippets = vim.fn.stdpath("config") .. "/luasnip" local lua_snippets = vim.fn.stdpath("config") .. "/luasnip"
local vscode_snippets = vim.fn.stdpath("config") .. "/snippets" local vscode_snippets = vim.fn.stdpath("config") .. "/snippets"
local types = require("luasnip.util.types")
require("luasnip.loaders.from_vscode").lazy_load() require("luasnip.loaders.from_vscode").lazy_load()
require("luasnip.loaders.from_vscode").lazy_load({ paths = { vscode_snippets } }) require("luasnip.loaders.from_vscode").lazy_load({ paths = { vscode_snippets } })
require("luasnip.loaders.from_lua").lazy_load({ paths = { lua_snippets } }) require("luasnip.loaders.from_lua").lazy_load({ paths = { lua_snippets } })
require("luasnip").config.setup({
ext_opts = {
[types.choiceNode] = {
active = {
virt_text = {{"", "GruvboxOrange"}}
}
},
[types.insertNode] = {
active = {
virt_text = {{"", "GruvboxBlue"}}
}
}
}
})
end, end,
lazy = true, lazy = true,
}, },
@ -32,9 +46,16 @@ return {
"chrisgrieser/cmp-nerdfont", "chrisgrieser/cmp-nerdfont",
}, },
opts = function() opts = function()
vim.lsp.config("*", {capabilities = require("cmp_nvim_lsp").default_capabilities()})
local cmp = require("cmp") local cmp = require("cmp")
local luasnip = require("luasnip") local luasnip = require("luasnip")
local lspkind = require("lspkind") local lspkind = require("lspkind")
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
cmp.event:on(
'confirm_done',
cmp_autopairs.on_confirm_done()
)
---@type cmp.ConfigSchema ---@type cmp.ConfigSchema
return { return {
enabled = function() enabled = function()
@ -66,6 +87,20 @@ return {
fallback() fallback()
end end
end, { "i", "s" }), end, { "i", "s" }),
["x"] = cmp.mapping(function (fallback)
if luasnip.choice_active() then
luasnip.change_choice(1)
else
fallback()
end
end),
["z"] = cmp.mapping(function (fallback)
if luasnip.choice_active() then
luasnip.change_choice(-1)
else
fallback()
end
end),
["<S-Tab>"] = cmp.mapping(function(fallback) ["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.select_prev_item() cmp.select_prev_item()
@ -92,9 +127,16 @@ return {
select = false, select = false,
}), }),
}), }),
["<C-F>"] = cmp.mapping(function(fallback) ["<C-F>"] = cmp.mapping(function(_)
cmp.complete() cmp.complete()
end), end),
["<C-A>"] = cmp.mapping(function (fallback)
if cmp.visible() then
cmp.close()
else
fallback()
end
end)
}, },
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = "lazydev" }, { name = "lazydev" },
@ -122,3 +164,4 @@ return {
end, end,
}, },
} }
-- vim: fdl=2