<feed xmlns='http://www.w3.org/2005/Atom'>
<title>projectile.git/doc/modules/ROOT/pages, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/projectile.git/'/>
<entry>
<title>Document remaining indexing semantics</title>
<updated>2026-04-26T11:30:10+00:00</updated>
<author>
<name>Bozhidar Batsov</name>
<email>bozhidar@toptal.com</email>
</author>
<published>2026-04-26T11:30:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/projectile.git/commit/?id=a039e44622b644deb90893f7b27c0940c486bbb7'/>
<id>a039e44622b644deb90893f7b27c0940c486bbb7</id>
<content type='text'>
Three doc gaps surfaced during the indexing review:

* The `*' prefix on `projectile-globally-ignored-directories' entries
  is not a glob - it is what promotes a basename match from
  "anchored at the project root" to "anywhere in the tree", and it
  only takes effect under hybrid indexing.
* The default `projectile-generic-command' picks `fd' when it's on
  PATH and falls back to a `find ... | tr ...' pipeline. The
  fallback does not exclude common build directories, which is a
  trap for non-VCS projects under alien on hosts without `fd'.
* `projectile-git-use-fd' controls how Projectile handles
  deleted-but-unstaged files: with `fd' they disappear immediately,
  with `git ls-files' Projectile post-filters via `git ls-files -zd'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Three doc gaps surfaced during the indexing review:

* The `*' prefix on `projectile-globally-ignored-directories' entries
  is not a glob - it is what promotes a basename match from
  "anchored at the project root" to "anywhere in the tree", and it
  only takes effect under hybrid indexing.
* The default `projectile-generic-command' picks `fd' when it's on
  PATH and falls back to a `find ... | tr ...' pipeline. The
  fallback does not exclude common build directories, which is a
  trap for non-VCS projects under alien on hosts without `fd'.
* `projectile-git-use-fd' controls how Projectile handles
  deleted-but-unstaged files: with `fd' they disappear immediately,
  with `git ls-files' Projectile post-filters via `git ls-files -zd'.
</pre>
</div>
</content>
</entry>
<entry>
<title>Document hybrid indexing and add a per-method feature matrix</title>
<updated>2026-04-26T10:17:33+00:00</updated>
<author>
<name>Bozhidar Batsov</name>
<email>bozhidar@toptal.com</email>
</author>
<published>2026-04-26T10:17:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/projectile.git/commit/?id=3a645b28dbf835e05feed8e662449ee0c6ef6432'/>
<id>3a645b28dbf835e05feed8e662449ee0c6ef6432</id>
<content type='text'>
The configuration page covered alien indexing in depth but mentioned
hybrid only in passing, so users had to read the source to learn that
hybrid is "alien with Projectile's filtering rules layered on top".
Add a dedicated section explaining what hybrid does and when to reach
for it, and a comparison table summarising which knobs (dirconfig,
global ignores/unignores, sort order, default caching, Windows
support) apply under each indexing method.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The configuration page covered alien indexing in depth but mentioned
hybrid only in passing, so users had to read the source to learn that
hybrid is "alien with Projectile's filtering rules layered on top".
Add a dedicated section explaining what hybrid does and when to reach
for it, and a comparison table summarising which knobs (dirconfig,
global ignores/unignores, sort order, default caching, Windows
support) apply under each indexing method.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add projectile-discard-root-cache command (#1936)</title>
<updated>2026-04-26T06:49:03+00:00</updated>
<author>
<name>Bozhidar Batsov</name>
<email>bozhidar@toptal.com</email>
</author>
<published>2026-04-26T06:49:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/projectile.git/commit/?id=66b54e9038c8aadf5a515758ca3c0acb03977b0e'/>
<id>66b54e9038c8aadf5a515758ca3c0acb03977b0e</id>
<content type='text'>
The existing projectile-invalidate-cache always tries to also clear
the per-project files cache, which means it either prompts for a
project (with prefix arg) or only operates when you're already in a
project.  Users who just created a marker file in a directory that
Projectile previously considered rootless ended up picking an
unrelated project from the prompt just to get the root cache
flushed.

projectile-discard-root-cache is a focused alternative that empties
projectile-project-root-cache only.  Wired into the menu next to the
existing 'Invalidate cache' entry; deliberately not bound on the
prefix map since the keymap is already dense.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The existing projectile-invalidate-cache always tries to also clear
the per-project files cache, which means it either prompts for a
project (with prefix arg) or only operates when you're already in a
project.  Users who just created a marker file in a directory that
Projectile previously considered rootless ended up picking an
unrelated project from the prompt just to get the root cache
flushed.

projectile-discard-root-cache is a focused alternative that empties
projectile-project-root-cache only.  Wired into the menu next to the
existing 'Invalidate cache' entry; deliberately not bound on the
prefix map since the keymap is already dense.
</pre>
</div>
</content>
</entry>
<entry>
<title>Document the project root cache and marker semantics</title>
<updated>2026-04-26T06:45:29+00:00</updated>
<author>
<name>Bozhidar Batsov</name>
<email>bozhidar@toptal.com</email>
</author>
<published>2026-04-26T06:45:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/projectile.git/commit/?id=d8e34d08ae8c2344053717b6f21475bd545646f2'/>
<id>d8e34d08ae8c2344053717b6f21475bd545646f2</id>
<content type='text'>
- New 'Project root cache' subsection in projects.adoc covering
  invalidation, when negative results bite (the recurring 'I created
  .projectile and Projectile still doesn't see it' confusion from
  #1936), and how to reset programmatically.
- Note in 'Customizing Project Detection' that
  projectile-root-top-down only matches regular files while
  projectile-root-bottom-up matches both - this difference is what
  forces VCS markers like .git onto the bottom-up list.
- Expand the file-local override section with a concrete example and
  call out that overrides bypass the cache.
- Rewrite projectile-project-root's docstring to mention caching,
  the tramp-archive unwrap, and the disconnected-remote behaviour
  that callers used to have to read the source to discover.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- New 'Project root cache' subsection in projects.adoc covering
  invalidation, when negative results bite (the recurring 'I created
  .projectile and Projectile still doesn't see it' confusion from
  #1936), and how to reset programmatically.
- Note in 'Customizing Project Detection' that
  projectile-root-top-down only matches regular files while
  projectile-root-bottom-up matches both - this difference is what
  forces VCS markers like .git onto the bottom-up list.
- Expand the file-local override section with a concrete example and
  call out that overrides bypass the cache.
- Rewrite projectile-project-root's docstring to mention caching,
  the tramp-archive unwrap, and the disconnected-remote behaviour
  that callers used to have to read the source to discover.
</pre>
</div>
</content>
</entry>
<entry>
<title>Soft-deprecate prefix-less dirconfig entries</title>
<updated>2026-04-25T22:06:17+00:00</updated>
<author>
<name>Bozhidar Batsov</name>
<email>bozhidar@toptal.com</email>
</author>
<published>2026-04-25T22:06:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/projectile.git/commit/?id=6be2d06216a74b09b96315c6878fad8f3923d7e1'/>
<id>6be2d06216a74b09b96315c6878fad8f3923d7e1</id>
<content type='text'>
The implicit "any unprefixed line is an ignore pattern" rule is the
last source of subtle parser surprises — it's the reason why a
single leading space silently changes a +-keep into a literal ignore
pattern, and it makes typo'd comments slip through as ignores.

Mark these lines as :legacy-ignore in the classifier, record them
in a new prefixless-ignore slot on the dirconfig struct, and emit a
one-time warning per project listing the offending entries. The
behavior is unchanged — the lines still go into the ignore list —
but users now get a nudge to write them as -entry. The warning can
be silenced via projectile-warn-on-prefixless-dirconfig-lines.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The implicit "any unprefixed line is an ignore pattern" rule is the
last source of subtle parser surprises — it's the reason why a
single leading space silently changes a +-keep into a literal ignore
pattern, and it makes typo'd comments slip through as ignores.

Mark these lines as :legacy-ignore in the classifier, record them
in a new prefixless-ignore slot on the dirconfig struct, and emit a
one-time warning per project listing the offending entries. The
behavior is unchanged — the lines still go into the ignore list —
but users now get a nudge to write them as -entry. The warning can
be silenced via projectile-warn-on-prefixless-dirconfig-lines.
</pre>
</div>
</content>
</entry>
<entry>
<title>Document the dirconfig format more precisely</title>
<updated>2026-04-25T17:56:57+00:00</updated>
<author>
<name>Bozhidar Batsov</name>
<email>bozhidar@toptal.com</email>
</author>
<published>2026-04-25T17:56:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/projectile.git/commit/?id=54387baa2e2bd7af9866abd27f5454da71cdbd22'/>
<id>54387baa2e2bd7af9866abd27f5454da71cdbd22</id>
<content type='text'>
The parser docstring only described + and - prefixes even though the
function returns a 3-tuple including the ! ensure bucket. Fill that
in, and pull the path-vs-glob distinction out of the prose in
projects.adoc into a subsection of its own — that ambiguity is at
the root of recurring confusion (#740, #1109, #680, #1941).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The parser docstring only described + and - prefixes even though the
function returns a 3-tuple including the ! ensure bucket. Fill that
in, and pull the path-vs-glob distinction out of the prose in
projects.adoc into a subsection of its own — that ambiguity is at
the root of recurring confusion (#740, #1109, #680, #1941).
</pre>
</div>
</content>
</entry>
<entry>
<title>Document moderate-priority undocumented configuration options</title>
<updated>2026-02-13T14:55:11+00:00</updated>
<author>
<name>Bozhidar Batsov</name>
<email>bozhidar@batsov.dev</email>
</author>
<published>2026-02-13T14:55:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/projectile.git/commit/?id=5f91a27fa834bf006d60f6126f14acb26f7bb9e8'/>
<id>5f91a27fa834bf006d60f6126f14acb26f7bb9e8</id>
<content type='text'>
- VCS commands: table of all per-VCS command variables, plus
  projectile-git-submodule-command and projectile-git-ignored-command
- Caching: projectile-files-cache-expire
- Tags: projectile-tags-file-name, projectile-tags-backend
- Searching: projectile-use-git-grep
- Project name: projectile-project-name-function
- Dirty projects: projectile-vcs-dirty-state
- Hooks: projectile-find-file-hook, projectile-find-dir-hook,
  projectile-before-switch-project-hook
- Misc: projectile-verbose, projectile-show-menu
- Ignore/unignore: projectile-globally-ignored-file-suffixes,
  projectile-global-ignore-file-patterns,
  projectile-globally-unignored-files,
  projectile-globally-unignored-directories
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- VCS commands: table of all per-VCS command variables, plus
  projectile-git-submodule-command and projectile-git-ignored-command
- Caching: projectile-files-cache-expire
- Tags: projectile-tags-file-name, projectile-tags-backend
- Searching: projectile-use-git-grep
- Project name: projectile-project-name-function
- Dirty projects: projectile-vcs-dirty-state
- Hooks: projectile-find-file-hook, projectile-find-dir-hook,
  projectile-before-switch-project-hook
- Misc: projectile-verbose, projectile-show-menu
- Ignore/unignore: projectile-globally-ignored-file-suffixes,
  projectile-global-ignore-file-patterns,
  projectile-globally-unignored-files,
  projectile-globally-unignored-directories
</pre>
</div>
</content>
</entry>
<entry>
<title>Document previously undocumented configuration options</title>
<updated>2026-02-13T14:11:58+00:00</updated>
<author>
<name>Bozhidar Batsov</name>
<email>bozhidar@batsov.dev</email>
</author>
<published>2026-02-13T14:11:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/projectile.git/commit/?id=6a11eff0a66cd35c3dce761125a07fa9e2805795'/>
<id>6a11eff0a66cd35c3dce761125a07fa9e2805795</id>
<content type='text'>
- fd integration: projectile-git-use-fd, projectile-fd-executable,
  projectile-git-fd-args
- Known projects: projectile-known-projects-file,
  projectile-ignored-projects, projectile-ignored-project-function,
  projectile-track-known-projects-automatically
- Buffer filtering: projectile-buffers-filter-function,
  projectile-kill-buffers-filter
- Test/impl toggling: projectile-default-src-directory,
  projectile-default-test-directory, projectile-test-prefix-function,
  projectile-test-suffix-function, projectile-create-missing-test-files
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- fd integration: projectile-git-use-fd, projectile-fd-executable,
  projectile-git-fd-args
- Known projects: projectile-known-projects-file,
  projectile-ignored-projects, projectile-ignored-project-function,
  projectile-track-known-projects-automatically
- Buffer filtering: projectile-buffers-filter-function,
  projectile-kill-buffers-filter
- Test/impl toggling: projectile-default-src-directory,
  projectile-default-test-directory, projectile-test-prefix-function,
  projectile-test-suffix-function, projectile-create-missing-test-files
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix typos in the documentation</title>
<updated>2026-02-13T08:02:48+00:00</updated>
<author>
<name>Bozhidar Batsov</name>
<email>bozhidar@batsov.dev</email>
</author>
<published>2026-02-13T08:02:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/projectile.git/commit/?id=06c1b222331ad2728f8951c0831d6b3d19338d36'/>
<id>06c1b222331ad2728f8951c0831d6b3d19338d36</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Support eat terminal</title>
<updated>2026-01-07T10:46:09+00:00</updated>
<author>
<name>Philippe Vaucher</name>
<email>philippe.vaucher@gmail.com</email>
</author>
<published>2026-01-07T07:05:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/projectile.git/commit/?id=6bc4e8125c6474fedd54b5c88510e96425da9700'/>
<id>6bc4e8125c6474fedd54b5c88510e96425da9700</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
