dotfiles

Author: Kyle Fuller <kyle@fuller.li> 2021-09-04 15:05:09 +0100 +0100
Committer: Kyle Fuller <kyle@fuller.li> 2021-09-04 15:15:12 +0100 +0100
Commit: 802b8a5a6d95c3ba4f9f88470f619e0432709bf2
Parent: 69d704a61d7f34331d8688845218e0b920b8e58b


feat(vim): enable lsp
diff --git a/.vim/vimrc b/.vim/vimrc
index ac0df35cd1b7f1442112452c05a773407bd09f89..aedd1aba7161dc3332d4d7ae2cd3679492566d44 100644
--- a/.vim/vimrc
+++ b/.vim/vimrc
@@ -22,9 +22,15 @@ Plug '/usr/local/opt/fzf' | Plug 'junegunn/fzf.vim'
 Plug 'rking/ag.vim'
 Plug 'scrooloose/nerdtree', { 'on': ['NERDTreeToggle','NERDTreeFind'] }
 
+"" LSP / Completion Engines
+Plug 'hrsh7th/cmp-nvim-lsp'
+Plug 'hrsh7th/nvim-cmp'
+Plug 'neovim/nvim-lspconfig'
+
 " Language
 Plug 'cespare/vim-toml'
 Plug 'dag/vim-fish'
+Plug 'hashivim/vim-terraform'
 Plug 'kchmck/vim-coffee-script'
 Plug 'keith/swift.vim'
 Plug 'kylef/apiblueprint.vim'
@@ -154,3 +160,29 @@   autocmd FileType podspec set makeprg=pod\ spec\ lint\ %
   autocmd FileType podfile set makeprg=pod\ install
 augroup END
 " }}}
+
+lua <<EOF
+  require'lspconfig'.ansiblels.setup{}
+  require'lspconfig'.bashls.setup{}
+  require'lspconfig'.pyright.setup{}
+  require'lspconfig'.sourcekit.setup{}
+  require'lspconfig'.sumneko_lua.setup{
+    cmd = {'lua-language-server'}
+  }
+  require'lspconfig'.terraformls.setup{}
+
+  local cmp = require'cmp'
+  cmp.setup({
+    snippet = {
+      expand = function(args)
+        vim.fn["vsnip#anonymous"](args.body)
+      end,
+    },
+    mapping = {
+      ['<C-y>'] = cmp.mapping.confirm({ select = true }),
+    },
+    sources = {
+      { name = 'nvim_lsp' },
+    }
+  })
+EOF