Function: treesit--explorer-generate-parser-alist

treesit--explorer-generate-parser-alist is a byte-compiled function defined in treesit.el.gz.

Signature

(treesit--explorer-generate-parser-alist)

Documentation

Return an alist of (PARSER-NAME . PARSER) for relevant parsers.

Relevant parsers include all global parsers and local parsers that covers point. PARSER-NAME are unique.

Source Code

;; Defined in /usr/src/emacs/lisp/treesit.el.gz
(defun treesit--explorer-generate-parser-alist ()
  "Return an alist of (PARSER-NAME . PARSER) for relevant parsers.
Relevant parsers include all global parsers and local parsers that
covers point.  PARSER-NAME are unique."
  (let* ((local-parsers (treesit-parser-list nil nil 'embedded))
         (local-parsers-at-point
          (treesit-local-parsers-at (point)))
         res)
    (dolist (parser (treesit-parser-list nil nil t))
      ;; Exclude local parsers that doesn't cover point.
      (when (or (memq parser local-parsers-at-point)
                (not (memq parser local-parsers)))
        (push (cons (concat (format "%s" parser)
                            (if (treesit-parser-tag parser)
                                (format " tag=%s"
                                        (treesit-parser-tag
                                         parser))
                              "")
                            (if (memq parser
                                      local-parsers-at-point)
                                " (local)"
                              "")
                            (propertize (format " %s" (gensym))
                                        'invisible t))
                    parser)
              res)))
    (nreverse res)))