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

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

[nongnu] elpa/gptel ba133267ec 063/273: gptel: Run post-response-hook af


From: ELPA Syncer
Subject: [nongnu] elpa/gptel ba133267ec 063/273: gptel: Run post-response-hook after inserting response
Date: Wed, 1 May 2024 10:01:43 -0400 (EDT)

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

    gptel: Run post-response-hook after inserting response
    
    * gptel.el (gptel--playback, gptel--insert-response):
    `gptel--insert-response' no longer handles stream playback. Run
    `gptel-post-response-hook' after inserting the response from
    ChatGPT. Delete the `gptel--playback' function since it never did
    anything -- it was a placebo.
---
 gptel.el | 50 ++++++++------------------------------------------
 1 file changed, 8 insertions(+), 42 deletions(-)

diff --git a/gptel.el b/gptel.el
index 942e7ad070..1579e7f1c3 100644
--- a/gptel.el
+++ b/gptel.el
@@ -320,19 +320,17 @@ See `gptel--url-get-response' for details."
           (save-excursion
             (put-text-property 0 (length content-str) 'gptel 'response 
content-str)
             (message "Querying ChatGPT... done.")
-            (goto-char response-pt)
-            (unless (bobp) (insert-before-markers-and-inherit "\n\n"))
-            (if gptel-playback
-                (gptel--playback gptel-buffer content-str response-pt)
-              (let ((p (point)))
-                (insert content-str)
-                (pulse-momentary-highlight-region p (point)))
-              (when gptel-mode
+            (goto-char start-marker)
+            (unless (bobp) (insert "\n\n"))
+            (let ((p (point)))
+              (insert content-str)
+              (pulse-momentary-highlight-region p (point)))
+            (when gptel-mode
                 (insert "\n\n" (gptel-prompt-string))
                 (gptel--update-header-line " Ready" 'success))))
-          (goto-char (- (point) 2)))
       (gptel--update-header-line
-       (format " Response Error: %s" status-str) 'error))))
+       (format " Response Error: %s" status-str) 'error))
+    (run-hooks 'gptel-post-response-hook)))
 
 (defun gptel--create-prompt (&optional prompt-end)
   "Return a full conversation prompt from the contents of this buffer.
@@ -621,37 +619,5 @@ text stream."
             (prog1 (buffer-substring (point) (point-max))
                    (set-marker start-pt (point-max)))))))))
 
-(defun gptel--playback (buf content-str start-pt)
-  "Playback CONTENT-STR in BUF.
-
-Begin at START-PT."
-  (let ((handle (gensym "gptel-change-group-handle--"))
-        (playback-timer (gensym "gptel--playback-"))
-        (content-length (length content-str))
-        (idx 0) (pt (copy-marker start-pt t)))
-    (setf (symbol-value handle) (prepare-change-group buf))
-    (activate-change-group (symbol-value handle))
-    (setf (symbol-value playback-timer)
-          (run-at-time
-          0 0.15
-           (lambda ()
-             (with-current-buffer buf
-               (if (>= content-length idx)
-                   (progn
-                     (goto-char pt)
-                     (insert
-                      (seq-subseq
-                       content-str idx
-                       (min content-length (+ idx 16))))
-                     (setq idx (+ idx 16)))
-                 (when gptel-mode
-                   (insert "\n\n" (gptel-prompt-string))
-                   (gptel--update-header-line " Ready" 'success))
-                 (when start-pt (goto-char (marker-position start-pt)))
-                 (accept-change-group (symbol-value handle))
-                 (undo-amalgamate-change-group (symbol-value handle))
-                 (cancel-timer (symbol-value playback-timer)))))))
-    nil))
-
 (provide 'gptel)
 ;;; gptel.el ends here



reply via email to

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