[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)