NonGNU-devel ELPA - projectile

projectile Atom Feed

Description
Manage and navigate projects in Emacs easily
Latest
projectile-3.3.0snapshot0.20260718.4.tar (.sig), 2026-Jul-18, 750 KiB
Maintainer
Bozhidar Batsov <bozhidar@batsov.dev>
Website
https://github.com/bbatsov/projectile
Browse ELPA's repository
CGit or Gitweb
All Dependencies
compat (.tar)
Badge

To install this package from Emacs, use package-install or list-packages.

Full description

Projectile is a project interaction library for Emacs.
It provides a powerful set of features operating at the project
level, as well as simple heuristics to identify projects.

See the README and https://docs.projectile.mx for more details.

Old versions

projectile-3.3.0snapshot0.20260715.2.tar.lz2026-Jul-15 148 KiB
projectile-3.3.0snapshot0.20260713.0.tar.lz2026-Jul-13 148 KiB
projectile-3.3.0snapshot0.20260712.1.tar.lz2026-Jul-12 148 KiB
projectile-3.2.0snapshot0.20260712.10.tar.lz2026-Jul-12 148 KiB
projectile-3.1.0.0.20260705.10.tar.lz2026-Jul-05 139 KiB
projectile-3.0.0.0.20260703.27.tar.lz2026-Jul-03 101 KiB
projectile-2.10.0.20260701.159.tar.lz2026-Jul-0188.7 KiB
projectile-2.9.1.0.20260214.223545.tar.lz2026-Feb-1563.8 KiB
projectile-2.8.0.0.20240210.170605.tar.lz2024-Feb-1060.2 KiB
projectile-2.5.0.0.20210819.81714.tar.lz2021-Aug-1963.2 KiB

News

Changelog

master (unreleased)

Changes
  • Drop the standalone package headers (Version, Package-Requires) from projectile-consult.el. It's an optional module shipped inside the Projectile package, not a package of its own, and the phantom Package-Requires made build tooling treat it as one (e.g. it broke eldev-based test runs on Emacs 28.x by enforcing Consult's Emacs 29.1 floor on the whole project). Its runtime needs (Consult 2.0+, hence Emacs 29.1+) are unchanged and documented in the file and the manual.

3.2.1 (2026-07-13)

Bugs fixed
  • #2094: Fix a wrong-type-argument stringp crash when running projectile-search (a 3.2.0 regression): the search-prompt tool tag now accepts the backend name symbol, not just a string.

3.2.0 (2026-07-12)

New features
  • Add reviewable read-only search commands, a search-only sibling of the reviewable replace UI.
    • projectile-search-review (s R) searches for a literal string; projectile-search-regexp-review (s X) searches for an Emacs regexp, honoring full Emacs regexp syntax.
    • Matches are gathered into a read-only *projectile-search* buffer, grouped by file, one LINE:COL: CONTEXT line per match with the matched span highlighted; there is no preview, no per-match toggle and no apply.
    • The buffer reuses the replace reviewer's navigation, case/regexp toggles (c/x), line and file filters (k/d/K/D), re-search (g) and grep-mode export (e).
    • r bridges the current search to the replace reviewer, carrying over the term, literal-ness and case setting and prompting only for the replacement.
    • A literal projectile-search-review accelerates its scan with ripgrep when rg is installed, streaming matches in near-instantly on large projects.
      • Controlled by projectile-search-use-ripgrep (default on); set it to nil to always use the pure-elisp scan.
      • The ripgrep fast-path follows ripgrep's ignore rules plus Projectile's ignore globs, which can differ slightly from the elisp path's file set (e.g. hidden files, symlinks); regexp search and the whole replace reviewer always use the portable elisp scan.
    • The commands are available from projectile-dispatch and the Projectile menu.
  • #1924: Add reviewable project-wide replace commands that let you preview matches and choose which to apply, instead of the blocking, file-by-file query-replace walk of projectile-replace.
    • projectile-replace-review (R) does a literal replace; projectile-replace-regexp-review does an Emacs-regexp replace whose replacement can reference capture groups.
    • Matches are gathered in Emacs Lisp, so the regexp command honors full Emacs regexp syntax and the preview reflects exactly what will be edited, including unsaved changes in open buffers.
    • The *projectile-replace* results buffer shows a per-file, per-match preview where each match can be toggled on or off; ! (or C-c C-c) applies just the enabled ones, in any order.
    • Applying edits each file from the bottom up, edits open buffers in place under a single undo step, writes closed files back preserving their coding system, and skips buffers modified since the search rather than corrupting them.
    • The results buffer can reshape the search in place, each action re-scanning and re-rendering the previews:
      • c toggles case sensitivity (seeded from case-fold-search).
      • x toggles between literal and Emacs-regexp matching, refusing an invalid regexp rather than erroring.
      • k/d keep or flush the matches whose line matches a regexp; K/D do the same by file name; re-searching with g restores anything filtered away.
    • A status line at the top shows the term, replacement, match and file counts, the mode flags, and a note when the list has been filtered. ... ...