NonGNU ELPA - projectile

projectile Atom Feed

Description
Manage and navigate projects in Emacs easily
Latest
projectile-3.3.0.tar (.sig), 2026-Jul-27, 900 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.2.1.tar.lz2026-Jul-13 148 KiB
projectile-3.2.0.tar.lz2026-Jul-12 148 KiB
projectile-3.1.0.tar.lz2026-Jul-04 120 KiB
projectile-3.0.0.tar.lz2026-Jul-0193.5 KiB
projectile-2.9.1.tar.lz2025-Feb-1361.7 KiB
projectile-2.9.0.tar.lz2025-Feb-1261.5 KiB
projectile-2.8.0.tar.lz2024-Mar-3159.6 KiB
projectile-2.7.0.tar.lz2022-Nov-2258.2 KiB
projectile-2.6.0.tar.lz2022-Oct-2556.6 KiB
projectile-2.5.0.tar.lz2021-Aug-1163.0 KiB

News

Changelog

3.3.0 (2026-07-27)

New features
  • #1867: Add projectile-per-command-compilation-buffer, so compiling, testing and running a project no longer overwrite each other's output (*compilation*<test>).
  • #2121: Recognize the subprojects of a monorepo: projectile-find-file-in-subproject (s-p c m f) scopes file completion to one part of the repository, projectile-project-subprojects lists them, and the subproject lifecycle commands now work in any project rather than only where the module's manifest matches the project's own type (projectile-subproject-markers).
  • #2120: projectile-run-task now also offers the tasks a project's own tooling defines - npm scripts, Deno tasks, Composer scripts, just recipes, go-task tasks and Make targets - named after the tool that defines them (npm:build) and switched off with projectile-discover-tasks.
  • #2119: Add 34 project types that used to come out as generic projects: node (a package.json with no lock file), bun, deno, nx, turborepo, python-uv, python-pdm, php-composer, php-laravel, xcode, flutter, terraform, pulumi, helm, ansible, docker-compose, just, mise, buck2, pants, gleam, babashka, scala-cli, dub, fpm, alire, foundry, godot, platformio, hugo, jekyll, zola, mkdocs and quarto.
  • #2119: A project type marker can now be an (:any "file1" "file2") clause, so a build file with several spellings no longer needs a predicate function.
  • #2115: Add projectile-replace-undo (s-p u), which reverts the last replace applied from the reviewable replace buffer, leaving alone any file whose replaced text has changed since.
  • #2114: Add project-scoped bookmarks - projectile-bookmark-set (s-p B s), projectile-bookmark-jump (s-p B j) and projectile-bookmark-delete (s-p B d) - which are plain Emacs bookmarks with the completion scoped to the current project (see projectile-bookmark-scope).
  • #2113: Add projectile-todos (s-p s t), which collects the project's TODO/FIXME-style annotations (projectile-todo-keywords) into the reviewable search buffer.
  • #2112: Add projectile-dashboard (s-p P), a buffer summarising the current project - name, root, type, file count, branch and working tree status, most-visited files, tasks and lifecycle commands, each of them a button - which also works as a projectile-switch-project-action.
  • #2111: Add projectile-doctor (s-p H), which reports how Projectile sees the current project - root, type, indexing method and command, available tools, cache state and effective ignore rules - and ends with a list of concrete suggestions.
  • #2104: Alien indexing now honors Projectile's ignore rules, which it previously skipped entirely, by pushing them into the external tool.
    • Alien projects will list fewer files than before; set projectile-alien-honors-ignores to nil for the old behavior.
    • Tools that can't express exclusions (svn, fossil, bzr, darcs, pijul, plain find) are filtered in Emacs Lisp instead, and dirconfig + keep entries stay hybrid/native only.
  • #2096: Add an optional Embark/Marginalia integration, wired via with-eval-after-load so neither package becomes a dependency. ... ...