From 23332a9bc55f4be737d181903e77c0697f29f138 Mon Sep 17 00:00:00 2001 From: Karthik Chikmagalur Date: Sun, 9 Apr 2023 04:16:09 -0700 Subject: [PATCH] gptel-transient: Add outline-minor-mode support * gptel-transient.el: Add section headers and an `outline-regexp'. --- gptel-transient.el | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gptel-transient.el b/gptel-transient.el index 9b69e37..62a9033 100644 --- a/gptel-transient.el +++ b/gptel-transient.el @@ -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: