NonGNU-devel ELPA - projectile

projectile Atom Feed

Description
Manage and navigate projects in Emacs easily
Latest
projectile-2.10.0.20260620.133.tar (.sig), 2026-Jun-20, 440 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-2.10.0.20260620.128.tar.lz2026-Jun-2080.6 KiB
projectile-2.10.0.20260619.126.tar.lz2026-Jun-1980.3 KiB
projectile-2.10.0.20260615.120.tar.lz2026-Jun-1579.1 KiB
projectile-2.10.0.20260604.112.tar.lz2026-Jun-0476.1 KiB
projectile-2.10.0.20260429.111805.tar.lz2026-May-1975.9 KiB
projectile-2.10.0snapshot0.20260429.111805.tar.lz2026-Apr-2975.9 KiB
projectile-2.10.0snapshot0.20260228.85137.tar.lz2026-Feb-2865.4 KiB
projectile-2.9.1.0.20260214.223545.tar.lz2026-Feb-1563.8 KiB
projectile-2.8.0.0.20240210.170605.tar.lz2024-Feb-1060.2 KiB
projectile-2.5.0.0.20210819.81714.tar.lz2021-Aug-1963.2 KiB

News

Changelog

master (unreleased)

Changes
  • #1872: Clarify in the projectile-register-project-type docstring and the manual that a list of marker-files must all be present for a type to match (logical AND), and that a predicate function should be used to match when any one of several files is present.
  • #1935: The emacs-eask project type now has a test command (eask test), so projectile-test-project works out of the box for Eask projects. Eask auto-detects the test framework (buttercup, ERT, ...), so no framework-specific type is needed.
  • #1638: Document in projectile-svn-command that it runs non-interactively and therefore needs SVN credentials to be cached up front for authenticated remotes.
  • Keep a separate command history per lifecycle command type (configure, compile, test, install, package, run), so the prompt's M-p history no longer mixes, say, test commands with compile commands. projectile-repeat-last-command still uses the combined per-project history and is unaffected.
  • Remove the unused private projectile--init-known-projects alias (a leftover compatibility shim for the old known-projects API; nothing in the codebase referenced it).
  • projectile-get-immediate-sub-projects skips the git submodule foreach shell-out for git projects with no .gitmodules file anywhere up the parent chain. Hot path for monorepos that index the project root often.
  • projectile-discover-projects-in-directory now uses directory-files-no-dot-files-regexp to skip . and .. at the C level instead of doing the post-filter in Elisp - matches the indexing walker.
  • Document the anchored vs *-prefixed semantics of projectile-globally-ignored-directories, the find fallback's lack of common directory exclusions when fd isn't available, and how fd/git ls-files handle deleted-but-unstaged files differently.
  • Speed up native indexing on large trees: projectile-index-directory now hashes the ignored-files / ignored-directories / globally-ignored-directory-names lists once per indexing call (the per-file member' scans were O(N*M)), expands dirconfig glob patterns once per directory level instead of once per (file, pattern) pair, and accumulates results into a shared cell so we no longer pay for anapply append' at each recursion level.
  • projectile-remove-ignored (hybrid post-processing) now hashes the ignored-files basenames and pre-splits ignored-dirs into prefix-match and any-segment groups, so the per-file inner loops drop from O(M) seq-some walks to O(1) hash lookups (or O(segments) for *-prefixed entries).
  • Hybrid indexing now batches the external command into a single invocation when the project's .projectile declares multiple + keep entries, instead of shelling out once per kept subdirectory. The kept paths are passed to the indexing tool (e.g. git ls-files, fd, find) as positional pathspecs and submodule files outside those subdirectories are filtered out. Resolves the long-standing TODO in projectile-project-files.
  • projectile-files-via-ext-command now accepts an optional pathspecs argument; entries are shell-quoted before being appended to the command. projectile-dir-files-alien similarly accepts an optional subdirs argument that threads through.
  • Document the hybrid indexing method in the manual and add a feature matrix showing which Projectile knobs (dirconfig, global ignores/unignores, sort order, default caching) apply under native/hybrid/alien.
  • projectile-dir-files-alien now accepts an optional vcs argument so the dispatcher can thread through the already-resolved VCS instead of recomputing it. Existing single-argument callers are unaffected.
  • projectile-index-directory (native indexing) now relies on directory-files-no-dot-files-regexp to filter out . and .. at the C level instead of walking past them in Elisp. ... ...