Version 3.3.0 of package Projectile has just been released in NonGNU ELPA.
You can now find it in M-x list-packages RET.

Projectile describes itself as:

  ============================================
  Manage and navigate projects in Emacs easily
  ============================================

More at https://elpa.nongnu.org/nongnu/projectile.html

## Summary:

  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.

## Recent NEWS:

# Changelog

<!-- Entries are one line per item and section headings repeat for every 
release,
     so the line-length and duplicate-heading rules don't fit this file. -->
<!-- markdownlint-disable MD013 MD024 -->

## 3.3.0 (2026-07-27)

### New features

- [#1867](https://github.com/bbatsov/projectile/issues/1867): Add 
`projectile-per-command-compilation-buffer`, so compiling, testing and running 
a project no longer overwrite each other's output (`*compilation*<test>`).
- [#2121](https://github.com/bbatsov/projectile/pull/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](https://github.com/bbatsov/projectile/pull/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](https://github.com/bbatsov/projectile/pull/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](https://github.com/bbatsov/projectile/pull/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](https://github.com/bbatsov/projectile/pull/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](https://github.com/bbatsov/projectile/pull/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](https://github.com/bbatsov/projectile/pull/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](https://github.com/bbatsov/projectile/pull/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](https://github.com/bbatsov/projectile/pull/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](https://github.com/bbatsov/projectile/pull/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](https://github.com/bbatsov/projectile/pull/2096): Add an optional 
Embark/Marginalia integration, wired via `with-eval-after-load` so neither 
package becomes a dependency.
...
...

Reply via email to