From b76c23ac4155e7e40fda4d35ecadad770665f806 Mon Sep 17 00:00:00 2001 From: Youwen Wu Date: Sat, 1 Feb 2025 14:29:06 -0800 Subject: [PATCH] feat: fennelize harpoon --- fnl/plugins/harpoon.fnl | 47 +++++++++++++++++ lua/plugins/harpoon.lua | 109 ++++++++++++---------------------------- 2 files changed, 79 insertions(+), 77 deletions(-) create mode 100644 fnl/plugins/harpoon.fnl diff --git a/fnl/plugins/harpoon.fnl b/fnl/plugins/harpoon.fnl new file mode 100644 index 0000000..38be60e --- /dev/null +++ b/fnl/plugins/harpoon.fnl @@ -0,0 +1,47 @@ +{1 :harpoon2 + :after (fn [] (: (require :harpoon) :setup)) + :keys [{1 :a + 2 (fn [] + (: (: (require :harpoon) :list) :add)) + :desc "Add to harpoon" + :mode :n} + {1 : + 2 (fn [] + (: (: (require :harpoon) :list) :select 1)) + :desc "Select harpoon 1" + :mode :n} + {1 : + 2 (fn [] + (: (: (require :harpoon) :list) :select 2)) + :desc "Select harpoon 2" + :mode :n} + {1 : + 2 (fn [] + (: (: (require :harpoon) :list) :select 3)) + :desc "Select harpoon 3" + :mode :n} + {1 : + 2 (fn [] + (: (: (require :harpoon) :list) :select 4)) + :desc "Select harpoon 4" + :mode :n} + {1 : + 2 (fn [] + ((. (require :lz.n) :trigger_load) :telescope.nvim) + (local conf (. (require :telescope.config) :values)) + + (fn toggle-telescope [harpoon-files] + (local file-paths {}) + (each [_ item (ipairs harpoon-files.items)] + (table.insert file-paths item.value)) + (: ((. (require :telescope.pickers) :new) {} + {:finder ((. (require :telescope.finders) + :new_table) {:results file-paths}) + :previewer (conf.file_previewer {}) + :prompt_title :Harpoon + :sorter (conf.generic_sorter {})}) + :find)) + + (toggle-telescope (: (require :harpoon) :list))) + :desc "toggle harpoon menu" + :mode :n}]} diff --git a/lua/plugins/harpoon.lua b/lua/plugins/harpoon.lua index dc47381..9fab9a4 100644 --- a/lua/plugins/harpoon.lua +++ b/lua/plugins/harpoon.lua @@ -1,77 +1,32 @@ -return { - "harpoon2", - after = function() - require("harpoon"):setup() - end, - keys = { - { - "a", - function() - require("harpoon"):list():add() - end, - desc = "Add to harpoon", - mode = "n", - }, - { - "", - function() - require("harpoon"):list():select(1) - end, - desc = "Select harpoon 1", - mode = "n", - }, - { - "", - function() - require("harpoon"):list():select(2) - end, - desc = "Select harpoon 2", - mode = "n", - }, - { - "", - function() - require("harpoon"):list():select(3) - end, - desc = "Select harpoon 3", - mode = "n", - }, - { - "", - function() - require("harpoon"):list():select(4) - end, - desc = "Select harpoon 4", - mode = "n", - }, - { - "", - function() - require("lz.n").trigger_load("telescope.nvim") - - local conf = require("telescope.config").values - local function toggle_telescope(harpoon_files) - local file_paths = {} - for _, item in ipairs(harpoon_files.items) do - table.insert(file_paths, item.value) - end - - require("telescope.pickers") - .new({}, { - prompt_title = "Harpoon", - finder = require("telescope.finders").new_table({ - results = file_paths, - }), - previewer = conf.file_previewer({}), - sorter = conf.generic_sorter({}), - }) - :find() - end - - toggle_telescope(require("harpoon"):list()) - end, - mode = "n", - desc = "toggle harpoon menu", - }, - }, -} +-- [nfnl] Compiled from ./fnl/plugins/harpoon.fnl by https://github.com/Olical/nfnl, do not edit. +local function _1_() + return require("harpoon"):setup() +end +local function _2_() + return require("harpoon"):list():add() +end +local function _3_() + return require("harpoon"):list():select(1) +end +local function _4_() + return require("harpoon"):list():select(2) +end +local function _5_() + return require("harpoon"):list():select(3) +end +local function _6_() + return require("harpoon"):list():select(4) +end +local function _7_() + require("lz.n").trigger_load("telescope.nvim") + local conf = require("telescope.config").values + local function toggle_telescope(harpoon_files) + local file_paths = {} + for _, item in ipairs(harpoon_files.items) do + table.insert(file_paths, item.value) + end + return require("telescope.pickers").new({}, {finder = require("telescope.finders").new_table({results = file_paths}), previewer = conf.file_previewer({}), prompt_title = "Harpoon", sorter = conf.generic_sorter({})}):find() + end + return toggle_telescope(require("harpoon"):list()) +end +return {"harpoon2", after = _1_, keys = {{"a", _2_, desc = "Add to harpoon", mode = "n"}, {"", _3_, desc = "Select harpoon 1", mode = "n"}, {"", _4_, desc = "Select harpoon 2", mode = "n"}, {"", _5_, desc = "Select harpoon 3", mode = "n"}, {"", _6_, desc = "Select harpoon 4", mode = "n"}, {"", _7_, desc = "toggle harpoon menu", mode = "n"}}}