From 35e0890f108815d18e91e3e6e9e55da3d368d5d9 Mon Sep 17 00:00:00 2001 From: Juan Miguel Rua Date: Tue, 30 Apr 2024 23:41:00 +0200 Subject: [PATCH] adding nvim-cmp --- init.lua | 2 +- lua/custom/plugins/nvim-cmp.lua | 56 +++++++++++++++++++++++++++++ lua/custom/plugins/themes.lua | 2 +- lua/kickstart/plugins/autopairs.lua | 7 ++++ 4 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 lua/custom/plugins/nvim-cmp.lua diff --git a/init.lua b/init.lua index 83c21b27..2600a433 100644 --- a/init.lua +++ b/init.lua @@ -926,7 +926,7 @@ require('lazy').setup({ require 'kickstart.plugins.debug', require 'kickstart.plugins.indent_line', -- require 'kickstart.plugins.lint', - -- require 'kickstart.plugins.autopairs', + require 'kickstart.plugins.autopairs', -- require 'kickstart.plugins.neo-tree', -- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps diff --git a/lua/custom/plugins/nvim-cmp.lua b/lua/custom/plugins/nvim-cmp.lua new file mode 100644 index 00000000..e934e264 --- /dev/null +++ b/lua/custom/plugins/nvim-cmp.lua @@ -0,0 +1,56 @@ +local M = { + 'hrsh7th/nvim-cmp', + dependencies = { + 'hrsh7th/cmp-nvim-lsp', + 'hrsh7th/cmp-nvim-lua', + 'hrsh7th/cmp-buffer', + 'hrsh7th/cmp-path', + 'hrsh7th/cmp-cmdline', + 'saadparwaiz1/cmp_luasnip', + 'L3MON4D3/LuaSnip', + }, +} + +M.config = function() + local cmp = require 'cmp' + vim.opt.completeopt = { 'menu', 'menuone', 'noselect' } + + cmp.setup { + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) -- For `luasnip` users. + end, + }, + window = { + -- completion = cmp.config.window.bordered(), + -- documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert { + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm { select = true }, -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + }, + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'nvim_lua' }, + { name = 'luasnip' }, -- For luasnip users. + -- { name = "orgmode" }, + }, { + { name = 'buffer' }, + { name = 'path' }, + }), + } + + cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' }, + }, { + { name = 'cmdline' }, + }), + }) +end + +return M diff --git a/lua/custom/plugins/themes.lua b/lua/custom/plugins/themes.lua index 8ed5e530..10acc50e 100644 --- a/lua/custom/plugins/themes.lua +++ b/lua/custom/plugins/themes.lua @@ -9,7 +9,7 @@ return { term_colors = true, custom_highlights = function(colors) return { - Comment = { fg = colors.subtext1 }, + Comment = { fg = colors.overlay0 }, TabLineSel = { bg = colors.teal }, CmpBorder = { fg = colors.surface2 }, StatusLine = { fg = colors.blue }, diff --git a/lua/kickstart/plugins/autopairs.lua b/lua/kickstart/plugins/autopairs.lua index 87a7e5ff..d8271914 100644 --- a/lua/kickstart/plugins/autopairs.lua +++ b/lua/kickstart/plugins/autopairs.lua @@ -12,5 +12,12 @@ return { local cmp_autopairs = require 'nvim-autopairs.completion.cmp' local cmp = require 'cmp' cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done()) + mapping = cmp.mapping.preset.insert { + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm { select = true }, -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + } end, }