Function: combobulate-query-builder

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

Signature

(combobulate-query-builder)

Documentation

Open an interactive query builder buffer.

Design and test tree-sitter queries interactively with syntax highlighting and node completion.

Key Bindings

combobulate-key-map C-c o B q combobulate-options-key-map B q combobulate-query-key-map q

Source Code

;; Defined in /nix/store/b5fvrwzi3zvkabyzx0in6gw1cj963z46-emacs-packages-deps/share/emacs/site-lisp/combobulate-query.el
;;;###autoload
(defun combobulate-query-builder ()
  "Open an interactive query builder buffer.

Design and test tree-sitter queries interactively with syntax
highlighting and node completion."
  (interactive)
  (let* ((target-buffer (current-buffer))
         (builder-buffer (get-buffer-create combobulate-query-builder-buffer-name)))
    (when (eq target-buffer builder-buffer)
      (user-error "This buffer cannot be use as target buffer"))
    (with-current-buffer target-buffer
      (setq combobulate-query-builder-target-buffer-name target-buffer)
      (combobulate-query-builder-change-parser)
      (add-hook 'combobulate-query-builder-after-change-functions
                #'combobulate-query-builder--after-change nil :local))
    (with-current-buffer builder-buffer
      (erase-buffer)
      (combobulate-query-mode)
      (add-hook 'after-change-functions #'combobulate-query-builder--after-change nil t)
      (add-hook 'kill-buffer-hook #'combobulate-query-builder--clean-target-buffer nil t)
      (if combobulate-query-default-query
          (combobulate-query-builder-insert combobulate-query-default-query)
        (newline)
        (insert "()")
        (forward-char -1)))
    (display-buffer builder-buffer
                    `(display-buffer-below-selected
                      (window-height . fit-window-to-buffer)
                      (window-min-height . 3)
                      (inhibit-same-window . t)))
    ;; Switch focus to the query builder window.
    (select-window (get-buffer-window builder-buffer))))