leap: lazy load

This commit is contained in:
Ching Pei Yang 2024-09-30 21:59:14 +02:00 committed by Ching Pei Yang
parent fb36de0aac
commit f7b099e6f8
No known key found for this signature in database
GPG key ID: 062FBBCE1D0C5DD9

View file

@ -3,71 +3,59 @@
lib, lib,
... ...
}: let }: let
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf;
inherit (lib.nvim.binds) mkBinding; inherit (lib.nvim.binds) mkLznBinding;
inherit (lib.nvim.dag) entryAnywhere;
cfg = config.vim.utility.motion.leap; cfg = config.vim.utility.motion.leap;
in { in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
vim.startPlugins = [ vim = {
"leap-nvim" startPlugins = ["vim-repeat"];
"vim-repeat" lazy.plugins = [
]; {
package = "leap-nvim";
keys = [
(mkLznBinding ["n" "o" "x"] cfg.mappings.leapForwardTo "<Plug>(leap-forward-to)" "Leap forward to")
(mkLznBinding ["n" "o" "x"] cfg.mappings.leapBackwardTo "<Plug>(leap-backward-to)" "Leap backward to")
(mkLznBinding ["n" "o" "x"] cfg.mappings.leapForwardTill "<Plug>(leap-forward-till)" "Leap forward till")
(mkLznBinding ["n" "o" "x"] cfg.mappings.leapBackwardTill "<Plug>(leap-backward-till)" "Leap backward till")
(mkLznBinding ["n" "o" "x"] cfg.mappings.leapFromWindow "<Plug>(leap-from-window)" "Leap from window")
];
vim.maps.normal = mkMerge [ after = ''
(mkBinding cfg.mappings.leapForwardTo "<Plug>(leap-forward-to)" "Leap forward to") require('leap').opts = {
(mkBinding cfg.mappings.leapBackwardTo "<Plug>(leap-backward-to)" "Leap backward to") max_phase_one_targets = nil,
(mkBinding cfg.mappings.leapFromWindow "<Plug>(leap-from-window)" "Leap from window") highlight_unlabeled_phase_one_targets = false,
]; max_highlighted_traversal_targets = 10,
case_sensitive = false,
vim.maps.operator = mkMerge [ equivalence_classes = { ' \t\r\n', },
(mkBinding cfg.mappings.leapForwardTo "<Plug>(leap-forward-to)" "Leap forward to") substitute_chars = {},
(mkBinding cfg.mappings.leapBackwardTo "<Plug>(leap-backward-to)" "Leap backward to") safe_labels = {
(mkBinding cfg.mappings.leapForwardTill "<Plug>(leap-forward-till)" "Leap forward till") "s", "f", "n", "u", "t", "/",
(mkBinding cfg.mappings.leapBackwardTill "<Plug>(leap-backward-till)" "Leap backward till") "S", "F", "N", "L", "H", "M", "U", "G", "T", "?", "Z"
(mkBinding cfg.mappings.leapFromWindow "<Plug>(leap-from-window)" "Leap from window") },
]; labels = {
"s", "f", "n",
vim.maps.visualOnly = mkMerge [ "j", "k", "l", "h", "o", "d", "w", "e", "m", "b",
(mkBinding cfg.mappings.leapForwardTo "<Plug>(leap-forward-to)" "Leap forward to") "u", "y", "v", "r", "g", "t", "c", "x", "/", "z",
(mkBinding cfg.mappings.leapBackwardTo "<Plug>(leap-backward-to)" "Leap backward to") "S", "F", "N",
(mkBinding cfg.mappings.leapForwardTill "<Plug>(leap-forward-till)" "Leap forward till") "J", "K", "L", "H", "O", "D", "W", "E", "M", "B",
(mkBinding cfg.mappings.leapBackwardTill "<Plug>(leap-backward-till)" "Leap backward till") "U", "Y", "V", "R", "G", "T", "C", "X", "?", "Z"
(mkBinding cfg.mappings.leapFromWindow "<Plug>(leap-from-window)" "Leap from window") },
]; special_keys = {
repeat_search = '<enter>',
vim.pluginRC.leap-nvim = entryAnywhere '' next_phase_one_target = '<enter>',
require('leap').opts = { next_target = {'<enter>', ';'},
max_phase_one_targets = nil, prev_target = {'<tab>', ','},
highlight_unlabeled_phase_one_targets = false, next_group = '<space>',
max_highlighted_traversal_targets = 10, prev_group = '<tab>',
case_sensitive = false, multi_accept = '<enter>',
equivalence_classes = { ' \t\r\n', }, multi_revert = '<backspace>',
substitute_chars = {}, },
safe_labels = { }
"s", "f", "n", "u", "t", "/", '';
"S", "F", "N", "L", "H", "M", "U", "G", "T", "?", "Z" }
}, ];
labels = { };
"s", "f", "n",
"j", "k", "l", "h", "o", "d", "w", "e", "m", "b",
"u", "y", "v", "r", "g", "t", "c", "x", "/", "z",
"S", "F", "N",
"J", "K", "L", "H", "O", "D", "W", "E", "M", "B",
"U", "Y", "V", "R", "G", "T", "C", "X", "?", "Z"
},
special_keys = {
repeat_search = '<enter>',
next_phase_one_target = '<enter>',
next_target = {'<enter>', ';'},
prev_target = {'<tab>', ','},
next_group = '<space>',
prev_group = '<tab>',
multi_accept = '<enter>',
multi_revert = '<backspace>',
},
}
'';
}; };
} }