branch: elpa/aidermacs
commit c55f325bc7bc8aba2ffb513b2548d1b90a92c94b
Author: Mingde (Matthew) Zeng <matthew...@posteo.net>
Commit: Mingde (Matthew) Zeng <matthew...@posteo.net>

    Improve aidermacs-batch-drop-dired-marked-files
    
    Signed-off-by: Mingde (Matthew) Zeng <matthew...@posteo.net>
---
 aidermacs.el | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/aidermacs.el b/aidermacs.el
index 9e9299572e..ccc1e1cbb7 100644
--- a/aidermacs.el
+++ b/aidermacs.el
@@ -681,9 +681,19 @@ Sends the \"/ls\" command and displays the results in a 
Dired buffer."
   (aidermacs--send-command "/drop"))
 
 (defun aidermacs-batch-drop-dired-marked-files ()
-  "Drop Dired files."
+  "Drop Dired marked files from the aidermacs session.
+If called from the special aidermacs files buffer, kill the buffer after 
dropping files."
   (interactive)
-  (aidermacs--drop-files-helper (dired-get-marked-files)))
+  (unless (derived-mode-p 'dired-mode)
+    (user-error "This command can only be used in Dired mode"))
+  (let ((files (dired-get-marked-files))
+        (is-aidermacs-files-buffer (string= (buffer-name)
+                                            (aidermacs-get-buffer-name nil " 
Files"))))
+    (aidermacs--drop-files-helper files)
+    ;; If we're in the special aidermacs files buffer, kill it after dropping 
files
+    (when is-aidermacs-files-buffer
+      (message "Closing aidermacs file buffer after dropping files")
+      (kill-buffer (aidermacs-get-buffer-name nil " Files")))))
 
 (defun aidermacs-show-output-history ()
   "Display the AI output history in a new buffer."
@@ -920,6 +930,8 @@ With prefix argument `C-u', add as read-only."
   "Add Dired files with READ-ONLY flag.
 With prefix argument `C-u', add as read-only."
   (interactive "P")
+  (unless (derived-mode-p 'dired-mode)
+    (user-error "This command can only be used in Dired mode"))
   (aidermacs--add-files-helper (dired-get-marked-files) read-only))
 
 (defun aidermacs-add-same-type-files-under-dir (&optional read-only)

Reply via email to