[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/projectile e60883ff37: Add variable to enable or disable c
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/projectile e60883ff37: Add variable to enable or disable command caching. |
Date: |
Mon, 30 May 2022 02:58:51 -0400 (EDT) |
branch: elpa/projectile
commit e60883ff370c1545499b97cf56479de1a58c5b3b
Author: John Eivind Helset <jehelset@gmail.com>
Commit: Bozhidar Batsov <bozhidar@batsov.dev>
Add variable to enable or disable command caching.
Add variable `projectile-project-enable-cmd-caching` to enable or
disable command caching which defaults to `t`. Make the project
command functions, like `projectile-configure-project`, pass a `nil`
command-map to `projectile--run-project-cmd` if caching is disabled.
The variable is checked with a function
`projectile--cache-project-commands-p` which ensures that
directory local variables for the project are loaded.
---
CHANGELOG.md | 1 +
doc/modules/ROOT/pages/projects.adoc | 4 ++++
projectile.el | 40 +++++++++++++++++++++++++-----------
3 files changed, 33 insertions(+), 12 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c7dd09eba1..34a0cc7853 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@
* [#1712](https://github.com/bbatsov/projectile/issues/1712): Make it possible
to hide Projectile's menu. See `projectile-show-menu`.
* [#1718](https://github.com/bbatsov/projectile/issues/1718): Add a project
type definition for `GNUMakefile`.
* [#1747](https://github.com/bbatsov/projectile/pull/1747): Add support for
preset-based install-commands for CMake projects.
+* [#1768](https://github.com/bbatsov/projectile/pull/1768) Add support for
disabling command caching on a per-project basis.
### Bugs fixed
diff --git a/doc/modules/ROOT/pages/projects.adoc
b/doc/modules/ROOT/pages/projects.adoc
index 30daf4cd35..d5745a93a6 100644
--- a/doc/modules/ROOT/pages/projects.adoc
+++ b/doc/modules/ROOT/pages/projects.adoc
@@ -774,3 +774,7 @@ external command or an Emacs Lisp function:
----
(setq projectile-test-cmd #'custom-test-function)
----
+
+In addition caching of commands can be disabled by setting the variable
+`projectile-project-enable-cmd-caching` is to `nil`. This is useful for
+preset-based CMake projects.
diff --git a/projectile.el b/projectile.el
index ff859a8ba2..bb66f1e372 100644
--- a/projectile.el
+++ b/projectile.el
@@ -4599,6 +4599,16 @@ directory to open."
(make-hash-table :test 'equal)
"A mapping between projects and the last run command used on them.")
+(defvar projectile-project-enable-cmd-caching t
+ "Enables command caching for the project. Set to nil to disable.
+Should be set via .dir-locals.el.")
+
+(defun projectile--cache-project-commands-p ()
+ "Whether to cache project commands."
+ (with-temp-buffer
+ (hack-dir-local-variables-non-file-buffer)
+ projectile-project-enable-cmd-caching))
+
(defvar projectile-project-configure-cmd nil
"The command to use with `projectile-configure-project'.
It takes precedence over the default command for the project type when set.
@@ -4925,8 +4935,9 @@ Normally you'll be prompted for a compilation command,
unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG."
(interactive "P")
- (let ((command (projectile-configure-command (projectile-compilation-dir))))
- (projectile--run-project-cmd command projectile-configure-cmd-map
+ (let ((command (projectile-configure-command (projectile-compilation-dir)))
+ (command-map (if (projectile--cache-project-commands-p)
projectile-configure-cmd-map)))
+ (projectile--run-project-cmd command command-map
:show-prompt arg
:prompt-prefix "Configure command: "
:save-buffers t
@@ -4940,8 +4951,9 @@ Normally you'll be prompted for a compilation command,
unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG."
(interactive "P")
- (let ((command (projectile-compilation-command
(projectile-compilation-dir))))
- (projectile--run-project-cmd command projectile-compilation-cmd-map
+ (let ((command (projectile-compilation-command (projectile-compilation-dir)))
+ (command-map (if (projectile--cache-project-commands-p)
projectile-compilation-cmd-map)))
+ (projectile--run-project-cmd command command-map
:show-prompt arg
:prompt-prefix "Compile command: "
:save-buffers t
@@ -4955,8 +4967,9 @@ Normally you'll be prompted for a compilation command,
unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG."
(interactive "P")
- (let ((command (projectile-test-command (projectile-compilation-dir))))
- (projectile--run-project-cmd command projectile-test-cmd-map
+ (let ((command (projectile-test-command (projectile-compilation-dir)))
+ (command-map (if (projectile--cache-project-commands-p)
projectile-test-cmd-map)))
+ (projectile--run-project-cmd command command-map
:show-prompt arg
:prompt-prefix "Test command: "
:save-buffers t
@@ -4970,8 +4983,9 @@ Normally you'll be prompted for a compilation command,
unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG."
(interactive "P")
- (let ((command (projectile-install-command (projectile-compilation-dir))))
- (projectile--run-project-cmd command projectile-install-cmd-map
+ (let ((command (projectile-install-command (projectile-compilation-dir)))
+ (command-map (if (projectile--cache-project-commands-p)
projectile-install-cmd-map)))
+ (projectile--run-project-cmd command command-map
:show-prompt arg
:prompt-prefix "Install command: "
:save-buffers t
@@ -4985,8 +4999,9 @@ Normally you'll be prompted for a compilation command,
unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG."
(interactive "P")
- (let ((command (projectile-package-command (projectile-compilation-dir))))
- (projectile--run-project-cmd command projectile-package-cmd-map
+ (let ((command (projectile-package-command (projectile-compilation-dir)))
+ (command-map (if (projectile--cache-project-commands-p)
projectile-package-cmd-map)))
+ (projectile--run-project-cmd command command-map
:show-prompt arg
:prompt-prefix "Package command: "
:save-buffers t
@@ -5000,8 +5015,9 @@ Normally you'll be prompted for a compilation command,
unless
variable `compilation-read-command'. You can force the prompt
with a prefix ARG."
(interactive "P")
- (let ((command (projectile-run-command (projectile-compilation-dir))))
- (projectile--run-project-cmd command projectile-run-cmd-map
+ (let ((command (projectile-run-command (projectile-compilation-dir)))
+ (command-map (if (projectile--cache-project-commands-p)
projectile-run-cmd-map)))
+ (projectile--run-project-cmd command command-map
:show-prompt arg
:prompt-prefix "Run command: "
:use-comint-mode
projectile-run-use-comint-mode)))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [nongnu] elpa/projectile e60883ff37: Add variable to enable or disable command caching.,
ELPA Syncer <=