branch: elpa/gptel
commit 611c9e9b8b0c5831e4a0b4253b9fe25196e0e8e6
Author: Karthik Chikmagalur <karthikchikmaga...@gmail.com>
Commit: Karthik Chikmagalur <karthikchikmaga...@gmail.com>

    gptel: Add toggle to control Markdown to Org conversion (#451)
    
    * gptel.el (gptel--url-get-response, gptel-org-convert-response):
    Add a boolean user option to toggle the automatic conversion of
    Markdown responses to Org.
    
    * gptel-curl.el (gptel-curl-get-response): Concomitant changes.
---
 gptel-curl.el |  5 +++--
 gptel.el      | 11 +++++++++--
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/gptel-curl.el b/gptel-curl.el
index 79fc91c41a..ea25277ef7 100644
--- a/gptel-curl.el
+++ b/gptel-curl.el
@@ -145,8 +145,9 @@ the response is inserted into the current buffer after 
point."
                                        (if stream
                                            #'gptel-curl--stream-insert-response
                                          #'gptel--insert-response))
-                         :transformer (when (with-current-buffer (plist-get 
info :buffer)
-                                              (derived-mode-p 'org-mode))
+                         :transformer (when (and gptel-org-convert-response
+                                                 (with-current-buffer 
(plist-get info :buffer)
+                                                   (derived-mode-p 'org-mode)))
                                         (gptel--stream-convert-markdown->org
                                          (plist-get info :position))))
                    info))
diff --git a/gptel.el b/gptel.el
index 0cafda38fb..b0d32b110b 100644
--- a/gptel.el
+++ b/gptel.el
@@ -239,6 +239,12 @@ all at once.  This wait is asynchronous.
   "Whether gptel should prefer Curl when available."
   :type 'boolean)
 
+(defcustom gptel-org-convert-response t
+  "Whether gptel should convert Markdown responses to Org markup.
+
+This only affects requests originating from Org mode buffers."
+  :type 'boolean)
+
 (defcustom gptel-curl-file-size-threshold
   (if (memq system-type '(windows-nt ms-dos)) 32766 130000)
   "Size threshold for using file input with Curl.
@@ -1784,8 +1790,9 @@ the response is inserted into the current buffer after 
point."
          (encode-coding-string
           (gptel--json-encode (plist-get info :data))
           'utf-8)))
-    (when (with-current-buffer (plist-get info :buffer)
-            (derived-mode-p 'org-mode))
+    (when (and gptel-org-convert-response
+               (with-current-buffer (plist-get info :buffer)
+                 (derived-mode-p 'org-mode)))
       (plist-put info :transformer #'gptel--convert-markdown->org))
     ;; why do these checks not occur inside of `gptel--log'?
     (when gptel-log-level               ;logging

Reply via email to