Updating Doom Emacs.

This commit is contained in:
Derek Taylor
2020-06-19 22:43:40 -05:00
parent 0f664d532a
commit a5c86c514a
453 changed files with 13527 additions and 12455 deletions

View File

@@ -29,13 +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)
(evil-change-to-initial-state))
(goto-char (point-max)))
(require 'vterm)
(setenv "PROOT" (or (doom-project-root) default-directory))
(let ((buffer (get-buffer-create buffer-name)))
(with-current-buffer buffer
(doom-mark-buffer-as-real-h)
(unless (eq major-mode 'vterm-mode)
(vterm-mode)))
(vterm-mode))
(+vterm--change-directory-if-remote))
(pop-to-buffer buffer)))))
;;;###autoload
@@ -50,8 +49,44 @@ 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.
(save-window-excursion
(pop-to-buffer "*scratch*"))
(let ((default-directory
(if arg
default-directory
(or (doom-project-root) default-directory))))
(vterm)))
(let* ((project-root (or (doom-project-root) default-directory))
(default-directory
(if arg
default-directory
project-root))
display-buffer-alist)
(setenv "PROOT" project-root)
(vterm)
(+vterm--change-directory-if-remote)))
(defun +vterm--change-directory-if-remote ()
"When `default-directory` is remote, use the corresponding
method to prepare vterm at the corresponding remote directory."
(when (and (featurep 'tramp)
(tramp-tramp-file-p default-directory))
(message "default-directory is %s" default-directory)
(with-parsed-tramp-file-name default-directory path
(let ((method (cadr (assoc `tramp-login-program
(assoc path-method tramp-methods)))))
(vterm-send-string
(concat method " "
(when path-user (concat path-user "@")) path-host))
(vterm-send-return)
(vterm-send-string
(concat "cd " path-localname))
(vterm-send-return)))))
(defvar +vterm--insert-point nil)
;;;###autoload
(defun +vterm-remember-insert-point-h ()
"Remember point when leaving insert mode."
(setq-local +vterm--insert-point (point)))
;;;###autoload
(defun +vterm-goto-insert-point-h ()
"Go to the point we were at when we left insert mode."
(when +vterm--insert-point
(goto-char +vterm--insert-point)
(setq-local +vterm--insert-point nil)))