branch: master commit 115194cc27dd578b986aaaf0dc390bb57e9838b2 Author: Leo Liu <sdl....@gmail.com> Commit: Leo Liu <sdl....@gmail.com>
Hook ggtags-eldoc-function to eldoc-documentation-function --- README.rst | 5 +++-- ggtags.el | 12 +++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index 409b09a..a6a69da 100644 --- a/README.rst +++ b/README.rst @@ -274,8 +274,8 @@ Integration with other packages * eldoc - ``Eldoc`` support can be enabled by, for example, setting this in - the desired major mode with: + ``Eldoc`` support is set up by default on emacs 24.4+. For older + versions set, for example, in the desired major mode: :: @@ -312,6 +312,7 @@ NEWS +++++++++++++ #. ``ggtags-visit-project-root`` can visit past projects. +#. ``eldoc`` support enabled for emacs 24.4+. [2014-12-03 Wed] 0.8.8 ++++++++++++++++++++++ diff --git a/ggtags.el b/ggtags.el index 9e45a6f..28ce368 100644 --- a/ggtags.el +++ b/ggtags.el @@ -65,6 +65,9 @@ (list 'progn (list 'defvar var val docstring) (list 'make-variable-buffer-local (list 'quote var))))) + (or (fboundp 'add-function) (defmacro add-function (&rest _))) ;24.4 + (or (fboundp 'remove-function) (defmacro remove-function (&rest _))) + (defmacro ignore-errors-unless-debug (&rest body) "Ignore all errors while executing BODY unless debug is on." (declare (debug t) (indent 0)) @@ -724,7 +727,7 @@ source trees. See Info node `(global)gtags' for details." "Update GNU Global tag database. Do nothing if GTAGS exceeds the oversize limit unless FORCE. -When called interactively on large (per `ggtags-oversize-limit' +When called interactively on large (per `ggtags-oversize-limit') projects, the update process runs in the background without blocking emacs." (interactive (progn @@ -2170,6 +2173,12 @@ to nil disables displaying this information.") ;; Append to serve as a fallback method. (add-hook 'completion-at-point-functions #'ggtags-completion-at-point t t) + ;; Work around http://debbugs.gnu.org/19324 + (or eldoc-documentation-function + (setq-local eldoc-documentation-function #'ignore)) + (add-function :after-until (local 'eldoc-documentation-function) + #'ggtags-eldoc-function '((name . ggtags-eldoc-function) + (depth . -100))) (unless (memq 'ggtags-mode-line-project-name mode-line-buffer-identification) (setq mode-line-buffer-identification @@ -2177,6 +2186,7 @@ to nil disables displaying this information.") '(ggtags-mode-line-project-name))))) (remove-hook 'after-save-hook 'ggtags-after-save-function t) (remove-hook 'completion-at-point-functions #'ggtags-completion-at-point t) + (remove-function (local 'eldoc-documentation-function) 'ggtags-eldoc-function) (setq mode-line-buffer-identification (delq 'ggtags-mode-line-project-name mode-line-buffer-identification)) (and (overlayp ggtags-highlight-tag-overlay)