diff options
| author | 2025-05-04 17:43:55 +0300 | |
|---|---|---|
| committer | 2025-05-04 17:43:55 +0300 | |
| commit | 74e201e92c31658eb6d7dcb56e1fdd6fdc43b2e4 (patch) | |
| tree | a0a858d166dd8da09e34a96263a7468027cd6b48 /nvim/lua/plugins/cmp.lua | |
| parent | Привел в порядок дотфайлы (diff) | |
| download | dotfiles-74e201e92c31658eb6d7dcb56e1fdd6fdc43b2e4.tar.gz dotfiles-74e201e92c31658eb6d7dcb56e1fdd6fdc43b2e4.tar.bz2 dotfiles-74e201e92c31658eb6d7dcb56e1fdd6fdc43b2e4.tar.xz dotfiles-74e201e92c31658eb6d7dcb56e1fdd6fdc43b2e4.zip | |
Поправил кучку недостатков в neovim
Diffstat (limited to '')
| -rw-r--r-- | nvim/lua/plugins/cmp.lua | 116 |
1 files changed, 70 insertions, 46 deletions
diff --git a/nvim/lua/plugins/cmp.lua b/nvim/lua/plugins/cmp.lua index 24c1c47..0a7cffc 100644 --- a/nvim/lua/plugins/cmp.lua +++ b/nvim/lua/plugins/cmp.lua @@ -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, - }, - }, - 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 + 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) - 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, + end, + silent = true, + }, }, - 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" }, + }), + }, } |
