Skip to content

Commit 8774c80

Browse files
committed
Update a use of ansi-color-apply-on-region
Account for the `PRESERVER-SEQUENCES` argument in Emacs >= 28.1. * jupyter-mime.el (jupyter--ansi-color-apply-on-region): New function. (jupyter-ansi-color-apply-on-region): Use it.
1 parent 4fdc254 commit 8774c80

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

jupyter-mime.el

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,26 @@ function."
197197

198198
;;; Special handling of ANSI sequences
199199

200+
(defalias 'jupyter--ansi-color-apply-on-region
201+
(if (version< emacs-version "28.1")
202+
(lambda (begin end)
203+
(cl-letf (((symbol-function #'delete-and-extract-region)
204+
(lambda (beg end)
205+
(add-text-properties beg end '(invisible t jupyter-invisible t))
206+
(buffer-substring beg end))))
207+
(ansi-color-apply-on-region begin end)))
208+
(lambda (begin end)
209+
(ansi-color-apply-on-region begin end t)
210+
(dolist (ov (overlays-in begin end))
211+
(when (and (overlay-get ov 'invisible)
212+
(<= begin (overlay-start ov)
213+
(overlay-end ov) end))
214+
;; Assume invisible overlay added by
215+
;; `ansi-color-apply-on-region'.
216+
(add-text-properties (overlay-start ov) (overlay-end ov)
217+
'(invisible t jupyter-invisible t))
218+
(delete-overlay ov))))))
219+
200220
(defun jupyter-ansi-color-apply-on-region (begin end &optional face-prop)
201221
"`ansi-color-apply-on-region' with Jupyter specific modifications.
202222
In particular, does not delete escape sequences between BEGIN and
@@ -218,10 +238,7 @@ invisible property by adding it to `char-property-alias-alist'."
218238
(setq face (list face))
219239
(font-lock-prepend-text-property beg end 'face face)
220240
(put-text-property beg end (or face-prop 'font-lock-face) face)))))
221-
(cl-letf (((symbol-function #'delete-region)
222-
(lambda (beg end)
223-
(add-text-properties beg end '(invisible t jupyter-invisible t)))))
224-
(ansi-color-apply-on-region begin end))))
241+
(jupyter--ansi-color-apply-on-region begin end)))
225242

226243
;;; `jupyter-insert' method
227244

0 commit comments

Comments
 (0)