techniques to loop over arrays, manage buffers and overlays.
@lisp
-(defvar-local eglot-clangd-inactive-region-overlays '())
-
(cl-defmethod eglot-handle-notification
(_server (_method (eql textDocument/inactiveRegions))
&key regions textDocument &allow-other-keys)
(cl-getf textDocument :uri))))
(buffer (find-buffer-visiting path)))
(with-current-buffer buffer
- (mapc #'delete-overlay eglot-clangd-inactive-region-overlays)
+ (remove-overlays nil nil 'inactive-code t)
(cl-loop
for r across regions
for (beg . end) = (eglot-range-region r)
for ov = (make-overlay beg end)
do
(overlay-put ov 'face 'shadow)
- (push ov eglot-clangd-inactive-region-overlays)))))
+ (overlay-put ov 'inactive-code t)))))
@end lisp
@end itemize