Function: eglot--highlight-piggyback
eglot--highlight-piggyback is a byte-compiled function defined in
eglot.el.gz.
Signature
(eglot--highlight-piggyback CB)
Documentation
Request and handle :textDocument/documentHighlight.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/eglot.el.gz
(defun eglot--highlight-piggyback (_cb)
"Request and handle `:textDocument/documentHighlight'."
;; FIXME: Obviously, this is just piggy backing on eldoc's calls for
;; convenience, as shown by the fact that we just ignore cb.
(let ((buf (current-buffer)))
(when (eglot-server-capable :documentHighlightProvider)
(jsonrpc-async-request
(eglot--current-server-or-lose)
:textDocument/documentHighlight (eglot--TextDocumentPositionParams)
:success-fn
(lambda (highlights)
(mapc #'delete-overlay eglot--highlights)
(setq eglot--highlights
(eglot--when-buffer-window buf
(mapcar
(eglot--lambda ((DocumentHighlight) range)
(pcase-let ((`(,beg . ,end)
(eglot-range-region range)))
(let ((ov (make-overlay beg end)))
(overlay-put ov 'face 'eglot-highlight-symbol-face)
(overlay-put ov 'modification-hooks
`(,(lambda (o &rest _) (delete-overlay o))))
ov)))
highlights))))
:deferred :textDocument/documentHighlight)
nil)))