treewide: Reformat with nixfmt

This commit is contained in:
traxys 2024-05-05 19:39:35 +02:00
parent c6281260dc
commit 62f32bfc71
459 changed files with 28139 additions and 26377 deletions

View file

@ -6,47 +6,47 @@
...
}:
with lib;
helpers.neovim-plugin.mkNeovimPlugin config {
name = "hydra";
originalName = "hydra.nvim";
defaultPackage = pkgs.vimPlugins.hydra-nvim;
helpers.neovim-plugin.mkNeovimPlugin config {
name = "hydra";
originalName = "hydra.nvim";
defaultPackage = pkgs.vimPlugins.hydra-nvim;
maintainers = [maintainers.GaetanLepage];
maintainers = [ maintainers.GaetanLepage ];
extraOptions = {
# A list of `Hydra` definitions
hydras = import ./hydras-option.nix {inherit lib helpers;};
};
extraOptions = {
# A list of `Hydra` definitions
hydras = import ./hydras-option.nix { inherit lib helpers; };
};
settingsOptions = import ./hydra-config-opts.nix {inherit lib helpers;};
settingsOptions = import ./hydra-config-opts.nix { inherit lib helpers; };
settingsExample = {
exit = false;
foreign_keys = "run";
color = "red";
buffer = true;
invoke_on_body = false;
desc = null;
on_enter = ''
function()
print('hello')
end
'';
timeout = 5000;
hint = false;
};
settingsExample = {
exit = false;
foreign_keys = "run";
color = "red";
buffer = true;
invoke_on_body = false;
desc = null;
on_enter = ''
function()
print('hello')
end
'';
timeout = 5000;
hint = false;
};
callSetup = false;
extraConfig = cfg: {
extraConfigLua = ''
hydra = require('hydra')
callSetup = false;
extraConfig = cfg: {
extraConfigLua = ''
hydra = require('hydra')
hydra.setup(${helpers.toLuaObject cfg.settings})
hydra.setup(${helpers.toLuaObject cfg.settings})
__hydra_defs = ${helpers.toLuaObject cfg.hydras}
for _, hydra_config in ipairs(__hydra_defs) do
hydra(hydra_config)
end
'';
};
}
__hydra_defs = ${helpers.toLuaObject cfg.hydras}
for _, hydra_config in ipairs(__hydra_defs) do
hydra(hydra_config)
end
'';
};
}

View file

@ -5,12 +5,9 @@
# - for `plugins.hydra.hydras.[].config`
#
# -> https://github.com/nvimtools/hydra.nvim?tab=readme-ov-file#config
{ helpers, lib, ... }:
with lib;
{
helpers,
lib,
...
}:
with lib; {
debug = helpers.defaultNullOpts.mkBool false ''
Whether to enable debug mode.
'';
@ -19,28 +16,28 @@ with lib; {
Set the default exit value for each head in the hydra.
'';
foreign_keys = helpers.defaultNullOpts.mkEnum ["warn" "run"] "null" ''
Decides what to do when a key which doesn't belong to any head is pressed
- `null`: hydra exits and foreign key behaves normally, as if the hydra wasn't active
- `"warn"`: hydra stays active, issues a warning and doesn't run the foreign key
- `"run"`: hydra stays active, runs the foreign key
'';
foreign_keys =
helpers.defaultNullOpts.mkEnum
[
"warn"
"run"
]
"null"
''
Decides what to do when a key which doesn't belong to any head is pressed
- `null`: hydra exits and foreign key behaves normally, as if the hydra wasn't active
- `"warn"`: hydra stays active, issues a warning and doesn't run the foreign key
- `"run"`: hydra stays active, runs the foreign key
'';
color = helpers.defaultNullOpts.mkStr "red" ''
See `:h hydra-colors`.
`"red" | "amaranth" | "teal" | "pink"`
'';
buffer =
helpers.defaultNullOpts.mkNullable
(
with types;
either
(enum [true])
ints.unsigned
)
"null"
"Define a hydra for the given buffer, pass `true` for current buf.";
buffer = helpers.defaultNullOpts.mkNullable (
with types; either (enum [ true ]) ints.unsigned
) "null" "Define a hydra for the given buffer, pass `true` for current buf.";
invoke_on_body = helpers.defaultNullOpts.mkBool false ''
When true, summon the hydra after pressing only the `body` keys.
@ -73,32 +70,30 @@ with lib; {
By default hydras wait forever (`false`).
'';
hint = let
hintConfigType = types.submodule {
freeformType = with types; attrsOf anything;
options = {
type =
helpers.mkNullOrOption
(types.enum
[
"window"
"cmdline"
"statusline"
"statuslinemanual"
])
''
- "window": show hint in a floating window
- "cmdline": show hint in the echo area
- "statusline": show auto-generated hint in the status line
- "statuslinemanual": Do not show a hint, but return a custom status line hint from
`require("hydra.statusline").get_hint()`
hint =
let
hintConfigType = types.submodule {
freeformType = with types; attrsOf anything;
options = {
type =
helpers.mkNullOrOption
(types.enum [
"window"
"cmdline"
"statusline"
"statuslinemanual"
])
''
- "window": show hint in a floating window
- "cmdline": show hint in the echo area
- "statusline": show auto-generated hint in the status line
- "statuslinemanual": Do not show a hint, but return a custom status line hint from
`require("hydra.statusline").get_hint()`
Defaults to "window" if `hint` is passed to the hydra otherwise defaults to "cmdline".
'';
Defaults to "window" if `hint` is passed to the hydra otherwise defaults to "cmdline".
'';
position =
helpers.defaultNullOpts.mkEnum
[
position = helpers.defaultNullOpts.mkEnum [
"top-left"
"top"
"top-right"
@ -108,82 +103,74 @@ with lib; {
"bottom-left"
"bottom"
"bottom-right"
]
"bottom"
"Set the position of the hint window.";
] "bottom" "Set the position of the hint window.";
offset = helpers.defaultNullOpts.mkInt 0 ''
Offset of the floating window from the nearest editor border.
'';
float_opts = helpers.mkNullOrOption (with types; attrsOf anything) ''
Options passed to `nvim_open_win()`. See `:h nvim_open_win()`.
Lets you set `border`, `header`, `footer`, etc.
Note: `row`, `col`, `height`, `width`, `relative`, and `anchor` should not be overridden.
'';
show_name = helpers.defaultNullOpts.mkBool true ''
Show the hydras name (or "HYDRA:" if not given a name), at the beginning of an
auto-generated hint.
'';
hide_on_load = helpers.defaultNullOpts.mkBool false ''
If set to true, this will prevent the hydra's hint window from displaying immediately.
Note: you can still show the window manually by calling `Hydra.hint:show()` and manually
close it with `Hydra.hint:close()`.
'';
funcs = mkOption {
type = with helpers.nixvimTypes; attrsOf strLuaFn;
description = ''
Table from function names to function.
Functions should return a string.
These functions can be used in hints with `%{func_name}` more in `:h hydra-hint`.
offset = helpers.defaultNullOpts.mkInt 0 ''
Offset of the floating window from the nearest editor border.
'';
default = {};
example = {
number = ''
function()
if vim.o.number then
return '[x]'
else
return '[ ]'
end
end
float_opts = helpers.mkNullOrOption (with types; attrsOf anything) ''
Options passed to `nvim_open_win()`. See `:h nvim_open_win()`.
Lets you set `border`, `header`, `footer`, etc.
Note: `row`, `col`, `height`, `width`, `relative`, and `anchor` should not be overridden.
'';
show_name = helpers.defaultNullOpts.mkBool true ''
Show the hydras name (or "HYDRA:" if not given a name), at the beginning of an
auto-generated hint.
'';
hide_on_load = helpers.defaultNullOpts.mkBool false ''
If set to true, this will prevent the hydra's hint window from displaying immediately.
Note: you can still show the window manually by calling `Hydra.hint:show()` and manually
close it with `Hydra.hint:close()`.
'';
funcs = mkOption {
type = with helpers.nixvimTypes; attrsOf strLuaFn;
description = ''
Table from function names to function.
Functions should return a string.
These functions can be used in hints with `%{func_name}` more in `:h hydra-hint`.
'';
relativenumber = ''
function()
if vim.o.relativenumber then
return '[x]'
else
return '[ ]'
default = { };
example = {
number = ''
function()
if vim.o.number then
return '[x]'
else
return '[ ]'
end
end
end
'';
'';
relativenumber = ''
function()
if vim.o.relativenumber then
return '[x]'
else
return '[ ]'
end
end
'';
};
apply = mapAttrs (_: helpers.mkRaw);
};
apply = mapAttrs (_: helpers.mkRaw);
};
};
};
in
helpers.defaultNullOpts.mkNullable
(
with types;
either
(enum [false])
hintConfigType
)
''
{
show_name = true;
position = "bottom";
offset = 0;
}
''
''
Configure the hint.
Set to `false` to disable.
'';
in
helpers.defaultNullOpts.mkNullable (with types; either (enum [ false ]) hintConfigType)
''
{
show_name = true;
position = "bottom";
offset = 0;
}
''
''
Configure the hint.
Set to `false` to disable.
'';
}

View file

@ -1,8 +1,6 @@
{
lib,
helpers,
}:
with lib; let
{ lib, helpers }:
with lib;
let
hydraType = types.submodule {
freeformType = with types; attrsOf anything;
options = {
@ -11,16 +9,9 @@ with lib; let
Only used in auto-generated hint.
'';
mode =
helpers.defaultNullOpts.mkNullable
(
with helpers.nixvimTypes;
either
helpers.keymaps.modeEnum
(listOf helpers.keymaps.modeEnum)
)
"n"
"Modes where the hydra exists, same as `vim.keymap.set()` accepts.";
mode = helpers.defaultNullOpts.mkNullable (
with helpers.nixvimTypes; either helpers.keymaps.modeEnum (listOf helpers.keymaps.modeEnum)
) "n" "Modes where the hydra exists, same as `vim.keymap.set()` accepts.";
body = helpers.mkNullOrStr ''
Key required to activate the hydra, when excluded, you can use `Hydra:activate()`.
@ -35,79 +26,74 @@ with lib; let
for more information.
'';
config = import ./hydra-config-opts.nix {inherit lib helpers;};
config = import ./hydra-config-opts.nix { inherit lib helpers; };
heads = let
headsOptType = types.submodule {
freeformType = with types; attrsOf anything;
options = {
private = helpers.defaultNullOpts.mkBool false ''
"When the hydra hides, this head does not stick out".
Private heads are unreachable outside of the hydra state.
'';
heads =
let
headsOptType = types.submodule {
freeformType = with types; attrsOf anything;
options = {
private = helpers.defaultNullOpts.mkBool false ''
"When the hydra hides, this head does not stick out".
Private heads are unreachable outside of the hydra state.
'';
exit = helpers.defaultNullOpts.mkBool false ''
When true, stops the hydra after executing this head.
NOTE:
- All exit heads are private
- If no exit head is specified, `esc` is set by default
'';
exit = helpers.defaultNullOpts.mkBool false ''
When true, stops the hydra after executing this head.
NOTE:
- All exit heads are private
- If no exit head is specified, `esc` is set by default
'';
exit_before = helpers.defaultNullOpts.mkBool false ''
Like `exit`, but stops the hydra BEFORE executing the command.
'';
exit_before = helpers.defaultNullOpts.mkBool false ''
Like `exit`, but stops the hydra BEFORE executing the command.
'';
ok_key = helpers.defaultNullOpts.mkBool true ''
When set to `false`, `config.on_key` isn't run after this head.
'';
ok_key = helpers.defaultNullOpts.mkBool true ''
When set to `false`, `config.on_key` isn't run after this head.
'';
desc = helpers.mkNullOrStr ''
Value shown in auto-generated hint.
When false, this key doesn't show up in the auto-generated hint.
'';
desc = helpers.mkNullOrStr ''
Value shown in auto-generated hint.
When false, this key doesn't show up in the auto-generated hint.
'';
expr = helpers.defaultNullOpts.mkBool false ''
Same as the builtin `expr` map option.
See `:h :map-expression`.
'';
expr = helpers.defaultNullOpts.mkBool false ''
Same as the builtin `expr` map option.
See `:h :map-expression`.
'';
silent = helpers.defaultNullOpts.mkBool false ''
Same as the builtin `silent` map option.
See `:h :map-silent`.
'';
silent = helpers.defaultNullOpts.mkBool false ''
Same as the builtin `silent` map option.
See `:h :map-silent`.
'';
nowait = helpers.defaultNullOpts.mkBool false ''
For Pink Hydras only.
Allows binding a key which will immediately perform its action and not wait
`timeoutlen` for a possible continuation.
'';
nowait = helpers.defaultNullOpts.mkBool false ''
For Pink Hydras only.
Allows binding a key which will immediately perform its action and not wait
`timeoutlen` for a possible continuation.
'';
mode =
helpers.mkNullOrOption
(
with helpers.nixvimTypes;
either
helpers.keymaps.modeEnum
(listOf helpers.keymaps.modeEnum)
)
"Override `mode` for this head.";
mode = helpers.mkNullOrOption (
with helpers.nixvimTypes; either helpers.keymaps.modeEnum (listOf helpers.keymaps.modeEnum)
) "Override `mode` for this head.";
};
};
};
headType = with helpers.nixvimTypes;
# More precisely, a tuple: [head action opts]
listOf (
nullOr ( # action can be `null`
oneOf [
str # for `head` and `action`
rawLua # for `action`
headsOptType # for opts
]
)
);
in
helpers.mkNullOrOption
(types.listOf headType)
''
headType =
with helpers.nixvimTypes;
# More precisely, a tuple: [head action opts]
listOf (
nullOr (
# action can be `null`
oneOf [
str # for `head` and `action`
rawLua # for `action`
headsOptType # for opts
]
)
);
in
helpers.mkNullOrOption (types.listOf headType) ''
Each Hydra's head has the form:
`[head rhs opts]
@ -123,107 +109,138 @@ with lib; let
};
};
in
mkOption {
type = types.listOf hydraType;
default = [];
example = [
{
name = "git";
hint.__raw = ''
[[
_J_: next hunk _s_: stage hunk _d_: show deleted _b_: blame line
_K_: prev hunk _u_: undo stage hunk _p_: preview hunk _B_: blame show full
^ ^ _S_: stage buffer ^ ^ _/_: show base file
^
^ ^ _<Enter>_: Neogit _q_: exit
]]
'';
config = {
color = "pink";
invoke_on_body = true;
hint = {
position = "bottom";
};
on_enter = ''
function()
vim.bo.modifiable = false
gitsigns.toggle_signs(true)
gitsigns.toggle_linehl(true)
end
'';
on_exit = ''
function()
gitsigns.toggle_signs(false)
gitsigns.toggle_linehl(false)
gitsigns.toggle_deleted(false)
vim.cmd("echo") -- clear the echo area
end
'';
mkOption {
type = types.listOf hydraType;
default = [ ];
example = [
{
name = "git";
hint.__raw = ''
[[
_J_: next hunk _s_: stage hunk _d_: show deleted _b_: blame line
_K_: prev hunk _u_: undo stage hunk _p_: preview hunk _B_: blame show full
^ ^ _S_: stage buffer ^ ^ _/_: show base file
^
^ ^ _<Enter>_: Neogit _q_: exit
]]
'';
config = {
color = "pink";
invoke_on_body = true;
hint = {
position = "bottom";
};
mode = ["n" "x"];
body = "<leader>g";
heads = [
[
"J"
{
__raw = ''
function()
if vim.wo.diff then
return "]c"
end
vim.schedule(function()
gitsigns.next_hunk()
end)
return "<Ignore>"
on_enter = ''
function()
vim.bo.modifiable = false
gitsigns.toggle_signs(true)
gitsigns.toggle_linehl(true)
end
'';
on_exit = ''
function()
gitsigns.toggle_signs(false)
gitsigns.toggle_linehl(false)
gitsigns.toggle_deleted(false)
vim.cmd("echo") -- clear the echo area
end
'';
};
mode = [
"n"
"x"
];
body = "<leader>g";
heads = [
[
"J"
{
__raw = ''
function()
if vim.wo.diff then
return "]c"
end
'';
}
{expr = true;}
]
[
"K"
{
__raw = ''
function()
if vim.wo.diff then
return "[c"
end
vim.schedule(function()
gitsigns.prev_hunk()
end)
return "<Ignore>"
vim.schedule(function()
gitsigns.next_hunk()
end)
return "<Ignore>"
end
'';
}
{ expr = true; }
]
[
"K"
{
__raw = ''
function()
if vim.wo.diff then
return "[c"
end
'';
}
{expr = true;}
]
["s" ":Gitsigns stage_hunk<CR>" {silent = true;}]
["u" {__raw = "require('gitsigns').undo_stage_hunk";}]
["S" {__raw = "require('gitsigns').stage_buffer";}]
["p" {__raw = "require('gitsigns').preview_hunk";}]
["d" {__raw = "require('gitsigns').toggle_deleted";} {nowait = true;}]
["b" {__raw = "require('gitsigns').blame_line";}]
[
"B"
{
__raw = ''
function()
gitsigns.blame_line({ full = true })
end,
'';
}
]
["/" {__raw = "require('gitsigns').show";} {exit = true;}]
["<Enter>" "<cmd>Neogit<CR>" {exit = true;}]
[
"q"
null
{
exit = true;
nowait = true;
}
]
];
}
];
}
vim.schedule(function()
gitsigns.prev_hunk()
end)
return "<Ignore>"
end
'';
}
{ expr = true; }
]
[
"s"
":Gitsigns stage_hunk<CR>"
{ silent = true; }
]
[
"u"
{ __raw = "require('gitsigns').undo_stage_hunk"; }
]
[
"S"
{ __raw = "require('gitsigns').stage_buffer"; }
]
[
"p"
{ __raw = "require('gitsigns').preview_hunk"; }
]
[
"d"
{ __raw = "require('gitsigns').toggle_deleted"; }
{ nowait = true; }
]
[
"b"
{ __raw = "require('gitsigns').blame_line"; }
]
[
"B"
{
__raw = ''
function()
gitsigns.blame_line({ full = true })
end,
'';
}
]
[
"/"
{ __raw = "require('gitsigns').show"; }
{ exit = true; }
]
[
"<Enter>"
"<cmd>Neogit<CR>"
{ exit = true; }
]
[
"q"
null
{
exit = true;
nowait = true;
}
]
];
}
];
}