]> git.eshelyaron.com Git - emacs.git/commit
Migrate Xref off EIEIO
authorDmitry Gutov <dgutov@yandex.ru>
Thu, 30 Sep 2021 21:02:21 +0000 (00:02 +0300)
committerDmitry Gutov <dgutov@yandex.ru>
Thu, 30 Sep 2021 21:02:21 +0000 (00:02 +0300)
commit86da812afb2572c7fead2bb07570b976bffd7c55
tree86af033eb09c8d524d8378f710c55734ee561625
parent5c73dfcbcb12d107dfdad335328b7c258bdd64c8
Migrate Xref off EIEIO

To improve performance and flexibility (bug#50777).

* lisp/progmodes/xref.el (xref-location): Remove.
(xref-file-location): Change to cl-struct.
(xref-buffer-location, xref-bogus-location): Ditto.
(xref-item, xref-match-item): Same.
And update all method definitions accordingly.
(xref--insert-xrefs): Don't use 'oref', use 'xref-item-location'.
(xref--insert-xrefs, xref-show-definitions-completing-read):
Insetad of 'with-slots', use 'xref-item-summary' and
'xref-item-location'.

* lisp/progmodes/etags.el (xref-etags-location):
Change from EIEIO class into a cl-struct.
(xref-etags-apropos-location): Ditto.
Update all method definitions.

* test/lisp/progmodes/elisp-mode-tests.el (xref-elisp-test-run):
Avoid using 'oref'.
etc/NEWS
lisp/progmodes/etags.el
lisp/progmodes/xref.el
test/lisp/progmodes/elisp-mode-tests.el