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()
|
return function()
|
||||||
|
local cmp = require('cmp')
|
||||||
|
local luasnip = require('luasnip')
|
||||||
|
|
||||||
|
if not cmp then return end
|
||||||
|
|
||||||
-- Setup git completion source
|
-- Setup git completion source
|
||||||
require("cmp_git").setup()
|
require("cmp_git").setup()
|
||||||
|
|
||||||
-- Set completeopt to have a better completion experience
|
-- Set completeopt to have a better completion experience
|
||||||
vim.o.completeopt = 'menuone,noselect'
|
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 {
|
cmp.setup {
|
||||||
snippet = {expand = function(args) luasnip.lsp_expand(args.body) end},
|
snippet = {expand = function(args) luasnip.lsp_expand(args.body) end},
|
||||||
mapping = {
|
mapping = {
|
||||||
|
@ -52,19 +50,7 @@ return function()
|
||||||
|
|
||||||
-- Enable autopairs when enter is processed
|
-- Enable autopairs when enter is processed
|
||||||
-- on completion
|
-- 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())
|
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
|
end
|
||||||
|
|
|
@ -86,7 +86,6 @@ require('packer').startup(function()
|
||||||
}
|
}
|
||||||
use {
|
use {
|
||||||
'williamboman/mason-lspconfig.nvim',
|
'williamboman/mason-lspconfig.nvim',
|
||||||
requires = {'ii14/emmylua-nvim'}, -- vim api documentation for lua lsp
|
|
||||||
config = function()
|
config = function()
|
||||||
require('mason-lspconfig').setup {automatic_installation = true}
|
require('mason-lspconfig').setup {automatic_installation = true}
|
||||||
end
|
end
|
||||||
|
@ -101,20 +100,28 @@ require('packer').startup(function()
|
||||||
-- Display function signature
|
-- Display function signature
|
||||||
use 'ray-x/lsp_signature.nvim'
|
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
|
-- Completion
|
||||||
use {
|
use {
|
||||||
'hrsh7th/nvim-cmp',
|
'hrsh7th/nvim-cmp',
|
||||||
requires = {
|
requires = {
|
||||||
{'hrsh7th/cmp-buffer'}, -- Buffer source
|
{'hrsh7th/cmp-buffer'}, -- Buffer source
|
||||||
{'petertriho/cmp-git', requires = "nvim-lua/plenary.nvim"}, -- Git source
|
{'petertriho/cmp-git', requires = "nvim-lua/plenary.nvim"}, -- Git source
|
||||||
{'L3MON4D3/LuaSnip'}, -- Snippets plugin
|
|
||||||
{'hrsh7th/cmp-nvim-lsp'}, -- LSP source
|
{'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
|
{'hrsh7th/cmp-path'}, -- Path source
|
||||||
{'rafamadriz/friendly-snippets'}, -- Snippets collection
|
|
||||||
{'saadparwaiz1/cmp_luasnip'} -- Snippets source
|
{'saadparwaiz1/cmp_luasnip'} -- Snippets source
|
||||||
},
|
},
|
||||||
config = require('plugins.cmp')
|
config = require('plugins.cmp'),
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Automatic brackets
|
-- Automatic brackets
|
||||||
|
@ -174,7 +181,7 @@ end)
|
||||||
|
|
||||||
-- Sync plugins if Packer was just
|
-- Sync plugins if Packer was just
|
||||||
-- installed
|
-- installed
|
||||||
if Packer_installed then
|
if Packer_bootstrap then
|
||||||
print('Syncing plugins')
|
print('Syncing plugins')
|
||||||
require('packer').sync()
|
require('packer').sync()
|
||||||
end
|
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