How does the alien indexing in projectile work?
The alien indexing works in a pretty simple manner – it simply shells out to a command that returns the list of files within a project. For version-controlled projects by default Projectile will use the VCS itself to obtain the list of files. As an example, here is the command that Projectile uses for Git projects:
Where do you find projectile in a project?
Normally, you’d be using Projectile’s commands from within some project directory. If, however, you invoke a command outside of a project, by default you’ll be prompted for a project to switch to. That behavior is controlled by projectile-require-project-root .
How to open a project root in projectile?
Open project root in vc-dir or magit. Similar to projectile-find-file but lists all files in all known projects. Since the total number of files could be huge, it is beneficial to enable caching for subsequent usages. If point is on a filepath, Projectile first tries to search for that file in project:
How does projectile search for files on a filepath?
If point is on a filepath, Projectile first tries to search for that file in project: If it finds just a file, it switches to that file instantly. This works even if the filename is incomplete, but there’s only a single file in the current project that matches the filename at point.
How does projectile support caching in Emacs Lisp?
Since indexing a big project is not exactly quick (especially in Emacs Lisp), Projectile supports caching of the project’s files. The caching is enabled by default whenever native indexing is enabled. To enable caching unconditionally use this snippet of code:
Why does projectile do so many existence checks?
Projectile does many file existence checks since that is how it identifies a project root. Normally this is fine, however in some situations the file system speed is much slower than usual and can make emacs “freeze” for extended periods of time when opening files and browsing directories.
Who is the creator of projectile.el?
Cannot retrieve contributors at this time 5468 lines (4774 sloc) 230 KB Raw Blame Open with Desktop View raw View blame ;;; projectile.el — Manage and navigate projects in Emacs easily -*- lexical-binding: t-*- ;; Copyright © 2011-2021 Bozhidar Batsov