emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/projectile 3984e93f31 2/4: [Fix #1830] Add command `projec


From: ELPA Syncer
Subject: [nongnu] elpa/projectile 3984e93f31 2/4: [Fix #1830] Add command `projectile-run-vterm-other-window`
Date: Fri, 17 Mar 2023 07:01:56 -0400 (EDT)

branch: elpa/projectile
commit 3984e93f31d607eded0e056e1d0d6281af44a0d4
Author: Bozhidar Batsov <bozhidar@batsov.dev>
Commit: Bozhidar Batsov <bozhidar@batsov.dev>

    [Fix #1830] Add command `projectile-run-vterm-other-window`
    
    This also restores the original behavior of `projectile-run-vterm`.
---
 CHANGELOG.md  |  1 +
 projectile.el | 39 ++++++++++++++++++++++++++++++++-------
 2 files changed, 33 insertions(+), 7 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ad63ab927d..d596a3faa0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@
 * [#1828](https://github.com/bbatsov/projectile/pull/1828): Add Nimble-based 
Nim project discovery.
 * Add elm project type.
 * [#1821](https://github.com/bbatsov/projectile/pull/1821): Add 
`pyproject.toml` discovery for python projects.
+* [#1830](https://github.com/bbatsov/projectile/issues/1830): Add command 
`projectile-run-vterm-other-window` and bind it to `x 4 v`.
 
 ### Changes
 
diff --git a/projectile.el b/projectile.el
index b5a72989e0..058f782986 100644
--- a/projectile.el
+++ b/projectile.el
@@ -83,9 +83,11 @@
 (declare-function ggtags-update-tags "ext:ggtags")
 (declare-function ripgrep-regexp "ext:ripgrep")
 (declare-function rg-run "ext:rg")
+(declare-function vterm "ext:vterm")
 (declare-function vterm-other-window "ext:vterm")
 (declare-function vterm-send-return "ext:vterm")
 (declare-function vterm-send-string "ext:vterm")
+
 
 ;;; Customization
 (defgroup projectile nil
@@ -4517,23 +4519,45 @@ Use a prefix argument ARG to indicate creation of a new 
process instead."
           (term-char-mode))))
     (switch-to-buffer buffer-name)))
 
-;;;###autoload
-(defun projectile-run-vterm (&optional arg)
+(defun projectile--vterm (&optional new-process other-window)
   "Invoke `vterm' in the project's root.
 
-Switch to the project specific term buffer if it already exists.
+Use argument NEW-PROCESS to indicate creation of a new process instead.
+Use argument OTHER-WINDOW to indentation whether the buffer should
+be displayed in a different window.
 
-Use a prefix argument ARG to indicate creation of a new process instead."
-  (interactive "P")
+Switch to the project specific term buffer if it already exists."
   (let* ((project (projectile-acquire-root))
-         (buffer (projectile-generate-process-name "vterm" arg project)))
+         (buffer (projectile-generate-process-name "vterm" new-process 
project)))
     (unless (buffer-live-p (get-buffer buffer))
       (unless (require 'vterm nil 'noerror)
         (error "Package 'vterm' is not available"))
       (projectile-with-default-dir project
-        (vterm-other-window buffer)))
+        (if other-window
+            (vterm-other-window buffer)
+          (vterm buffer))))
     (switch-to-buffer buffer)))
 
+;;;###autoload
+(defun projectile-run-vterm (&optional arg)
+  "Invoke `vterm' in the project's root.
+
+Switch to the project specific term buffer if it already exists.
+
+Use a prefix argument ARG to indicate creation of a new process instead."
+  (interactive "P")
+  (project--vterm arg))
+
+;;;###autoload
+(defun projectile-run-vterm-other-window (&optional arg)
+  "Invoke `vterm' in the project's root.
+
+Switch to the project specific term buffer if it already exists.
+
+Use a prefix argument ARG to indicate creation of a new process instead."
+  (interactive "P")
+  (project--vterm arg 'other-window))
+
 (defun projectile-files-in-project-directory (directory)
   "Return a list of files in DIRECTORY."
   (let* ((project (projectile-acquire-root))
@@ -5985,6 +6009,7 @@ thing shown in the mode line otherwise."
     (define-key map (kbd "x s") #'projectile-run-shell)
     (define-key map (kbd "x g") #'projectile-run-gdb)
     (define-key map (kbd "x v") #'projectile-run-vterm)
+    (define-key map (kbd "x 4 v") #'projectile-run-vterm-other-window)
     ;; misc
     (define-key map (kbd "z") #'projectile-cache-current-file)
     (define-key map (kbd "<left>") #'projectile-previous-project-buffer)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]