{ nix2lua, vim, ... }: with nix2lua.lib; let defaultKeymaps = [ { mode = "n"; bind = "ff"; command = "Telescope find_files hidden=true"; } { mode = "n"; bind = "fb"; command = "Telescope buffers"; } { mode = "n"; bind = "fh"; command = "Telescope help_tags"; } { mode = "n"; bind = "fg"; command = lambda0 (call0 "telescope.extensions.live_grep_args.live_grep_args"); } ]; in { configs ? { } , keymaps ? defaultKeymaps , extraKeymaps ? [ ] # TODO: add possibility to configure extensions }: { # telescope requirements plenary-nvim = true; # telescope extension telescope-live-grep-args-nvim = true; telescope-nvim = [ (local (set "telescope" (require "telescope"))) (pipe1 (var "telescope") (call "setup" configs)) (pipe1 (var "telescope") (call "load_extension" "live_grep_args")) ] ++ map vim.keymap.set (keymaps ++ extraKeymaps); }