summaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
authorThomas Voss <thomas.voss@humanwave.nl> 2025-12-11 15:32:06 +0100
committerThomas Voss <thomas.voss@humanwave.nl> 2025-12-11 15:32:06 +0100
commitdad93f009a27699ffc58c7949cd826d3c1487136 (patch)
treec9f663c045fb23cb96da1cf034e1eb9833940f91 /.config
parent5b57bb47d0d7daf3a9d2fe772eb03793f4f76505 (diff)
emacs: Optimize marking code a bit
Diffstat (limited to '.config')
-rw-r--r--.config/emacs/site-lisp/marker.el15
1 files changed, 6 insertions, 9 deletions
diff --git a/.config/emacs/site-lisp/marker.el b/.config/emacs/site-lisp/marker.el
index 5bc1dd2..f39cad4 100644
--- a/.config/emacs/site-lisp/marker.el
+++ b/.config/emacs/site-lisp/marker.el
@@ -1,8 +1,6 @@
(require 'hi-lock)
(require 'seq)
-(defvar-local marker--overlays nil)
-
(defun marker-mark ()
(interactive)
(marker-mark-region (if (use-region-p)
@@ -19,13 +17,13 @@
(overlay-put ov 'priority 1)
(overlay-put ov 'face 'hi-yellow)
(overlay-put ov 'evaporate t)
- (push ov marker--overlays)))
+ (overlay-put ov 'marker--mark-p t)))
(defun marker-unmark ()
(interactive)
- (marker-unmark-region (if (use-region-p)
- (region-bounds)
- `((,(pos-bol) . ,(pos-eol)))))
+ (if (use-region-p)
+ (marker-unmark-region (region-bounds))
+ (marker-clear))
(when (region-active-p)
(deactivate-mark)))
@@ -33,7 +31,7 @@
(dolist (x bounds) (marker--unmark-region (car x) (cdr x))))
(defun marker--unmark-region (beg end)
- (dolist (ov (seq-filter (lambda (ov) (memq ov marker--overlays))
+ (dolist (ov (seq-filter (lambda (ov) (overlay-get ov 'marker--mark-p))
(overlays-in beg end)))
(cond ((< (overlay-start ov) beg)
(move-overlay ov (overlay-start ov) beg))
@@ -44,7 +42,6 @@
(defun marker-clear ()
(interactive)
- (mapc #'delete-overlay marker--overlays)
- (setq marker--overlays nil))
+ (remove-overlays nil nil 'marker--mark-p t))
(provide 'marker)