feat(neovim): update config
This commit is contained in:
parent
e77590bbe4
commit
4472bf76dc
|
@ -6,7 +6,7 @@
|
||||||
omnisharp-roslyn
|
omnisharp-roslyn
|
||||||
rnix-lsp
|
rnix-lsp
|
||||||
terraform-ls
|
terraform-ls
|
||||||
python3Packages.python-language-server
|
python3Packages.python-lsp-server
|
||||||
nodePackages.bash-language-server
|
nodePackages.bash-language-server
|
||||||
nodePackages.vim-language-server
|
nodePackages.vim-language-server
|
||||||
nodePackages.yaml-language-server
|
nodePackages.yaml-language-server
|
||||||
|
@ -17,8 +17,9 @@
|
||||||
nodePackages.dockerfile-language-server-nodejs
|
nodePackages.dockerfile-language-server-nodejs
|
||||||
haskellPackages.haskell-language-server
|
haskellPackages.haskell-language-server
|
||||||
nodePackages.diagnostic-languageserver
|
nodePackages.diagnostic-languageserver
|
||||||
|
rust-analyzer
|
||||||
|
|
||||||
# linters
|
# linters & formatters
|
||||||
nodePackages.eslint
|
nodePackages.eslint
|
||||||
# nodePackages.stylelint
|
# nodePackages.stylelint
|
||||||
nodePackages.prettier
|
nodePackages.prettier
|
||||||
|
|
|
@ -11,7 +11,6 @@ in {
|
||||||
|
|
||||||
programs.neovim = {
|
programs.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.neovim-nightly;
|
|
||||||
viAlias = true;
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
plugins = with pkgs.vimPlugins; [
|
plugins = with pkgs.vimPlugins; [
|
||||||
|
@ -31,10 +30,11 @@ in {
|
||||||
plenary-nvim
|
plenary-nvim
|
||||||
gitsigns-nvim
|
gitsigns-nvim
|
||||||
vim-test
|
vim-test
|
||||||
auto-pairs
|
nvim-autopairs
|
||||||
camelcasemotion
|
camelcasemotion
|
||||||
wmgraphviz-vim
|
wmgraphviz-vim
|
||||||
nvim-compe
|
nvim-compe
|
||||||
|
vim-vsnip
|
||||||
|
|
||||||
(nvim-treesitter.withPlugins (_: pkgs.tree-sitter.allGrammars))
|
(nvim-treesitter.withPlugins (_: pkgs.tree-sitter.allGrammars))
|
||||||
nvim-treesitter-context
|
nvim-treesitter-context
|
||||||
|
@ -43,7 +43,11 @@ in {
|
||||||
nvim-ts-autotag
|
nvim-ts-autotag
|
||||||
nvim-ts-context-commentstring
|
nvim-ts-context-commentstring
|
||||||
|
|
||||||
|
# lsp
|
||||||
nvim-lspconfig
|
nvim-lspconfig
|
||||||
|
nvim-lightbulb
|
||||||
|
|
||||||
|
# dap
|
||||||
# nvim-dap
|
# nvim-dap
|
||||||
# nvim-dap-virtual-text
|
# nvim-dap-virtual-text
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,9 @@ set smartcase
|
||||||
set termguicolors
|
set termguicolors
|
||||||
set timeoutlen=500
|
set timeoutlen=500
|
||||||
|
|
||||||
|
" reduce CursorHold delay
|
||||||
|
set updatetime=500
|
||||||
|
|
||||||
let g:nvcode_termcolors=256
|
let g:nvcode_termcolors=256
|
||||||
syntax on
|
syntax on
|
||||||
colorscheme nvcode
|
colorscheme nvcode
|
||||||
|
|
|
@ -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>
|
|
|
@ -1,32 +1,52 @@
|
||||||
local config = require'lspconfig'
|
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
|
-- format on save
|
||||||
local diagnosticls_on_attach = function(_, bufnr)
|
local diagnosticls_on_attach = function(_, bufnr)
|
||||||
|
on_attach(_, bufnr)
|
||||||
vim.api.nvim_command(
|
vim.api.nvim_command(
|
||||||
"au BufWritePre <buffer> lua vim.lsp.buf.formatting_seq_sync(nil, nil, { 'tsserver', 'diagnosticls' })")
|
"au BufWritePre <buffer> lua vim.lsp.buf.formatting_seq_sync(nil, nil, { 'tsserver', 'diagnosticls' })")
|
||||||
end
|
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{
|
config.omnisharp.setup{
|
||||||
|
capabilities = capabilities,
|
||||||
cmd = {"omnisharp", "--languageserver", "--hostPID", tostring(pid)},
|
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{
|
config.diagnosticls.setup{
|
||||||
on_attach = diagnosticls_on_attach,
|
on_attach = diagnosticls_on_attach,
|
||||||
filetypes = {
|
filetypes = {
|
||||||
|
@ -148,8 +168,34 @@ config.diagnosticls.setup{
|
||||||
json = {"prettier"},
|
json = {"prettier"},
|
||||||
yaml = {"prettier"},
|
yaml = {"prettier"},
|
||||||
markdown = {"prettier"},
|
markdown = {"prettier"},
|
||||||
|
nix = {"nixfmt"},
|
||||||
html = {"prettier"},
|
html = {"prettier"},
|
||||||
css = {"stylelint"},
|
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})
|
||||||
|
|
|
@ -10,6 +10,7 @@ let g:compe.source = {}
|
||||||
let g:compe.source.path = v:true
|
let g:compe.source.path = v:true
|
||||||
let g:compe.source.calc = v:true
|
let g:compe.source.calc = v:true
|
||||||
let g:compe.source.nvim_lsp = 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> <C-Space> compe#complete()
|
||||||
inoremap <silent><expr> <CR> compe#confirm('<CR>')
|
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>a <cmd>lua vim.lsp.buf.code_action()<CR>
|
||||||
nnoremap <silent> <leader>r <cmd>lua vim.lsp.buf.rename()<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>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>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue