Add Rg and PLS
This commit is contained in:
parent
ff37449dcb
commit
47ca074d4b
69
init.vim
69
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 <<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
|
||||
|
Loading…
Reference in New Issue
Block a user