Simple ElDoc frontend that displays documentation in a floating child frame
d88e7a5ba1
* README.org (Credit): * eldoc-box.el: |
||
---|---|---|
eldoc-box.el | ||
README.org | ||
screenshot.png |
ElDoc box
This package displays ElDoc documentations in a childframe.
Install
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
doesn’t 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 can’t recognize it and will hide childframe while yu hit that key. Add your command to this list so eldoc-box won’t 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:
(add-hook 'eglot-managed-mode-hook #'eldoc-box-hover-mode t)
To keep eldoc from displaying documentation at point without enabling any minor mode above: (add-to-list 'eglot-ignored-server-capabilites :hoverProvider)
.
Credit
- Thanks to for João Távora for some valuable contribution and explain on eldoc and eglot internals.
- This package is initially adapted from Sebastien Chapuis’s package lsp-ui.el.