mirror of
https://github.com/SqrtMinusOne/biome.git
synced 2025-12-10 14:35:13 +03:00
biome-multi: presets and lint errors
This commit is contained in:
parent
dbea2562e2
commit
0b0333c111
3 changed files with 33 additions and 4 deletions
|
|
@ -143,7 +143,7 @@ called with QUERIES and the data returned by the API as arguments."
|
||||||
:params (biome-api--get-params query)
|
:params (biome-api--get-params query)
|
||||||
:parser #'json-read
|
:parser #'json-read
|
||||||
:success (cl-function
|
:success (cl-function
|
||||||
(lambda (&key data &allow-other-keys)
|
(lambda (&allow-other-keys)
|
||||||
;; I'm not sure why, but `request-response-done-p' for
|
;; I'm not sure why, but `request-response-done-p' for
|
||||||
;; the current request returns nil. I don't
|
;; the current request returns nil. I don't
|
||||||
;; know how stable this is, so...
|
;; know how stable this is, so...
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,8 @@ This is a list of forms as defined by `biome-query-current'.")
|
||||||
(defun biome-multi-add-query ()
|
(defun biome-multi-add-query ()
|
||||||
"Add new query to `biome-multi'."
|
"Add new query to `biome-multi'."
|
||||||
(interactive)
|
(interactive)
|
||||||
(biome-query
|
(funcall-interactively
|
||||||
|
#'biome-query
|
||||||
(lambda (query)
|
(lambda (query)
|
||||||
(if (seq-empty-p biome-multi-query-current)
|
(if (seq-empty-p biome-multi-query-current)
|
||||||
(setq biome-multi-query-current (list (copy-tree query)))
|
(setq biome-multi-query-current (list (copy-tree query)))
|
||||||
|
|
@ -109,17 +110,29 @@ This is a list of forms as defined by `biome-query-current'.")
|
||||||
(user-error "No queries to execute"))
|
(user-error "No queries to execute"))
|
||||||
(funcall biome-multi--callback biome-multi-query-current))
|
(funcall biome-multi--callback biome-multi-query-current))
|
||||||
|
|
||||||
|
(defun biome-multi--generate-preset ()
|
||||||
|
"Generate a preset for the current multi-query."
|
||||||
|
(interactive)
|
||||||
|
(let ((buf (generate-new-buffer "*biome-preset*")))
|
||||||
|
(with-current-buffer buf
|
||||||
|
(emacs-lisp-mode)
|
||||||
|
(insert ";; Add this to your config\n")
|
||||||
|
(insert (pp-to-string `(biome-def-multi-preset ,(gensym "biome-query-preset-")
|
||||||
|
,biome-multi-query-current))))
|
||||||
|
(switch-to-buffer buf)))
|
||||||
|
|
||||||
(transient-define-prefix biome-multi-query (callback)
|
(transient-define-prefix biome-multi-query (callback)
|
||||||
["Open Meteo Multi Query"
|
["Open Meteo Multi Query"
|
||||||
(biome-multi--transient-report-infix)]
|
(biome-multi--transient-report-infix)]
|
||||||
["Queries"
|
["Queries"
|
||||||
:class transient-row
|
:class transient-row
|
||||||
("a" "Add query" biome-multi-add-query)
|
("a" "Add query" biome-multi-add-query :transient transient--do-replace)
|
||||||
("e" "Edit query" biome-multi-edit :transient t)
|
("e" "Edit query" biome-multi-edit :transient t)
|
||||||
("d" "Delete query" biome-multi-remove :transient t)]
|
("d" "Delete query" biome-multi-remove :transient t)]
|
||||||
["Actions"
|
["Actions"
|
||||||
:class transient-row
|
:class transient-row
|
||||||
("RET" "Run" biome-multi-exec)
|
("RET" "Run" biome-multi-exec)
|
||||||
|
("P" "Generate preset definition" biome-multi--generate-preset)
|
||||||
("R" "Reset" biome-multi-reset :transient t)
|
("R" "Reset" biome-multi-reset :transient t)
|
||||||
("q" "Quit" transient-quit-one)]
|
("q" "Quit" transient-quit-one)]
|
||||||
(interactive (list nil))
|
(interactive (list nil))
|
||||||
|
|
|
||||||
18
biome.el
18
biome.el
|
|
@ -77,7 +77,9 @@ API."
|
||||||
(defun biome-multi ()
|
(defun biome-multi ()
|
||||||
"Run multiple queries to Open Meteo and join the results."
|
"Run multiple queries to Open Meteo and join the results."
|
||||||
(interactive)
|
(interactive)
|
||||||
(biome-multi-query
|
(funcall-interactively
|
||||||
|
#'biome-multi-query
|
||||||
|
biome-multi-query
|
||||||
(lambda (query)
|
(lambda (query)
|
||||||
(biome-api-get-multiple
|
(biome-api-get-multiple
|
||||||
query
|
query
|
||||||
|
|
@ -102,5 +104,19 @@ PARAMS as query."
|
||||||
(setq biome-query-current ',params)
|
(setq biome-query-current ',params)
|
||||||
(biome-query--section-open (alist-get :name ',params))))
|
(biome-query--section-open (alist-get :name ',params))))
|
||||||
|
|
||||||
|
(defmacro biome-def-multi-preset (name params)
|
||||||
|
"Declare a multi-query preset.
|
||||||
|
|
||||||
|
NAME is the name of the target function. PARAMS is a form as defined
|
||||||
|
by `biome-multi-query-current'.
|
||||||
|
|
||||||
|
This macro creates an interactive function that runs `biome-multi' with
|
||||||
|
PARAMS as query."
|
||||||
|
(declare (indent 1))
|
||||||
|
`(defun ,name ()
|
||||||
|
(interactive)
|
||||||
|
(setq biome-multi-query-current ',params)
|
||||||
|
(call-interactively #'biome-multi)))
|
||||||
|
|
||||||
(provide 'biome)
|
(provide 'biome)
|
||||||
;;; biome.el ends here
|
;;; biome.el ends here
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue