Releases: bbatsov/projectile
Releases · bbatsov/projectile
Projectile 2.8
New features
- #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
.
Changes
- #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.
Bugs fixed
Projectile 2.7
New features
- #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.
Changes
- #1812: Add a
projectile-root-marked
function for finding roots marked by.projectile
. Prioritize.projectile
above other bottom-up root files.
Bug fixed
- #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.
Projectile 2.6
New features
- #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.
Bugs fixed
- #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.
Changes
- #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.
Projectile 2.5.0
New features
- #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.
Bugs fixed
- #1550: Make
projectile-regenerate-tags
tramp-aware. - #1673: Fix CMake system-preset filename.
- #1691: Fix
compilation-find-file
advice handling of directory.
Changes
- Remove
pkg-info
dependency.
Projectile 2.4
New features
- 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.
Changes
- 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 accomodate 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".
Bugs fixed
- #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.
Projectile 2.3
New features
- #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.
Changes
- #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.
Bugs fixed
- #1377: Fix
projectile-regenerate-tags
directory.
Projectile 2.2
New features
- #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.
Bugs fixed
- #1503: Leave archive before searching for the project root.
Changes
- #1528: Improve massively the performance of native indexing (it's around 10x faster now).
Projectile 2.1.0
New features
- #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
offind
to list the files of a non-VCS project. This should be much faster.
Bugs fixed
- #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 seperate grep buffer per project root.
- #1488: Fix
projectile-find-file-in-directory
when in a subdir ofprojectile-project-root
.
Projectile 2.0.0
New features
- #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
and
projectile-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.
Changes
- (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.
Bugs fixed
Projectile 1.0
New Features
- #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.
Changes
- #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.
Bugs fixed
- #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.