eldoc-frame/README.org
2023-02-27 18:29:42 -08:00

52 lines
3.2 KiB
Org Mode
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#+TITLE: ElDoc box
This package displays ElDoc documentations in a childframe.
[[https://melpa.org/#/eldoc-box][file:https://melpa.org/packages/eldoc-box-badge.svg]]
[[https://stable.melpa.org/#/eldoc-box][file:https://stable.melpa.org/packages/eldoc-box-badge.svg]]
#+CAPTION: Using with eglot in python-mode
[[./screenshot.png]]
* Install
Get the file, add to load path, and
#+BEGIN_SRC emacs-lisp
(require 'eldoc-box)
#+END_SRC
It is also available on [[https://melpa.org/#/eldoc-box][MELPA]].
* Usage
*Note:* If you use Gnome and Emacs 27, set ~x-gtk-resize-child-frames~ to ~resize-mode~ to avoid breakage of childframe.
** Function
- =eldoc-box-hover-mode= :: Display documentation of the symbol at point in a childframe on upper corner.
- =eldoc-box-hover-at-point-mode= :: Same as =eldoc-box-hover-mode= except the childframe is displayed at point, instead of on the upper corner. /Note that this mode brings a small but noticeable slowness./
- =eldoc-box-help-at-point= :: Display the documentation of the symbol at point in a childframe. This requires Emacs 28. (=eldoc-box-hover-mode= doesnt need to be on.)
** Face
- =eldoc-box-border= :: Adjust =:background= of this face for border color.
- =eldoc-box-body= :: Default face used by childframe. I suggest to use a nice Sans Serif font such as Source Sans Pro, and a lighter or darker background.
** Hooks
- =eldoc-box-buffer-hook= :: Hook run after buffer for doc is setup.Run inside the new buffer.
- =eldoc-box-frame-hook= :: Hook run after doc frame is setup but just before it is made visible.Each function runs inside the child frame and receives the main frame as argument.
** Variable
- =eldoc-box-max-pixel-width= & =eldoc-box-max-pixel-height= :: Set them according to the screen resolution of your machine.
- =eldoc-box-only-multi-line= :: Set this to non-nil and eldoc-box only display multi-line message in childframe. One line messages are left in minibuffer.
- =eldoc-box-cleanup-interval= :: After this amount of seconds will eldoc-box attempt to cleanup the childframe. E.g. if it is set to 1, the childframe is cleared 1 second after you moved the point to somewhere else (that doesn't have a doc to show). This doesn't apply to =eldoc-box-hover-at-point-mode=, in that mode the childframe is cleared as soon as point moves.
- =eldoc-box-fringe-use-same-bg= :: T means fringe's background color is set to as same as that of default. Default to t.
- =eldoc-box-self-insert-command-list= :: By default =eldoc-box-hover-at-point-mode= only keeps childframe display while you are typing (=self-insert-command=). But if you bind something else to your keys, eldoc-box cant recognize it and will hide childframe while yu hit that key. Add your command to this list so eldoc-box wont hide childframe when this command is called.
** Use with eglot
As of writing this README, eglot doesn't have a public mode hook, use this hook:
#+BEGIN_SRC emacs-lisp
(add-hook 'eglot-managed-mode-hook #'eldoc-box-hover-mode t)
#+END_SRC
To keep eldoc from displaying documentation at point without enabling any minor mode above: =(add-to-list 'eglot-ignored-server-capabilites :hoverProvider)=.
* Contributors
- [[https://github.com/joaotavora][João Távora]]