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

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

[nongnu] elpa/gptel 7c2e342f35 176/273: gptel-transient: Add prompting f


From: ELPA Syncer
Subject: [nongnu] elpa/gptel 7c2e342f35 176/273: gptel-transient: Add prompting from kill-ring
Date: Wed, 1 May 2024 10:02:20 -0400 (EDT)

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

    gptel-transient: Add prompting from kill-ring
    
    * gptel-transient.el (gptel-menu, gptel--suffix-send):  Add a
    transient menu option to select the prompt from the kill-ring.
    By default the latest kill is selected.  Sending with a prefix-arg
    allows for choosing the kill ring element.
    
    TODO: This latter behavior needs to be made discoverable somehow.
---
 gptel-transient.el | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/gptel-transient.el b/gptel-transient.el
index 82889430ce..f1c7e1b497 100644
--- a/gptel-transient.el
+++ b/gptel-transient.el
@@ -123,6 +123,7 @@ which see."
     (gptel--infix-temperature)]
    ["Prompt:"
     ("p" "From minibuffer instead" "p")
+    ("y" "From kill-ring instead" "y")
     ("i" "Replace/Delete prompt" "i")
     "Response to:"
     ("m" "Minibuffer instead" "m")
@@ -379,13 +380,20 @@ will get progressively longer!"
         (buffer) (position)
         (callback) (gptel-buffer-name)
         (prompt
-         (and (member "p" args)
-              (read-string
-               (format "Ask %s: " (gptel-backend-name gptel-backend))
-               (apply #'buffer-substring-no-properties
-                      (if (use-region-p)
-                          (list (region-beginning) (region-end))
-                        (list (line-beginning-position) 
(line-end-position))))))))
+         (cond
+          ((member "p" args)
+           (read-string
+            (format "Ask %s: " (gptel-backend-name gptel-backend))
+            (apply #'buffer-substring-no-properties
+                   (if (use-region-p)
+                       (list (region-beginning) (region-end))
+                     (list (line-beginning-position) (line-end-position))))))
+          ((member "y" args)
+           (unless (car-safe kill-ring)
+             (user-error "`kill-ring' is empty!  Nothing to send."))
+           (if current-prefix-arg
+               (read-from-kill-ring "Prompt from kill-ring: ")
+             (current-kill 0))))))
     (cond
      ((member "m" args)
       (setq stream nil)



reply via email to

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