From 47ca074d4bf5c9ca622302c70f43321dbf9dee27 Mon Sep 17 00:00:00 2001 From: Jonas Ryssel Date: Sat, 27 Aug 2022 12:31:21 +0200 Subject: [PATCH] Add Rg and PLS --- init.vim | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/init.vim b/init.vim index 0f38178..71f1777 100644 --- a/init.vim +++ b/init.vim @@ -85,12 +85,16 @@ Plug 'JuliaEditorSupport/julia-vim' Plug 'rust-lang/rust.vim' + " Language server + Plug 'neovim/nvim-lspconfig' + " Fuzzy finding " Plug 'jhawthorn/fzy' " Install this systemwide (or configure a manual " location. See below) Plug 'srstevenson/vim-picker' Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf.vim' + Plug 'jesseleite/vim-agriculture' " line indentation guides Plug 'Yggdroot/indentLine' @@ -990,6 +994,69 @@ augroup END " Use ripgrep for vim grepping if executable("rg") - set grepprg=rg\ --vimgrep\ --smart-case\ --hidden + set grepprg=rg\ --vimgrep\ --smart-case\ --hidden\ --auto-hybrid-regex set grepformat=%f:%l:%c:%m endif + +if $USER =~ "^jry$" && $HOSTNAME =~ "gnu" +" Setup Perl language server +" See https://github.com/neovim/nvim-lspconfig +lua <e', vim.diagnostic.open_float, opts) + vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) + vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) + --vim.keymap.set('n', 'q', vim.diagnostic.setloclist, opts) + + -- Use an on_attach function to only map the following keys + -- after the language server attaches to the current buffer + local on_attach = function(client, bufnr) + -- Enable completion triggered by + vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + -- Mappings. + -- See `:help vim.lsp.*` for documentation on any of the below functions + local bufopts = { noremap=true, silent=true, buffer=bufnr } + -- Go to definition + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) + -- Show perldoc for function under cursor + vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) + -- Show list of function in current module (kræver FZF) + vim.keymap.set('n', 'L', jix_lsp.document_functions, bufopts) + -- Show signature for function under cursor (virker i skrivende stund ikke med subroutine signatures) + --vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) + -- Format file with perltidy + vim.keymap.set('n', 'f', vim.lsp.buf.formatting, bufopts) + -- Format visual selection with perltidy + vim.keymap.set('v', 'f', vim.lsp.buf.range_formatting, bufopts) + + -- Slå Neomake fra i buffer for at undgå dobbeltarbejde + vim.api.nvim_command('silent NeomakeDisableBuffer') + end + + local config = { + cmd = { 'jix-shell', 'pls' }, + settings = { + -- Se https://metacpan.org/pod/PLS#OPTIONS for mulige options + perl = { + perlcritic = { + enabled = true, + perlcriticrc = '/home/jry/jobxx/conf/perlcritic/perlcriticrc', + }, + syntax = { + enabled = true, + }, + perltidyrc = '~/jobxx/perltidyrc', + }, + }, + on_attach = on_attach, + handlers = jix_lsp.handlers, + } + + require 'lspconfig'.perlpls.setup(config) +EOF +endif