From 11ed03d80c55e2c213118adf97fc18c55d2249a3 Mon Sep 17 00:00:00 2001 From: "Julian T." Date: Wed, 1 Nov 2023 15:46:43 +0100 Subject: Rework nvim setup --- vim-extra/.config/nvim/extra.vim | 124 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 117 insertions(+), 7 deletions(-) (limited to 'vim-extra/.config/nvim/extra.vim') diff --git a/vim-extra/.config/nvim/extra.vim b/vim-extra/.config/nvim/extra.vim index 440d86b..d2fc7cf 100644 --- a/vim-extra/.config/nvim/extra.vim +++ b/vim-extra/.config/nvim/extra.vim @@ -1,21 +1,34 @@ " Plugins{{{ call plug#begin() + Plug 'williamboman/mason.nvim' + Plug 'williamboman/mason-lspconfig.nvim' Plug 'neovim/nvim-lspconfig' Plug 'tpope/vim-surround' Plug 'tpope/vim-repeat' + Plug 'tpope/vim-unimpaired' + Plug 'tpope/vim-fugitive' + Plug 'tpope/vim-commentary' - Plug 'NLKNguyen/papercolor-theme' - Plug 'lervag/vimtex' + Plug 'hrsh7th/cmp-nvim-lsp' + Plug 'hrsh7th/cmp-buffer' + Plug 'hrsh7th/nvim-cmp' Plug 'nvim-treesitter/nvim-treesitter' + Plug 'nvim-lua/plenary.nvim' + Plug 'nvim-telescope/telescope.nvim', { 'branch': '0.1.x' } + + Plug 'NLKNguyen/papercolor-theme' + Plug 'lervag/vimtex' call plug#end() " }}} +colorscheme PaperColor + " Treesitter {{{ -lua << EOF +lua <ff', builtin.find_files, {}) + vim.keymap.set('n', 'fg', builtin.live_grep, {}) +EOF +" }}} + " Completion{{{ set completeopt+=menuone set completeopt+=noselect - " + " Close completion window autocmd CompleteDone * pclose - colorscheme PaperColor - "}}} " Latex {{{ @@ -45,3 +67,91 @@ EOF let g:vimtex_quickfix_open_on_warning = 0 "}}} + +" LSP {{{ + +lua <'] = cmp.mapping.complete(), + [''] = cmp.mapping.abort() + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + }, { + { + name = 'buffer', + option = { + get_bufnrs = function() + local bufs = {} + for _, win in ipairs(vim.api.nvim_list_wins()) do + bufs[vim.api.nvim_win_get_buf(win)] = true + end + return vim.tbl_keys(bufs) + end + }, + }, + }) + }) + + vim.api.nvim_create_autocmd('LspAttach', { + group = vim.api.nvim_create_augroup('UserLspConfig', {}), + callback = function(ev) + local opts = { buffer = ev.buf } + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) + vim.keymap.set('n', 'a', vim.lsp.buf.code_action, opts) + vim.keymap.set('n', 'r', vim.lsp.buf.rename, opts) + vim.keymap.set('n', 'd', vim.diagnostic.disable, opts) + vim.keymap.set('n', 'he', vim.diagnostic.open_float, opts) + vim.keymap.set('n', 'hh', vim.lsp.buf.hover, opts) + vim.keymap.set('n', 'q', vim.diagnostic.setqflist, opts) + + vim.api.nvim_set_hl(0, '@lsp.type.function', {}) + end, + }) + +EOF +" }}} -- cgit v1.2.3