branch: elpa/aidermacs
commit a0e0066129f18457e41e46c3d8e70061cb467526
Author: Reindert-Jan Ekker <[email protected]>
Commit: GitHub <[email protected]>
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