project-recompile: New command
authorDmitry Gutov <dmitry@gutov.dev>
Sun, 21 Jan 2024 05:08:11 +0000 (07:08 +0200)
committerDmitry Gutov <dmitry@gutov.dev>
Sun, 21 Jan 2024 05:08:43 +0000 (07:08 +0200)
* lisp/progmodes/project.el (project-recompile):
New command (bug#68570).

lisp/progmodes/project.el

index a6f14a0865c6611052221fba18241a021b41b171..ab4504fa02745ccec7ca157ab0843953f51b15e0 100644 (file)
@@ -1363,6 +1363,7 @@ If you exit the `query-replace', you can later continue the
 
 (defvar compilation-read-command)
 (declare-function compilation-read-command "compile")
+(declare-function recompile "compile")
 
 (defun project-prefixed-buffer-name (mode)
   (concat "*"
@@ -1396,6 +1397,18 @@ If non-nil, it overrides `compilation-buffer-name-function' for
              compilation-buffer-name-function)))
     (call-interactively #'compile)))
 
+(defun project-recompile (&optional edit-command)
+  "Run `recompile' with appropriate buffer."
+  (declare (interactive-only recompile))
+  (interactive "P")
+  (let ((compilation-buffer-name-function
+         (or project-compilation-buffer-name-function
+             ;; Should we error instead?  When there's no
+             ;; project-specific naming, there is no point in using
+             ;; this command.
+             compilation-buffer-name-function)))
+    (recompile edit-command)))
+
 (defcustom project-ignore-buffer-conditions nil
   "List of conditions to filter the buffers to be switched to.
 If any of these conditions are satisfied for a buffer in the