Ver Fonte

feat: new nvim-cmp and luasnip configuration

new shortcuts

c-y to accept snippet suggestion
Douglas A há 3 anos atrás
pai
commit
3adfe08da8
2 ficheiros alterados com 32 adições e 29 exclusões
  1. 6 2
      nvim/init.vim
  2. 26 27
      nvim/lua/init.lua

+ 6 - 2
nvim/init.vim

@@ -6,7 +6,6 @@ call plug#begin('~/.vim/plugged')
 	
 	Plug 'neovim/nvim-lspconfig'
 
-	Plug 'hrsh7th/nvim-cmp'
 	Plug 'neovim/nvim-lspconfig'
     Plug 'hrsh7th/cmp-nvim-lsp'
 	Plug 'hrsh7th/cmp-buffer'
@@ -14,7 +13,12 @@ call plug#begin('~/.vim/plugged')
 	Plug 'hrsh7th/cmp-cmdline'
 
 	" For vsnip users.
-    Plug 'L3MON4D3/LuaSnip' 
+    Plug 'L3MON4D3/LuaSnip'
+	Plug 'hrsh7th/nvim-cmp'
+    Plug 'hrsh7th/cmp-buffer'
+    Plug 'hrsh7th/cmp-path'
+    Plug 'hrsh7th/cmp-nvim-lua'
+    Plug 'hrsh7th/cmp-nvim-lsp'
     Plug 'saadparwaiz1/cmp_luasnip'
 	""Plug 'hrsh7th/vim-vsnip'
 

+ 26 - 27
nvim/lua/init.lua

@@ -23,35 +23,34 @@ local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protoco
 local cmp = require'cmp'
 
 cmp.setup({
+        mapping = {
+                ["<C-e>"] = cmp.mapping.close(),
+                ["<C-d>"] = cmp.mapping.scroll_docs(-4),
+                ["<C-f>"] = cmp.mapping.scroll_docs(4),
+                ["<C-y>"] = cmp.mapping.confirm {
+                        behavior = cmp.ConfirmBehavior.Insert,
+                        select = true,
+                },
+                ["<C-space>"] = cmp.mapping.complete(),
+        },
+
+        sources = {
+                { name = "nvim_lsp" },
+                { name = "path" },
+                { name = "luasnip" },
+                { name = "buffer", keyword_length = 5 },
+
+        },
+
         snippet = {
--- REQUIRED - you must specify a snippet engine
-                expand = function(args)
-                --vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users.
-                require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
-                -- require('snippy').expand_snippet(args.body) -- For `snippy` users.
-                -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users.
-        end,
+                expand = function(args) 
+                        require('luasnip').lsp_expand(args.body)
+                end,      
         },
-mapping = {
-['<C-b>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
-['<C-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
-['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
-['<C-y>'] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
-['<C-e>'] = cmp.mapping({
-i = cmp.mapping.abort(),
-c = cmp.mapping.close(),
-}),
-['<CR>'] = 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 = 'vsnip' }, -- For vsnip users.
-{ name = 'luasnip' }, -- For luasnip users.
--- { name = 'ultisnips' }, -- For ultisnips users.
--- { name = 'snippy' }, -- For snippy users.
-}, {
-{ name = 'buffer' },
-})
+
+        experimental = {
+                native_menu = false
+        }
 })
 -- Setup lspconfig.
 -- Replace <YOUR_LSP_SERVER> with each lsp server you've enabled.