Function: eglot--semtok-font-lock-1
eglot--semtok-font-lock-1 is a byte-compiled function defined in
eglot.el.gz.
Signature
(eglot--semtok-font-lock-1 BEG END DATA)
Documentation
Do the face-painting work for eglot--semtok-font-lock.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/eglot.el.gz
(defun eglot--semtok-font-lock-1 (beg end data)
"Do the face-painting work for `eglot--semtok-font-lock'."
(eglot--widening
(with-silent-modifications
(remove-list-of-text-properties beg end '(eglot--semtok-token
eglot--semtok-faces))
(goto-char (point-min))
(cl-loop
with column = 0 with p-beg = 0 with p-end = 0
for i from 0 below (length data) by 5
when (> (aref data i) 0) do
(setq column 0)
(forward-line (aref data i))
unless (< (point) beg) do
(setq column (+ column (aref data (+ i 1))))
(funcall eglot-move-to-linepos-function column)
(when (> (point) end) (cl-return (cons napplied 'early)))
(setq p-beg (point))
(funcall eglot-move-to-linepos-function (+ column (aref data (+ i 2))))
(setq p-end (point))
(let* ((tok (cons (aref data (+ i 3))
(aref data (+ i 4))))
(decoded (eglot--semtok-decode-token tok)))
;; The `eglot--semtok-token' prop doesn't serve much purpose:
;; just for debug...
(put-text-property p-beg p-end 'eglot--semtok-names (car decoded))
(put-text-property p-beg p-end 'eglot--semtok-faces (cdr decoded))
(dolist (f (cdr decoded))
(add-face-text-property p-beg p-end f)))
count 1 into napplied
finally (cl-return (cons napplied 'normal))))))