- #1874: Changes
compilation-find-file-projectile-find-compilation-buffer
to navigate directly to the file if already present on disk to help improve performance in scenarios where there are a large number of project directories. - #1870: Add package command for CMake projects.
- #1875: Add support for Sapling VCS.
- #1876: Add support for Jujutsu VCS.
- #1877: Add custom variable
projectile-cmd-hist-ignoredups
. - Add support for Eask projects.
- #1892: Add category metadata to
completing-read
. (it's used by packages likemarginalia
andembark
) - #1899: Add support for xmake build utility.
- #1895: Modify projectile-mode to add a hook to
buffer-list-update-hook
such that any change in the buffer list will update the selected project. - #1918: Add Zig project discovery.
- Add support for Swift project discovery.
- #1881: Fix
projectile-recentf
when called outside any project. - #1910: Reverts #1895 as those changes appear to cause a significant performance regression across a number of use-cases.
- #1915: Fix dotnet-sln project-type recognition. (check
*.sln
files instead ofsrc/
) - #1850: Ensure the presence of a project in
projectile-compilation-dir
. - #1811: Revert a change to
projectile-ignored-directories
that had converted them into regular expressions. - #1893: Fix
projectile-discover-projects-in-directory
when called interactively.
-
Drop support for Emacs 25.
-
Rework the caching logic. The main changes from before are:
- Each project has its own cache file
- Cache files are consulted only when you request the files of some project
This makes caching both more robust and faster, as before the cache file for all projects was loaded when projectile-mode was enabled.
-
Speed-up load time by moving known projects initialization outside of
projectile-mode
's init.- As a side effect the known projects will be initialized properly even if you're not using
projectile-mode
. - The projects are read from disk the first time you invoke
projectile-switch-project
or a similar command.
- As a side effect the known projects will be initialized properly even if you're not using
- #1862: Add project types "yarn" and "pnpm" separate from "npm".
- #1851: Add ripgrep to
projectile-commander
with binding?p
. - #1833: Add Julia project discovery.
- #1828: Add Nimble-based Nim project discovery.
- Add elm project type.
- #1821: Add
pyproject.toml
discovery for python projects. - #1830: Add command
projectile-run-vterm-other-window
and bind it tox 4 v
.
- #1839: Ensure
projectile-toggle-between-implementation-and-test
also obeysprojectile-project-test-dir
andprojectile-project-src-dir
. - #1285: By default, use fd in Git repositories instead of
git ls-files
when it is installed, in order to solve the problem where deleted files were still shown inprojectile-find-file
until their deletions were staged. The user-facing behavior should be the same, although potentially with different performance characteristics in large Git repositories. The old behavior can be reclaimed by settingprojectile-git-use-fd
to nil. - #1831: Enable the project.el integration only when
projectile-mode
is active. - #1847: Use literal directory name casing when toggling between impl and test.
- Fix
fd
inserting color control sequences when used over tramp. - #1835: Reopening existing vterm buffer in other window
- #1865:
projectile-generic-command
should useprojectile-fd-executable
to find the path for fd.
- #1591: Add
project.el
integration that will make Projectile the default provider for project lookup. - Add new command
projectile-find-references
(bound toC-c C-p ?
andC-c C-p s x
). - #1737: Add helpers for
dir-local-variables
for 3rd party use. Functionsprojectile-add-dir-local-variable
andprojectile-delete-dir-local-variable
wrap their built-in counterparts. They always use.dir-locals.el
from the root of the current Projectile project. - Add a new defcustom (
projectile-dirconfig-file
) controlling the name of the file used as Projectile’s root marker and configuration file. - #1813: Allow project-files to contain wildcards and allow multiple project-files per project type registration. Add a new project-type for .NET solutions.
- #1812: Add a
projectile-root-marked
function for finding roots marked by.projectile
. Prioritize.projectile
above other bottom-up root files.
- #1796: Fix
projectile-root-bottom-up
doesn't always find bottom-most file. - #1799: Fix
projectile-open-projects
lists projects for which all buffers are closed. - #1806: Fix
projectile-project-type
to return the correct project type even when we pass it the DIR arg. As a result of the fix,projectile-expand-root
,projectile-detect-project-type
,projectile-verify-files
,projectile-verify-file
projectile-verify-file-wildcard
,projectile-cabal-project-p
,projectile-dotnet-project-p
,projectile-go-project-p
and the newly factored outprojectile-eldev-project-p
now also takes an &optional DIR arg to specify the directory it is acting on.
- #1790: Add
src-dir
andtest-dir
properties for the mill project type. - #1778: Allow
projectile-replace
to select file extensions when using prefix arg (C-u
). - #1757: Add support for the Pijul VCS.
- #1745: Allow
projectile-update-project-type
to change project type precedence and remove project options. - #1699:
projectile-ripgrep
now supports rg.el. - #1712: Make it possible to hide Projectile's menu. See
projectile-show-menu
. - #1718: Add a project type definition for
GNUMakefile
. - #1747: Add support for preset-based install-commands for CMake projects.
- #1768: Add support for disabling command caching on a per-project basis.
- #1797: Make all project type attributes locally overridable.
- #1803: Add support go-task/task.
- #1781: Fix
rails-rspec
andrails-test
to useapp
instead oflib
assrc-dir
. - #1762: Fix
projectile-globally-ignored-directories
unescaped regex. - #1713: Fix
projectile-discover-projects-in-directory
reordering known projects. - #1514: Fix
projectile-ag
global ignores not in effect. - #1714: Fix
projectile-discover-projects-in-directory
not interactive. - #1734: Make
projectile--find-matching-test
usesrc-dir/test-dir
properties. - #1750: Fix source and test directories for Maven projects.
- #1765: Fix
src-dir
/test-dir
not defaulting to"src/"
and"test/"
withprojectile-toggle-between-implementation-and-test
. - Fix version extraction logic.
- 1654 Fix consecutive duplicates appearing in command history.
- #1755 Cache failure to find project root.
- #1785: Give the project type "go" higher precedence than universal types, namely "make".
- #1447: Restructure the menu.
- #1692: Enable minibuffer completions when reading shell-commands.
- Change the Grails project marker to
application.yml
. - #1789: Progress reporter for recursive progress discovery.
- #1708:
projectile-ripgrep
now consistently searches hidden files.
- #1680: Add support for recursive project discovery.
- #1671/#1679: Allow the
:test-dir
and:src-dir
options of a project to be set to functions for more flexible test switching. - #1672: Add
projectile-<cmd>-use-comint-mode
variables (where<cmd>
isconfigure
,compile
,test
,install
,package
, orrun
). These enable interactive compilation buffers. - #1705: Add project detection for Nix flakes.
- #1550: Make
projectile-regenerate-tags
tramp-aware. - #1673: Fix CMake system-preset filename.
- #1691: Fix
compilation-find-file
advice handling of directory.
- Remove
pkg-info
dependency.
- Add
projectile-update-project-type
function for updating the properties of existing project types. - #1658: New command
projectile-reset-known-projects
. - #1656: Add support for CMake configure, build and test presets. Enabled by setting
projectile-cmake-presets
to non-nil, disabled by default. - Add optional parameters to
projectile-run-shell-command-in-root
andprojectile-run-async-shell-command-in-root
- Add
project
param toprojectile-generate-process-name
. - #1608: Use rebar3 build system by default for Erlang projects.
- Rename
projectile-project-root-files-functions
toprojectile-project-root-functions
. - #1647: Use "-B" in the mvn commands to avoid ANSI coloring clutter in the compile buffer
- #1657: Add project detection for Debian packaging directories.
- #1656: CMake compilation-dir removed to accommodate preset support, commands adjusted to run from project-root, with "build" still being the default build-directory. The non-preset test-command now uses "cmake" with "--target test" instead of "ctest".
- #1639: Do not ask twice for project running ielm, term and vterm.
- #1250: Fix
projectile-globally-ignored-directories
not working with native indexing. - #1438: Make sure
projectile-files-via-ext-command
returns files, not errors. - #1450: Call
switch-project-action
within project's temp buffer. - #1340: Fix remote projects being removed if TRAMP can't connect.
- #1655: Fix
projectile-replace-regexp
searching the wrong files when called with prefix arg. - #1659: Fix
projectile-project-vcs
to work outside a project. - #1637: Integrate with savehist-mode.
- #1517: Add project-specific compilation buffers and only ask to save files in the project when compiling.
- New functions
projectile-acquire-root
andprojectile-process-current-project-buffers-current
- New project commands
projectile-package-project
,projectile-install-project
. - #1539: New defcustom
projectile-auto-discover
controlling whether to automatically discover projects in the search path whenprojectile-mode
activates. - Add emacs-eldev project type.
- Add Dart project type.
- #1555: Add search with ripgrep.
- Add Python-poetry project type.
- #1576: Add OCaml Dune project type.
- Add Mill project type.
- Auto-detect completion system, supporting
ido
,ivy
,helm
and the default completion system.
- #1540: Add default
test-suffix
to Angular projects. - Add a
:project-file
param toprojectile-register-project-type
. - #1588: Improve performance of
projectile-ibuffer
with many buffers not in project. - #1601: Implement separate compilation command history for each project.
- #1377: Fix
projectile-regenerate-tags
directory.
- #1523: Add a new defcustom (
projectile-max-file-buffer-count
) controlling how many opened file buffers should Projectile maintain per project. - Optional support for comments in .projectile dirconfig files using
projectile-dirconfig-comment-prefix
. - #1497: New command
projectile-run-gdb
(x g inprojectile-command-map
). - Add Bazel project type.
- #1503: Leave archive before searching for the project root.
- #1528: Improve massively the performance of native indexing (it's around 10x faster now).
- #1486 Allow
projectile-run-shell/eshell/term/vterm/ielm
to start extra processes if invoked with the prefix argument. - New command
projectile-run-vterm
(x v inprojectile-command-map
). - Add
related-files-fn
option to use custom function to find test/impl/other files. - #1019: Jump to a test named the same way but in a different directory.
- #982: Add heuristic for projectile-find-matching-test.
- Support a list of functions for
related-files-fn
options and helper functions. - #1405: Add Bloop Scala build server project detection.
- #1418: The presence of a
go.mod
file implies a go project. - #1419: When possible, use fd instead
of
find
to list the files of a non-VCS project. This should be much faster.
- #675: Performance improvement for native project indexing strategy.
- #97: Respect
.projectile
ignores which are paths to files and patterns when usingprojectile-grep
. - #1391: A
.cabal
sub-directory is no longer considered project indicator. - #1385: Update
projectile-replace
for Emacs 27. - #1432: Support .NET project.
- #1270: Fix running commands that don't have a default value.
- #1475: Fix directories being ignored with hybrid mode despite being explicitly unignored.
- #1482: Run a separate grep buffer per project root.
- #1488: Fix
projectile-find-file-in-directory
when in a subdir ofprojectile-project-root
.
- #972: Add toggle for project read only mode:
projectile-toggle-project-read-only
. - New interactive command
projectile-run-ielm
. - Add crystal project type.
- #850: Make it possible to prompt for a project, when you're not in a project, instead of raising an error. (see
projectile-require-project-root
). - #1147: Introduce a new indexing method called
hybrid
which behaves like the oldalien
. - #896 Add commands
projectile-previous-project-buffer
andprojectile-next-project-buffer
to switch to other buffer in the project. - #1016: Add a new defcustom (
projectile-current-project-on-switch
) controlling what to do with the current project on switch. - #1233: Add a new defcustom (
projectile-kill-buffers-filter
) controlling which buffers are killed byprojectile-kill-buffers
. - #1279: Add command
projectile-repeat-last-command
to re-execute the last external command in a project.
- (Breaking) #1147: Remove any post-processing from the
alien
indexing method. - Specify project path for
projectile-regenerate-tags
. - Handle files with special characters in
projectile-get-other-files
. - #1260: ignored-*-p: Now they match against regular expressions.
- (Breaking) Remove the default prefix key (
C-c p
) for Projectile. Users now have to pick one themselves. - Deprecate
projectile-keymap-prefix
. - Avoid "No projects needed to be removed." messages in global mode.
- #1278: Add default
test-suffix
tonpm
project. - #1285: Add default
test-suffix
to Python projects. - #1285: Add support for Pipenv-managed Python projects.
- #1232: Stop evaluating code dynamically in the mode-line and switch to a simpler scheme where the mode-line is updated just once using
find-file-hook
. - Make the mode line configurable via
projectile-dynamic-mode-line
andprojectile-mode-line-function
. - #1205: Check that project directory exists when switching projects.
- Move Projectile's menu out of the "Tools" menu.
- [API] (Breaking) Stop raising errors from
projectile-project-root
if not invoked within a project. Now it will simply return nil. Use it together withprojectile-ensure-project
to emulate the old behavior.
- #1315: Give preference to the project types that were registered last.
- #1367: Fix the Makefile so that we can compile projectile - use
make
.
- #1255: Add support for function symbols as project default commands
- #1243: Add angular project support.
- #1228: Add support for a prefix argument to
projectile-vc
. - #1221: Modify Ruby and Elixir project settings.
- #1175: Add a command
projectile-configure-command
for running a configuration for build systems that need that. - #1168: Add CMake and Meson project support.
- #1159 Add nix project support.
- #1166: Add
-other-frame
versions of commands that had-other-window
versions. - Consider Ensime configuration file as root marker,
.ensime
. - #1057: Make it possible to disable automatic project tracking via
projectile-track-known-projects-automatically
. - Added ability to specify test files suffix and prefix at the project registration.
- #1154 Use npm install instead of build.
- Added the ability to expire old files list caches via
projectile-projectile-files-cache-expire
. - #1204:
projectile-register-project-type
can now be use to customize the source and test directory via:src-dir
and:test-dir
for projects with custom needs (eg. maven). - #1240: Add some integration with riggrep.
- Add
projectile-project-search-path
, which is auto-searched for projects whenprojectile-mode
starts. - Add
projectile-discover-projects-in-search-path
command which searches for projects inprojectile-project-search-path
. - Auto-cleanup missing known-projects on
projectile-mode
start.
- #1213: Cache project root in non-filed-backed buffers.
- #1175:
projectile-register-project-type
can now set a default compilation directory for build systems that needs to build out-of-tree (eg. meson). - #1175:
projectile-{test,run}-project
now run inside(projectile-compilation-dir)
, just likeprojectile-compile-project
. - #1175:
projectile-{test,run}-project
now stores the default command per directory instead of per project, just likeprojectile-compile-project
. - Cache the root of the current project to increase performance
- #1129: Fix TRAMP issues.
- 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. - #987: projectile-ag ignores ag-ignore-list when projectile-project-vcs is git
- #1119: File search ignores non-root dirs if prefixed with "*"
- Treat members of
projectile-globally-ignored-file-suffixes
as file name suffixes (previous treat as file extensions). - Ensure project roots are added as directory names to avoid near-duplicate projects, e.g. "
/project/" and "/project". - Don't autoload defcustoms.
- (Breaking) Require Emacs 25.1.
- Remove the support for grizzl.
- #1222:
projectile-configure-project
fails for generic project type - #1162:
projectile-ag
causes "Attempt to modify read-only object" error. - #1169:
projectile-compile-project
does not prompt for compilation command. - #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. - #1246: Don't blow away real project file during tests.
- 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 interactive 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