projectile 
- Description
- Manage and navigate projects in Emacs easily
- Latest
- projectile-3.5.0snapshot0.20260829.39.tar (.sig), 2026-Aug-29, 1.04 MiB
- 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.5.0snapshot0.20260828.37.tar.lz | 2026-Aug-28 | 215 KiB |
| projectile-3.5.0snapshot0.20260825.31.tar.lz | 2026-Aug-25 | 215 KiB |
| projectile-3.5.0snapshot0.20260824.25.tar.lz | 2026-Aug-24 | 213 KiB |
| projectile-3.5.0snapshot0.20260818.14.tar.lz | 2026-Aug-18 | 208 KiB |
| projectile-3.4.0snapshot0.20260810.39.tar.lz | 2026-Aug-10 | 204 KiB |
| projectile-3.0.0.0.20260703.27.tar.lz | 2026-Jul-03 | 101 KiB |
| projectile-2.10.0.20260701.159.tar.lz | 2026-Jul-01 | 88.7 KiB |
| projectile-2.9.1.0.20260214.223545.tar.lz | 2026-Feb-15 | 63.8 KiB |
| projectile-2.8.0.0.20240210.170605.tar.lz | 2024-Feb-10 | 60.2 KiB |
| projectile-2.5.0.0.20210819.81714.tar.lz | 2021-Aug-19 | 63.2 KiB |
News
Changelog
master (unreleased)
New features
- #2160: Add
projectile-find-file-in-sibling-projects(s-p n f) andprojectile-search-in-sibling-projects(s-p n s), which work across the family of related projects rather than just the one you're in.- Both are built on
projectile-find-file-in-projectsandprojectile-search-in-projects, which take any list of projects, so a command for a group of your own is a two-line wrapper. - A group search puts every match in one
*projectile-search*buffer, named relative to the directory containing the group, so each one is labelled with the project it came from.
- Both are built on
- #2165: A subproject now has its own project type, so the
s-p c mlifecycle commands build a monorepo member with the member's own toolchain - a Rust crate or Go module under a JavaScript repository runscargo testorgo testrather than the repository'snpm test. Newprojectile-subproject-type.- A member identified by the same manifest as the repository keeps the repository's type: a pnpm or yarn workspace member holds only a
package.jsonand would otherwise fall back to plainnpm.
- A member identified by the same manifest as the repository keeps the repository's type: a pnpm or yarn workspace member holds only a
- #2166: Subprojects now come from the workspace's own member list when the repository declares one - pnpm, npm/yarn/bun, Cargo and
go.work- instead of from scanning for manifests, so test fixtures and excluded crates stop showing up as subprojects. Babel's repository goes from 205 to its declared 162. Newprojectile-subproject-functions.- Build tools that compute their members rather than declaring them (Gradle, Bazel) keep using the scan, which is why it remains the fallback.
- #2163: Add
projectile-switch-to-buffer-in-sibling-projects(s-p n b),projectile-multi-occur-in-sibling-projects(s-p n o) andprojectile-todos-in-sibling-projects(s-p n t), so buffers and annotations follow the same family as files and searches.projectile-switch-to-buffer-in-projectsjoins the two existing generic commands, andprojectile-todosnow shares one implementation with its group form.
Changes
- #2179:
projectile-session-autosavenow defaults tot.projectile-session-restore-on-switchreads what autosave writes, so with the save off by defaultprojectile-session-moderestored layouts it had never recorded and did nothing until you saved one by hand. - #2160:
projectile-switch-sibling-projectmoved froms-p ntos-p n p.s-p nis now the prefix for every command that works across related projects, with each key mirroring the project-wide one a level down, the wayc mdoes for subprojects. - #2168: Search results are redrawn at most every
projectile-search-render-intervalwhile streaming, instead of on every chunk. The buffer is redrawn from scratch, so drawing per chunk cost roughly chunks times matches - two thirds of a sibling-group search went on redrawing. A search across 18 projects drops from 0.32s to 0.18s, and across 122 from 4.8s to 2.8s. - #2164: A search across several projects now uses ripgrep, one run per project, instead of falling back to the Emacs Lisp scanner. The candidate file list is also only computed when something is going to scan it, so the ripgrep path no longer pays for a directory walk it never reads.
Bugs fixed
- #2178: The file-extension filter of
projectile-replaceand friends is now shell-quoted. ag received it unquoted, so a*.elfilter reached it as the regexp.el$and also matched files ending inmodelorpanel; on the other tools an extension containing a quote broke the command outright. ... ...