Add Rg and PLS

This commit is contained in:
Jonas Ryssel 2022-08-27 12:31:21 +02:00
parent ff37449dcb
commit 47ca074d4b

View File

@ -85,12 +85,16 @@
Plug 'JuliaEditorSupport/julia-vim' Plug 'JuliaEditorSupport/julia-vim'
Plug 'rust-lang/rust.vim' Plug 'rust-lang/rust.vim'
" Language server
Plug 'neovim/nvim-lspconfig'
" Fuzzy finding " Fuzzy finding
" Plug 'jhawthorn/fzy' " Install this systemwide (or configure a manual " Plug 'jhawthorn/fzy' " Install this systemwide (or configure a manual
" location. See below) " location. See below)
Plug 'srstevenson/vim-picker' Plug 'srstevenson/vim-picker'
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim' Plug 'junegunn/fzf.vim'
Plug 'jesseleite/vim-agriculture'
" line indentation guides " line indentation guides
Plug 'Yggdroot/indentLine' Plug 'Yggdroot/indentLine'
@ -990,6 +994,69 @@ augroup END
" Use ripgrep for vim grepping " Use ripgrep for vim grepping
if executable("rg") 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 set grepformat=%f:%l:%c:%m
endif endif
if $USER =~ "^jry$" && $HOSTNAME =~ "gnu"
" Setup Perl language server
" See https://github.com/neovim/nvim-lspconfig
lua <<EOF
local jix_lsp = require 'jix.lsp'
-- Mappings.
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
local opts = { noremap=true, silent=true }
--vim.keymap.set('n', '<space>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', '<space>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 <c-x><c-o>
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', '<C-f>', vim.lsp.buf.signature_help, bufopts)
-- Format file with perltidy
vim.keymap.set('n', '<leader>f', vim.lsp.buf.formatting, bufopts)
-- Format visual selection with perltidy
vim.keymap.set('v', '<leader>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