Variable: treesit-explore-mode

treesit-explore-mode is a buffer-local variable defined in treesit.el.gz.

Documentation

Non-nil if Treesit-Explore mode is enabled.

Use the command treesit-explore-mode(var)/treesit-explore-mode(fun) to change this variable.

Probably introduced at or before Emacs version 31.1.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/treesit.el.gz
(define-minor-mode treesit-explore-mode
  "Enable exploring the current buffer's syntax tree.
Pops up a window showing the syntax tree of the source in the
current buffer in real time.  The corresponding node enclosing
the text in the active region is highlighted in the explorer
window."
  :lighter " TSexplore"
  (if treesit-explore-mode
      (progn
        ;; Create explorer buffer.
        (unless (buffer-live-p treesit--explorer-buffer)
          (setq-local treesit--explorer-buffer
                      (get-buffer-create
                       (format "*tree-sitter explorer for %s*"
                               (buffer-name))))
          (with-current-buffer treesit--explorer-buffer
            (treesit--explorer-tree-mode)))
        ;; Select parser.
        (call-interactively #'treesit-explorer-switch-parser)
        ;; Set up variables and hooks.
        (add-hook 'post-command-hook
                  #'treesit--explorer-post-command 0 t)
        (add-hook 'kill-buffer-hook
                  #'treesit--explorer-kill-explorer-buffer 0 t)
        ;; Tell `desktop-save' to not save explorer buffers.
        (when (boundp 'desktop-modes-not-to-save)
          (unless (memq 'treesit--explorer-tree-mode
                        desktop-modes-not-to-save)
            (push 'treesit--explorer-tree-mode
                  desktop-modes-not-to-save)))
        ;; Tell `desktop-save' to not save this minor mode
        ;; that might disrupt loading the desktop
        ;; with the prompt to select a parser.
        (when (boundp 'desktop-minor-mode-table)
          (unless (member '(treesit-explore-mode nil)
                          desktop-minor-mode-table)
            (push '(treesit-explore-mode nil)
                  desktop-minor-mode-table))))
    ;; Turn off explore mode.
    (remove-hook 'post-command-hook
                 #'treesit--explorer-post-command t)
    (remove-hook 'kill-buffer-hook
                 #'treesit--explorer-kill-explorer-buffer t)
    (treesit--explorer-kill-explorer-buffer)))