;;; 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."
  (interactive)
  (require 'treemacs)
  (let ((origin-buffer (current-buffer)))
    (cl-letf (((symbol-function 'treemacs-workspace->is-empty?)
               (symbol-function 'ignore)))
      (treemacs--init))
    ;;
    (dolist (project (treemacs-workspace->projects (treemacs-current-workspace)))
      (treemacs-do-remove-project-from-workspace project))
    ;;
    (with-current-buffer origin-buffer
      (treemacs-do-add-project-to-workspace
       (treemacs--canonical-path (doom-project-root 'nocache))
       (doom-project-name 'nocache)))
    ;;
    (setq treemacs--ready-to-follow t)
    (when (or treemacs-follow-after-init treemacs-follow-mode)
      (with-current-buffer origin-buffer
        (treemacs--follow)))))