emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/gptel d13b0c4ab7 088/273: gptel-transient: Fix gptel-syste


From: ELPA Syncer
Subject: [nongnu] elpa/gptel d13b0c4ab7 088/273: gptel-transient: Fix gptel-system-prompt
Date: Wed, 1 May 2024 10:01:53 -0400 (EDT)

branch: elpa/gptel
commit d13b0c4ab76d9611e3c8886f73ec44bf104d59d4
Author: Karthik Chikmagalur <karthikchikmagalur@gmail.com>
Commit: Karthik Chikmagalur <karthikchikmagalur@gmail.com>

    gptel-transient: Fix gptel-system-prompt
    
    * gptel-transient.el (gptel--system-prompt-programming,
    gptel--system-prompt-default, gptel--system-prompt-writing,
    gptel--system-prompt-chat, gptel-system-prompt): Define explicit helper
    functions to set the system prompt.  This is a temporary workaround for #45
    until dynamic transients are supported in a new transient release.
---
 gptel-transient.el | 43 +++++++++++++++++++++++--------------------
 1 file changed, 23 insertions(+), 20 deletions(-)

diff --git a/gptel-transient.el b/gptel-transient.el
index e85ba882cd..79e177b607 100644
--- a/gptel-transient.el
+++ b/gptel-transient.el
@@ -104,6 +104,25 @@ Or is it the other way around?"
 
 ;; ** Prefix for setting the system prompt.
 
+;; These helper functions are a temporary workaround to fix #45. Once dynamic
+;; transients are supported, we can do away with all this jank.
+(defun gptel--system-prompt-programming ()
+  (interactive)
+  (setq gptel--system-message
+        (alist-get 'programming gptel-directives)))
+(defun gptel--system-prompt-default ()
+  (interactive)
+  (setq gptel--system-message
+        (alist-get 'chat gptel-directives)))
+(defun gptel--system-prompt-writing ()
+  (interactive)
+  (setq gptel--system-message
+        (alist-get 'writing gptel-directives)))
+(defun gptel--system-prompt-chat ()
+  (interactive)
+  (setq gptel--system-message
+        (alist-get 'default gptel-directives)))
+
 (transient-define-prefix gptel-system-prompt ()
   "Change the system prompt to send ChatGPT.
 
@@ -123,26 +142,10 @@ Customize `gptel-directives' for task-specific prompts."
    :class transient-column
    :pad-keys t
    (gptel--suffix-system-message)
-   ("p" "Programming"
-    (lambda () (interactive)
-      (setq gptel--system-message
-            (alist-get 'programming gptel-directives)))
-    :transient t)
-   ("d" "Default"
-    (lambda () (interactive)
-      (setq gptel--system-message
-            (alist-get 'default gptel-directives)))
-    :transient t)
-   ("w" "Writing"
-    (lambda () (interactive)
-      (setq gptel--system-message
-            (alist-get 'writing gptel-directives)))
-    :transient t)
-   ("c" "Chat"
-    (lambda () (interactive)
-      (setq gptel--system-message
-            (alist-get 'chat gptel-directives)))
-    :transient t)])
+   ("p" "Programming" gptel--system-prompt-programming :transient t)
+   ("d" "Default" gptel--system-prompt-default :transient t)
+   ("w" "Writing" gptel--system-prompt-writing :transient t)
+   ("c" "Chat" gptel--system-prompt-chat :transient t)])
 
 ;; ** Prefix for rewriting/refactoring
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]