Variable: projectile-globally-ignored-directories
projectile-globally-ignored-directories is a customizable variable
defined in projectile.el.
Value
(".idea" ".vscode" ".ccls-cache" ".cache" ".clangd" ".git" ".hg"
".fslckout" "_FOSSIL_" ".bzr" "_darcs" ".pijul" ".svn" ".sl" ".jj"
".osc" "node_modules" "target" "_build" ".gradle" ".stack-work"
".build" "elm-stuff" ".dart_tool" ".zig-cache" "zig-out"
"__pycache__" "*.egg-info" ".venv" ".tox" ".mypy_cache"
".pytest_cache" ".ruff_cache" ".next" ".nuxt" ".svelte-kit" ".astro"
".turbo" ".parcel-cache" "_site" ".terraform" ".direnv")
Documentation
A list of directories globally ignored by projectile.
Entries are gitignore patterns, matched against paths relative to the project root and applied by every indexing method alike:
- a pattern without a slash matches a directory with that name at any
depth, so "tmp" ignores both ./tmp and ./src/tmp
- a pattern containing a slash is anchored at the project root, so
"/tmp" and "doc/frotz" only match there
- * is a wildcard within a path segment, ** spans segments, ?
matches a single non-slash character and [...]/[!...] are
character classes
Matching is case-sensitive. Note that a leading * is a plain
wildcard - it used to be a marker meaning "at any depth", which is
now the default for every slashless pattern.
Besides the editor and version control directories, the default value
covers the dependency and build output directories of the common
ecosystems - node_modules, target, __pycache__ and so on. Add
an entry to projectile-globally-unignored-directories to get one of
them back, or a ! line to a project's .projectile to get it back
for that project only.
See also projectile-globally-ignored-file-regexps.
This variable was added, or its default value changed, in projectile version 3.3.0.
Source Code
;; Defined in ~/.emacs.d/elpa/projectile-20260820.1509/projectile.el
(defcustom projectile-globally-ignored-directories
'(;; editors
".idea"
".vscode"
".ccls-cache"
".cache"
".clangd"
;; version control
".git"
".hg"
".fslckout"
"_FOSSIL_"
".bzr"
"_darcs"
".pijul"
".svn"
".sl"
".jj"
".osc"
;; dependencies and build output
;;
;; These are all directories a tool generates and a project doesn't
;; commit. Under `alien' they're usually excluded by the VCS anyway;
;; the point of listing them is `native' and `hybrid' indexing, and
;; projects that aren't under version control at all. Names that some
;; projects do commit - `vendor', `build', `dist', `public' - are
;; deliberately not here.
"node_modules"
"target"
"_build"
".gradle"
".stack-work"
".build"
"elm-stuff"
".dart_tool"
".zig-cache"
"zig-out"
"__pycache__"
"*.egg-info"
".venv"
".tox"
".mypy_cache"
".pytest_cache"
".ruff_cache"
".next"
".nuxt"
".svelte-kit"
".astro"
".turbo"
".parcel-cache"
"_site"
".terraform"
".direnv")
"A list of directories globally ignored by projectile.
Entries are gitignore patterns, matched against paths relative to the
project root and applied by every indexing method alike:
- a pattern without a slash matches a directory with that name at any
depth, so \"tmp\" ignores both ./tmp and ./src/tmp
- a pattern containing a slash is anchored at the project root, so
\"/tmp\" and \"doc/frotz\" only match there
- `*' is a wildcard within a path segment, `**' spans segments, `?'
matches a single non-slash character and `[...]'/`[!...]' are
character classes
Matching is case-sensitive. Note that a leading `*' is a plain
wildcard - it used to be a marker meaning \"at any depth\", which is
now the default for every slashless pattern.
Besides the editor and version control directories, the default value
covers the dependency and build output directories of the common
ecosystems - `node_modules', `target', `__pycache__' and so on. Add
an entry to `projectile-globally-unignored-directories' to get one of
them back, or a `!' line to a project's `.projectile' to get it back
for that project only.
See also `projectile-globally-ignored-file-regexps'."
:group 'projectile
:type '(repeat string)
:safe #'list-of-strings-p
:package-version '(projectile . "3.3.0"))