Function: combobulate-query-builder-change-parser

combobulate-query-builder-change-parser is an interactive and natively compiled function defined in combobulate-query.el.

Signature

(combobulate-query-builder-change-parser)

Documentation

Change the parser used by combobulate-query-mode.

Key Bindings

combobulate-query-mode-map C-c p

Source Code

;; Defined in /nix/store/b5fvrwzi3zvkabyzx0in6gw1cj963z46-emacs-packages-deps/share/emacs/site-lisp/combobulate-query.el
(defun combobulate-query-builder-change-parser ()
  "Change the parser used by `combobulate-query-mode'."
  (interactive)
  (unless (buffer-live-p combobulate-query-builder-target-buffer-name)
    (error "Buffer `%s' is not live" combobulate-query-builder-target-buffer-name))
  (let ((parsers (mapcar (lambda (p) (cons (format "%s" p) p)) (combobulate-parser-list))))
    (setq combobulate-query-builder-parser
          (cond
           ((length= parsers 1) (cdr (car parsers)))
           ((length> parsers 1)
            (cdr (assoc (completing-read "Pick a parser" parsers) parsers)))
           (t (if-let ((p (completing-read "There are no associated parsers. Pick a parser Combobulate knows about: "
                                           combobulate-rules-languages)))
                  (combobulate-parser-create (intern p) combobulate-query-builder-target-buffer-name)
                (error "No parser selected")))))
    (when combobulate-query-builder-parser
      (combobulate-message
       (format "Parser changed to `%s'" (combobulate-parser-language combobulate-query-builder-parser))))))