projectile 
- Description
- Manage and navigate projects in Emacs easily
- Latest
- projectile.tar (.sig), 2026-Aug-10, 1020 KiB
- Maintainer
- Other versions:
- development 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.4.0.tar.lz | 2026-Aug-10 | 204 KiB |
| projectile-3.4.0.tar | 2026-Aug-10 | 1020 KiB |
| projectile-3.3.0.tar.lz | 2026-Jul-27 | 178 KiB |
| projectile-3.2.1.tar.lz | 2026-Jul-13 | 148 KiB |
| projectile-3.2.0.tar.lz | 2026-Jul-12 | 148 KiB |
| projectile-3.1.0.tar.lz | 2026-Jul-04 | 120 KiB |
| projectile-3.0.0.tar.lz | 2026-Jul-01 | 93.5 KiB |
| projectile-2.9.1.tar.lz | 2025-Feb-13 | 61.7 KiB |
| projectile-2.9.0.tar.lz | 2025-Feb-12 | 61.5 KiB |
| projectile-2.8.0.tar.lz | 2024-Mar-31 | 59.6 KiB |
| projectile-2.7.0.tar.lz | 2022-Nov-22 | 58.2 KiB |
| projectile-2.6.0.tar.lz | 2022-Oct-25 | 56.6 KiB |
| projectile-2.5.0.tar.lz | 2021-Aug-11 | 63.0 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. ... ...