]> git.eshelyaron.com Git - emacs.git/commit
Eglot: add support for call and type hierarchies
authorJoão Távora <joaotavora@gmail.com>
Fri, 7 Feb 2025 11:08:29 +0000 (11:08 +0000)
committerEshel Yaron <me@eshelyaron.com>
Sun, 9 Feb 2025 08:43:32 +0000 (09:43 +0100)
commit73a4a301bac9e04a0a9c3e6ea1d62c46d2f57c41
tree430e573f587b663a157e15c1190353359cb841eb
parent26b19e4f5bc6bf6433f677b4bd162441f9eb4a9b
Eglot: add support for call and type hierarchies

* lisp/progmodes/eglot.el (eglot--lsp-interface-alist): Add new
interfaces.
(eglot-client-capabilities): Advertise support for callHierarchy
and typeHierarchy.
(eglot-ignored-server-capabilities): Add new providers.
(eglot--goto): New helper.
(eglot-menu): Add new menu items.
(eglot-handle-request window/showDocument): Use eglot--goto.
(button, tree-widget): Require them.
(eglot--hierarchy-item): New button type.
(eglot--hierarchy-interactive, eglot--hierarchy-children)
(eglot--hierarchy-label, eglot--hierarchy-1, eglot--hierarchy-2):
New internal functions.
(eglot--define-hierarchy-command): New macro.
(eglot-show-type-hierarchy, eglot-show-call-hierarchy)
(eglot-hierarchy-center-on-node): New commands.
(eglot--hierarchy-roots, eglot--hierarchy-specs): New local variables.
(eglot-hierarchy-label-map): New keymap.
(eglot-hierarchy-mode): New major mode.

* doc/misc/eglot.texi (Eglot Commands, Eglot Features): Describe
new feature.

* etc/EGLOT-NEWS (Changes in upcoming Eglot): Mention new feature.

(cherry picked from commit 1ef9de69b3c3d8254ab58bf455137a4439dce516)
doc/misc/eglot.texi
etc/EGLOT-NEWS
lisp/progmodes/eglot.el