Skip to content

Commit

Permalink
plugins/yanky: export 'utils' and 'mapping' for more readible settings
Browse files Browse the repository at this point in the history
  • Loading branch information
GaetanLepage committed Jul 1, 2024
1 parent b3c520d commit 3bfe71f
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 29 deletions.
59 changes: 39 additions & 20 deletions plugins/utils/yanky.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
ring = {
history_length = helpers.defaultNullOpts.mkUnsignedInt 100 ''
Expand Down Expand Up @@ -229,18 +238,18 @@ helpers.neovim-plugin.mkNeovimPlugin config {
default mappings.
'';
example = {
default = "require('yanky.telescope.mapping').put('p')";
default = "mapping.put('p')";
i = {
"<c-g>" = "require('yanky.telescope.mapping').put('p')";
"<c-k>" = "require('yanky.telescope.mapping').put('P')";
"<c-x>" = "require('yanky.telescope.mapping').delete()";
"<c-r>" = "require('yanky.telescope.mapping').set_register(require('yanky.utils').get_default_register())";
"<c-g>" = "mapping.put('p')";
"<c-k>" = "mapping.put('P')";
"<c-x>" = "mapping.delete()";
"<c-r>" = "mapping.set_register(utils.get_default_register())";
};
n = {
p = "require('yanky.telescope.mapping').put('p')";
P = "require('yanky.telescope.mapping').put('P')";
d = "require('yanky.telescope.mapping').delete()";
r = "require('yanky.telescope.mapping').set_register(require('yanky.utils').get_default_register())";
p = "mapping.put('p')";
P = "mapping.put('P')";
d = "mapping.delete()";
r = "mapping.set_register(utils.get_default_register())";
};
};
};
Expand Down Expand Up @@ -312,20 +321,20 @@ helpers.neovim-plugin.mkNeovimPlugin config {
picker = {
telescope = {
mappings = {
default = "require('yanky.telescope.mapping').put('p')";
default = "mapping.put('p')";
i = {
"<c-g>" = "require('yanky.telescope.mapping').put('p')";
"<c-k>" = "require('yanky.telescope.mapping').put('P')";
"<c-x>" = "require('yanky.telescope.mapping').delete()";
"<c-r>" = "require('yanky.telescope.mapping').set_register(require('yanky.utils').get_default_register())";
"<c-g>" = "mapping.put('p')";
"<c-k>" = "mapping.put('P')";
"<c-x>" = "mapping.delete()";
"<c-r>" = "mapping.set_register(utils.get_default_register())";
};
n = {
p = "require('yanky.telescope.mapping').put('p')";
P = "require('yanky.telescope.mapping').put('P')";
gp = "require('yanky.telescope.mapping').put('gp')";
gP = "require('yanky.telescope.mapping').put('gP')";
d = "require('yanky.telescope.mapping').delete()";
r = "require('yanky.telescope.mapping').set_register(require('yanky.utils').get_default_register())";
p = "mapping.put('p')";
P = "mapping.put('P')";
gp = "mapping.put('gp')";
gP = "mapping.put('gP')";
d = "mapping.delete()";
r = "mapping.set_register(utils.get_default_register())";
};
};
};
Expand All @@ -336,6 +345,7 @@ helpers.neovim-plugin.mkNeovimPlugin config {
enableTelescope = mkEnableOption "the `yank_history` telescope picker.";
};

callSetup = false;
extraConfig = cfg: {
assertions = [
{
Expand All @@ -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 ];

plugins.telescope.enabledExtensions = mkIf cfg.enableTelescope [ "yank_history" ];
Expand Down
18 changes: 9 additions & 9 deletions tests/test-sources/plugins/utils/yanky.nix
Original file line number Diff line number Diff line change
Expand Up @@ -78,18 +78,18 @@
telescope = {
use_default_mappings = true;
mappings = {
default = "require('yanky.telescope.mapping').put('p')";
default = "mapping.put('p')";
i = {
"<c-g>" = "require('yanky.telescope.mapping').put('p')";
"<c-k>" = "require('yanky.telescope.mapping').put('P')";
"<c-x>" = "require('yanky.telescope.mapping').delete()";
"<c-r>" = "require('yanky.telescope.mapping').set_register(require('yanky.utils').get_default_register())";
"<c-g>" = "mapping.put('p')";
"<c-k>" = "mapping.put('P')";
"<c-x>" = "mapping.delete()";
"<c-r>" = "mapping.set_register(utils.get_default_register())";
};
n = {
p = "require('yanky.telescope.mapping').put('p')";
P = "require('yanky.telescope.mapping').put('P')";
d = "require('yanky.telescope.mapping').delete()";
r = "require('yanky.telescope.mapping').set_register(require('yanky.utils').get_default_register())";
p = "mapping.put('p')";
P = "mapping.put('P')";
d = "mapping.delete()";
r = "mapping.set_register(utils.get_default_register())";
};
};
};
Expand Down

0 comments on commit 3bfe71f

Please sign in to comment.