gptel-transient: Add outline-minor-mode support

* gptel-transient.el: Add section headers and an `outline-regexp'.
This commit is contained in:
Karthik Chikmagalur 2023-04-09 04:16:09 -07:00
parent 937c754e57
commit 23332a9bc5

View file

@ -82,6 +82,8 @@ Or is it the other way around?"
;; ** Prefix for setting the system prompt.
;; ** Prefix for setting the system prompt.
(transient-define-prefix gptel-system-prompt ()
"Change the system prompt to send ChatGPT.
@ -120,6 +122,8 @@ Customize `gptel-directives' for task-specific prompts."
(alist-get 'chat gptel-directives)))
:transient t)])
;; ** Prefix for rewriting/refactoring
(transient-define-prefix gptel-rewrite-menu ()
"Rewrite or refactor text region using ChatGPT."
[:description
@ -141,6 +145,7 @@ Customize `gptel-directives' for task-specific prompts."
(unless gptel--rewrite-message
(setq gptel--rewrite-message (gptel--rewrite-message)))
(transient-setup 'gptel-rewrite-menu))
;; TODO: Switch to dynamic Transient menus (below) once there's a new Transient release
;; (transient-define-prefix gptel-system-prompt ()
;; "Change the system prompt to send ChatGPT."
@ -166,6 +171,10 @@ Customize `gptel-directives' for task-specific prompts."
;; finally return (cons (list 'gptel--suffix-system-message)
;; prompt-suffixes))))
;; * Transient Infixes
;; ** Infixes for model parameters
(transient-define-infix gptel--infix-num-messages-to-send ()
"Number of recent messages to send with each exchange.
@ -249,6 +258,8 @@ will get progressively longer!"
(buf (call-interactively #'gptel)))
(and (bufferp buf)
(with-current-buffer buf (gptel-send)))))
;; ** Infix for the refactor/rewrite system message
(transient-define-infix gptel--infix-rewrite-prompt ()
"Chat directive (system message) to use for rewriting or refactoring."
:description (lambda () (if (derived-mode-p 'prog-mode)
@ -263,6 +274,10 @@ will get progressively longer!"
(read-string
prompt (gptel--rewrite-message) history)))
;; * Transient Suffixes
;; ** Suffix to send prompt
;; ** Set system message
(transient-define-suffix gptel--suffix-system-message ()
"Set directives sent to ChatGPT."
:transient nil
@ -304,6 +319,8 @@ will get progressively longer!"
(body-function . ,#'select-window)))
(call-interactively #'gptel-menu))))))
;; ** Suffixes for rewriting/refactoring
(transient-define-suffix gptel--suffix-rewrite ()
"Rewrite or refactor region contents."
:key "r"
@ -368,3 +385,8 @@ will get progressively longer!"
(provide 'gptel-transient)
;;; gptel-transient.el ends here
;; Local Variables:
;; outline-regexp: "^;; \\*+"
;; eval: (outline-minor-mode 1)
;; End: