nixvim: add diffview, gitsigns, which-key. re-enable treesitter. document some keymaps #33
1 changed files with 79 additions and 23 deletions
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.programs.nixvim;
|
cfg = config.programs.nixvim;
|
||||||
plugin = cfg.plugins.fugitive;
|
plugin = cfg.plugins.gitsigns;
|
||||||
|
|
||||||
inherit (lib) mkDefault mkIf;
|
inherit (lib) mkDefault mkIf;
|
||||||
in
|
in
|
||||||
|
|
@ -13,36 +13,92 @@ in
|
||||||
enable = mkDefault true;
|
enable = mkDefault true;
|
||||||
settings = {
|
settings = {
|
||||||
current_line_blame = mkDefault false;
|
current_line_blame = mkDefault false;
|
||||||
current_line_blame_opts = mkDefault {
|
current_line_blame_opts = {
|
||||||
virt_text = mkDefault true;
|
virt_text = mkDefault true;
|
||||||
virt_text_pos = mkDefault "eol";
|
virt_text_pos = mkDefault "eol";
|
||||||
};
|
};
|
||||||
signcolumn = mkDefault true;
|
signcolumn = mkDefault true;
|
||||||
signs = {
|
signs = {
|
||||||
add = {
|
add.text = mkDefault "+";
|
||||||
text = mkDefault "+";
|
change.text = mkDefault "│";
|
||||||
|
changedelete.text = mkDefault "~";
|
||||||
|
delete.text = mkDefault "-";
|
||||||
|
topdelete.text = mkDefault "-";
|
||||||
|
untracked.text = mkDefault "?";
|
||||||
};
|
};
|
||||||
change = {
|
watch_gitdir.follow_files = mkDefault true;
|
||||||
text = mkDefault "│";
|
|
||||||
};
|
|
||||||
changedelete = {
|
|
||||||
text = mkDefault "~";
|
|
||||||
};
|
|
||||||
delete = {
|
|
||||||
text = mkDefault "-";
|
|
||||||
};
|
|
||||||
topdelete = {
|
|
||||||
text = mkDefault "-";
|
|
||||||
};
|
|
||||||
untracked = {
|
|
||||||
text = mkDefault "?";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
watch_gitdir = {
|
keymaps = mkIf plugin.enable [
|
||||||
follow_files = mkDefault true;
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>hs";
|
||||||
|
action.__raw = "function() require('gitsigns').stage_hunk() end";
|
||||||
|
options = {
|
||||||
|
noremap = true;
|
||||||
|
silent = true;
|
||||||
|
desc = "stage hunk";
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "v";
|
||||||
|
key = "<leader>hs";
|
||||||
|
action.__raw = ''
|
||||||
|
function()
|
||||||
|
require('gitsigns').stage_hunk({vim.fn.line('.'), vim.fn.line('v')})
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
noremap = true;
|
||||||
|
silent = true;
|
||||||
|
desc = "stage selected hunks";
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>hu";
|
||||||
|
action.__raw = "function() require('gitsigns').undo_stage_hunk() end";
|
||||||
|
options = {
|
||||||
|
noremap = true;
|
||||||
|
silent = true;
|
||||||
|
desc = "undo stage hunk";
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>hS";
|
||||||
|
action.__raw = "function() require('gitsigns').stage_buffer() end";
|
||||||
|
options = {
|
||||||
|
noremap = true;
|
||||||
|
silent = true;
|
||||||
|
desc = "stage buffer";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>hr";
|
||||||
|
action.__raw = "function() require('gitsigns').reset_hunk() end";
|
||||||
|
options = {
|
||||||
|
noremap = true;
|
||||||
|
silent = true;
|
||||||
|
desc = "reset hunk";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "v";
|
||||||
|
key = "<leader>hr";
|
||||||
|
action.__raw = ''
|
||||||
|
function()
|
||||||
|
require('gitsigns').reset_hunk({vim.fn.line('.'), vim.fn.line('v')})
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
options = {
|
||||||
|
noremap = true;
|
||||||
|
silent = true;
|
||||||
|
desc = "reset selected hunks";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue