• Dmitry Gutov's avatar
    Use generic dispatch for xref backends · 246d6605
    Dmitry Gutov authored
    * lisp/progmodes/xref.el (xref-backend-functions):
    New variable.
    (xref-find-function): Remove.
    (xref-find-backend)
    (xref--etags-backend): New functions.
    (xref-identifier-at-point-function)
    (xref-identifier-completion-table-function): Remove.
    (xref-backend-definitions, xref-backend-references)
    (xref-backend-apropos, xref-backend-identifier-at-point)
    (xref-backend-identifier-completion-table):
    New generic functions.
    
    * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Add
    `elisp--xref-backend' to the beginning of
    `xref-backend-functions', locally.  Delete references to
    removed functions and vars.
    (elisp-xref-find): Remove.
    (elisp--xref-backend): New function.
    (elisp--xref-find-references, elisp--xref-find-apropos)
    (elisp--xref-identifier-completion-table):
    Turn into appropriately named generic methods.
    
    * lisp/progmodes/etags.el (etags-xref-find): Remove.
    (xref-backend-identifier-completion-table)
    (xref-backend-references, xref-backend-definitions)
    (xref-backend-apropos): New generic methods.
    246d6605
etags.el 84.5 KB