branch: elpa/aidermacs
commit a0e0066129f18457e41e46c3d8e70061cb467526
Author: Reindert-Jan Ekker <i...@codesensei.nl>
Commit: GitHub <nore...@github.com>

    filter selected text in aidermacs-vterm-mode (#78)
    
    Fixes #68
---
 aidermacs-backend-vterm.el | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/aidermacs-backend-vterm.el b/aidermacs-backend-vterm.el
index fcd3b06133..7ad1634ec4 100644
--- a/aidermacs-backend-vterm.el
+++ b/aidermacs-backend-vterm.el
@@ -156,6 +156,21 @@ Use BUFFER if provided, otherwise retrieve it from 
`aidermacs-get-buffer-name'."
         (cancel-timer aidermacs--vterm-active-timer)
         (setq aidermacs--vterm-active-timer nil)))))
 
+
+(defun aidermacs--vterm-filter-buffer-substring (beg end &optional delete)
+  (let* ((text (cond
+                (delete
+                 (save-excursion
+                   (goto-char beg)
+                   (delete-and-extract-region beg end)))
+                (t
+                 (buffer-substring beg end))))
+         (space-fixed (replace-regexp-in-string "[ \t]{3,}" "\n" text))
+         (lines (split-string space-fixed "\n"))
+         (clean-lines (mapcar #'string-trim-right lines))
+         (fixed-text (string-join clean-lines "\n")))
+    fixed-text))
+
 (defcustom aidermacs-vterm-use-theme-colors t
   "Whether to use Emacs theme colors for aider.
 Has effect only when using the vterm backend."
@@ -324,7 +339,8 @@ _ARGS are the arguments."
 (define-minor-mode aidermacs-vterm-mode
   "Minor mode for vterm backend buffer used by aidermacs."
   :init-value nil
-  :keymap aidermacs-vterm-mode-map)
+  :keymap aidermacs-vterm-mode-map
+  (setq-local filter-buffer-substring-function 
'aidermacs--vterm-filter-buffer-substring))
 
 (provide 'aidermacs-backend-vterm)
 ;;; aidermacs-backend-vterm.el ends here

Reply via email to