Function: eglot--hierarchy-children
eglot--hierarchy-children is a byte-compiled function defined in
eglot.el.gz.
Signature
(eglot--hierarchy-children NODE)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/eglot.el.gz
(defun eglot--hierarchy-children (node)
(cl-flet ((get-them (method node)
(eglot--dbind ((HierarchyItem) name) node
(let* ((sym (intern (format "eglot--%s" method)))
(plist (text-properties-at 0 name))
(probe (cl-getf plist sym :none)))
(cond ((eq probe :none)
(let ((v (ignore-errors (jsonrpc-request
(eglot--current-server-or-lose) method
`(:item ,node)))))
(put-text-property 0 1 sym v name)
v))
(t probe))))))
(cl-loop
with specs = eglot--hierarchy-specs
for (method bullet _ _ hint key ranges) in specs
for resp = (get-them method node)
for items =
(cl-loop for r across resp
for item = (if key (plist-get r key) r)
collect item
do (eglot--dbind ((HierarchyItem) name) item
(put-text-property 0 1 'eglot--hierarchy-method
method name)
(put-text-property 0 1 'eglot--hierarchy-bullet
(propertize bullet
'help-echo hint)
name)
(when ranges
(put-text-property 0 1 'eglot--hierarchy-call-sites
(plist-get r ranges)
name))))
append items)))