From: Dmitry Gutov Date: Mon, 18 May 2020 22:00:43 +0000 (+0300) Subject: Teach project-current to inhibit the prompt X-Git-Tag: emacs-28.0.90~7260^2~5 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0b057ca9bcfa2bbef57f7e5a1da47d62f4f1f15a;p=emacs.git Teach project-current to inhibit the prompt * lisp/progmodes/project.el: (project-current-inhibit-prompt): New variable. (project-current, project-switch-project): Use it. --- diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index 956a4b8a345..132d172a08e 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -101,6 +101,9 @@ Each functions on this hook is called in turn with one argument (the directory) and should return either nil to mean that it is not applicable, or a project instance.") +(defvar project-current-inhibit-prompt nil + "Non-nil to skip prompting the user in `project-current'.") + ;;;###autoload (defun project-current (&optional maybe-prompt dir) "Return the project instance in DIR or `default-directory'. @@ -110,7 +113,8 @@ the user for a different project to look in." (let ((pr (project--find-in-directory dir))) (cond (pr) - (maybe-prompt + ((unless project-current-inhibit-prompt + maybe-prompt) (setq dir (project-prompt-project-dir) pr (project--find-in-directory dir)))) (if pr @@ -829,7 +833,8 @@ and presented in a dispatch menu." (setq choice (read-key-sequence (project--keymap-prompt)))) (if (equal choice (kbd "C-g")) (message "Quit") - (let ((default-directory dir)) + (let ((default-directory dir) + (project-current-inhibit-prompt t)) (call-interactively (nth 2 (assoc choice project-switch-commands)))))))