summaryrefslogtreecommitdiff
path: root/fnl/plugins/telescope.fnl
blob: 0d9df3e57dc470e61a5cc4f362f59186f38913fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
;; 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 (λ [_ opts]
                   (let [project (require :project_nvim)]
                     (project.setup opts)))}
        :nvim-lua/plenary.nvim
        :nvim-telescope/telescope-fzf-native.nvim
        :nvim-telescope/telescope-frecency.nvim
        {1 :nvim-orgmode/telescope-orgmode.nvim}])

(local extensions [:fzf
                   :frecency
                   :orgmode
                   :projects
                   :git_worktree
                   :harpoon
                   :rest])

(λ load-extensions [telescope]
  (each [_ extension (ipairs extensions)]
    (telescope.load_extension extension)))

(local keys [{1 :mf
              2 "<cmd>Telescope find_files theme=ivy previewer=false disable_devicons=true<cr>"
              :desc "Find Files"}
             {1 :mg
              2 "<cmd>Telescope live_grep theme=dropdown<cr>"
              :desc "Find Text"}
             {1 :mb
              2 "<cmd>Telescope buffers theme=ivy previewer=true initial_mode=normal<cr>"
              :desc "Switch Buffer"}
             {1 :<leader>fC
              2 "<cmd>Telescope commands theme=ivy<cr>"
              :desc :Commands}
             {1 :<leader>fH
              2 "<cmd>Telescope highlights<cr>"
              :desc :Highlights}
             {1 :<leader>fR
              2 "<cmd>Telescope registers theme=ivy<cr>"
              :desc :Registers}
             {1 :<leader>fS
              2 "<cmd>Telescope grep_string theme=ivy<cr>"
              :desc "Find String"}
             {1 :<leader>gb
              2 "<cmd>Telescope git_branches theme=ivy<cr>"
              :desc "Checkout Branch"}
             {1 :<leader>ff
              2 "<cmd>Telescope find_files theme=ivy<cr>"
              :desc "Find files"}
             {1 :<leader>fh
              2 "<cmd>Telescope help_tags theme=ivy<cr>"
              :desc :Help}
             {1 :<leader>fk
              2 "<cmd>Telescope keymaps theme=ivy<cr>"
              :desc :Keymaps}
             {1 :<leader>fl
              2 "<cmd>Telescope resume theme=ivy<cr>"
              :desc "Last Search"}
             {1 :<leader>fp
              2 "<cmd>Telescope projects theme=ivy<cr>"
              :desc "Find Project"}
             {1 :<leader>fr
              2 "<cmd>Telescope oldfiles theme=ivy previewer=false<cr>"
              :desc "Recent File"}
             {1 :<leader>ft
              2 "<cmd>Telescope live_grep theme=ivy<cr>"
              :desc "Find Text"}
             {1 :<leader>gc
              2 "<cmd>Telescope git_commits theme=ivy<cr>"
              :desc "Checkout Commit"}])

(λ config []
  (let [telescope (require :telescope)
        icons (require :settings.icons)]
    (telescope.setup {:defaults {:prompt_prefix (.. "  " (. icons :telescope)
                                                    "  ")
                                 :selection_caret (.. (. icons :caret) " ")
                                 :path_display [:smart]
                                 :color_devicons false
                                 :pickers {:find_files {:theme :dropdown
                                                        :disable_devicons true}}
                                 :vimgrep_arguments [:rg
                                                     :--color=never
                                                     :--no-heading
                                                     :--with-filename
                                                     :--line-number
                                                     :--column
                                                     :--smart-case
                                                     :--hidden]}
                      :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
 : config
 : dependencies
 : keys}