There appears to be an Emacs bug where in some environments, calling
set-frame-size to another size and then to the original size will result in the
second call not taking effect. This means that the workaround for #68 causes
the frame to shrink if moving between doc items with the same doc size (or
within the same doc item).
Instead, we just temporarily shrink the Markdown separators to make the window
size calculations work, then restore them afterwards.
* eldoc-box.el (eldoc-box--update-childframe-geometry): Adjust markdown
separator width instead of setting the frame to a tiny size.
* eldoc-box.el:
(eldoc-box--window-side): Use distance to judge whether the active
window is the left window.
(eldoc-box--inhibit-childframe-for): Whitespace change.
* eldoc-box.el (eldoc-box--old-eldoc-functions): New variable.
(eldoc-box--enable): Save the old value.
(eldoc-box--disable): Check the old value.
(eldoc-box--help-at-point-last-point): Docstring change.
(eldoc-box--help-at-point-cleanup): Don't kill the local value of
eldoc-display-functions. This line is likely a remnant of the old
eglot help-at-point command and should've been removed.
The mode-line lighter is now customizable using the newly introduced
eldoc-box-lighter. It can also be hidden away by setting it to nil.
* eldoc-box.el (eldoc-box-lighter): New custom option.
(eldoc-box-hover-mode)
(eldoc-box-hover-at-point-mode): Use the new variable.
At least on my build (28.2), defining the face with :background
unspecified makes Customize only show the raw lisp expression. Setting
it to ((t . nil)) makes it work.
* eldoc-box.el (eldoc-box-body): Change face definition to nil.
When tab-bar-mode is on, (window-at 0 0) returns nil (because the
tab-bar is on that position), throwing off eldoc-box--window-side.
* eldoc-box.el (eldoc-box--window-side): Handle tab-bar differently.
* eldoc-box.el (eldoc-box--count-newlines): New function.
(eldoc-box--eldoc-message-function): Use eldoc-box--count-newlines to
count newlines.
(eldoc-box--enable)
(eldoc-box--disable): Use eldoc-display-functions instead of
eldoc-message-function when possible.
(eldoc-box--eldoc-display-function): New function.
* eldoc-box.el (eldoc-box--inhibit-childframe-timer): Remove
variable.
(eldoc-box--inhibit-childframe-for): Refactor to use
'run-with-idle-timer' instead of 'run-with-timer'
(eldoc-box--follow-cursor): Don't do anything if the timer is set
* eldoc-box.el (eldoc-box-eglot-help-at-point-last-point): Remove
variable.
(eldoc-box--eglot-help-at-point-cleanup): Remove function.
(eldoc-box-eglot-help-at-point): Use
'eldoc-box--help-at-point-cleanup' added in the last commit.
* eldoc-box.el (eldoc-box--help-at-point-last-point): New variable
(eldoc-box--help-at-point-cleanup): New function.
(eldoc-box-help-at-point): New command.
Quiet warnings from compiling, package-lint, checkdoc & byte-code compiling.
```
eldoc-box.el:264:2: Warning: docstring wider than 80 characters
227:4: warning: Closing parens should not be wrapped onto new lines.
eldoc-box.el:70: Keycode C-g embedded in doc string. Use \\<mapvar> & \\[command] instead
eldoc-box.el:145: Lisp symbol ‘self-insert-command’ should appear in quotes
eldoc-box.el:208: First line is not a complete sentence
eldoc-box.el:209: There should be two spaces after a period
eldoc-box.el:244: Argument ‘width’ should appear (as WIDTH) in the doc string
eldoc-box.el:265: Some lines are over 80 columns wide
eldoc-box.el:395: There should be two spaces after a period
eldoc-box.el:428: Keycode C-g embedded in doc string. Use \\<mapvar> & \\[command] instead
475:22: error: You should depend on (emacs "27.1") or the jsonrpc package if you need `jsonrpc-request'.
```