branch: elpa/aidermacs commit be8fa572bf31771ef068c0c689080d5df2e6b37d Author: Mingde (Matthew) Zeng <matthew...@posteo.net> Commit: Mingde (Matthew) Zeng <matthew...@posteo.net>
Use add-function for aidermacs--vterm-filter-buffer-substring Addresses #68 and #78 Signed-off-by: Mingde (Matthew) Zeng <matthew...@posteo.net> --- aidermacs-backend-vterm.el | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/aidermacs-backend-vterm.el b/aidermacs-backend-vterm.el index 2e6e89d4d3..92b8c75e35 100644 --- a/aidermacs-backend-vterm.el +++ b/aidermacs-backend-vterm.el @@ -155,16 +155,10 @@ Use BUFFER if provided, otherwise retrieve it from `aidermacs-get-buffer-name'." (setq aidermacs--vterm-active-timer nil))))) -(defun aidermacs--vterm-filter-buffer-substring (beg end &optional delete) - "Filter text from BEG to END in vterm buffer for cleaner display. -When DELETE is non-nil, extract and delete the region instead of copying it." - (let* ((text (cond - (delete - (save-excursion - (goto-char beg) - (delete-and-extract-region beg end))) - (t - (buffer-substring beg end)))) +(defun aidermacs--vterm-filter-buffer-substring (orig-fun &rest args) + "Filter text using ORIG-FUN with ARGS for cleaner vterm display. +Converts multiple spaces to newlines and trims trailing whitespace." + (let* ((text (apply orig-fun args)) (space-fixed (replace-regexp-in-string "[ \t]{3,}" "\n" text)) (lines (split-string space-fixed "\n")) (clean-lines (mapcar #'string-trim-right lines)) @@ -340,7 +334,8 @@ _ARGS are the arguments." "Minor mode for vterm backend buffer used by aidermacs." :init-value nil :keymap aidermacs-vterm-mode-map - (setq-local filter-buffer-substring-function 'aidermacs--vterm-filter-buffer-substring)) + (add-function :around (local 'filter-buffer-substring-function) + #'aidermacs--vterm-filter-buffer-substring)) (provide 'aidermacs-backend-vterm) ;;; aidermacs-backend-vterm.el ends here