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/telescope.fnl | 191 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 fnl/plugins/telescope.fnl (limited to 'fnl/plugins/telescope.fnl') diff --git a/fnl/plugins/telescope.fnl b/fnl/plugins/telescope.fnl new file mode 100644 index 0000000..1489f06 --- /dev/null +++ b/fnl/plugins/telescope.fnl @@ -0,0 +1,191 @@ +;; Telescope a highly extendable fuzzy finder over lists. + +(local dependencies [:nvim-lua/popup.nvim + :nvim-telescope/telescope-frecency.nvim + {1 :nvim-telescope/telescope-fzf-native.nvim :build :make} + :tami5/sqlite.lua + {1 :ahmedkhalf/project.nvim + :event :VeryLazy + :opts {:active true + :on_config_done nil + :manual_mode false + :detection_methods [:patterns] + :patterns [:git + :_darcs + :.hg + :.bzr + :.svn + :Makefile + :package.json] + :show_hidden false + :silent_chdir true + :ignore_lsp {} + :datapath (vim.fn.stdpath :data)} + :config (lambda [_ opts] + (let [project (require :project_nvim)] + (project.setup opts)))} + :nvim-lua/plenary.nvim + :nvim-telescope/telescope-fzf-native.nvim + :nvim-telescope/telescope-frecency.nvim + :joaomsa/telescope-orgmode.nvim]) + +(local extensions [:fzf :frecency :orgmode :projects :git_worktree :harpoon]) + +(fn load-extensions [telescope] + (each [_ extension (ipairs extensions)] + (telescope.load_extension extension))) + +(fn telescope-builtin [builtin opts] + (let [telescope (require :telescope.builtin) + themes (require :telescope.themes) + theme (. opts :theme)] + ((. telescope builtin) ((. themes theme) opts)))) + +(local user-cmds [[:FindFiles + (lambda [] + (telescope-builtin :find_files + {:theme :get_dropdown :previewer false})) + {:nargs 0}]]) + +(fn init [] + (let [cmds (require :util.cmds)] + (cmds.create-user-cmds user-cmds))) + +(local keys [{1 :mf 2 :FindFiles :desc "Find Files"} + {1 :mg + 2 "Telescope live_grep theme=dropdown" + :desc "Find Text"} + {1 :mp + 2 "Telescope buffers theme=dropdown previewer=false initial_mode=normal" + :desc "Switch Buffer"} + {1 :fC + 2 "Telescope commands theme=dropdown" + :desc :Commands} + {1 :fH + 2 "Telescope highlights" + :desc :Highlights} + {1 :fR + 2 "Telescope registers theme=dropdown" + :desc :Registers} + {1 :fS + 2 "Telescope grep_string theme=dropdown" + :desc "Find String"} + {1 :gb + 2 "Telescope git_branches theme=dropdown" + :desc "Checkout Branch"} + {1 :ff 2 :FindFiles :desc "Find files"} + {1 :fh + 2 "Telescope help_tags theme=dropdown" + :desc :Help} + {1 :fk + 2 "Telescope keymaps theme=dropdown" + :desc :Keymaps} + {1 :fl + 2 "Telescope resume theme=dropdown" + :desc "Last Search"} + {1 :fp + 2 "Telescope projects theme=dropdown" + :desc "Find Project"} + {1 :fr + 2 "Telescope oldfiles theme=dropdown" + :desc "Recent File"} + {1 :ft + 2 "Telescope live_grep theme=dropdown" + :desc "Find Text"} + {1 :js + 2 "Telescope diagnostics theme=dropdown" + :desc "Telescope Diagnostics"} + {1 :gc + 2 "Telescope git_commits theme=dropdown" + :desc "Checkout Commit"} + {1 :lS + 2 "Telescope lsp_dynamic_workspace_symbols" + :desc "Workspace Symbols"} + {1 :n + 2 "Telescope lsp_document_symbols theme=dropdown" + :desc "Document Symbols"}]) + +(fn config [] + (let [telescope (require :telescope) + actions (require :telescope.actions) + icons (require :icons)] + (telescope.setup {:defaults {:prompt_prefix (.. " " (. icons :telescope) + " ") + :selection_caret (.. (. icons :caret) " ") + :path_display [:smart] + :color_devicons false + :pickers {:find_files {:theme :dropdown}} + :vimgrep_arguments [:rg + :--color=never + :--no-heading + :--with-filename + :--line-number + :--column + :--smart-case + :--hidden] + :mappings {:i {: actions.cycle_history_next + : actions.cycle_history_prev + : actions.move_selection_next + : actions.move_selection_previous + : actions.close + : actions.move_selection_next + : actions.move_selection_previous + : actions.select_default + : actions.select_horizontal + : actions.select_vertical + : actions.select_tab + : actions.preview_scrolling_up + : actions.preview_scrolling_down + : actions.results_scrolling_up + : actions.results_scrolling_down + : (+ actions.toggle_selection + actions.move_selection_worse) + : (+ actions.toggle_selection + actions.move_selection_better) + : (+ actions.send_to_qflist + actions.open_qflist) + : (+ actions.send_selected_to_qflist + actions.open_qflist) + : actions.complete_tag + : actions.which_key} + :n {: actions.close + : actions.select_default + : actions.select_horizontal + : actions.select_vertical + : actions.select_tab + : (+ actions.toggle_selection + actions.move_selection_worse) + : (+ actions.toggle_selection + actions.move_selection_better) + : (+ actions.send_to_qflist + actions.open_qflist) + : (+ actions.send_selected_to_qflist + actions.open_qflist) + :j actions.move_selection_next + :k actions.move_selection_previous + :H actions.move_to_top + :M actions.move_to_middle + :L actions.move_to_bottom + : actions.move_selection_next + : actions.move_selection_previous + :gg actions.move_to_top + :G actions.move_to_bottom + :q actions.close + : actions.preview_scrolling_up + : actions.preview_scrolling_down + : actions.results_scrolling_up + : actions.results_scrolling_down + :dd actions.delete_buffer + :? actions.which_key}}} + :extensions {:fzf {:fuzzy true + :override_generic_sorter true + :override_file_sorter true + :case_mode :smart_case}}}) + (load-extensions telescope))) + +{1 :nvim-telescope/telescope.nvim + :cmd :Telescope + : init + : config + : dependencies + : keys} -- cgit v1.2.3-70-g09d2