mirror of
https://github.com/neovim/neovim.git
synced 2024-09-17 20:58:20 -04:00
feat(defaults): use ripgrep (rg) for 'grepprg' if available
This commit is contained in:
parent
fe4583127f
commit
20b38677c2
@ -375,6 +375,7 @@ The following changes to existing APIs or features add new behavior.
|
||||
correctly without it. (Use |gF| for filepaths suffixed with ":line:col").
|
||||
• 'comments' includes "fb:•".
|
||||
• 'shortmess' includes the "C" flag.
|
||||
• 'grepprg' defaults to using ripgrep if available.
|
||||
• Automatic linting of treesitter query files (see |ft-query-plugin|).
|
||||
Can be disabled via: >lua
|
||||
vim.g.query_lint_on = {}
|
||||
|
@ -2851,9 +2851,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This is a scanf-like string that uses the same format as the
|
||||
'errorformat' option: see |errorformat|.
|
||||
|
||||
If ripgrep ('grepprg') is available, this option defaults to `%f:%l:%c:%m`.
|
||||
|
||||
*'grepprg'* *'gp'*
|
||||
'grepprg' 'gp' string (default "grep -n ",
|
||||
Unix: "grep -n $* /dev/null")
|
||||
'grepprg' 'gp' string (default see below)
|
||||
global or local to buffer |global-local|
|
||||
Program to use for the |:grep| command. This option may contain '%'
|
||||
and '#' characters, which are expanded like when used in a command-
|
||||
@ -2870,6 +2871,16 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
apply equally to 'grepprg'.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
This option defaults to:
|
||||
- `rg --vimgrep -uuu $* ...` if ripgrep is available (|:checkhealth|),
|
||||
- `grep -n $* /dev/null` on Unix,
|
||||
- `findstr /n $* nul` on Windows.
|
||||
Ripgrep can perform additional filtering such as using .gitignore rules
|
||||
and skipping hidden or binary files. This is disabled by default (see the -u option)
|
||||
to more closely match the behaviour of standard grep.
|
||||
You can make ripgrep match Vim's case handling using the
|
||||
-i/--ignore-case and -S/--smart-case options.
|
||||
An |OptionSet| autocmd can be used to set it up to match automatically.
|
||||
|
||||
*'guicursor'* *'gcr'* *E545* *E546* *E548* *E549*
|
||||
'guicursor' 'gcr' string (default "n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20")
|
||||
|
@ -52,6 +52,7 @@ Defaults *nvim-defaults*
|
||||
- 'encoding' is UTF-8 (cf. 'fileencoding' for file-content encoding)
|
||||
- 'fillchars' defaults (in effect) to "vert:│,fold:·,foldsep:│"
|
||||
- 'formatoptions' defaults to "tcqj"
|
||||
- 'grepprg' defaults to using ripgrep if available
|
||||
- 'hidden' is enabled
|
||||
- 'history' defaults to 10000 (the maximum)
|
||||
- 'hlsearch' is enabled
|
||||
|
@ -383,6 +383,19 @@ local function check_terminal()
|
||||
end
|
||||
end
|
||||
|
||||
local function check_external_tools()
|
||||
health.start('External Tools')
|
||||
|
||||
if vim.fn.executable('rg') == 1 then
|
||||
local rg = vim.fn.exepath('rg')
|
||||
local cmd = 'rg -V'
|
||||
local out = vim.fn.system(vim.fn.split(cmd))
|
||||
health.ok(('%s (%s)'):format(vim.trim(out), rg))
|
||||
else
|
||||
health.warn('ripgrep not available')
|
||||
end
|
||||
end
|
||||
|
||||
function M.check()
|
||||
check_config()
|
||||
check_runtime()
|
||||
@ -390,6 +403,7 @@ function M.check()
|
||||
check_rplugin_manifest()
|
||||
check_terminal()
|
||||
check_tmux()
|
||||
check_external_tools()
|
||||
end
|
||||
|
||||
return M
|
||||
|
@ -496,3 +496,11 @@ if tty then
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--- Default 'grepprg' to ripgrep if available.
|
||||
if vim.fn.executable('rg') == 1 then
|
||||
-- Match :grep default, otherwise rg searches cwd by default
|
||||
-- Use -uuu to make ripgrep not do its default filtering
|
||||
vim.o.grepprg = 'rg --vimgrep -uuu $* ' .. (vim.fn.has('unix') == 1 and '/dev/null' or 'nul')
|
||||
vim.o.grepformat = '%f:%l:%c:%m'
|
||||
end
|
||||
|
12
runtime/lua/vim/_meta/options.lua
generated
12
runtime/lua/vim/_meta/options.lua
generated
@ -2625,6 +2625,8 @@ vim.go.gd = vim.go.gdefault
|
||||
--- This is a scanf-like string that uses the same format as the
|
||||
--- 'errorformat' option: see `errorformat`.
|
||||
---
|
||||
--- If ripgrep ('grepprg') is available, this option defaults to `%f:%l:%c:%m`.
|
||||
---
|
||||
--- @type string
|
||||
vim.o.grepformat = "%f:%l:%m,%f:%l%m,%f %l%m"
|
||||
vim.o.gfm = vim.o.grepformat
|
||||
@ -2649,6 +2651,16 @@ vim.go.gfm = vim.go.grepformat
|
||||
--- apply equally to 'grepprg'.
|
||||
--- This option cannot be set from a `modeline` or in the `sandbox`, for
|
||||
--- security reasons.
|
||||
--- This option defaults to:
|
||||
--- - `rg --vimgrep -uuu $* ...` if ripgrep is available (`:checkhealth`),
|
||||
--- - `grep -n $* /dev/null` on Unix,
|
||||
--- - `findstr /n $* nul` on Windows.
|
||||
--- Ripgrep can perform additional filtering such as using .gitignore rules
|
||||
--- and skipping hidden or binary files. This is disabled by default (see the -u option)
|
||||
--- to more closely match the behaviour of standard grep.
|
||||
--- You can make ripgrep match Vim's case handling using the
|
||||
--- -i/--ignore-case and -S/--smart-case options.
|
||||
--- An `OptionSet` autocmd can be used to set it up to match automatically.
|
||||
---
|
||||
--- @type string
|
||||
vim.o.grepprg = "grep -n $* /dev/null"
|
||||
|
@ -3368,6 +3368,8 @@ return {
|
||||
Format to recognize for the ":grep" command output.
|
||||
This is a scanf-like string that uses the same format as the
|
||||
'errorformat' option: see |errorformat|.
|
||||
|
||||
If ripgrep ('grepprg') is available, this option defaults to `%f:%l:%c:%m`.
|
||||
]=],
|
||||
full_name = 'grepformat',
|
||||
list = 'onecomma',
|
||||
@ -3382,8 +3384,7 @@ return {
|
||||
condition = 'MSWIN',
|
||||
if_false = 'grep -n $* /dev/null',
|
||||
if_true = 'findstr /n $* nul',
|
||||
doc = [["grep -n ",
|
||||
Unix: "grep -n $* /dev/null"]],
|
||||
doc = [[see below]],
|
||||
},
|
||||
desc = [=[
|
||||
Program to use for the |:grep| command. This option may contain '%'
|
||||
@ -3401,6 +3402,16 @@ return {
|
||||
apply equally to 'grepprg'.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
This option defaults to:
|
||||
- `rg --vimgrep -uuu $* ...` if ripgrep is available (|:checkhealth|),
|
||||
- `grep -n $* /dev/null` on Unix,
|
||||
- `findstr /n $* nul` on Windows.
|
||||
Ripgrep can perform additional filtering such as using .gitignore rules
|
||||
and skipping hidden or binary files. This is disabled by default (see the -u option)
|
||||
to more closely match the behaviour of standard grep.
|
||||
You can make ripgrep match Vim's case handling using the
|
||||
-i/--ignore-case and -S/--smart-case options.
|
||||
An |OptionSet| autocmd can be used to set it up to match automatically.
|
||||
]=],
|
||||
expand = true,
|
||||
full_name = 'grepprg',
|
||||
|
Loading…
Reference in New Issue
Block a user