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

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

[elpa] externals/dtache 4e7387bbe0 04/19: Add dtache-vterm-mode


From: ELPA Syncer
Subject: [elpa] externals/dtache 4e7387bbe0 04/19: Add dtache-vterm-mode
Date: Wed, 18 May 2022 12:57:36 -0400 (EDT)

branch: externals/dtache
commit 4e7387bbe006c27f23072830d9573299a90491cd
Author: Niklas Eklund <niklas.eklund@posteo.net>
Commit: Niklas Eklund <niklas.eklund@posteo.net>

    Add dtache-vterm-mode
---
 dtache-init.el  |  8 ++++++++
 dtache-vterm.el | 19 ++++++++++++++++++-
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/dtache-init.el b/dtache-init.el
index f563873330..22c3d842d4 100644
--- a/dtache-init.el
+++ b/dtache-init.el
@@ -34,11 +34,13 @@
 (declare-function dtache-org-babel-sh "dtache-org")
 (declare-function dtache-shell-override-history "dtache-shell")
 (declare-function dtache-shell-save-history-on-kill "dtache-shell")
+(declare-function dtache-vterm-mode "dtache-vterm")
 
 (declare-function org-babel-sh-evaluate "ob-shell")
 (declare-function dired-rsync--do-run "dired-rsync")
 (declare-function dired-rsync "dired-rsync")
 (declare-function projectile "projectile")
+(declare-function vterm "vterm")
 
 ;;;; Variables
 
@@ -98,6 +100,12 @@ Optionally provide a list of PACKAGES to enable integration 
for."
     (advice-add 'projectile-run-compilation
                 :override #'dtache-extra-projectile-run-compilation)))
 
+(defun dtache-init-vterm ()
+  "Initialize integration with `vterm'."
+  (when (functionp #'vterm)
+    (add-hook 'vterm-mode-hook #'dtache-vterm-mode)))
+
+
 (provide 'dtache-init)
 
 ;;; dtache-init.el ends here
diff --git a/dtache-vterm.el b/dtache-vterm.el
index 110bd5325f..fc1e27db93 100644
--- a/dtache-vterm.el
+++ b/dtache-vterm.el
@@ -35,7 +35,7 @@
 
 (defvar vterm--process)
 
-;;;; Functions
+;;;; Commands
 
 ;;;###autoload
 (defun dtache-vterm-send-input (&optional detach)
@@ -79,6 +79,23 @@ Optionally DETACH from it."
   (interactive)
   (process-send-string vterm--process dtache--dtach-detach-character))
 
+;;;; Minor mode
+
+(defvar dtache-vterm-mode-map
+  (let ((map (make-sparse-keymap)))
+    (define-key map (kbd "<S-return>") #'dtache-vterm-send-input)
+    (define-key map (kbd "<C-return>") #'dtache-vterm-attach)
+    (define-key map (kbd dtache-detach-key) #'dtache-vterm-detach)
+    map)
+  "Keymap for `dtache-vterm-mode'.")
+
+;;;###autoload
+(define-minor-mode dtache-vterm-mode
+  "Integrate `dtache' in `vterm'."
+  :lighter " dtache-vterm"
+  :keymap (let ((map (make-sparse-keymap)))
+            map))
+
 (provide 'dtache-vterm)
 
 ;;; dtache-vterm.el ends here



reply via email to

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