mirror of
https://github.com/doomemacs/doomemacs
synced 2025-08-03 12:27:26 -05:00
Fix #1492: +term/toggle not closing popup
And prevent term process from prompting on death.
This commit is contained in:
@ -3,6 +3,13 @@
|
|||||||
(defvar +term--dedicated-buffer nil)
|
(defvar +term--dedicated-buffer nil)
|
||||||
(defvar +term--dedicated-window nil)
|
(defvar +term--dedicated-window nil)
|
||||||
|
|
||||||
|
(defun +term--kill-dedicated ()
|
||||||
|
(when (multi-term-window-exist-p +term--dedicated-window)
|
||||||
|
(delete-window +term--dedicated-window))
|
||||||
|
(when (multi-term-buffer-exist-p +term--dedicated-buffer)
|
||||||
|
(set-process-query-on-exit-flag (get-buffer-process +term--dedicated-buffer) nil)
|
||||||
|
(kill-buffer +term--dedicated-buffer)))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +term/toggle (arg)
|
(defun +term/toggle (arg)
|
||||||
"Toggle a persistent terminal popup window at project's root.
|
"Toggle a persistent terminal popup window at project's root.
|
||||||
@ -14,18 +21,13 @@ If prefix ARG, recreate term buffer in the current project's root."
|
|||||||
(require 'multi-term)
|
(require 'multi-term)
|
||||||
(let ((default-directory (or (doom-project-root) default-directory))
|
(let ((default-directory (or (doom-project-root) default-directory))
|
||||||
(multi-term-dedicated-buffer-name "doom:term-popup")
|
(multi-term-dedicated-buffer-name "doom:term-popup")
|
||||||
(multi-term-dedicated-select-after-open-p t)
|
(multi-term-dedicated-select-after-open-p t))
|
||||||
confirm-kill-processes)
|
|
||||||
(when arg
|
(when arg
|
||||||
(when (multi-term-window-exist-p +term--dedicated-window)
|
(+term--kill-dedicated))
|
||||||
(delete-window +term--dedicated-window))
|
(if (and (multi-term-window-exist-p +term--dedicated-window)
|
||||||
(when (multi-term-buffer-exist-p +term--dedicated-buffer)
|
(multi-term-buffer-exist-p +term--dedicated-buffer))
|
||||||
(when-let (process (get-buffer-process +term--dedicated-buffer))
|
|
||||||
(kill-process process))
|
|
||||||
(kill-buffer +term--dedicated-buffer)))
|
|
||||||
(if (multi-term-dedicated-exist-p)
|
|
||||||
(if (eq (selected-window) +term--dedicated-window)
|
(if (eq (selected-window) +term--dedicated-window)
|
||||||
(multi-term-dedicated-close)
|
(+term--kill-dedicated)
|
||||||
(select-window +term--dedicated-window)
|
(select-window +term--dedicated-window)
|
||||||
(when (bound-and-true-p evil-local-mode)
|
(when (bound-and-true-p evil-local-mode)
|
||||||
(evil-change-to-initial-state))
|
(evil-change-to-initial-state))
|
||||||
|
Reference in New Issue
Block a user