You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

2.5 KiB

UI - Filetree

Package

Define UI filetree package.

  (use-package emacs
    :after uno-ui
    :config
    (provide 'uno-ui-filetree))

Treemacs

  (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))

Projectile Integration

  (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)))))

Winum Integration

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)))