Fix +vterm/{toggle,here}... ... ...again

This commit is contained in:
Henrik Lissner 2020-03-04 17:10:07 -05:00
parent 9ce3f6df87
commit 532a31f4fe
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -1,14 +1,5 @@
;;; term/vterm/autoload.el -*- lexical-binding: t; -*- ;;; term/vterm/autoload.el -*- lexical-binding: t; -*-
(defun +vterm--get-create-buffer (buffer-name)
(setenv "PROOT" (or (doom-project-root) default-directory))
(require 'vterm)
(let ((buffer (get-buffer-create buffer-name)))
(with-current-buffer buffer
(unless (eq major-mode 'vterm-mode)
(vterm-mode)))
buffer))
;;;###autoload ;;;###autoload
(defun +vterm/toggle (arg) (defun +vterm/toggle (arg)
"Toggles a terminal popup window at project root. "Toggles a terminal popup window at project root.
@ -38,7 +29,12 @@ If prefix ARG is non-nil, recreate vterm buffer in the current project's root."
(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))
(goto-char (point-max))) (goto-char (point-max)))
(pop-to-buffer (+vterm--get-create-buffer buffer-name))))) (setenv "PROOT" (or (doom-project-root) default-directory))
(let ((buffer (get-buffer-create buffer-name)))
(with-current-buffer buffer
(unless (eq major-mode 'vterm-mode)
(vterm-mode)))
(pop-to-buffer buffer)))))
;;;###autoload ;;;###autoload
(defun +vterm/here (arg) (defun +vterm/here (arg)
@ -52,11 +48,14 @@ If prefix ARG is non-nil, cd into `default-directory' instead of project root."
;; This hack forces vterm to redraw, fixing strange artefacting in the tty. ;; This hack forces vterm to redraw, fixing strange artefacting in the tty.
(save-window-excursion (save-window-excursion
(pop-to-buffer "*scratch*")) (pop-to-buffer "*scratch*"))
(let ((default-directory (let* ((project-root (or (doom-project-root) default-directory))
(if arg (default-directory
default-directory (if arg
(or (doom-project-root) default-directory)))) default-directory
(switch-to-buffer (+vterm--get-create-buffer buffer-name)))) project-root))
display-buffer-alist)
(setenv "PROOT" project-root)
(vterm)))
(defvar +vterm--insert-point nil) (defvar +vterm--insert-point nil)