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