Поправил кучку недостатков в neovim

This commit is contained in:
Alexander Neonxp Kiryukhin 2025-05-04 17:43:55 +03:00
parent 28a7b1f678
commit 74e201e92c
Signed by: NeonXP
SSH key fingerprint: SHA256:SVt7TjxbVc87m1QYaQziOJ0N3OCFURv2g76gD/UTTXI
11 changed files with 444 additions and 234 deletions

View file

@ -1,3 +1,10 @@
local source_mapping = {
buffer = "[Buffer]",
nvim_lsp = "[LSP]",
nvim_lua = "[Lua]",
luasnip = "[Snip]",
path = "[Path]",
}
return {
"hrsh7th/nvim-cmp",
dependencies = {
@ -18,52 +25,69 @@ return {
config = function()
require("plugins.snippets")
end,
keys = {
{
"<C-K>",
function()
require("luasnip").expand()
end,
silent = true,
},
{
"<C-L>",
function()
require("luasnip").jump(1)
end,
silent = true,
},
{
"<C-J>",
function()
require("luasnip").jump(-1)
end,
silent = true,
},
},
},
},
config = function()
local cmp = require("cmp")
local source_mapping = {
buffer = "[Buffer]",
nvim_lsp = "[LSP]",
nvim_lua = "[Lua]",
path = "[Path]",
}
cmp.setup({
mapping = cmp.mapping.preset.insert({
["<CR>"] = cmp.mapping.confirm({ select = true }),
["<Tab>"] = cmp.mapping(function(fallback)
if require("luasnip").expand_or_jumpable() then
require("luasnip").expand_or_jump()
else
fallback()
end
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if require("luasnip").jumpable(-1) then
require("luasnip").jump(-1)
else
fallback()
end
end, { "i", "s" }),
}),
snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
},
formatting = {
format = function(entry, vim_item)
vim_item.menu = source_mapping[entry.source.name] or "[Unknown]"
return vim_item
end,
},
sources = cmp.config.sources({
{ name = "nvim_lsp", priority = 1000 },
{ name = "luasnip", priority = 750 },
{ name = "path", priority = 500 },
}, {
{ name = "buffer" },
}),
})
end,
opts = {
-- preselect = require("cmp").PreselectMode.None,
experimental = {
ghost_text = true,
},
confirmation = {
default_behavior = require("cmp").ConfirmBehavior.Replace,
},
completion = {
completeopt = "menu,menuone,noinsert,noselect",
keyword_length = 2,
},
mapping = require("cmp").mapping.preset.insert({
["<C-b>"] = require("cmp").mapping.scroll_docs(-4),
["<C-f>"] = require("cmp").mapping.scroll_docs(4),
["<C-Space>"] = require("cmp").mapping.complete(),
["<C-e>"] = require("cmp").mapping.abort(),
["<CR>"] = require("cmp").mapping.confirm({ select = false }),
["<Right>"] = require("cmp").mapping.confirm({ select = true }),
}),
snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
},
formatting = {
format = function(entry, vim_item)
vim_item.menu = source_mapping[entry.source.name] or "[Unknown]"
return vim_item
end,
},
sources = require("cmp").config.sources({
{ name = "nvim_lsp", priority = 1000 },
{ name = "luasnip", priority = 750 },
{ name = "path", priority = 500 },
}, {
{ name = "buffer" },
}),
},
}