From 596a3d06ef368cbd62fc02b577bc7ec1d7d5d13d Mon Sep 17 00:00:00 2001 From: Jeremy Kaplan Date: Fri, 27 May 2022 15:41:50 +0100 Subject: [PATCH] neovim: Set up auto-completion and snippets --- neovim/init.vim | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/neovim/init.vim b/neovim/init.vim index e633235..e68fdeb 100644 --- a/neovim/init.vim +++ b/neovim/init.vim @@ -15,6 +15,8 @@ Plug 'elixir-editors/vim-elixir' Plug 'fatih/vim-go' Plug 'Glench/Vim-Jinja2-Syntax' Plug 'glts/vim-textobj-comment' +Plug 'hrsh7th/cmp-nvim-lsp', { 'branch': 'main' } +Plug 'hrsh7th/nvim-cmp', { 'branch': 'main' } Plug 'ianks/vim-tsx' Plug 'jeetsukumaran/vim-buffergator' Plug 'jiangmiao/auto-pairs' @@ -23,6 +25,7 @@ Plug 'jparise/vim-graphql' Plug 'junegunn/fzf.vim' Plug 'kana/vim-textobj-user' Plug 'keith/swift.vim' +Plug 'L3MON4D3/LuaSnip' Plug 'leafgarland/typescript-vim' Plug 'ledger/vim-ledger' Plug 'LnL7/vim-nix' @@ -34,6 +37,7 @@ Plug 'pangloss/vim-javascript' Plug 'preservim/vim-markdown' Plug 'qpkorr/vim-bufkill' Plug 'rust-lang/rust.vim' +Plug 'saadparwaiz1/cmp_luasnip' Plug 'scrooloose/nerdtree' Plug 'sirtaj/vim-openscad' Plug 'tpope/vim-abolish' @@ -331,6 +335,9 @@ nnoremap :ResetScreen let g:vim_markdown_folding_disabled = 1 lua <'] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.confirm { + behavior = cmp.ConfirmBehavior.Replace, + select = true, + }, + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { 'i', 's' }), + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { 'i', 's' }), + }), + sources = { + { name = "nvim_lsp" }, + { name = "luasnip" }, + }, +} LSPCONFIG