diff --git a/_config/nvim/mappings.vim b/_config/nvim/mappings.vim index 9f50ead..6cc9906 100644 --- a/_config/nvim/mappings.vim +++ b/_config/nvim/mappings.vim @@ -4,8 +4,8 @@ let VM_leader = ',' noremap / :Commentary -noremap :make! -noremap :! ./% +" noremap :make! +" noremap :! ./% noremap :Files noremap :Buffers diff --git a/_config/nvim/plugin/lsp.lua b/_config/nvim/plugin/lsp.lua new file mode 100644 index 0000000..04514f6 --- /dev/null +++ b/_config/nvim/plugin/lsp.lua @@ -0,0 +1,43 @@ +local lsp = require('lsp-zero').preset({}) + +lsp.on_attach(function(client, bufnr) + -- see :help lsp-zero-keybindings + -- to learn the available actions + lsp.default_keymaps({buffer = bufnr}) +end) + +-- " (Optional) Configure lua language server for neovim +require('lspconfig').lua_ls.setup(lsp.nvim_lua_ls()) + +-- You need to setup `cmp` after lsp-zero +local cmp = require('cmp') +local cmp_action = require('lsp-zero').cmp_action() + +cmp.setup({ + mapping = { + -- `Enter` key to confirm completion + [''] = cmp.mapping.confirm({select = false}), + + -- Ctrl+Space to trigger completion menu + [''] = cmp.mapping.complete(), + + -- Navigate between snippet placeholder + [''] = cmp_action.luasnip_jump_forward(), + [''] = cmp_action.luasnip_jump_backward(), + } +}) + +local null_ls = require('null-ls') +local null_opts = lsp.build_options('null-ls', {}) + +null_ls.setup({ + on_attach = function(client, bufnr) + null_opts.on_attach(client, bufnr) + --- you can add more stuff here if you need it + end, + sources = { + null_ls.builtins.formatting.black, + } +}) + +lsp.setup() diff --git a/_config/nvim/plugins.vim b/_config/nvim/plugins.vim index 1b6dc1d..2bb0338 100644 --- a/_config/nvim/plugins.vim +++ b/_config/nvim/plugins.vim @@ -4,12 +4,12 @@ Plug 'tpope/vim-fugitive' Plug 'vim-syntastic/syntastic' Plug 'junegunn/fzf.vim' Plug 'tpope/vim-surround' -Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } +" Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } " Plug 'deoplete-plugins/deoplete-clang' " Plug 'deoplete-plugins/deoplete-jedi' " Plug 'deoplete-plugins/deoplete-go', { 'do': 'make'} " Plug 'carlitux/deoplete-ternjs', { 'do': 'npm install tern'} -Plug 'tbodt/deoplete-tabnine', { 'do': './install.sh' } +" Plug 'tbodt/deoplete-tabnine', { 'do': './install.sh' } Plug 'mg979/vim-visual-multi' " Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } " Plug 'ndmitchell/ghcid', { 'rtp': 'plugins/nvim' } @@ -18,4 +18,19 @@ Plug 'luochen1990/rainbow' Plug 'sirver/ultisnips' Plug 'lervag/vimtex' Plug 'tpope/vim-commentary' + +" LSP Support +Plug 'neovim/nvim-lspconfig' +Plug 'williamboman/mason.nvim' +Plug 'williamboman/mason-lspconfig.nvim' + +Plug 'nvim-lua/plenary.nvim' +Plug 'jose-elias-alvarez/null-ls.nvim' + +" Autocompletion +Plug 'hrsh7th/nvim-cmp' +Plug 'hrsh7th/cmp-nvim-lsp' +Plug 'L3MON4D3/LuaSnip' + +Plug 'VonHeikemen/lsp-zero.nvim', {'branch': 'v2.x'} call plug#end()