vim: Split out
This commit is contained in:
parent
4412180b3a
commit
2ad4bee0f9
9 changed files with 212 additions and 170 deletions
72
hm/vim/lsp.nix
Normal file
72
hm/vim/lsp.nix
Normal file
|
@ -0,0 +1,72 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
config = {
|
||||
programs.nixvim = {
|
||||
extraConfigLua = ''
|
||||
require'lsp_signature'.on_attach({
|
||||
hint_enable = false,
|
||||
})
|
||||
'';
|
||||
extraPlugins = with pkgs.vimPlugins; [
|
||||
# Language server
|
||||
lsp_signature-nvim # Show argument definition when typing a function
|
||||
];
|
||||
keymaps = [
|
||||
# barbar
|
||||
{ key = "<C-H>"; action = "<Cmd>BufferPrevious<CR>"; options = { silent = true; }; }
|
||||
{ key = "<C-L>"; action = "<Cmd>BufferNext<CR>"; options = { silent = true; }; }
|
||||
# TODO https://www.reddit.com/r/neovim/comments/mbj8m5/how_to_setup_ctrlshiftkey_mappings_in_neovim_and/
|
||||
{ key = "<Space><C-H>"; action = "<Cmd>BufferMovePrevious<CR>"; options = { silent = true; }; }
|
||||
{ key = "<Space><C-L>"; action = "<Cmd>BufferMoveNext<CR>"; options = { silent = true; }; }
|
||||
# TODO gotos don't work
|
||||
{ key = "<C-1>"; action = "<Cmd>BufferGoto 1<CR>"; options = { silent = true; }; }
|
||||
{ key = "<C-2>"; action = "<Cmd>BufferGoto 2<CR>"; options = { silent = true; }; }
|
||||
{ key = "<C-3>"; action = "<Cmd>BufferGoto 3<CR>"; options = { silent = true; }; }
|
||||
{ key = "<C-4>"; action = "<Cmd>BufferGoto 4<CR>"; options = { silent = true; }; }
|
||||
{ key = "<C-5>"; action = "<Cmd>BufferGoto 5<CR>"; options = { silent = true; }; }
|
||||
{ key = "<C-6>"; action = "<Cmd>BufferGoto 6<CR>"; options = { silent = true; }; }
|
||||
{ key = "<C-7>"; action = "<Cmd>BufferGoto 7<CR>"; options = { silent = true; }; }
|
||||
{ key = "<C-8>"; action = "<Cmd>BufferGoto 8<CR>"; options = { silent = true; }; }
|
||||
{ key = "<C-9>"; action = "<Cmd>BufferGoto 9<CR>"; options = { silent = true; }; }
|
||||
{ key = "<C-0>"; action = "<Cmd>BufferLast<CR>"; options = { silent = true; }; }
|
||||
{ key = "gb"; action = "<Cmd>BufferPick<CR>"; options = { silent = true; }; }
|
||||
# TODO Other useful options?
|
||||
];
|
||||
plugins = {
|
||||
# Language Server
|
||||
lsp = {
|
||||
enable = true;
|
||||
keymaps = {
|
||||
silent = true;
|
||||
diagnostic = {
|
||||
"<Space>e" = "open_float";
|
||||
"[e" = "goto_prev";
|
||||
"]e" = "goto_next";
|
||||
};
|
||||
lspBuf = {
|
||||
"gD" = "declaration";
|
||||
"K" = "hover";
|
||||
"gi" = "implementation";
|
||||
"<C-S-k>" = "signature_help";
|
||||
"<space>wa" = "add_workspace_folder";
|
||||
"<space>wr" = "remove_workspace_folder";
|
||||
# "<space>wl" = "list_workspace_folder";
|
||||
# TODO Full thing was function() print(vim.inspect(vim.lsp.buf.list_workspace_folder())) end but not sure I'm ever really using this
|
||||
# Also makes nvim crash like this, so uncommented
|
||||
"<space>D" = "type_definition";
|
||||
"<space>rn" = "rename";
|
||||
"<space>f" = "format";
|
||||
# TODO Full thing was function() vim.lsp.buf.format { async = true } end, so async while this isn't
|
||||
# Maybe replace this with lsp-format?
|
||||
};
|
||||
};
|
||||
};
|
||||
nvim-lightbulb = {
|
||||
# Shows a lightbulb whenever a codeAction is available under the cursor
|
||||
enable = true;
|
||||
autocmd.enabled = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue