summaryrefslogtreecommitdiff
path: root/nvim/lua/plugins/cmp.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/lua/plugins/cmp.lua')
-rw-r--r--nvim/lua/plugins/cmp.lua116
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" },
+ }),
+ },
}