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

    gptel-context: Make gptel-context-remove-all interactive (#587)
    
    * gptel-context.el (gptel-context-remove-all): Make interactive,
    and message the user when called interactively.
    
    * gptel-transient.el (gptel--infix-context-remove-all): Simplify
    the context-remove-all menu item.
---
 gptel-context.el   | 24 ++++++++++++++++--------
 gptel-transient.el |  5 ++---
 2 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/gptel-context.el b/gptel-context.el
index acdc7ca02b..24a2bbea22 100644
--- a/gptel-context.el
+++ b/gptel-context.el
@@ -256,14 +256,22 @@ If CONTEXT is a directory, recursively removes all files 
in it."
     (when-let ((ctx (gptel-context--at-point)))
       (delete-overlay ctx)))))
 
-(defun gptel-context-remove-all ()
-  "Remove all gptel context."
-  (cl-loop
-   for (source . ovs) in gptel-context--alist
-   if (bufferp source) do               ;Buffers and buffer regions
-   (mapc #'gptel-context-remove ovs)
-   else do (gptel-context-remove source) ;files or other types
-   finally do (setq gptel-context--alist nil)))
+(defun gptel-context-remove-all (&optional verbose)
+  "Remove all gptel context.
+
+If VERBOSE is non-nil, ask for confirmation and message
+afterwards."
+  (interactive (list t))
+  (if (null gptel-context--alist)
+      (when verbose (message "No gptel context sources to remove."))
+    (when (or (not verbose) (y-or-n-p "Remove all context? "))
+      (cl-loop
+       for (source . ovs) in gptel-context--alist
+       if (bufferp source) do           ;Buffers and buffer regions
+       (mapc #'gptel-context-remove ovs)
+       else do (gptel-context-remove source) ;files or other types
+       finally do (setq gptel-context--alist nil)))
+    (when verbose (message "Removed all gptel context sources."))))
 
 (defun gptel-context--make-overlay (start end &optional advance)
   "Highlight the region from START to END.
diff --git a/gptel-transient.el b/gptel-transient.el
index bf7105fb5c..c3f04462d6 100644
--- a/gptel-transient.el
+++ b/gptel-transient.el
@@ -929,9 +929,8 @@ supports.  See `gptel-track-media' for more information."
   :key "-d"
   :description "Remove all"
   (interactive)
-  (when (y-or-n-p "Remove all context? ")
-    (gptel-context-remove-all)
-    (transient-setup)))
+  (gptel-context-remove-all t)
+  (transient-setup))
 
 ;; ** Infix for additional directive
 

Reply via email to