summaryrefslogtreecommitdiff
path: root/fnl/config/spectre.fnl
blob: 5529714ac12e0bab875ca79a777e7a3908fcf493 (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
;; Find and replace.
(module config.spectre {autoload {util util}})

(let [spectre (util.load-plugin :spectre)]
  (spectre.setup {:color_devicons true
                  :highlight {:ui :String
                              :search :DiffChange
                              :replace :DiffDelete}
                  :mapping {:toggle_line {:map :t
                                          :cmd "<cmd>lua require('spectre').toggle_line()<CR>"
                                          :desc "toggle current item"}
                            :enter_file {:map :<cr>
                                         :cmd "<cmd>lua require('spectre.actions').select_entry()<CR>"
                                         :desc "goto current file"}
                            :send_to_qf {:map :Q
                                         :cmd "<cmd>lua require('spectre.actions').send_to_qf()<CR>"
                                         :desc "send all item to quickfix"}
                            :replace_cmd {:map :c
                                          :cmd "<cmd>lua require('spectre.actions').replace_cmd()<CR>"
                                          :desc "input replace vim command"}
                            :show_option_menu {:map :o
                                               :cmd "<cmd>lua require('spectre').show_options()<CR>"
                                               :desc "show option"}
                            :run_replace {:map :R
                                          :cmd "<cmd>lua require('spectre.actions').run_replace()<CR>"
                                          :desc "replace all"}
                            :change_view_mode {:map :m
                                               :cmd "<cmd>lua require('spectre').change_view()<CR>"
                                               :desc "change result view mode"}
                            :toggle_ignore_case {:map :I
                                                 :cmd "<cmd>lua require('spectre').change_options('ignore-case')<CR>"
                                                 :desc "toggle ignore case"}
                            :toggle_ignore_hidden {:map :H
                                                   :cmd "<cmd>lua require('spectre').change_options('hidden')<CR>"
                                                   :desc "toggle search hidden"}}
                  :find_engine {:rg {:cmd :rg
                                     :args [:--color=never
                                            :--no-heading
                                            :--with-filename
                                            :--line-number
                                            :--column]
                                     :options {:ignore-case {:value :--ignore-case
                                                             :icon "[I]"
                                                             :desc "ignore case"}
                                               :hidden {:value :--hidden
                                                        :desc "hidden file"
                                                        :icon "[H]"}}}
                                :ag {:cmd :ag
                                     :args [:--vimgrep :-s]
                                     :options {:ignore-case {:value :-i
                                                             :icon "[I]"
                                                             :desc "ignore case"}
                                               :hidden {:value :--hidden
                                                        :desc "hidden file"
                                                        :icon "[H]"}}}}
                  :replace_engine {:sed {:cmd :sed :args nil}
                                   :options {:ignore-case {:value :--ignore-case
                                                           :icon "[I]"
                                                           :desc "ignore case"}}}
                  :default {:find {:cmd :rg :options [:ignore-case]}
                            :replace {:cmd :sed}}
                  :replace_vim_cmd :cdo
                  :is_open_target_win true
                  :is_insert_mode false}))