Variable: projectile-search-async
projectile-search-async is a customizable variable defined in
projectile.el.
Value
t
Documentation
Whether the reviewable search/replace commands scan asynchronously.
When non-nil (the default) projectile-replace-review,
projectile-search-review and their in-buffer re-scan commands (g,
c, x) scan candidate files in timer-yielded chunks: the results
buffer is shown right away, matches stream in as they are found, Emacs
stays responsive, and the scan can be canceled (q, \C-g, or by
killing the buffer). While a scan is still running, applying (!) and
exporting (e) refuse until it finishes so the write-back never runs
against a partial match set. When nil the scan runs synchronously in one
blocking pass instead.
Regardless of this setting, in batch mode (noninteractive) the scan is
always synchronous so scripted runs stay deterministic. The final match
set is identical whether scanning runs asynchronously or synchronously;
async only changes when and how matches are delivered.
This variable was added, or its default value changed, in projectile version 3.2.0.
Aliases
projectile-replace-async (obsolete since 3.4.0)
Source Code
;; Defined in ~/.emacs.d/elpa/projectile-20260820.1509/projectile.el
(defcustom projectile-search-async t
"Whether the reviewable search/replace commands scan asynchronously.
When non-nil (the default) `projectile-replace-review',
`projectile-search-review' and their in-buffer re-scan commands (`g',
`c', `x') scan candidate files in timer-yielded chunks: the results
buffer is shown right away, matches stream in as they are found, Emacs
stays responsive, and the scan can be canceled (`q', \\`C-g', or by
killing the buffer). While a scan is still running, applying (`!') and
exporting (`e') refuse until it finishes so the write-back never runs
against a partial match set. When nil the scan runs synchronously in one
blocking pass instead.
Regardless of this setting, in batch mode (`noninteractive') the scan is
always synchronous so scripted runs stay deterministic. The final match
set is identical whether scanning runs asynchronously or synchronously;
async only changes when and how matches are delivered."
:group 'projectile
:type 'boolean
:package-version '(projectile . "3.2.0"))