branch: externals/dtache commit 4e7387bbe006c27f23072830d9573299a90491cd Author: Niklas Eklund <niklas.ekl...@posteo.net> Commit: Niklas Eklund <niklas.ekl...@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