nixvim: treesitter, oil and adjust keys

This commit is contained in:
Tristan 2024-10-01 22:25:12 +01:00
parent fbcb58a26b
commit ea68950497
2 changed files with 110 additions and 23 deletions

2
.rgignore Normal file
View file

@ -0,0 +1,2 @@
lib/words.txt
flake.lock

View file

@ -5,17 +5,26 @@
opts = { opts = {
number = true; number = true;
relativenumber = true; relativenumber = true;
tabstop = 2; tabstop = 4;
shiftwidth = 2; shiftwidth = 2;
expandtab = true; expandtab = true;
smartindent = true; smartindent = true;
scrolloff = 4; scrolloff = 4;
undofile = true; undofile = true;
undodir.__raw = ''vim.fn.expand("$HOME/.local/share/nvim/undo")'';
list = true;
listchars = builtins.concatStringsSep "," [
"tab: >"
"leadmultispace: |"
"trail:."
"extends:>"
"precedes:<"
];
}; };
extraPlugins = [(pkgs.vimPlugins.actions-preview-nvim)]; extraPlugins = [(pkgs.vimPlugins.actions-preview-nvim)];
extraConfigLua = '' extraConfigLua = ''
vim.o.undodir = vim.fn.expand("$HOME/.local/share/nvim/undo")
require("actions-preview").setup { require("actions-preview").setup {
highlight_command = { highlight_command = {
require("actions-preview.highlight").delta("${pkgs.delta}/bin/delta --no-gitconfig --side-by-side"), require("actions-preview.highlight").delta("${pkgs.delta}/bin/delta --no-gitconfig --side-by-side"),
@ -49,6 +58,14 @@
require("actions-preview").code_actions require("actions-preview").code_actions
''; '';
} }
{
key = "<C-n>";
action = "<CMD>tabnext<CR>";
}
{
key = "<C-p>";
action = "<CMD>tabprev<CR>";
}
{ {
key = "gl"; key = "gl";
action = "g$"; action = "g$";
@ -57,31 +74,85 @@
key = "gh"; key = "gh";
action = "g0"; action = "g0";
} }
{
mode = "v";
key = ">";
action = ">gv";
options.desc = "indent";
options.silent = true;
}
{
mode = "v";
key = "<";
action = "<gv";
options.desc = "deindent";
options.silent = true;
}
{ {
key = "<leader>q"; key = "<leader>q";
action = ":bd<CR>"; action = "<CMD>bd<CR>";
options.desc = "close buffer"; options.desc = "close buffer";
} }
{
key = "<leader>g";
action = "";
options.desc = "Gitsigns";
}
{ {
key = "<leader>gs"; key = "<leader>gs";
action = ":Gitsigns stage_hunk<CR>"; action = "<CMD>Gitsigns stage_hunk<CR>";
options.desc = "git stage hunk"; options.desc = "git stage hunk";
} }
{
key = "<leader>gn";
action = "<CMD>Gitsigns next_hunk<CR>zz";
options.desc = "next git hunk";
}
{
key = "<leader>gd";
action = "<CMD>Gitsigns preview_hunk_inline<CR>";
options.desc = "git diff hunk";
}
{
key = "<leader>gD";
action = "<CMD>Gitsigns diffthis<CR>";
options.desc = "git diff buffer";
}
{ {
key = "<leader>gr"; key = "<leader>gr";
action = ":Gitsigns reset_hunk<CR>"; action = "<CMD>Gitsigns reset_hunk<CR>";
options.desc = "git restore hunk"; options.desc = "git restore hunk";
} }
{ {
key = "<leader>gb"; key = "<leader>gb";
action = ":Gitsigns blame<CR>"; action = "<CMD>Gitsigns blame<CR>";
options.desc = "show git blame"; options.desc = "show git blame";
} }
{ {
key = "<leader>gg"; key = "<leader>gg";
action = ":LazyGit<CR>"; action = "<CMD>LazyGit<CR>";
options.desc = "open lazygit"; options.desc = "open lazygit";
} }
{
key = "<leader>-";
action = "<CMD>Oil<CR>";
options.desc = "open dir in Oil";
}
{
key = "<leader>f";
action = "";
options.desc = "Telescope";
}
{
key = "<leader>c";
action = "";
options.desc = "LSP";
}
{
key = "<leader>h";
action = "";
options.desc = "Harpoon";
}
]; ];
plugins = { plugins = {
@ -94,6 +165,11 @@
telescope = { telescope = {
enable = true; enable = true;
settings = {
defaults = {
file_ignore_patterns = [".*lock.*"];
};
};
keymaps = { keymaps = {
"<leader>fg" = "live_grep"; "<leader>fg" = "live_grep";
"<leader>/" = "live_grep"; "<leader>/" = "live_grep";
@ -101,6 +177,9 @@
"<leader>fb" = "buffers"; "<leader>fb" = "buffers";
"<leader>fh" = "help_tags"; "<leader>fh" = "help_tags";
"<leader>:" = "commands"; "<leader>:" = "commands";
"<leader>ft" = "treesitter";
"<leader>fr" = "lsp_references";
"<leader>cr" = "lsp_definition";
}; };
}; };
@ -114,17 +193,6 @@
lspBuf = { lspBuf = {
"<leader>ck" = "hover"; "<leader>ck" = "hover";
"K" = "hover"; "K" = "hover";
# using actions-preview instead
# "<leader>ca" = "code_action";
# "<C-.>" = "code_action";
"<leader>cd" = "definition";
"gd" = "definition";
"<leader>cf" = "references";
"gr" = "references";
"<leader>cr" = "rename"; "<leader>cr" = "rename";
"<F2>" = "rename"; "<F2>" = "rename";
}; };
@ -148,10 +216,6 @@
lazygit.enable = true; lazygit.enable = true;
which-key.enable = true; which-key.enable = true;
dap = {
enable = true;
extensions.dap-ui.enable = true;
};
harpoon = { harpoon = {
enable = true; enable = true;
keymaps = { keymaps = {
@ -162,6 +226,27 @@
}; };
vim-css-color.enable = true; vim-css-color.enable = true;
treesitter = {
enable = true;
folding = true;
};
treesitter-textobjects = {
enable = true;
select = {
enable = true;
lookahead = true;
keymaps = {
"af" = { query = "@function.outer"; desc = "Function Outer"; };
"ac" = { query = "@comment.outer"; desc = "Comment Outer"; };
"if" = { query = "@function.inner"; desc = "Function Inner"; };
};
};
};
oil.enable = true;
autoclose.enable = true;
guess-indent.enable = true;
}; };
} }