mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
plugins/hunk: init
Add support for [hunk.nvim][1], a plugin for splitting diffs. Also add myself as a maintainer for it. [1]: https://github.com/julienvincent/hunk.nvim
This commit is contained in:
parent
b505a2aebd
commit
69266437be
2 changed files with 144 additions and 0 deletions
50
plugins/by-name/hunk/default.nix
Normal file
50
plugins/by-name/hunk/default.nix
Normal file
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
lib,
|
||||
helpers,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
lib.nixvim.plugins.mkNeovimPlugin {
|
||||
name = "hunk";
|
||||
packPathName = "hunk.nvim";
|
||||
package = "hunk-nvim";
|
||||
|
||||
description = ''
|
||||
A tool for splitting diffs in Neovim.
|
||||
|
||||
If you wish to display icons in the file tree you should enable either
|
||||
`plugins.web-devicons` or `plugins.mini`. If using `plugins.mini`, you
|
||||
must enable the `icons` module.
|
||||
'';
|
||||
|
||||
maintainers = [ lib.maintainers.jalil-salame ];
|
||||
|
||||
extraConfig.plugins.nui.enable = lib.mkDefault true; # required dependency
|
||||
|
||||
settingsExample = {
|
||||
keys.global.quit = [ "x" ];
|
||||
|
||||
ui = {
|
||||
tree = {
|
||||
mode = "flat";
|
||||
width = 40;
|
||||
};
|
||||
layout = "horizontal";
|
||||
};
|
||||
|
||||
hooks = {
|
||||
on_tree_mount =
|
||||
lib.nixvim.nestedLiteralLua # lua
|
||||
''
|
||||
---@param _context { buf: number, tree: NuiTree, opts: table }
|
||||
function(_context) end
|
||||
'';
|
||||
on_diff_mount =
|
||||
lib.nixvim.nestedLiteralLua # lua
|
||||
''
|
||||
---@param _context { buf: number, win: number }
|
||||
function(_context) end
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
94
tests/test-sources/plugins/by-name/hunk/default.nix
Normal file
94
tests/test-sources/plugins/by-name/hunk/default.nix
Normal file
|
@ -0,0 +1,94 @@
|
|||
{
|
||||
empty = {
|
||||
plugins.hunk.enable = true;
|
||||
};
|
||||
|
||||
with-web-devicons = {
|
||||
plugins.hunk.enable = true;
|
||||
plugins.web-devicons.enable = true;
|
||||
};
|
||||
|
||||
with-mini = {
|
||||
plugins.hunk.enable = true;
|
||||
plugins.mini = {
|
||||
enable = true;
|
||||
modules.icons = { };
|
||||
};
|
||||
};
|
||||
|
||||
example.plugins.hunk = {
|
||||
enable = true;
|
||||
settings = {
|
||||
keys.global.quit = [ "x" ];
|
||||
|
||||
ui = {
|
||||
tree = {
|
||||
mode = "flat";
|
||||
width = 40;
|
||||
};
|
||||
layout = "horizontal";
|
||||
};
|
||||
|
||||
hooks = {
|
||||
on_tree_mount.__raw = "function(_context) end";
|
||||
on_diff_mount.__raw = "function(_context) end";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Taken directly from the plugin docs: https://github.com/julienvincent/hunk.nvim#configuration
|
||||
defaults.plugins.hunk = {
|
||||
enable = true;
|
||||
settings = {
|
||||
keys = {
|
||||
global = {
|
||||
quit = [ "q" ];
|
||||
accept = [ "<leader><Cr>" ];
|
||||
focus_tree = [ "<leader>e" ];
|
||||
};
|
||||
|
||||
tree = {
|
||||
expand_node = [
|
||||
"l"
|
||||
"<Right>"
|
||||
];
|
||||
collapse_node = [
|
||||
"h"
|
||||
"<Left>"
|
||||
];
|
||||
|
||||
open_file = [ "<Cr>" ];
|
||||
|
||||
toggle_file = [ "a" ];
|
||||
};
|
||||
|
||||
diff = {
|
||||
toggle_line = [ "a" ];
|
||||
toggle_hunk = [ "A" ];
|
||||
};
|
||||
};
|
||||
|
||||
ui = {
|
||||
tree = {
|
||||
mode = "nested";
|
||||
width = 35;
|
||||
};
|
||||
layout = "vertical";
|
||||
};
|
||||
|
||||
icons = {
|
||||
selected = "";
|
||||
deselected = "";
|
||||
partially_selected = "";
|
||||
|
||||
folder_open = "";
|
||||
folder_closed = "";
|
||||
};
|
||||
|
||||
hooks = {
|
||||
on_tree_mount.__raw = "function(_context) end";
|
||||
on_diff_mount.__raw = "function(_context) end";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue