mirror of
https://github.com/SqrtMinusOne/biome.git
synced 2025-12-10 14:35:13 +03:00
biome: add biome-preset
This commit is contained in:
parent
f4c5d0ec89
commit
36efbc122d
3 changed files with 49 additions and 6 deletions
|
|
@ -113,12 +113,20 @@ This is a list of forms as defined by `biome-query-current'.")
|
|||
(defun biome-multi--generate-preset ()
|
||||
"Generate a preset for the current multi-query."
|
||||
(interactive)
|
||||
(let ((buf (generate-new-buffer "*biome-preset*")))
|
||||
(let ((buf (generate-new-buffer "*biome-preset*"))
|
||||
(preset-symbol (gensym "biome-query-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-")
|
||||
(insert (pp-to-string `(biome-def-multi-preset ,preset-symbol
|
||||
,biome-multi-query-current)))
|
||||
(insert ";; invoke with M-x " (symbol-name preset-symbol))
|
||||
(insert "\n\n;; Or:\n")
|
||||
(insert (pp-to-string `(add-to-list 'biome-presets-alist
|
||||
'(,(symbol-name preset-symbol)
|
||||
:multi
|
||||
,biome-multi-query-current))))
|
||||
(insert ";; invoke with M-x biome-preset"))
|
||||
(switch-to-buffer buf)))
|
||||
|
||||
(transient-define-prefix biome-multi-query (callback)
|
||||
|
|
|
|||
|
|
@ -965,12 +965,20 @@ SUFFIXES is a list of suffix definitions."
|
|||
(defun biome-query--generate-preset ()
|
||||
"Generate a preset for the current query."
|
||||
(interactive)
|
||||
(let ((buf (generate-new-buffer "*biome-preset*")))
|
||||
(let ((buf (generate-new-buffer "*biome-preset*"))
|
||||
(preset-symbol (gensym "biome-query-preset-")))
|
||||
(with-current-buffer buf
|
||||
(emacs-lisp-mode)
|
||||
(insert ";; Add this to your config\n")
|
||||
(insert (pp-to-string `(biome-def-preset ,(gensym "biome-query-preset-")
|
||||
(insert (pp-to-string `(biome-def-preset ,preset-symbol
|
||||
,biome-query-current)))
|
||||
(insert ";; invoke with M-x " (symbol-name preset-symbol))
|
||||
(insert "\n\n;; Or:\n")
|
||||
(insert (pp-to-string `(add-to-list 'biome-presets-alist
|
||||
'(,(symbol-name preset-symbol)
|
||||
:normal
|
||||
,biome-query-current))))
|
||||
(insert ";; invoke with M-x biome-preset"))
|
||||
(switch-to-buffer buf)))
|
||||
|
||||
(transient-define-prefix biome-query--section (section &optional parents)
|
||||
|
|
|
|||
27
biome.el
27
biome.el
|
|
@ -57,6 +57,16 @@ API."
|
|||
:type 'function
|
||||
:group 'biome)
|
||||
|
||||
(defcustom biome-presets-alist nil
|
||||
"Presets for `biome' queries."
|
||||
:type '(repeat
|
||||
(list
|
||||
(string :tag "Preset name")
|
||||
(choice (const :tag "Normal" :normal)
|
||||
(const :tag "Multi" :multi))
|
||||
(sexp :tag "Parameters")))
|
||||
:group 'biome)
|
||||
|
||||
(defun biome ()
|
||||
"Bountiful Interface to Open Meteo for Emacs."
|
||||
(interactive)
|
||||
|
|
@ -117,5 +127,22 @@ PARAMS as query."
|
|||
(setq biome-multi-query-current ',params)
|
||||
(call-interactively #'biome-multi)))
|
||||
|
||||
(defun biome-preset (preset-def)
|
||||
"Run PRESET-DEF."
|
||||
(interactive (list (alist-get
|
||||
(completing-read "Preset" biome-presets-alist)
|
||||
biome-presets-alist nil nil #'equal)))
|
||||
(pcase-let ((`(,kind ,params) preset-def))
|
||||
(pcase kind
|
||||
(:normal
|
||||
(setq biome-query--callback
|
||||
(lambda (query)
|
||||
(biome-api-get query biome-frontend)))
|
||||
(setq biome-query-current params)
|
||||
(biome-query--section-open (alist-get :name params)))
|
||||
(:multi
|
||||
(setq biome-multi-query-current params)
|
||||
(call-interactively #'biome-multi)))))
|
||||
|
||||
(provide 'biome)
|
||||
;;; biome.el ends here
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue