]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/treesit.el: Improvements for treesit-explore-mode (bug#75079)
authorJuri Linkov <juri@linkov.net>
Wed, 25 Dec 2024 17:52:10 +0000 (19:52 +0200)
committerEshel Yaron <me@eshelyaron.com>
Fri, 27 Dec 2024 15:33:58 +0000 (16:33 +0100)
(treesit-explorer-switch-parser): Don't use completing-read
on the single parser.
(treesit-explore-mode): Don't save treesit-explore-mode to the desktop.

(cherry picked from commit c09e056c43e344c5adda08ef819252824cff0ef0)

lisp/treesit.el

index 7040f59d01e9d6ca4d01732b9e1ebca113fbedd4..b18e8e281cedde0ae25e5666c3a3d2d3199dffd0 100644 (file)
@@ -3903,8 +3903,10 @@ covers point.  PARSER-NAME are unique."
   (interactive
    (list (let* ((parser-alist
                  (treesit--explorer-generate-parser-alist))
-                (parser-name (completing-read
-                              "Parser: " (mapcar #'car parser-alist))))
+                (parser-name (if (= (length parser-alist) 1)
+                                 (car parser-alist)
+                               (completing-read
+                                "Parser: " (mapcar #'car parser-alist)))))
            (alist-get parser-name parser-alist
                       nil nil #'equal))))
   (unless treesit-explore-mode
@@ -3944,7 +3946,15 @@ window."
           (unless (memq 'treesit--explorer-tree-mode
                         desktop-modes-not-to-save)
             (push 'treesit--explorer-tree-mode
-                  desktop-modes-not-to-save))))
+                  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)