From 2a94573f54c69a9af7536586ab2c03eb88bda5e7 Mon Sep 17 00:00:00 2001 From: Gustaf Rydholm Date: Fri, 5 Jan 2024 01:50:20 +0100 Subject: Refactor --- fnl/plugins/harpoon.fnl | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 fnl/plugins/harpoon.fnl (limited to 'fnl/plugins/harpoon.fnl') diff --git a/fnl/plugins/harpoon.fnl b/fnl/plugins/harpoon.fnl new file mode 100644 index 0000000..0791f98 --- /dev/null +++ b/fnl/plugins/harpoon.fnl @@ -0,0 +1,53 @@ +;; Harpoon files for navigation. + +(local user-cmds [[:HarpoonAdd + (lambda [] + (let [harpoon (require :harpoon.mark)] + (harpoon.add_file))) + {:nargs 0}] + [:HarpoonNext + (lambda [] + (let [harpoon (require :harpoon.ui)] + (harpoon.nav_next))) + {:nargs 0}] + [:HarpoonPrev + (lambda [] + (let [harpoon (require :harpoon.ui)] + (harpoon.nav_prev))) + {:nargs 0}] + [:HarpoonUI + (lambda [] + (let [harpoon (require :harpoon.ui)] + (harpoon.toggle_quick_menu))) + {:nargs 0}]]) + +(fn telescope-ext [ext fun opts] + (let [telescope (require :telescope) + themes (require :telescope.themes) + theme (. opts :theme)] + ((. (. (. telescope :extensions) ext) fun) ((. themes theme) opts)))) + +(fn init [] + (let [cmds (require :util.cmds)] + (cmds.create-user-cmds user-cmds))) + +(fn config [] + (vim.keymap.set :n : + (fn [] + (telescope-ext :harpoon :marks + {:theme :get_dropdown + :previewer false + :initial_mode :normal + :prompt_title :Harpoon})) + {}) + (vim.keymap.set :n : + "Telescope buffers theme=dropdown previewer=false initial_mode=normal" + {}) + {:menu {:width (- (vim.api.nvim_win_get_width 0) 4)}}) + +(local keys [{1 :ma 2 :HarpoonAdd :desc :Harpoon} + {1 :mr 2 :HarpoonUI :desc "Harpoon UI"} + {1 :ms 2 :HarpoonPrev :desc "Harpoon Prev"} + {1 :mt 2 :HarpoonNext :desc "Harpoon Next"}]) + +{1 :ThePrimeagen/harpoon :event :BufReadPost : init : keys : config} -- cgit v1.2.3-70-g09d2