Skip to content

Latest commit

 

History

History
650 lines (518 loc) · 42.3 KB

CHANGELOG.md

File metadata and controls

650 lines (518 loc) · 42.3 KB

Changelog

master (unreleased)

New features

  • #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 like marginalia and embark)
  • #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.

Bugs fixed

  • #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 of src/)
  • #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.

Changes

  • 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.

2.8.0 (2023-10-13)

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 to x 4 v.

Changes

  • #1839: Ensure projectile-toggle-between-implementation-and-test also obeys projectile-project-test-dir and projectile-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 in projectile-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 setting projectile-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

  • Fix fd inserting color control sequences when used over tramp.
  • #1835: Reopening existing vterm buffer in other window
  • #1865: projectile-generic-command should use projectile-fd-executable to find the path for fd.

2.7.0 (2022-11-22)

New features

  • #1591: Add project.el integration that will make Projectile the default provider for project lookup.
  • Add new command projectile-find-references (bound to C-c C-p ? and C-c C-p s x).
  • #1737: Add helpers for dir-local-variables for 3rd party use. Functions projectile-add-dir-local-variable and projectile-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 out projectile-eldev-project-p now also takes an &optional DIR arg to specify the directory it is acting on.

2.6.0 (2022-10-25)

New features

  • #1790: Add src-dir and test-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 and rails-test to use app instead of lib as src-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 use src-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/" with projectile-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.

2.5.0 (2021-08-10)

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> is configure, compile, test, install, package, or run). These enable interactive compilation buffers.
  • #1705: Add project detection for Nix flakes.

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.

2.4.0 (2021-05-27)

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.
  • Add optional parameters to projectile-run-shell-command-in-root and projectile-run-async-shell-command-in-root

Changes

  • Add project param to projectile-generate-process-name.
  • #1608: Use rebar3 build system by default for Erlang projects.
  • Rename projectile-project-root-files-functions to projectile-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".

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.

2.3.0 (2020-11-27)

New features

  • #1517: Add project-specific compilation buffers and only ask to save files in the project when compiling.
  • New functions projectile-acquire-root and projectile-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 when projectile-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 to projectile-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.

2.2.0 (2020-06-10)

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 in projectile-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).

2.1.0 (2020-02-04)

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 in projectile-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.

Bugs fixed

  • #675: Performance improvement for native project indexing strategy.
  • #97: Respect .projectile ignores which are paths to files and patterns when using projectile-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 of projectile-project-root.

2.0.0 (2019-01-01)

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 old alien.
  • #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 by projectile-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 to npm 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 and projectile-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 with projectile-ensure-project to emulate the old behavior.

Bugs fixed

  • #1315: Give preference to the project types that were registered last.
  • #1367: Fix the Makefile so that we can compile projectile - use make.

1.0.0 (2018-07-21)

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 when projectile-mode starts.
  • Add projectile-discover-projects-in-search-path command which searches for projects in projectile-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 like projectile-compile-project.
  • #1175: projectile-{test,run}-project now stores the default command per directory instead of per project, just like projectile-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 in projectile-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.

0.14.0 (2016-07-08)

New features

  • 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 and GTAGS root markers.
  • Add relation between the .h, .cxx, .ixx and .hxx files in projectile-other-file-alist.
  • Add relation between the .hpp and .cc files in projectile-other-file-alist.
  • Add support to specify project name either via .dir-locals.el or by providing a customized projectile-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 using projectile-grep and projectile-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).

Changes

  • 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

Bugs fixed

  • #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.

0.13.0 (2015-10-21)

New features

  • 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 new projectile-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 variables projectile-project-compilation-cmd and projectile-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 variable projectile-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.

Changes

  • Rename projectile-switch-project-hook to projectile-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 of helm-find-file when selecting a project.
  • Omit current buffer from projectile-switch-to-buffer and projectile-switch-to-buffer-other-window choices.

Bugs fixed

  • #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 in helm-projectile-grep
  • Fix projectile-parse-dirconfig-file to parse non-ASCII characters properly.

0.12.0 (2015-03-29)

New features

  • 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 and helm-projectile-find-file-dwim commands.
  • Provide actual Helm commands for common Projectile commands.
  • Use existing Helm actions and map in helm-find-files that allows helm-source-projectile-files-list to behave like helm-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

Changes

  • 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 of persp-projectile.el.
  • Progress reporter for the native indexing method.

Bugs fixed

  • 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.

0.11.0 (2014-05-27)

New features

  • Added support for default file glob pattern to projectile-grep
  • added file existence cache with defcustoms projectile-file-exists-remote-cache-expire and projectile-file-exists-local-cache-expire.
  • added new defcustoms projectile-project-root-files-top-down-recurring, projectile-project-root-files-bottom-up and projectile-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 new projectile-project-buffers-non-visible function, the former is bound to C-c p ESC.
  • New variable projectile-enable-idle-timer turns on an idle timer which runs the hook projectile-idle-timer-hook every projectile-idle-timer-seconds seconds when non-nil.
  • New defcustom projectile-remember-window-configs will make projectile-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 make projectile-grep use git grep for git projects.
  • Added new projectile-commander methods ?v and ?R which run projectile-vc and projectile-regenerate-tags, respectively.
  • projectile-vc will use magit-status if available.
  • New functions projectile-find-implementation-or-test and projectile-find-implementation-or-test-other-window, the later is bound to C-c p 4 t.
  • New defcustoms projectile-test-prefix-function and projectile-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.

Changes

  • 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 (affects projectile-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 the projectile-keymap-prefix in projectile-mode-map. This allows modification of the inner map, and allows additional prefix keys to reference it.

Bugs fixed

  • Modified projectile-ack to append to ack-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.

0.10.0 (2013-12-09)

New features

  • 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 via projectile-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 is projectile-commander.

Changes

  • Replaced variable projectile-use-native-indexing with projectile-indexing-method.
  • Corrected grammar on error message for not being in a project.

Bug fixes

  • projectile-find-test-file now properly displays only test files (#145).

0.9.2 (2013-07-16)

New features

  • 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 to projectile-find-file - displays the project's dirs and opens them with dired. It's bound to C-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.

Bugs fixed

  • 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

Changes

  • Rebound projectile-compile-project to C-c p c
  • Rebound projectile-dired to C-c p D
  • Reworked projectile-compile-project and projectile-test-project to be smarter, more configurable and closer in behavior to the stock compile command
  • projectile-switch-project (C-c p s) now runs projectile-find-file instead of dired.

0.9.1 (2013-04-26)

New features

  • Display recentf files in helm-projectile.

Bugs fixed

  • #95 - handle properly missing project root

0.9.0 (2013-04-24)

New features

  • 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.

Bugs fixed

  • #57 - properly set the current working dir, before invoking shell commands
  • #71 - correct regenerate tags keybinding in the README

Misc

  • Move menu entry under Tools
  • Show indexing message only when doing native project indexing
  • Massive performance improvements