UI - Filetree
Define UI filetree package.
(use-package emacs
:after uno-ui
:config
(provide 'uno-ui-filetree))
(use-package treemacs
:after uno-ui-filetree
:commands
(treemacs--window-number-ten
treemacs-current-visibility
treemacs-current-workspace
treemacs-select-scope-type
treemacs-select-window)
:custom
(treemacs-persist-file (uno-cache-path "treemacs/persist"))
(treemacs-project-follow-cleanup t)
(treemacs-show-hidden-files nil)
:general
(uno-leader-define
"ft" '(treemacs :which-key "File tree")
"fB" '(treemacs-bookmark :which-key "Find bookmark in file tree")
"fT" '(treemacs-find-file :which-key "Focus current file in file tree"))
:init
(require 'treemacs))
(use-package treemacs-evil
:after (uno-ui-filetree treemacs evil))
(use-package treemacs-icons-dired
:after (uno-ui-filetree treemacs dired)
:config
(treemacs-icons-dired-mode 1))
(use-package treemacs-magit
:after (uno-ui-filetree treemacs magit))
(use-package treemacs-projectile
:after (uno-ui-filetree treemacs projectile)
:general
(uno-leader-define
"pt" '(uno/ui/filetree/project-toggle :which-key "Open project file tree"))
:init
(defun uno/ui/filetree/project-toggle ()
"Toggle and add the current project to treemacs if not already added."
(interactive)
(if (eq (treemacs-current-visibility) 'visible)
(delete-window (treemacs-get-local-window))
(let ((path (projectile-ensure-project (projectile-project-root)))
(name (projectile-project-name)))
(unless (treemacs-current-workspace)
(treemacs--find-workspace))
(treemacs-do-add-project-to-workspace path name)
(treemacs-select-window)))))
Borrowed from Spacemacs.
(use-package treemacs
:after (uno-ui-filetree winum)
:general
(winum-keymap
[remap winum-select-window-0-or-10] 'treemacs-select-window)
:config
(push
'((nil . "winum-select-window-0-or-10") . (nil . "treemacs-select-window"))
which-key-replacement-alist)
(dolist (n (number-sequence 1 5))
(push
(format "%sFramebuffer-%s*" treemacs--buffer-name-prefix n)
winum-ignored-buffers)))