blob: 8c86a6df1614ecca66dc27ba2bc1b0a66cc9bf52 (
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
|
;; Find and replace.
(local user-cmds [[:Replace
(lambda []
(let [spectre (require :spectre)]
(spectre.open)))
{:nargs 0}]
[:ReplaceWord
(lambda []
(let [spectre (require :spectre)]
(spectre.open_visual {:select_word true})))
{:nargs 0}]
[:ReplaceInBuf
(lambda []
(let [spectre (require :spectre)]
(spectre.open_file_search)))
{:nargs 0}]])
(local auto-cmds
[[:FileType
{:pattern [:spectre_panel]
:command "nnoremap <silent> <buffer> q :close<CR>"}]
[:FileType {:pattern [:spectre_panel] :command "setlocal spell!"}]])
(fn init []
(let [cmds (require :util.cmds)]
(cmds.create-user-cmds user-cmds)
(cmds.create-auto-cmds auto-cmds)))
(local opts {: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]"}}}}
: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})
(local keys
[{1 :<leader>rn 2 :<cmd>ReplaceInBuf<cr> :desc "Replace in Buffer"}
{1 :<leader>re 2 :<cmd>Replace<cr> :desc :Replace}
{1 :<leader>ri 2 :<cmd>ReplaceWord<cr> :desc "Replace Word"}])
{1 :windwp/nvim-spectre :event [:BufReadPost :BufNewFile] : init : keys : opts}
|