projectile 
- Description
- Manage and navigate projects in Emacs easily
- Latest
- projectile-3.4.0snapshot0.20260730.29.tar (.sig), 2026-Jul-30, 970 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.4.0snapshot0.20260729.20.tar.lz | 2026-Jul-29 | 191 KiB |
| projectile-3.4.0snapshot0.20260729.16.tar.lz | 2026-Jul-29 | 190 KiB |
| projectile-3.4.0snapshot0.20260728.15.tar.lz | 2026-Jul-28 | 189 KiB |
| projectile-3.4.0snapshot0.20260727.4.tar.lz | 2026-Jul-27 | 180 KiB |
| projectile-3.3.0snapshot0.20260726.54.tar.lz | 2026-Jul-26 | 179 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
- #2138: Better support for OCaml, Erlang and F#.
projectile-run-test-at-pointlearnserlang-ts-mode(EUnit's_test/_test_functions, run asrebar3 eunit --test=module:name) andfsharp-ts-mode(bindings attributed[<Fact>],[<Theory>],[<Test>],[<TestCase>]or[<Property>], run throughdotnet test --filter).- The
ocaml-duneandrebarproject types gained their run, install, package and source/test directory attributes, and a newerlang-mktype covers the other common Erlang build tool. - OCaml deliberately gets no test-at-point rule: its tests are ordinary values registered with Alcotest or OUnit rather than anything the syntax marks out, so there is nothing to recognize.
- #2137: Ship
:file-kindstables for Phoenix, Laravel and Next.js, soprojectile-find-file-of-kind(s-p j) andprojectile-toggle-related-file(s-p J) work in those out of the box - Rails and Django were the only frameworks covered before.- Phoenix keys a resource's modules on the name they share (
user_controller.ex,user_html.ex,user_live.ex), Laravel on the model's class name, Next.js on the app router's directory. - Adds a
nextjsproject type (next.config.jsand friends) to hang the last of those on.
- Phoenix keys a resource's modules on the name they share (
- #2136:
projectile-run-test-at-pointnow knows Ruby (RSpec and Minitest), Rust, Elixir and Java, on top of the Python, Go and JS/TS rules it shipped with.- Ruby is written the same way whichever framework you use, so the project type picks the runner; Java's picks between Maven and Gradle, and takes the class name from the file.
- ExUnit can't select a test by name from the command line, so Elixir tests are addressed as
FILE:LINE.
- #2135: Add
projectile-ignored-project-patterns, the regexp-matching sibling ofprojectile-ignored-projects(exact paths) andprojectile-ignored-project-function(a predicate), so keeping whole areas of a machine out of the known projects doesn't need a lambda. - #2134: Add
projectile-find-changed-file(s-p C), which completes over the files git reports as staged, unstaged or untracked - or, with a prefix argument, over everything that differs from a revision you pick. - #2133:
projectile-doctorfindings you can act on now carry a button that does it -[enable]for a disabledprojectile-mode,[enable caching]on a large uncached project,[open dirconfig]for a.projectilewith prefix-less lines,[edit .dir-locals.el]for an undetected project type. Pressing one regenerates the report, so the finding answers for itself; findings Projectile can't act on stay plain advice. - #2132: The dashboard gained a "Notable files" section linking the project's README, changelog, license, its type's own manifest and its
.projectile(seeprojectile-dashboard-link-files), plus a count of its open buffers and a summary of the ignore rules in effect.- A project with nothing cached now offers an
[index now]button instead of only reporting that it isn't indexed. - Both report buffers set up
outline-minor-modeover their sections, so a long report folds with the usual outline keys, and their footers derive the keys they advertise withsubstitute-command-keysrather than hardcoding them.
- A project with nothing cached now offers an
- #2131: The
projectile-doctorandprojectile-dashboardbuffers are no longer plain text: section headers, field labels, the project's identity and the doctor's findings are faced by meaning, with the findings colored by severity and sorted so anything wanting action comes first. ... ...