Nvim: separate cmp and luasnip configs
This commit is contained in:
parent
17d116f411
commit
2630f0a26f
3 changed files with 34 additions and 26 deletions
|
@ -1,17 +1,15 @@
|
|||
return function()
|
||||
local cmp = require('cmp')
|
||||
local luasnip = require('luasnip')
|
||||
|
||||
if not cmp then return end
|
||||
|
||||
-- Setup git completion source
|
||||
require("cmp_git").setup()
|
||||
|
||||
-- Set completeopt to have a better completion experience
|
||||
vim.o.completeopt = 'menuone,noselect'
|
||||
|
||||
-- luasnip setup
|
||||
local luasnip = require 'luasnip'
|
||||
|
||||
-- nvim-cmp setup
|
||||
local cmp = require 'cmp'
|
||||
if not cmp then return end
|
||||
|
||||
cmp.setup {
|
||||
snippet = {expand = function(args) luasnip.lsp_expand(args.body) end},
|
||||
mapping = {
|
||||
|
@ -52,19 +50,7 @@ return function()
|
|||
|
||||
-- Enable autopairs when enter is processed
|
||||
-- on completion
|
||||
local cmp_autopairs = require 'nvim-autopairs.completion.cmp'
|
||||
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
|
||||
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done())
|
||||
|
||||
-- load friendly-snippets to luasnip
|
||||
require('luasnip/loaders/from_vscode').lazy_load()
|
||||
|
||||
-- Register snippet parameter navigation keybindings
|
||||
local snippet_mappings = {
|
||||
['<c-j>'] = {luasnip.jump(1)},
|
||||
['<c-k>'] = {luasnip.jump(-1)}
|
||||
}
|
||||
|
||||
local wk = require('which-key')
|
||||
wk.register(snippet_mappings, {mode = "i"})
|
||||
wk.register(snippet_mappings, {mode = "s"})
|
||||
end
|
||||
|
|
|
@ -86,7 +86,6 @@ require('packer').startup(function()
|
|||
}
|
||||
use {
|
||||
'williamboman/mason-lspconfig.nvim',
|
||||
requires = {'ii14/emmylua-nvim'}, -- vim api documentation for lua lsp
|
||||
config = function()
|
||||
require('mason-lspconfig').setup {automatic_installation = true}
|
||||
end
|
||||
|
@ -101,20 +100,28 @@ require('packer').startup(function()
|
|||
-- Display function signature
|
||||
use 'ray-x/lsp_signature.nvim'
|
||||
|
||||
-- Snippets plugin
|
||||
use {
|
||||
'L3MON4D3/LuaSnip',
|
||||
requires = {'rafamadriz/friendly-snippets'}, -- Snippets collection
|
||||
config = require('plugins.luasnip')
|
||||
}
|
||||
|
||||
-- vim api documentation for lua lsp
|
||||
use {'ii14/emmylua-nvim'}
|
||||
|
||||
-- Completion
|
||||
use {
|
||||
'hrsh7th/nvim-cmp',
|
||||
requires = {
|
||||
{'hrsh7th/cmp-buffer'}, -- Buffer source
|
||||
{'petertriho/cmp-git', requires = "nvim-lua/plenary.nvim"}, -- Git source
|
||||
{'L3MON4D3/LuaSnip'}, -- Snippets plugin
|
||||
{'hrsh7th/cmp-nvim-lsp'}, -- LSP source
|
||||
{'hrsh7th/cmp-nvim-lua'}, -- Neovim Lua API documentation
|
||||
{'hrsh7th/cmp-nvim-lua'}, -- Neovim Lua API documentation source
|
||||
{'hrsh7th/cmp-path'}, -- Path source
|
||||
{'rafamadriz/friendly-snippets'}, -- Snippets collection
|
||||
{'saadparwaiz1/cmp_luasnip'} -- Snippets source
|
||||
},
|
||||
config = require('plugins.cmp')
|
||||
config = require('plugins.cmp'),
|
||||
}
|
||||
|
||||
-- Automatic brackets
|
||||
|
@ -174,7 +181,7 @@ end)
|
|||
|
||||
-- Sync plugins if Packer was just
|
||||
-- installed
|
||||
if Packer_installed then
|
||||
if Packer_bootstrap then
|
||||
print('Syncing plugins')
|
||||
require('packer').sync()
|
||||
end
|
||||
|
|
15
home/.config/nvim/lua/plugins/luasnip.lua
Normal file
15
home/.config/nvim/lua/plugins/luasnip.lua
Normal file
|
@ -0,0 +1,15 @@
|
|||
return function()
|
||||
local luasnip = require('luasnip')
|
||||
local wk = require('which-key')
|
||||
|
||||
-- load friendly-snippets to luasnip
|
||||
require('luasnip/loaders/from_vscode').lazy_load()
|
||||
|
||||
-- Register snippet navigation keybindings
|
||||
local snippet_mappings = {
|
||||
['<c-j>'] = {luasnip.jump(1)},
|
||||
['<c-k>'] = {luasnip.jump(-1)}
|
||||
}
|
||||
wk.register(snippet_mappings, {mode = "i"})
|
||||
wk.register(snippet_mappings, {mode = "s"})
|
||||
end
|
Loading…
Reference in a new issue