projectile 
- Description
- Manage and navigate projects in Emacs easily
- Latest
- projectile-3.5.0snapshot0.20260916.60.tar (.sig), 2026-Sep-16, 1.05 MiB
- Maintainer
- Bozhidar Batsov <bozhidar@batsov.dev>
- Other versions:
- release version
- Website
- https://github.com/bbatsov/projectile
- 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.20260903.56.tar.lz | 2026-Sep-03 | 217 KiB |
| projectile-3.5.0snapshot0.20260903.53.tar.lz | 2026-Sep-03 | 217 KiB |
| projectile-3.5.0snapshot0.20260901.50.tar.lz | 2026-Sep-01 | 217 KiB |
| projectile-3.5.0snapshot0.20260831.48.tar.lz | 2026-Aug-31 | 216 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
- #2182: Add
projectile-todos-in-projectsandprojectile-multi-occur-in-projects, so every sibling command now has a public generic taking any list of projects behind it and a command for a group of your own is a two-line wrapper for all five. - #2181: Sapling and Bazaar projects can now list their own ignored files, via the new
projectile-sapling-ignored-commandandprojectile-bzr-ignored-command. - #2180: Every shell backend can now open in another window (
s-p x 4 <key>), not just vterm, eat and ghostel:shell,eshell,ielm,termand the backend-dispatchingprojectile-rungained-other-windowcommands. - #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
- #2184: Rename the options that still broke their naming schemes:
projectile-ignored-project-patternstoprojectile-ignored-project-regexps(it holds regexps, and since 3.4 "patterns" means globs),projectile-track-known-projects-automaticallytoprojectile-auto-track-known-projects,projectile-watch-directory-limittoprojectile-watch-max-directories,projectile-dashboard-recent-filestoprojectile-dashboard-max-recent-files(a count, not a list) andprojectile-session-autosavetoprojectile-session-auto-save. The old names still work as obsolete aliases. - #2179:
projectile-session-auto-savenow 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. ... ...