Function: treemacs-common-helpful-hydra

treemacs-common-helpful-hydra is an autoloaded, interactive and byte-compiled function defined in treemacs-hydras.el.

Signature

(treemacs-common-helpful-hydra)

Documentation

Summon a helpful hydra to show you the treemacs keymap.

This hydra will show the most commonly used keybinds for treemacs. For the more advanced (probably rarely used keybinds) see treemacs-advanced-helpful-hydra.

The keybinds shown in this hydra are not static, but reflect the actual keybindings currently in use (including evil mode). If the hydra is unable to find the key a command is bound to it will show a blank instead.

Key Bindings

Aliases

treemacs-helpful-hydra

Source Code

;; Defined in ~/.emacs.d/elpa/treemacs-20251226.1307/treemacs-hydras.el
;;;###autoload
(defun treemacs-common-helpful-hydra ()
  "Summon a helpful hydra to show you the treemacs keymap.

This hydra will show the most commonly used keybinds for treemacs.  For the more
advanced (probably rarely used keybinds) see `treemacs-advanced-helpful-hydra'.

The keybinds shown in this hydra are not static, but reflect the actual
keybindings currently in use (including evil mode).  If the hydra is unable to
find the key a command is bound to it will show a blank instead."
  (interactive)
  (-if-let (b (treemacs-get-local-buffer))
      (with-current-buffer b
        (let*
            ((title              (format (propertize "Treemacs %s Common Helpful Hydra" 'face 'treemacs-help-title-face) (treemacs-version)))
             (adv-hint           (format "%s %s"
                                         (propertize "For advanced keybinds see" 'face 'treemacs-help-title-face)
                                         (propertize "treemacs-advanced-helpful-hydra" 'face 'font-lock-function-name-face)))
             (column-nav         (propertize "Navigation" 'face 'treemacs-help-column-face))
             (column-nodes       (propertize "Opening Nodes" 'face 'treemacs-help-column-face))
             (column-toggles     (propertize "Toggles " 'face 'treemacs-help-column-face))
             (column-projects    (propertize "Projects" 'face 'treemacs-help-column-face))
             (key-adv-hydra      (treemacs--find-keybind #'treemacs-advanced-helpful-hydra))
             (key-root-up        (treemacs--find-keybind #'treemacs-root-up))
             (key-root-down      (treemacs--find-keybind #'treemacs-root-down))
             (key-next-line      (treemacs--find-keybind #'treemacs-next-line))
             (key-prev-line      (treemacs--find-keybind #'treemacs-previous-line))
             (key-next-neighbour (treemacs--find-keybind #'treemacs-next-neighbour))
             (key-prev-neighbour (treemacs--find-keybind #'treemacs-previous-neighbour))
             (key-goto-parent    (treemacs--find-keybind #'treemacs-goto-parent-node))
             (key-down-next-w    (treemacs--find-keybind #'treemacs-next-line-other-window))
             (key-up-next-w      (treemacs--find-keybind #'treemacs-previous-line-other-window))
             (key-ret            (treemacs--find-keybind #'treemacs-RET-action))
             (key-tab            (treemacs--find-keybind #'treemacs-TAB-action))
             (key-open           (treemacs--find-keybind #'treemacs-visit-node-no-split))
             (key-open-horiz     (treemacs--find-keybind #'treemacs-visit-node-horizontal-split))
             (key-open-vert      (treemacs--find-keybind #'treemacs-visit-node-vertical-split))
             (key-open-ace       (treemacs--find-keybind #'treemacs-visit-node-ace))
             (key-open-ace-h     (treemacs--find-keybind #'treemacs-visit-node-ace-horizontal-split))
             (key-open-ace-v     (treemacs--find-keybind #'treemacs-visit-node-ace-vertical-split))
             (key-open-ext       (treemacs--find-keybind #'treemacs-visit-node-in-external-application))
             (key-open-mru       (treemacs--find-keybind #'treemacs-visit-node-in-most-recently-used-window))
             (key-open-close     (treemacs--find-keybind #'treemacs-visit-node-close-treemacs))
             (key-close-above    (treemacs--find-keybind #'treemacs-collapse-parent-node))
             (key-follow-mode    (treemacs--find-keybind #'treemacs-follow-mode))
             (key-header-mode    (treemacs--find-keybind #'treemacs-indicate-top-scroll-mode))
             (key-fringe-mode    (treemacs--find-keybind #'treemacs-fringe-indicator-mode))
             (key-fwatch-mode    (treemacs--find-keybind #'treemacs-filewatch-mode))
             (key-commit-diff    (treemacs--find-keybind #'treemacs-git-commit-diff-mode))
             (key-git-mode       (treemacs--find-keybind #'treemacs-git-mode))
             (key-show-dotfiles  (treemacs--find-keybind #'treemacs-toggle-show-dotfiles))
             (key-indent-guide   (treemacs--find-keybind #'treemacs-indent-guide-mode))
             (key-show-gitignore (treemacs--find-keybind #'treemacs-hide-gitignored-files-mode))
             (key-toggle-width   (treemacs--find-keybind #'treemacs-toggle-fixed-width))
             (key-add-project    (treemacs--find-keybind #'treemacs-add-project-to-workspace 12))
             (key-remove-project (treemacs--find-keybind #'treemacs-remove-project-from-workspace 12))
             (key-rename-project (treemacs--find-keybind #'treemacs-rename-project 12))
             (hydra-str
              (format
               "
%s
%s (%s)

%s              ^^^^^^^^│ %s              ^^^^^^^^^^^│ %s                     ^^^^^^│  %s
――――――――――――――――――――――――┼――――――――――――――――――――――――――――┼――――――――――――――――――――――――――――――┼――――――――――――――――――――――――――
%s next line        ^^^^│ %s dwim TAB            ^^^^│ %s follow mode           ^^^^│ %s add project
%s prev line        ^^^^│ %s dwim RET            ^^^^│ %s filewatch mode        ^^^^│ %s remove project
%s next neighbour   ^^^^│ %s open no split       ^^^^│ %s git mode              ^^^^│ %s rename project
%s prev neighbour   ^^^^│ %s open horizontal     ^^^^│ %s show dotfiles         ^^^^│
%s goto parent      ^^^^│ %s open vertical       ^^^^│ %s show gitignored files ^^^^│
%s down next window ^^^^│ %s open ace            ^^^^│ %s resizability          ^^^^│
%s up next window   ^^^^│ %s open ace horizontal ^^^^│ %s fringe indicator      ^^^^│
%s root up          ^^^^│ %s open ace vertical   ^^^^│ %s indent guide          ^^^^│
%s root down        ^^^^│ %s open mru window     ^^^^│ %s top scroll indicator  ^^^^│
                        │ %s open externally     ^^^^│ %s git commit difference ^^^^│
                        │ %s open close treemacs ^^^^│                              │
                        │ %s close parent        ^^^^│                              │
"
               title
               adv-hint (car (s-split":" (car key-adv-hydra)))
               column-nav               column-nodes          column-toggles           column-projects
               (car key-next-line)      (car key-tab)         (car key-follow-mode)    (car key-add-project)
               (car key-prev-line)      (car key-ret)         (car key-fwatch-mode)    (car key-remove-project)
               (car key-next-neighbour) (car key-open)        (car key-git-mode)       (car key-rename-project)
               (car key-prev-neighbour) (car key-open-horiz)  (car key-show-dotfiles)
               (car key-goto-parent)    (car key-open-vert)   (car key-show-gitignore)
               (car key-down-next-w)    (car key-open-ace)    (car key-toggle-width)
               (car key-up-next-w)      (car key-open-ace-h)  (car key-fringe-mode)
               (car key-root-up)        (car key-open-ace-v)  (car key-indent-guide)
               (car key-root-down)      (car key-open-mru)    (car key-header-mode)
                                        (car key-open-ext)    (car key-commit-diff)
                                        (car key-open-close)
                                        (car key-close-above))))
          (eval
           `(defhydra treemacs--common-helpful-hydra (:exit nil :hint nil :columns 4)
              ,hydra-str
              (,(cdr key-adv-hydra)      #'treemacs-advanced-helpful-hydra :exit t)
              (,(cdr key-next-line)      #'treemacs-next-line)
              (,(cdr key-prev-line)      #'treemacs-previous-line)
              (,(cdr key-root-up)        #'treemacs-root-up)
              (,(cdr key-root-down)      #'treemacs-root-down)
              (,(cdr key-down-next-w)    #'treemacs-next-line-other-window)
              (,(cdr key-up-next-w)      #'treemacs-previous-line-other-window)
              (,(cdr key-next-neighbour) #'treemacs-next-neighbour)
              (,(cdr key-prev-neighbour) #'treemacs-previous-neighbour)
              (,(cdr key-goto-parent)    #'treemacs-goto-parent-node)
              (,(cdr key-ret)            #'treemacs-RET-action)
              (,(cdr key-tab)            #'treemacs-TAB-action)
              (,(cdr key-open)           #'treemacs-visit-node-no-split)
              (,(cdr key-open-horiz)     #'treemacs-visit-node-horizontal-split)
              (,(cdr key-open-vert)      #'treemacs-visit-node-vertical-split)
              (,(cdr key-open-ace)       #'treemacs-visit-node-ace)
              (,(cdr key-open-ace-h)     #'treemacs-visit-node-ace-horizontal-split)
              (,(cdr key-open-ace-v)     #'treemacs-visit-node-ace-vertical-split)
              (,(cdr key-open-mru)       #'treemacs-visit-node-in-most-recently-used-window)
              (,(cdr key-open-ext)       #'treemacs-visit-node-in-external-application)
              (,(cdr key-open-close)     #'treemacs-visit-node-close-treemacs)
              (,(cdr key-close-above)    #'treemacs-collapse-parent-node)
              (,(cdr key-follow-mode)    #'treemacs-follow-mode)
              (,(cdr key-header-mode)    #'treemacs-indicate-top-scroll-mode)
              (,(cdr key-show-dotfiles)  #'treemacs-toggle-show-dotfiles)
              (,(cdr key-show-gitignore) #'treemacs-hide-gitignored-files-mode)
              (,(cdr key-toggle-width)   #'treemacs-toggle-fixed-width)
              (,(cdr key-commit-diff)    #'treemacs-git-commit-diff-mode)
              (,(cdr key-fringe-mode)    #'treemacs-fringe-indicator-mode)
              (,(cdr key-indent-guide)   #'treemacs-indent-guide-mode)
              (,(cdr key-git-mode)       #'treemacs-git-mode)
              (,(cdr key-fwatch-mode)    #'treemacs-filewatch-mode)
              (,(cdr key-add-project)    #'treemacs-add-project-to-workspace)
              (,(cdr key-remove-project) #'treemacs-remove-project-from-workspace)
              (,(cdr key-rename-project) #'treemacs-rename-project)
              ("<escape>" nil "Exit"))))
        (treemacs--common-helpful-hydra/body))
    (treemacs-log-failure "The helpful hydra cannot be summoned without an existing treemacs buffer.")))