plugins/yanky: export 'utils' and 'mapping' for more readible settings

This commit is contained in:
Gaetan Lepage 2024-07-01 14:59:40 +02:00 committed by GaetanLepage
parent b3c520d13e
commit 3bfe71f1ae
2 changed files with 48 additions and 29 deletions

View file

@ -120,6 +120,15 @@ helpers.neovim-plugin.mkNeovimPlugin config {
) )
]; ];
settingsDescription = ''
Options provided to the `require('yanky').setup` function.
NOTE: The following local variables are available in the scope:
```lua
local utils = require('yanky.utils')
local mapping = require('yanky.telescope.mapping') -- Only if `plugins.telescope` is enabled
```
'';
settingsOptions = { settingsOptions = {
ring = { ring = {
history_length = helpers.defaultNullOpts.mkUnsignedInt 100 '' history_length = helpers.defaultNullOpts.mkUnsignedInt 100 ''
@ -229,18 +238,18 @@ helpers.neovim-plugin.mkNeovimPlugin config {
default mappings. default mappings.
''; '';
example = { example = {
default = "require('yanky.telescope.mapping').put('p')"; default = "mapping.put('p')";
i = { i = {
"<c-g>" = "require('yanky.telescope.mapping').put('p')"; "<c-g>" = "mapping.put('p')";
"<c-k>" = "require('yanky.telescope.mapping').put('P')"; "<c-k>" = "mapping.put('P')";
"<c-x>" = "require('yanky.telescope.mapping').delete()"; "<c-x>" = "mapping.delete()";
"<c-r>" = "require('yanky.telescope.mapping').set_register(require('yanky.utils').get_default_register())"; "<c-r>" = "mapping.set_register(utils.get_default_register())";
}; };
n = { n = {
p = "require('yanky.telescope.mapping').put('p')"; p = "mapping.put('p')";
P = "require('yanky.telescope.mapping').put('P')"; P = "mapping.put('P')";
d = "require('yanky.telescope.mapping').delete()"; d = "mapping.delete()";
r = "require('yanky.telescope.mapping').set_register(require('yanky.utils').get_default_register())"; r = "mapping.set_register(utils.get_default_register())";
}; };
}; };
}; };
@ -312,20 +321,20 @@ helpers.neovim-plugin.mkNeovimPlugin config {
picker = { picker = {
telescope = { telescope = {
mappings = { mappings = {
default = "require('yanky.telescope.mapping').put('p')"; default = "mapping.put('p')";
i = { i = {
"<c-g>" = "require('yanky.telescope.mapping').put('p')"; "<c-g>" = "mapping.put('p')";
"<c-k>" = "require('yanky.telescope.mapping').put('P')"; "<c-k>" = "mapping.put('P')";
"<c-x>" = "require('yanky.telescope.mapping').delete()"; "<c-x>" = "mapping.delete()";
"<c-r>" = "require('yanky.telescope.mapping').set_register(require('yanky.utils').get_default_register())"; "<c-r>" = "mapping.set_register(utils.get_default_register())";
}; };
n = { n = {
p = "require('yanky.telescope.mapping').put('p')"; p = "mapping.put('p')";
P = "require('yanky.telescope.mapping').put('P')"; P = "mapping.put('P')";
gp = "require('yanky.telescope.mapping').put('gp')"; gp = "mapping.put('gp')";
gP = "require('yanky.telescope.mapping').put('gP')"; gP = "mapping.put('gP')";
d = "require('yanky.telescope.mapping').delete()"; d = "mapping.delete()";
r = "require('yanky.telescope.mapping').set_register(require('yanky.utils').get_default_register())"; r = "mapping.set_register(utils.get_default_register())";
}; };
}; };
}; };
@ -336,6 +345,7 @@ helpers.neovim-plugin.mkNeovimPlugin config {
enableTelescope = mkEnableOption "the `yank_history` telescope picker."; enableTelescope = mkEnableOption "the `yank_history` telescope picker.";
}; };
callSetup = false;
extraConfig = cfg: { extraConfig = cfg: {
assertions = [ assertions = [
{ {
@ -346,6 +356,15 @@ helpers.neovim-plugin.mkNeovimPlugin config {
} }
]; ];
extraConfigLua = ''
do
local utils = require('yanky.utils')
${optionalString config.plugins.telescope.enable "local mapping = require('yanky.telescope.mapping')"}
require('yanky').setup(${helpers.toLuaObject cfg.settings})
end
'';
extraPlugins = mkIf (cfg.settings.ring.storage == "sqlite") [ pkgs.vimPlugins.sqlite-lua ]; extraPlugins = mkIf (cfg.settings.ring.storage == "sqlite") [ pkgs.vimPlugins.sqlite-lua ];
plugins.telescope.enabledExtensions = mkIf cfg.enableTelescope [ "yank_history" ]; plugins.telescope.enabledExtensions = mkIf cfg.enableTelescope [ "yank_history" ];

View file

@ -78,18 +78,18 @@
telescope = { telescope = {
use_default_mappings = true; use_default_mappings = true;
mappings = { mappings = {
default = "require('yanky.telescope.mapping').put('p')"; default = "mapping.put('p')";
i = { i = {
"<c-g>" = "require('yanky.telescope.mapping').put('p')"; "<c-g>" = "mapping.put('p')";
"<c-k>" = "require('yanky.telescope.mapping').put('P')"; "<c-k>" = "mapping.put('P')";
"<c-x>" = "require('yanky.telescope.mapping').delete()"; "<c-x>" = "mapping.delete()";
"<c-r>" = "require('yanky.telescope.mapping').set_register(require('yanky.utils').get_default_register())"; "<c-r>" = "mapping.set_register(utils.get_default_register())";
}; };
n = { n = {
p = "require('yanky.telescope.mapping').put('p')"; p = "mapping.put('p')";
P = "require('yanky.telescope.mapping').put('P')"; P = "mapping.put('P')";
d = "require('yanky.telescope.mapping').delete()"; d = "mapping.delete()";
r = "require('yanky.telescope.mapping').set_register(require('yanky.utils').get_default_register())"; r = "mapping.set_register(utils.get_default_register())";
}; };
}; };
}; };