mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
* lisp/progmodes/project.el (project-vc-dir, project-shell): New commands.
(project-compile): Add args and interactive spec like in 'compile'. (project-switch-commands): Bind project-vc-dir to "v", project-shell to "s", and rebind project-find-regexp from "s" to "r". * doc/emacs/maintaining.texi (Project File Commands): Describe project-vc-dir and project-shell.
This commit is contained in:
parent
6d6ec1bc1e
commit
2c1e5b9e77
3 changed files with 44 additions and 7 deletions
|
|
@ -1718,6 +1718,17 @@ continue with @w{@kbd{M-x fileloop-continue @key{RET}}}.
|
|||
(@pxref{Dired}) listing the files in the current project's root
|
||||
directory.
|
||||
|
||||
@findex project-vc-dir
|
||||
The command @code{project-vc-dir} opens a VC Directory buffer
|
||||
(@pxref{VC Directory Mode}) listing the version control statuses of
|
||||
the files in a directory tree under the current project's
|
||||
root directory.
|
||||
|
||||
@findex project-shell
|
||||
The command @code{project-shell} starts a shell session
|
||||
(@pxref{Shell}) in a new buffer with the current project's root as the
|
||||
working directory.
|
||||
|
||||
@findex project-eshell
|
||||
The command @code{project-eshell} starts an Eshell session in a new
|
||||
buffer with the current project's root as the working directory.
|
||||
|
|
|
|||
4
etc/NEWS
4
etc/NEWS
|
|
@ -411,8 +411,8 @@ information, see the related entry about 'shr-browse-url' above.
|
|||
all commands that prompt for a project directory.
|
||||
|
||||
+++
|
||||
*** New commands 'project-dired' and 'project-eshell'.
|
||||
These commands run Dired and Eshell in a project's root directory,
|
||||
*** New commands 'project-dired', 'project-vc-dir', 'project-shell', 'project-eshell'.
|
||||
These commands run Dired/VC-Dir and Shell/Eshell in a project's root directory,
|
||||
respectively.
|
||||
|
||||
+++
|
||||
|
|
|
|||
|
|
@ -671,6 +671,20 @@ PREDICATE, HIST, and DEFAULT have the same meaning as in
|
|||
(interactive)
|
||||
(dired (project-root (project-current t))))
|
||||
|
||||
;;;###autoload
|
||||
(defun project-vc-dir ()
|
||||
"Open VC-Dir in the current project."
|
||||
(interactive)
|
||||
(vc-dir (project-root (project-current t))))
|
||||
|
||||
;;;###autoload
|
||||
(defun project-shell ()
|
||||
"Open Shell in the current project."
|
||||
(interactive)
|
||||
(let ((default-directory (project-root (project-current t))))
|
||||
;; Use ‘create-file-buffer’ to uniquify shell buffer names.
|
||||
(shell (create-file-buffer "*shell*"))))
|
||||
|
||||
;;;###autoload
|
||||
(defun project-eshell ()
|
||||
"Open Eshell in the current project."
|
||||
|
|
@ -705,13 +719,23 @@ loop using the command \\[fileloop-continue]."
|
|||
from to (project-files (project-current t)) 'default)
|
||||
(fileloop-continue))
|
||||
|
||||
(defvar compilation-read-command)
|
||||
(declare-function compilation-read-command "compile")
|
||||
|
||||
;;;###autoload
|
||||
(defun project-compile ()
|
||||
"Run `compile' in the project root."
|
||||
(interactive)
|
||||
(defun project-compile (command &optional comint)
|
||||
"Run `compile' in the project root.
|
||||
Arguments the same as in `compile'."
|
||||
(interactive
|
||||
(list
|
||||
(let ((command (eval compile-command)))
|
||||
(if (or compilation-read-command current-prefix-arg)
|
||||
(compilation-read-command command)
|
||||
command))
|
||||
(consp current-prefix-arg)))
|
||||
(let* ((pr (project-current t))
|
||||
(default-directory (project-root pr)))
|
||||
(call-interactively 'compile)))
|
||||
(compile command comint)))
|
||||
|
||||
|
||||
;;; Project list
|
||||
|
|
@ -795,8 +819,10 @@ It's also possible to enter an arbitrary directory."
|
|||
;;;###autoload
|
||||
(defvar project-switch-commands
|
||||
'(("f" "Find file" project-find-file)
|
||||
("s" "Find regexp" project-find-regexp)
|
||||
("r" "Find regexp" project-find-regexp)
|
||||
("d" "Dired" project-dired)
|
||||
("v" "VC-Dir" project-vc-dir)
|
||||
("s" "Shell" project-shell)
|
||||
("e" "Eshell" project-eshell))
|
||||
"Alist mapping keys to project switching menu entries.
|
||||
Used by `project-switch-project' to construct a dispatch menu of
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue