doomemacs/modules/ui/treemacs/autoload.el
Henrik Lissner 3f66400d62
fix(treemacs): open last treemacs session if in $HOME or non-project
`treemacs-add-and-display-current-project-exclusively' seems to confuse
some people and please others when it is used in $HOME. To reduce
confusion, SPC o p will now resume from the last session if
default-directory isn't a valid project OR if it's $HOME. It will also
emit a warning informing them of that.

Fix: #7948
Amend: f9dfb7e92a
2024-07-16 11:23:11 -04:00

19 lines
715 B
EmacsLisp

;;; ui/treemacs/autoload.el -*- lexical-binding: t; -*-
;;;###autoload
(defun +treemacs/toggle ()
"Initialize or toggle treemacs.
Ensures that only the current project is present and all other projects have
been removed.
Use `treemacs' command for old functionality."
(interactive)
(require 'treemacs)
(pcase (treemacs-current-visibility)
(`visible (delete-window (treemacs-get-local-window)))
(_ (let ((project (treemacs--find-current-user-project)))
(if (and project (not (file-equal-p project "~")))
(treemacs-add-and-display-current-project-exclusively)
(message "No valid project in current buffer; opening last treemacs session")
(treemacs))))))