- Consider Ensime configuration file as root marker,
.ensime
. - #1057: Make it possible to disable automatic project tracking via
projectile-track-known-projects-automatically
.
- Add R DESCRIPTION file to
projectile-project-root-files
. - Ignore backup files in
projectile-get-other-files
. - Ignore Ensime cache directory,
.ensime_cache
. - #364:
projectile-add-known-project
can now be used interactively. projectile-mode
is now a global mode.projectile-find-tag
now defaults to xref on Emacs 25.1+.- Add relation between
.h
and.cc
files inprojectile-other-file-alist
. - Cache the name of the current project for mode-line display of the project name.
- #1078: For projectile-grep/ag use default value like grep/rgrep/ag.
- Don't treat
package.json
as a project marker.
- #1072: Create test files only within the project.
- #1063: Support Fossil checkouts on Windows.
- #1024: Do not cache ignored project files.
- #1022: Scan for Fossil's checkout DB, not its config DB.
- #1007: Make use of
projectile-go-function
. - #1011: Save project files before running project tests.
- #1099: Fix the behaviour of
projectile-purge-dir-from-cache
. - #1067: Don't mess up
default-directory
after switching projects.
- Add elixir project type.
- Add emacs-cask project type.
- Add boot-clj project type.
- Add racket project type.
- Add support for projects using gradlew script.
- Prefer Haskell stack projects over cabal projects.
- Add ability to use elisp functions for test, compile and run commands.
- Consider
TAGS
andGTAGS
root markers. - Add relation between the
.h
,.cxx
,.ixx
and.hxx
files inprojectile-other-file-alist
. - Add relation between the
.hpp
and.cc
files inprojectile-other-file-alist
. - Add support to specify project name either via
.dir-locals.el
or by providing a customizedprojectile-project-name-function
. - Add a command to switch between open projects (
projectile-switch-open-project
). - Add a command to edit the .dir-locals.el file of the project (
projectile-edit-dir-locals
). - Add file local variable
projectile-project-root
, which allows overriding the project root on a per-file basis. This allows navigating a different project from, say, an org file in a another git repository. - Add
projectile-grep-finished-hook
. - Ignore file suffixes listed in
projectile-globally-ignored-file-suffixes
when usingprojectile-grep
andprojectile-ag
. - Add
projectile-replace-regexp
, which supports replacement by regexp within a project.projectile-replace
is now used solely for literal replacements. - New command
projectile-run-shell
(C-c p x s). - New command
projectile-run-eshell
(C-c p x e). - New command
projectile-run-term
(C-c p x t). - Let user unignore files in
.projectile
with the ! prefix. - Add a command to add all projects in a directory to the cache (
projectile-discover-projects-in-directory
). - Add a command to list dirty version controlled projects (
projectile-browse-dirty-projects
).
- Prefer ag's internal .gitignore parsing.
- Added variable to control use of external find-tag implementations.
- Specify
--with-keep.source
argument when installing R projects
- #871: Stop advice for
compilation-find-file
to override other advices. - #557: stack overflow in
projectile-find-tag
. - #955: Error while toggling between test and source file.
- #952: VCS submodules brought in even thought not descendent of project root.
- #576:
projectile-replace
stomps regular expressions. - #957: When opening a specified file from the terminal, do not error inside of
projectile-cache-current-file
. - #984: Error when a project is a symlink that changes target.
- #1013:
projectile-project-buffer-p
may return incorrect result on Windows.
- Add
projectile-before-switch-project-hook
. - Add the ability to specify the project type via
.dir-locals.el
. - Add support for projects using Midje.
- Add the ability to create missing tests automatically (controlled via the
projectile-create-missing-test-files
defcustom). - Add the ability to dynamically decide if a project should be added to
projectile-known-projects
(via newprojectile-ignored-project-function
defcustom). - Add the ability to register new project types dynamically with
projectile-register-project-type
. - Add the ability to specify a project compilation and test commands via
.dir-locals.el
. This is done via the variablesprojectile-project-compilation-cmd
andprojectile-project-test-cmd
. - #489: New interactive command
projectile-run-project
. - Optionally run monky on Mercurial projects.
- Add the ability to specify a project compilation directory relative to the root directory via
.dir-locals.el
with the variableprojectile-project-compilation-dir
. - When there is a selected region, projectile-ag, projectile-grep, projectile-replace and projectile-find-tag uses it's content as a search term instead of symbol at point.
- Rename
projectile-switch-project-hook
toprojectile-after-switch-project-hook
. projectile-compile-project
now offers appropriate completion targets even when called from a subdirectory.- Add an argument specifying the regexp to search to
projectile-grep
. - Use
help-projectile-grep
instead ofhelm-find-file
when selecting a project. - Omit current buffer from
projectile-switch-to-buffer
andprojectile-switch-to-buffer-other-window
choices.
- #721: Remove current buffer from
helm-projectile-switch-project
. - #667 Use
file-truename
when caching filenames to prevent duplicate/symlinked filepaths from appearing when opening a project file. - #625: Ensure the directory has a trailing slash while searching for it.
- #763: Check for
projectile-use-git-grep
inhelm-projectile-grep
- Fix
projectile-parse-dirconfig-file
to parse non-ASCII characters properly.
- Replace Helm equivalent commands in
projectile-commander
when using Helm. - Add replacement commands projectile-grep, projectile-ack and projectile-ag with its Helm version.
- Add virtual directory manager that allows to create/update (add or delete files) a Dired buffer based on Projectile files.
- Add a new Helm command:
helm-projectile-find-file-in-known-projects
that opens all files in all known projects. - Add an action for
helm-projectile-switch-project
to delete multiple marked projects. - Add the ability to retrieve files in all sub-projects under a project root.
- Add
projectile-find-file-dwim
andhelm-projectile-find-file-dwim
commands. - Provide actual Helm commands for common Projectile commands.
- Use existing Helm actions and map in
helm-find-files
that allowshelm-source-projectile-files-list
to behave likehelm-find-files
, such as multifile selection and opening or delete on selected files. - Add compile action to
helm-projectile
. - Allows using Eshell and Magit outside of a project in
helm-projectile
. - Add Helm action for incremental grep in the selected projects.
- Add command projectile-find-other-file Switch between files with the same name but different extensions.
- Add Helm interface to switch project. For more details checkout the file README.md.
- Make the mode line format customizable with
projectile-mode-line
- Add support for
cargo.toml
projects - Try to use projectile to find files in compilation buffers
- Support
helm
as a completion system - New command
projectile-project-info
displays basic info about the current project. - New
defcustom
projectile-globally-ignored-buffers
allows you to ignore buffers by name - New
defcustom
projectile-globally-ignored-file-suffixes
allows you to globally ignore files with particular extensions
- get-other-files returns more accurate results for files with the same name placed under different directories
- Collect search tool (
grep
,ag
,ack
) keybindings under a common keymap prefix (C-c p s
) - Remove
defcustom
projectile-remember-window-configs
in favor ofpersp-projectile.el
. - Progress reporter for the native indexing method.
- Fix
projectile-regenerate-tags
to work in directories that include spaces. - Prevent
projectile-kill-buffers
from trying to kill indirect buffers. - #412: Handle multiple possible targets in
projectile-toggle-between-implementation-or-test
.
- Added support for default file glob pattern to
projectile-grep
- added file existence cache with defcustoms
projectile-file-exists-remote-cache-expire
andprojectile-file-exists-local-cache-expire
. - added new defcustoms
projectile-project-root-files-top-down-recurring
,projectile-project-root-files-bottom-up
andprojectile-project-root-files-functions
. - Added new command
projectile-save-project-buffers
. - Added new command
projectile-cleanup-known-projects
. - Added new commands
projectile-display-buffer
andprojectile-find-dir-other-window
. - Added new interacive function
projectile-project-buffers-other-buffer
which runs newprojectile-project-buffers-non-visible
function, the former is bound toC-c p ESC
. - New variable
projectile-enable-idle-timer
turns on an idle timer which runs the hookprojectile-idle-timer-hook
everyprojectile-idle-timer-seconds
seconds when non-nil. - New defcustom
projectile-remember-window-configs
will makeprojectile-switch-project
restore the most recent window configuration (if any) of the target project. - New command
projectile-run-command-in-root
. - New command
projectile-run-shell-command-in-root
. - New command
projectile-run-async-shell-command-in-root
. - New defcustom
projectile-use-git-grep
will makeprojectile-grep
usegit grep
for git projects. - Added new
projectile-commander
methods ?v and ?R which runprojectile-vc
andprojectile-regenerate-tags
, respectively. projectile-vc
will usemagit-status
if available.- New functions
projectile-find-implementation-or-test
andprojectile-find-implementation-or-test-other-window
, the later is bound toC-c p 4 t
. - New defcustoms
projectile-test-prefix-function
andprojectile-test-suffix-function
allow users to customize how projectile identifies test files by project type. projectile-grep
will ask for a file pattern if invoked with a prefix argument.- Subversion checkouts are now automatically detected.
- CVS checkouts are now automatically detected.
- added
projectile-persp-switch-project
command to make perspective mode work along with projectile. - Changed
projectile-mode-line-lighter
to a defcustom variable to make mode line indicator prefix customizable. - New command
projectile-find-file-in-known-projects
. - New defcustom
projectile-ignored-projects
allows you to specify projects that shouldn't be added to the known projects list. - New command
projectile-remove-current-project-from-known-projects
. - New defcustom
projectile-buffers-filter-function
. - New defcustom
projectile-sort-order
. - New function
projectile-process-current-project-buffers
. - New function
projectile-process-current-project-files
.
- The presence of a
Makefile
is no longer taken as an indicator of the project root by default, since recursive make is unfortunately a common occurrence (affectsprojectile-project-root-files
). - Projectile is now able to find the project pertaining to a symlink pointing to a version-controlled file.
- Drop
projectile-ack-function
defcustom. projectile-command-map
is now the keymap referenced by theprojectile-keymap-prefix
inprojectile-mode-map
. This allows modification of the inner map, and allows additional prefix keys to reference it.
- Modified
projectile-ack
to append toack-and-a-half-arguments
instead of overriding them. - [#229] Fix
projectile-find-file-in-directory
's behavior for project directories projectile-toggle-between-implementation-or-test
shows understandable error if current buffer is not visiting a file.- [#244] Correct folder picked up by
projectile-ack
after project-switch. - [#182] Invalidate project cache if .projectile is modified.
- Added new command
projectile-find-file-other-window
. - Added new command
projectile-switch-to-buffer-other-window
. - Added new command
projectile-find-file-in-directory
that allows you to jump to files in any directory. .projectile
is now always taken into account.projectile-switch-project
's behavior is now customizable viaprojectile-switch-project-action
.- Added support for Gradle projects.
- Added support for
Ag
. - Added new command
projectile-purge-file-from-cache
. - Added new command
projectile-purge-dir-from-cache
. - Added new command
projectile-find-tag
. - Added new command
projectile-commander
. It allows you to quickly run many Projectile commands with a single key. Very useful as a project-switching action. projectile-switch-project
now supports a prefix argument. When it's present the switch action isprojectile-commander
.
- Replaced variable
projectile-use-native-indexing
withprojectile-indexing-method
. - Corrected grammar on error message for not being in a project.
projectile-find-test-file
now properly displays only test files (#145).
projectile-invalidate-cache
now accepts a prefix argument. When present you'll be prompted for the project whose cache to invalidate.- New command
projectile-find-dir
works similar toprojectile-find-file
- displays the project's dirs and opens them withdired
. It's bound toC-c p d
. - Added support for
grizzl
as a completion system. - Added support for
fossil
projects. - Added support for
Symfony 2
project. - New command
projectile-clear-known-projects
removes all known projects. - New command
projectile-remove-known-project
prompts you for a known project to remove.
- Fixed
projectile-replace
, which was broken from the use of relative paths - #103 -
projectile-switch-project
does not require a project to work - Don't show hidden buffers in projectile-project-buffers
- Rebound
projectile-compile-project
to C-c p c - Rebound
projectile-dired
to C-c p D - Reworked
projectile-compile-project
andprojectile-test-project
to be smarter, more configurable and closer in behavior to the stockcompile
command projectile-switch-project
(C-c p s) now runsprojectile-find-file
instead ofdired
.
- Display recentf files in helm-projectile.
- #95 - handle properly missing project root
- Use fast external tools to find project files when possible. This is the default option on all Unices.
- Removed obsolete command
projectile-reindex-project
. - Removed obsolete command
projectile-open
. - Introduced support for finding tests and switching between code and tests.
- Implement basic project type detection.
- Add a simple version reporting command projectile-version.
- Display relative paths to project files instead of disambiguated filenames.
- Directories listed in .projectile file are excluded when tags are generated.
- Remembers visited projects and may switch between them with
projectile-switch-project
. - Supports
lein {compile|test}
in Clojure projects. - Support projects only for subdirs of the project root.
- Add the ability to manually cache files.
- #57 - properly set the current working dir, before invoking shell commands
- #71 - correct regenerate tags keybinding in the README
- Move menu entry under
Tools
- Show indexing message only when doing native project indexing
- Massive performance improvements