Function: eglot--signal-textDocument/didChange
eglot--signal-textDocument/didChange is a byte-compiled function
defined in eglot.el.gz.
Signature
(eglot--signal-textDocument/didChange)
Documentation
Send textDocument/didChange to server.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/eglot.el.gz
(defun eglot--signal-textDocument/didChange ()
"Send textDocument/didChange to server."
(when eglot--recent-changes
(let* ((server (eglot--current-server-or-lose))
(sync-capability (eglot--server-capable :textDocumentSync))
(sync-kind (if (numberp sync-capability) sync-capability
(plist-get sync-capability :change)))
(full-sync-p (or (eq sync-kind 1)
(eq :emacs-messup eglot--recent-changes))))
(jsonrpc-notify
server :textDocument/didChange
(list
:textDocument (eglot--VersionedTextDocumentIdentifier)
:contentChanges
(if full-sync-p
(vector `(:text ,(eglot--widening
(buffer-substring-no-properties (point-min)
(point-max)))))
(cl-loop for (beg end len text) in (reverse eglot--recent-changes)
;; github#259: `capitalize-word' and commands based
;; on `casify_region' will cause multiple duplicate
;; empty entries in `eglot--before-change' calls
;; without an `eglot--after-change' reciprocal.
;; Weed them out here.
when (numberp len)
vconcat `[,(list :range `(:start ,beg :end ,end)
:rangeLength len :text text)]))))
(setq eglot--recent-changes nil)
(jsonrpc--call-deferred server))))