mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-23 13:50:05 +08:00
feat(flygrep): use ctrl-h
toggle hidden files
This commit is contained in:
parent
28c3ff6193
commit
98b6cae025
@ -6,6 +6,49 @@
|
|||||||
" License: GPLv3
|
" License: GPLv3
|
||||||
"=============================================================================
|
"=============================================================================
|
||||||
|
|
||||||
|
|
||||||
|
""
|
||||||
|
" @section flygrep, plugins-flygrep
|
||||||
|
" @parentsection plugins
|
||||||
|
" `flygrep` means `grep on the fly`, it will update the result as you type.
|
||||||
|
" Of course, it is running asynchronously. Before using this feature,
|
||||||
|
" you need to install a searching tool. flygrep supports those tools:
|
||||||
|
" `ag`, `rg`, `ack`, `pt` and `grep`, Choose one you like.
|
||||||
|
"
|
||||||
|
" checkout @section(usage-search-and-replace) for more info to use flygrep in
|
||||||
|
" SpaceVim.
|
||||||
|
"
|
||||||
|
" @subsection Key bindings In flygrep window
|
||||||
|
"
|
||||||
|
" After opening flygrep window, those key bindings can be used:
|
||||||
|
" >
|
||||||
|
" Key Bindings | Descriptions
|
||||||
|
" ------------------- | ----------------------------------
|
||||||
|
" Tab / Ctrl-j | move cursor to next item
|
||||||
|
" Shift-Tab / Ctrl-K | move cursor to previous item
|
||||||
|
" ScrollWheelDown | move cursor to next item
|
||||||
|
" ScrollWheelUp | move cursor to previous item
|
||||||
|
" Enter | open file at the cursor line
|
||||||
|
" Ctrl-t | open item in new tab
|
||||||
|
" LeftMouse | move cursor to mouse position
|
||||||
|
" 2-LeftMouse | open file at the mouse position
|
||||||
|
" Ctrl-f | start filter mode
|
||||||
|
" Ctrl-v | open item in vertical split window
|
||||||
|
" Ctrl-s | open item in split window
|
||||||
|
" Ctrl-q | apply all items into quickfix
|
||||||
|
" Ctrl-e | toggle fix-string mode
|
||||||
|
" Ctrl-h | toggle display hidden files
|
||||||
|
" Ctrl-r | read from register, need insert register name
|
||||||
|
" Left / Right | move cursor to left or right
|
||||||
|
" BackSpace | remove last character
|
||||||
|
" Ctrl-w | remove the Word before the cursor
|
||||||
|
" Ctrl-u | remove the Line before the cursor
|
||||||
|
" Ctrl-k | remove the Line after the cursor
|
||||||
|
" Ctrl-a / Home | Go to the beginning of the line
|
||||||
|
" End | Go to the end of the line
|
||||||
|
" <
|
||||||
|
|
||||||
|
|
||||||
" Loading SpaceVim api {{{
|
" Loading SpaceVim api {{{
|
||||||
scriptencoding utf-8
|
scriptencoding utf-8
|
||||||
if has('nvim-0.7.0')
|
if has('nvim-0.7.0')
|
||||||
|
@ -3,8 +3,8 @@ Wang Shidong *flygrep* *FlyGrep*
|
|||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
CONTENTS *FlyGrep-contents*
|
CONTENTS *FlyGrep-contents*
|
||||||
1. Introduction..............................................|FlyGrep-intro|
|
1. Introduction............................................... |FlyGrep-intro|
|
||||||
2. CONFIGURATION............................................|FlyGrep-config|
|
2. CONFIGURATION............................................. |FlyGrep-config|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
INTRODUCTION *FlyGrep-intro*
|
INTRODUCTION *FlyGrep-intro*
|
||||||
|
@ -271,11 +271,12 @@ CONTENTS *SpaceVim-contents*
|
|||||||
2. Symbol highlighter............... |SpaceVim-plugins-symbol-highlighter|
|
2. Symbol highlighter............... |SpaceVim-plugins-symbol-highlighter|
|
||||||
3. alternate................................. |SpaceVim-plugins-alternate|
|
3. alternate................................. |SpaceVim-plugins-alternate|
|
||||||
4. autosave................................... |SpaceVim-plugins-autosave|
|
4. autosave................................... |SpaceVim-plugins-autosave|
|
||||||
5. iedit......................................... |SpaceVim-plugins-iedit|
|
5. flygrep..................................... |SpaceVim-plugins-flygrep|
|
||||||
6. runner....................................... |SpaceVim-plugins-runner|
|
6. iedit......................................... |SpaceVim-plugins-iedit|
|
||||||
7. scrollbar................................. |SpaceVim-plugins-scrollbar|
|
7. runner....................................... |SpaceVim-plugins-runner|
|
||||||
8. tab manager.............................. |SpaceVim-plugins-tabmanager|
|
8. scrollbar................................. |SpaceVim-plugins-scrollbar|
|
||||||
9. todo manager............................ |SpaceVim-plugins-todomanager|
|
9. tab manager.............................. |SpaceVim-plugins-tabmanager|
|
||||||
|
10. todo manager........................... |SpaceVim-plugins-todomanager|
|
||||||
9. API......................................................... |SpaceVim-api|
|
9. API......................................................... |SpaceVim-api|
|
||||||
1. clock............................................. |SpaceVim-api-clock|
|
1. clock............................................. |SpaceVim-api-clock|
|
||||||
2. cmdlinemenu................................. |SpaceVim-api-cmdlinemenu|
|
2. cmdlinemenu................................. |SpaceVim-api-cmdlinemenu|
|
||||||
@ -7647,6 +7648,47 @@ AUTOSAVE *SpaceVim-plugins-autosave*
|
|||||||
The `autosave` plugin will save your work automatically, and this plugin has
|
The `autosave` plugin will save your work automatically, and this plugin has
|
||||||
been used in `edit` layer, checkout |SpaceVim-layers-edit| for more info.
|
been used in `edit` layer, checkout |SpaceVim-layers-edit| for more info.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
FLYGREP *SpaceVim-plugins-flygrep*
|
||||||
|
|
||||||
|
`flygrep` means `grep on the fly`, it will update the result as you type. Of
|
||||||
|
course, it is running asynchronously. Before using this feature, you need to
|
||||||
|
install a searching tool. flygrep supports those tools: `ag`, `rg`, `ack`,
|
||||||
|
`pt` and `grep`, Choose one you like.
|
||||||
|
|
||||||
|
checkout |SpaceVim-usage-search-and-replace| for more info to use flygrep in
|
||||||
|
SpaceVim.
|
||||||
|
|
||||||
|
KEY BINDINGS IN FLYGREP WINDOW
|
||||||
|
|
||||||
|
After opening flygrep window, those key bindings can be used:
|
||||||
|
>
|
||||||
|
Key Bindings | Descriptions
|
||||||
|
------------------- | ----------------------------------
|
||||||
|
Tab / Ctrl-j | move cursor to next item
|
||||||
|
Shift-Tab / Ctrl-K | move cursor to previous item
|
||||||
|
ScrollWheelDown | move cursor to next item
|
||||||
|
ScrollWheelUp | move cursor to previous item
|
||||||
|
Enter | open file at the cursor line
|
||||||
|
Ctrl-t | open item in new tab
|
||||||
|
LeftMouse | move cursor to mouse position
|
||||||
|
2-LeftMouse | open file at the mouse position
|
||||||
|
Ctrl-f | start filter mode
|
||||||
|
Ctrl-v | open item in vertical split window
|
||||||
|
Ctrl-s | open item in split window
|
||||||
|
Ctrl-q | apply all items into quickfix
|
||||||
|
Ctrl-e | toggle fix-string mode
|
||||||
|
Ctrl-h | toggle display hidden files
|
||||||
|
Ctrl-r | read from register, need insert register name
|
||||||
|
Left / Right | move cursor to left or right
|
||||||
|
BackSpace | remove last character
|
||||||
|
Ctrl-w | remove the Word before the cursor
|
||||||
|
Ctrl-u | remove the Line before the cursor
|
||||||
|
Ctrl-k | remove the Line after the cursor
|
||||||
|
Ctrl-a / Home | Go to the beginning of the line
|
||||||
|
End | Go to the end of the line
|
||||||
|
<
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
IEDIT *SpaceVim-plugins-iedit*
|
IEDIT *SpaceVim-plugins-iedit*
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@ function M._handle_input(...)
|
|||||||
'',
|
'',
|
||||||
'g'
|
'g'
|
||||||
)
|
)
|
||||||
M._prompt.cursor_char = M.__cmp.matchstr(M._prompt.cursor_begin, '^.')
|
M._prompt.cursor_char = M.__cmp.fn.matchstr(M._prompt.cursor_begin, '^.')
|
||||||
M._prompt.cursor_begin = ''
|
M._prompt.cursor_begin = ''
|
||||||
M._build_prompt()
|
M._build_prompt()
|
||||||
goto continue
|
goto continue
|
||||||
|
@ -44,7 +44,7 @@ local timer_stop = vim.fn.timer_stop
|
|||||||
-- the script local values, same as s: in vim script
|
-- the script local values, same as s: in vim script
|
||||||
local previous_winid = -1
|
local previous_winid = -1
|
||||||
local grep_expr = ''
|
local grep_expr = ''
|
||||||
local grep_default_exe, grep_default_opt, grep_default_ropt, grep_default_expr_opt, grep_default_fix_string_opt, grep_default_ignore_case, grep_default_smart_case =
|
local grep_default_exe, grep_default_opt, grep_default_ropt, grep_default_expr_opt, grep_default_fix_string_opt, grep_default_ignore_case, grep_default_smart_case, grep_default_hidden_opt=
|
||||||
require('spacevim.plugin.search').default_tool()
|
require('spacevim.plugin.search').default_tool()
|
||||||
|
|
||||||
local grep_timer_id = -1
|
local grep_timer_id = -1
|
||||||
@ -63,6 +63,7 @@ local grep_ropt = {}
|
|||||||
local grep_ignore_case = {}
|
local grep_ignore_case = {}
|
||||||
local grep_smart_case = {}
|
local grep_smart_case = {}
|
||||||
local grep_expr_opt = {}
|
local grep_expr_opt = {}
|
||||||
|
local grep_hidden_opt = {}
|
||||||
local search_hi_id = -1
|
local search_hi_id = -1
|
||||||
local filter_hi_id = -1
|
local filter_hi_id = -1
|
||||||
local grep_mode = 'expr'
|
local grep_mode = 'expr'
|
||||||
@ -71,6 +72,7 @@ local preview_able = false
|
|||||||
local grep_history = {}
|
local grep_history = {}
|
||||||
local preview_win_id = -1
|
local preview_win_id = -1
|
||||||
local filter_file = ''
|
local filter_file = ''
|
||||||
|
local show_hidden_files = false
|
||||||
|
|
||||||
--- @return table # a list of searching pattern history
|
--- @return table # a list of searching pattern history
|
||||||
local function read_histroy()
|
local function read_histroy()
|
||||||
@ -128,6 +130,9 @@ local function get_search_cmd(expr)
|
|||||||
if vim.o.ignorecase then
|
if vim.o.ignorecase then
|
||||||
append(cmd, grep_ignore_case)
|
append(cmd, grep_ignore_case)
|
||||||
end
|
end
|
||||||
|
if show_hidden_files then
|
||||||
|
append(cmd, grep_hidden_opt)
|
||||||
|
end
|
||||||
if vim.o.smartcase then
|
if vim.o.smartcase then
|
||||||
append(cmd, grep_smart_case)
|
append(cmd, grep_smart_case)
|
||||||
end
|
end
|
||||||
@ -686,6 +691,12 @@ local function start_replace()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function toggle_hidden_files()
|
||||||
|
show_hidden_files = not show_hidden_files
|
||||||
|
mpt._oninputpro()
|
||||||
|
mpt._handle_fly(mpt._prompt.cursor_begin .. mpt._prompt.cursor_char .. mpt._prompt.cursor_end)
|
||||||
|
end
|
||||||
|
|
||||||
mpt._function_key = {
|
mpt._function_key = {
|
||||||
[Key.t('<Tab>')] = next_item,
|
[Key.t('<Tab>')] = next_item,
|
||||||
[Key.t('<C-j>')] = next_item,
|
[Key.t('<C-j>')] = next_item,
|
||||||
@ -701,6 +712,7 @@ mpt._function_key = {
|
|||||||
[Key.t('<C-v>')] = open_item_vertically,
|
[Key.t('<C-v>')] = open_item_vertically,
|
||||||
[Key.t('<C-s>')] = open_item_horizontally,
|
[Key.t('<C-s>')] = open_item_horizontally,
|
||||||
[Key.t('<C-q>')] = apply_to_quickfix,
|
[Key.t('<C-q>')] = apply_to_quickfix,
|
||||||
|
[Key.t('<C-h>')] = toggle_hidden_files,
|
||||||
[Key.t('<M-r>')] = start_replace,
|
[Key.t('<M-r>')] = start_replace,
|
||||||
[Key.t('<C-p>')] = toggle_preview,
|
[Key.t('<C-p>')] = toggle_preview,
|
||||||
[Key.t('<C-e>')] = toggle_expr_mode,
|
[Key.t('<C-e>')] = toggle_expr_mode,
|
||||||
@ -820,6 +832,7 @@ function M.open(argv)
|
|||||||
grep_ignore_case = argv.ignore_case or grep_default_ignore_case
|
grep_ignore_case = argv.ignore_case or grep_default_ignore_case
|
||||||
grep_smart_case = argv.smart_case or grep_default_smart_case
|
grep_smart_case = argv.smart_case or grep_default_smart_case
|
||||||
grep_expr_opt = argv.expr_opt or grep_default_expr_opt
|
grep_expr_opt = argv.expr_opt or grep_default_expr_opt
|
||||||
|
grep_hidden_opt = argv.hidden_opt or grep_default_hidden_opt
|
||||||
logger.info('FlyGrep startting ===========================')
|
logger.info('FlyGrep startting ===========================')
|
||||||
logger.info(' executable : ' .. grep_exe)
|
logger.info(' executable : ' .. grep_exe)
|
||||||
logger.info(' option : ' .. vim.fn.string(grep_opt))
|
logger.info(' option : ' .. vim.fn.string(grep_opt))
|
||||||
|
@ -42,6 +42,7 @@ local function show_key(key, where)
|
|||||||
focusable = false,
|
focusable = false,
|
||||||
noautocmd = true,
|
noautocmd = true,
|
||||||
border = 'single',
|
border = 'single',
|
||||||
|
zindex = 100,
|
||||||
})
|
})
|
||||||
table.insert(winids, winid)
|
table.insert(winids, winid)
|
||||||
vim.fn.setbufvar(buf, '&number', 0)
|
vim.fn.setbufvar(buf, '&number', 0)
|
||||||
|
@ -16,7 +16,7 @@ search_tools.a = {}
|
|||||||
search_tools.a.command = 'ag'
|
search_tools.a.command = 'ag'
|
||||||
search_tools.a.default_opts =
|
search_tools.a.default_opts =
|
||||||
{
|
{
|
||||||
'-i', '--nocolor', '--filename', '--noheading', '--column', '--hidden', '--ignore',
|
'-i', '--nocolor', '--filename', '--noheading', '--column', '--ignore',
|
||||||
'.hg', '--ignore', '.svn', '--ignore', '.git', '--ignore', '.bzr',
|
'.hg', '--ignore', '.svn', '--ignore', '.git', '--ignore', '.bzr',
|
||||||
}
|
}
|
||||||
search_tools.a.recursive_opt = {}
|
search_tools.a.recursive_opt = {}
|
||||||
@ -25,6 +25,7 @@ search_tools.a.fixed_string_opt = {'-F'}
|
|||||||
search_tools.a.default_fopts = {'--nonumber'}
|
search_tools.a.default_fopts = {'--nonumber'}
|
||||||
search_tools.a.smart_case = {'-S'}
|
search_tools.a.smart_case = {'-S'}
|
||||||
search_tools.a.ignore_case = {'-i'}
|
search_tools.a.ignore_case = {'-i'}
|
||||||
|
search_tools.a.hidden_opt = {'--hidden'}
|
||||||
|
|
||||||
search_tools.t = {}
|
search_tools.t = {}
|
||||||
search_tools.t.command = 'pt'
|
search_tools.t.command = 'pt'
|
||||||
@ -49,7 +50,7 @@ search_tools.h.ignore_case = {}
|
|||||||
search_tools.r = {}
|
search_tools.r = {}
|
||||||
search_tools.r.command = 'rg'
|
search_tools.r.command = 'rg'
|
||||||
search_tools.r.default_opts = {
|
search_tools.r.default_opts = {
|
||||||
'--hidden', '--no-heading', '--color=never', '--with-filename', '--line-number', '--column',
|
'--no-heading', '--color=never', '--with-filename', '--line-number', '--column',
|
||||||
'-g', '!.git'
|
'-g', '!.git'
|
||||||
}
|
}
|
||||||
search_tools.r.recursive_opt = {}
|
search_tools.r.recursive_opt = {}
|
||||||
@ -58,6 +59,7 @@ search_tools.r.fixed_string_opt = {'-F'}
|
|||||||
search_tools.r.default_fopts = {'-N'}
|
search_tools.r.default_fopts = {'-N'}
|
||||||
search_tools.r.smart_case = {'-S'}
|
search_tools.r.smart_case = {'-S'}
|
||||||
search_tools.r.ignore_case = {'-i'}
|
search_tools.r.ignore_case = {'-i'}
|
||||||
|
search_tools.r.hidden_opt = {'--hidden'}
|
||||||
|
|
||||||
search_tools.k = {}
|
search_tools.k = {}
|
||||||
search_tools.k.command = 'ack'
|
search_tools.k.command = 'ack'
|
||||||
@ -106,6 +108,7 @@ search_tools.i.ignore_case = {'/I'}
|
|||||||
--- @return table fixed_string_opt fixed string option of searching tool
|
--- @return table fixed_string_opt fixed string option of searching tool
|
||||||
--- @return table ignore_case ignore case option
|
--- @return table ignore_case ignore case option
|
||||||
--- @return table smart_case smart case option
|
--- @return table smart_case smart case option
|
||||||
|
--- @return table hidden_opt opt to show hidden files
|
||||||
function M.default_tool()
|
function M.default_tool()
|
||||||
if search_tools.default_exe == nil then
|
if search_tools.default_exe == nil then
|
||||||
for _, t in ipairs(vim.g.spacevim_search_tools or {'rg', 'ag', 'pt', 'ack', 'grep'}) do
|
for _, t in ipairs(vim.g.spacevim_search_tools or {'rg', 'ag', 'pt', 'ack', 'grep'}) do
|
||||||
@ -118,11 +121,12 @@ function M.default_tool()
|
|||||||
search_tools.fixed_string_opt = search_tools[key]['fixed_string_opt']
|
search_tools.fixed_string_opt = search_tools[key]['fixed_string_opt']
|
||||||
search_tools.ignore_case = search_tools[key]['ignore_case']
|
search_tools.ignore_case = search_tools[key]['ignore_case']
|
||||||
search_tools.smart_case = search_tools[key]['smart_case']
|
search_tools.smart_case = search_tools[key]['smart_case']
|
||||||
|
search_tools.hidden_opt = search_tools[key]['hidden_opt']
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if search_tools.default_exe == nil then
|
if search_tools.default_exe == nil then
|
||||||
return '', {}, {}, {}, {}, {}, {}
|
return '', {}, {}, {}, {}, {}, {}, {}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return search_tools.default_exe,
|
return search_tools.default_exe,
|
||||||
@ -131,7 +135,8 @@ function M.default_tool()
|
|||||||
search_tools.expr_opt,
|
search_tools.expr_opt,
|
||||||
search_tools.fixed_string_opt,
|
search_tools.fixed_string_opt,
|
||||||
search_tools.ignore_case,
|
search_tools.ignore_case,
|
||||||
search_tools.smart_case
|
search_tools.smart_case,
|
||||||
|
search_tools.hidden_opt
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user