Consolidate cross-referencing commands
commit394ce9514f0f0b473e4e8974b8529d0389fb627e
authorDmitry Gutov <dgutov@yandex.ru>
Thu, 25 Dec 2014 20:08:19 +0000 (25 22:08 +0200)
committerDmitry Gutov <dgutov@yandex.ru>
Thu, 25 Dec 2014 20:19:28 +0000 (25 22:19 +0200)
treef1fe158638ee0a0f581fcd743c042c780d2453de
parentac549019742bac11c249814d7744670a56671f97
Consolidate cross-referencing commands

Move autoloaded bindings for `M-.', `M-,', `C-x 4 .' and
`C-x 5 .' from etags.el to xref.el.

* progmodes/xref.el: New file.

* progmodes/elisp-mode.el (elisp--identifier-types): New variable.
(elisp--identifier-location): New function, extracted from
`elisp--company-location'.
(elisp--company-location): Use it.
(elisp--identifier-completion-table): New variable.
(elisp-completion-at-point): Use it.
(emacs-lisp-mode): Set the local values of `xref-find-function'
and `xref-identifier-completion-table-function'.
(elisp-xref-find, elisp--xref-find-definitions)
(elisp--xref-identifier-completion-table): New functions.

* progmodes/etags.el (find-tag-marker-ring): Mark obsolete in
favor of `xref--marker-ring'.
(tags-lazy-completion-table): Autoload.
(tags-reset-tags-tables): Use `xref-clear-marker-stack'.
(find-tag-noselect): Use `xref-push-marker-stack'.
(pop-tag-mark): Make an alias for `xref-pop-marker-stack'.
(etags--xref-limit): New constant.
(etags-xref-find, etags--xref-find-definitions): New functions.
etc/NEWS
lisp/ChangeLog
lisp/progmodes/elisp-mode.el
lisp/progmodes/etags.el
lisp/progmodes/xref.el [new file with mode: 0644]