eldoc-frame/README.org

46 lines
2.3 KiB
Org Mode
Raw Normal View History

2018-12-14 23:05:54 +00:00
#+TITLE: ElDoc box
2018-12-11 14:17:31 +00:00
This package displays ElDoc documentations in a childframe.
2018-12-17 03:40:26 +00:00
#+CAPTION: Using with eglot in python-mode
[[./screenshot.png]]
2018-12-11 01:30:33 +00:00
* Install
Get the file, add to load path, and
#+BEGIN_SRC emacs-lisp
2018-12-11 14:17:31 +00:00
(require 'eldoc-box)
2018-12-11 01:30:33 +00:00
#+END_SRC
* Usage
2018-12-11 16:17:17 +00:00
** Function
- =eldoc-box-hover-mode= :: Show documentation upon hover. Note that you need to enable ElDoc mode for this to work.
2018-12-21 02:58:48 +00:00
- =eldoc-box-hover-at-point-mode= :: This minor mode shows doc at point. Don't try to enable both minor mode: you can only enable one in the same time.
2018-12-11 16:17:17 +00:00
** Face
- =eldoc-box-border= :: Adjust =:background= of this face for border color.
- =eldoc-box-body= :: Adjust =:background= of this face for background color of childframe.
2018-12-11 16:17:17 +00:00
** 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.
2018-12-21 03:19:58 +00:00
- =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.
** 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
2018-12-21 03:54:58 +00:00
** Help at point hack
If all you need is a "help at point" popup to be used with eglot, here is my hack:
#+BEGIN_SRC emacs-lisp
(defun moon-help-at-point ()
(interactive)
(when eglot--managed-mode
(require 'eldoc-box)
(let ((eldoc-box-position-function #'eldoc-box--default-at-point-position-function))
(eldoc-box--display
(eglot--dbind ((Hover) contents range)
(jsonrpc-request (eglot--current-server-or-lose) :textDocument/hover
(eglot--TextDocumentPositionParams))
(when (seq-empty-p contents) (eglot--error "No hover info here"))
(eglot--hover-info contents range))))
(add-hook 'pre-command-hook #'eldoc-box-quit-frame t t)))
#+END_SRC
2018-12-20 18:53:24 +00:00
* Contributors
- [[https://github.com/joaotavora][João Távora]]