feat(neovim): update config

This commit is contained in:
Felix Schröter 2021-08-04 22:21:44 +02:00
parent e77590bbe4
commit 4472bf76dc
No known key found for this signature in database
GPG key ID: 910ACB9F6BD26F58
6 changed files with 78 additions and 26 deletions

View file

@ -6,7 +6,7 @@
omnisharp-roslyn
rnix-lsp
terraform-ls
python3Packages.python-language-server
python3Packages.python-lsp-server
nodePackages.bash-language-server
nodePackages.vim-language-server
nodePackages.yaml-language-server
@ -17,8 +17,9 @@
nodePackages.dockerfile-language-server-nodejs
haskellPackages.haskell-language-server
nodePackages.diagnostic-languageserver
rust-analyzer
# linters
# linters & formatters
nodePackages.eslint
# nodePackages.stylelint
nodePackages.prettier

View file

@ -11,7 +11,6 @@ in {
programs.neovim = {
enable = true;
package = pkgs.neovim-nightly;
viAlias = true;
vimAlias = true;
plugins = with pkgs.vimPlugins; [
@ -31,10 +30,11 @@ in {
plenary-nvim
gitsigns-nvim
vim-test
auto-pairs
nvim-autopairs
camelcasemotion
wmgraphviz-vim
nvim-compe
vim-vsnip
(nvim-treesitter.withPlugins (_: pkgs.tree-sitter.allGrammars))
nvim-treesitter-context
@ -43,7 +43,11 @@ in {
nvim-ts-autotag
nvim-ts-context-commentstring
# lsp
nvim-lspconfig
nvim-lightbulb
# dap
# nvim-dap
# nvim-dap-virtual-text

View file

@ -6,6 +6,9 @@ set smartcase
set termguicolors
set timeoutlen=500
" reduce CursorHold delay
set updatetime=500
let g:nvcode_termcolors=256
syntax on
colorscheme nvcode

View file

@ -1,6 +0,0 @@
let g:kitty_navigator_no_mappings = 1
nnoremap <silent> {Left-Mapping} :KittyNavigateLeft<cr>
nnoremap <silent> {Down-Mapping} :KittyNavigateDown<cr>
nnoremap <silent> {Up-Mapping} :KittyNavigateUp<cr>
nnoremap <silent> {Right-Mapping} :KittyNavigateRight<cr>

View file

@ -1,32 +1,52 @@
local config = require'lspconfig'
local pid = vim.fn.getpid()
-- lightbulb
vim.cmd [[autocmd CursorHold,CursorHoldI * lua require'nvim-lightbulb'.update_lightbulb()]]
local on_attach = function(_, bufnr)
-- codelens
vim.api.nvim_command [[autocmd CursorHold,CursorHoldI,InsertLeave <buffer> lua vim.lsp.codelens.refresh()]]
vim.api.nvim_buf_set_keymap(bufnr, "n", "<leader>l", "<Cmd>lua vim.lsp.codelens.run()<CR>", {silent = true;})
end
-- format on save
local diagnosticls_on_attach = function(_, bufnr)
on_attach(_, bufnr)
vim.api.nvim_command(
"au BufWritePre <buffer> lua vim.lsp.buf.formatting_seq_sync(nil, nil, { 'tsserver', 'diagnosticls' })")
end
local pid = vim.fn.getpid()
-- enable lsp snippets for nvim-compe
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = true
local servers = {
"bashls",
"jsonls",
"yamlls",
"html",
"cssls",
"dockerls",
"rnix",
"tsserver",
"pylsp",
"terraformls",
"hls",
"rust_analyzer",
}
for _, lsp in ipairs(servers) do
config[lsp].setup {
on_attach = on_attach,
capabilities = capabilities,
}
end
config.bashls.setup{}
config.jsonls.setup{}
config.yamlls.setup{}
config.html.setup{}
config.cssls.setup{}
config.vimls.setup{}
config.dockerls.setup{}
config.rnix.setup{}
config.tsserver.setup{}
config.omnisharp.setup{
capabilities = capabilities,
cmd = {"omnisharp", "--languageserver", "--hostPID", tostring(pid)},
}
config.pyls.setup{}
config.terraformls.setup{}
config.hls.setup{}
-- based on: https://github.com/mikew/vimrc/blob/master/src/nvim/coc-settings.json
-- TODO breaks auto-completion when using with other lsp
-- TODO some ts projects are using tsc eslint plugin
config.diagnosticls.setup{
on_attach = diagnosticls_on_attach,
filetypes = {
@ -148,8 +168,34 @@ config.diagnosticls.setup{
json = {"prettier"},
yaml = {"prettier"},
markdown = {"prettier"},
nix = {"nixfmt"},
html = {"prettier"},
css = {"stylelint"},
},
},
}
-- nvim-autoclose & nvim-compe compatibility
local remap = vim.api.nvim_set_keymap
local npairs = require('nvim-autopairs')
npairs.setup({
check_ts = true,
})
_G.MUtils= {}
vim.g.completion_confirm_key = ""
MUtils.completion_confirm=function()
if vim.fn.pumvisible() ~= 0 then
if vim.fn.complete_info()["selected"] ~= -1 then
return vim.fn["compe#confirm"](npairs.esc("<cr>"))
else
return npairs.esc("<cr>")
end
else
return npairs.autopairs_cr()
end
end
remap('i' , '<CR>','v:lua.MUtils.completion_confirm()', {expr = true , noremap = true})

View file

@ -10,6 +10,7 @@ let g:compe.source = {}
let g:compe.source.path = v:true
let g:compe.source.calc = v:true
let g:compe.source.nvim_lsp = v:true
let g:compe.source.vsnip = v:true
inoremap <silent><expr> <C-Space> compe#complete()
inoremap <silent><expr> <CR> compe#confirm('<CR>')
@ -36,4 +37,7 @@ nnoremap <silent> <leader>f <cmd>lua vim.lsp.buf.formatting_seq_sync(nil, nil,
nnoremap <silent> <leader>a <cmd>lua vim.lsp.buf.code_action()<CR>
nnoremap <silent> <leader>r <cmd>lua vim.lsp.buf.rename()<CR>
nnoremap <silent> <leader>d <cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>
nnoremap <silent> <leader>q <cmd>lua vim.lsp.diagnostic.set_loclist()<CR>
nnoremap <silent> [d <cmd>lua vim.lsp.diagnostic.goto_prev()<CR>
nnoremap <silent> ]d <cmd>lua vim.lsp.diagnostic.goto_next()<CR>