Since Emacs 25.1 a new global minor mode global-eldoc-mode exists, and is enabled by default.
To disable it, simply add this to your init file:
You can alternatively (setq-local eldoc-documentation-function #'ignore) in buffers for which you wish eldoc to have no effect, without disabling it elsewhere.
The default eldoc integration of python.el will show functions defined in the Python shell. If you send the definition of your function to the Python shell in Emacs, eldoc should also show information on that function.
To get better results, you need to use a package that uses a more advanced approach to finding documentation, like elpy or emacs-jedi.
If you want to control the behavior from the minibuffer when using eval-expression, use eval-expression-minibuffer-setup-hook.
For example, if you have eldoc on globally and want it off only in this one case, use:
(defun turn-off-eldoc () (eldoc-mode -1))
(add-hook 'eval-expression-minibuffer-setup-hook #'turn-off-eldoc)
This hook is new in Emacs 24.4.
As with the comment, pos-tip-show works fine for me too.
I did hack together a better (but not perfect) version of the momentary-string-display version. I just rewrote the display function so that it deleted the overlay passively through a hook instead of waiting for an exit-char, which doesn't seem appropriate for what you are trying to do. The display ...
The right thing to do is to run this tern-get-type from eldoc-documentation-function. This way, eldoc-mode will take care of running it after a little delay etc...
I.e. maybe something like
(defun js2--eldoc-via-tern ()
(setq-local eldoc-documentation-function #'js2--...
It is not very clear to me what's the string that you wanted, and thing-at-point doesn't understand either. The following displays corresponding commit summary if point is at hash 36dbe6f (see eldoc-documentation-function's docstring to learn how to change it, your way seems not correct).
(defun foo-eldoc-documentation-function ()
(let ((str (thing-at-...
A cleaner way, where you don't have to run mismatched SLIME and SWANK versions (which is asking for trouble), is to override the relevant function in SLIME that calls eldoc-message. Elisp is still a LISP after all.
This overrides slime-autodoc--async% with the version found in SLIME 2.21, just add it your .emacs (or any file you load):
;; fix for slime <...
For part one of this question the answer is no I was not barking up the wrong tree. To understand a little of why I have assembled my notes below.
SLIME did indeed had an issue with eldoc.
Eldoc changed it's documentation methods as described in the emacs NEWS file. This bug sheds some more light on it.
Slime did indeed violate the new contract as ...
Short answer: The full semantic tags are shown in the minibuffer if semantic-idle-truncate-long-summaries is customized to nil and eldoc-echo-area-use-multiline-p is customized to non-nil.
The not so short answer:
The eldoc message is generated by semantic-idle-summary-idle-function. This function really considers eldoc-echo-area-use-multiline-p. If eldoc-...
Use M-x debug-on-entry RET eldoc-mode RET
(and M-x cancel-debug-on-entry RET to undo that.)
This will show you what called eldoc-mode, each time it is invoked.
To learn about the debugger, see C-hig (elisp)Debugger and especially (elisp)Debugger Commands (so you know how to use it).
In this case, the cause is almost certainly global-eldoc-mode which is a ...
When eldoc-mode is enabled it checks whether eldoc-documentation-function is defined in current buffer. If not - it messages "There is no ElDoc support in this buffer" and exits.
Neither of these modes supports ElDoc, i.e. doesn't implement eldoc-documentation-function.
When new characters are typed, company after each command checks for a ...