summaryrefslogtreecommitdiff
path: root/fnl/config/spectre.fnl
blob: 804a36f68601941c37a35ba40919c2a7177ecf04 (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
;; 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}))