feat(neovim): update config
This commit is contained in:
parent
e77590bbe4
commit
4472bf76dc
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 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})
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
Loading…
Reference in a new issue