From 049aeef81ba7ae64df3f82b06a6690f8e9ad97ed Mon Sep 17 00:00:00 2001 From: Damien Radtke Date: Mon, 3 Jan 2022 21:30:24 -0600 Subject: [PATCH] Small vim improvements --- .gitignore | 1 + vim/.config/nvim/init.vim | 141 +++++++++++++++++++++----------------- vim/.vimrc | 10 ++- 3 files changed, 87 insertions(+), 65 deletions(-) diff --git a/.gitignore b/.gitignore index a01ee28..a5aa1b9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .*.swp +Session.vim diff --git a/vim/.config/nvim/init.vim b/vim/.config/nvim/init.vim index f54b502..c881142 100644 --- a/vim/.config/nvim/init.vim +++ b/vim/.config/nvim/init.vim @@ -3,90 +3,105 @@ let &packpath=&runtimepath source ~/.vimrc if has('nvim-0.5') - " Inspired by https://github.com/neovim/nvim-lspconfig/#keybindings-and-completion, - " but with instead of + " Inspired by https://github.com/neovim/nvim-lspconfig/#keybindings-and-completion, + " but with instead of lua << EOF local nvim_lsp = require('lspconfig') local on_attach = function(client, bufnr) - local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end - local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end + local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end + local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') + buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') - -- Mappings. - local opts = { noremap=true, silent=true } - buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) - buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) - buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) - buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) - buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) - buf_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) - buf_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) - buf_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) - buf_set_keymap('n', 'D', 'lua vim.lsp.buf.type_definition()', opts) - buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', opts) - buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', opts) - buf_set_keymap('n', 'e', 'lua vim.lsp.diagnostic.show_line_diagnostics()', opts) - buf_set_keymap('n', '[d', 'lua vim.lsp.diagnostic.goto_prev()', opts) - buf_set_keymap('n', ']d', 'lua vim.lsp.diagnostic.goto_next()', opts) - buf_set_keymap('n', 'q', 'lua vim.lsp.diagnostic.set_loclist()', opts) - buf_set_keymap('n', 'ca', 'lua vim.lsp.buf.code_action()', opts) + -- Mappings. + local opts = { noremap=true, silent=true } + buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) + buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) + buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) + buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) + buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) + buf_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) + buf_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) + buf_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) + buf_set_keymap('n', 'D', 'lua vim.lsp.buf.type_definition()', opts) + buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', opts) + buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', opts) + buf_set_keymap('n', 'e', 'lua vim.lsp.diagnostic.show_line_diagnostics()', opts) + buf_set_keymap('n', '[d', 'lua vim.lsp.diagnostic.goto_prev()', opts) + buf_set_keymap('n', ']d', 'lua vim.lsp.diagnostic.goto_next()', opts) + buf_set_keymap('n', 'q', 'lua vim.lsp.diagnostic.set_loclist()', opts) + buf_set_keymap('n', 'ca', 'lua require("telescope.builtin").lsp_code_actions{}', opts) - -- Set some keybinds conditional on server capabilities - if client.resolved_capabilities.document_formatting then - buf_set_keymap("n", "df", "lua vim.lsp.buf.formatting()", opts) - elseif client.resolved_capabilities.document_range_formatting then - buf_set_keymap("n", "df", "lua vim.lsp.buf.formatting()", opts) - end + -- Set some keybinds conditional on server capabilities + if client.resolved_capabilities.document_formatting then + buf_set_keymap('n', 'df', 'lua vim.lsp.buf.formatting()', opts) + elseif client.resolved_capabilities.document_range_formatting then + buf_set_keymap('n', 'df', 'lua vim.lsp.buf.formatting()', opts) + end - -- Set autocommands conditional on server_capabilities - if client.resolved_capabilities.document_highlight then - vim.api.nvim_exec([[ - hi LspReferenceRead cterm=bold ctermbg=red guibg=LightYellow - hi LspReferenceText cterm=bold ctermbg=red guibg=LightYellow - hi LspReferenceWrite cterm=bold ctermbg=red guibg=LightYellow - augroup lsp_document_highlight - autocmd! - autocmd CursorHold lua vim.lsp.buf.document_highlight() - autocmd CursorMoved lua vim.lsp.buf.clear_references() - augroup END - ]], false) - end + -- Set autocommands conditional on server_capabilities + -- if client.resolved_capabilities.document_highlight then + -- vim.api.nvim_exec([[ + -- hi LspReferenceRead cterm=bold ctermbg=red guibg=LightYellow + -- hi LspReferenceText cterm=bold ctermbg=red guibg=LightYellow + -- hi LspReferenceWrite cterm=bold ctermbg=red guibg=LightYellow + -- augroup lsp_document_highlight + -- autocmd! + -- autocmd CursorHold lua vim.lsp.buf.document_highlight() + -- autocmd CursorMoved lua vim.lsp.buf.clear_references() + -- augroup END + -- ]], false) + -- end end nvim_lsp.jdtls.setup{ - cmd = { "java-language-server", "--heap-max", "8G" }; - init_options = { - bundles = {vim.env.HOME.."/language-servers/java/extensions/debug.jar"}; - }; - on_attach = on_attach; + cmd = { 'java-language-server', '--heap-max', '8G' }; + init_options = { + bundles = {vim.env.HOME..'/language-servers/java/extensions/debug.jar'}; + }; + on_attach = on_attach; } nvim_lsp.gopls.setup{ - on_attach = on_attach; + on_attach = on_attach; } --- Use fzf for native LSP selection requests, i.e. code actions -require('fzf_lsp').setup() +if not nvim_lsp.lemminx then + require('lspconfig/configs').lemminx = { + default_config = { + cmd = { 'xml-language-server' }, + filetypes = { 'xml' }, + root_dir = require('lspconfig/util').root_pattern('.git'), + } + }; +end +nvim_lsp.lemminx.setup{ + on_attach = on_attach; +} + +nvim_lsp.ccls.setup{ + on_attach = on_attach; +}; local status, treesitter = pcall(require, 'nvim-treesitter.configs') if status then - treesitter.setup{ - ensure_installed = "maintained", - highlight = { - enable = true - }, - indent = { - enable = true - }, - } + treesitter.setup{ + ensure_installed = 'maintained', + highlight = { + enable = true + }, + indent = { + enable = true, + disable = { "zig" }, + }, + } end require('telescope').setup{ - defaults = { - prompt_position = "top", - sorting_strategy = "ascending", - } + defaults = { + prompt_position = 'top', + sorting_strategy = 'ascending', + } } EOF diff --git a/vim/.vimrc b/vim/.vimrc index ca50444..3f4fce3 100644 --- a/vim/.vimrc +++ b/vim/.vimrc @@ -8,15 +8,16 @@ Plug 'junegunn/fzf.vim' Plug 'rust-lang/rust.vim' Plug 'scrooloose/nerdtree' Plug 'thomd/vim-wasabi-colorscheme' +Plug 'mhartington/oceanic-next' Plug 'tpope/vim-fugitive' Plug 'tpope/vim-sensible' Plug 'jvirtanen/vim-hcl' +Plug 'ziglang/zig.vim' if has('nvim') Plug 'nvim-lua/popup.nvim' Plug 'nvim-lua/plenary.nvim' endif if has('nvim-0.5') - Plug 'gfanto/fzf-lsp.nvim' Plug 'neovim/nvim-lspconfig' Plug 'nvim-telescope/telescope.nvim' Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} @@ -40,8 +41,13 @@ au FileType go command! Imports call s:go_imports() au FileType html setlocal expandtab tabstop=2 shiftwidth=2 au FileType json setlocal expandtab tabstop=2 shiftwidth=2 au FileType javascript setlocal expandtab tabstop=4 shiftwidth=4 +au BufNewFile,BufRead *.xaml set filetype=xml -silent! colorscheme wasabi256 +if has('nvim-0.5') + silent! colorscheme OceanicNext +else + silent! colorscheme wasabi256 +endif highlight! link NonText NONE function! s:set_make_go() abort -- 2.34.2