Add 'eldoc-box-help-at-point'
* 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.
This commit is contained in:
parent
1ba418ba2b
commit
92100b2a2d
26
eldoc-box.el
26
eldoc-box.el
@ -178,6 +178,32 @@ Intended for internal use."
|
||||
(delete-frame eldoc-box--frame)
|
||||
(setq eldoc-box--frame nil)))
|
||||
|
||||
;;;;; Help at point
|
||||
|
||||
(defvar eldoc-box--help-at-point-last-point 0
|
||||
"This point cache is used by clean up function.
|
||||
If (point) != last point, cleanup frame.")
|
||||
|
||||
(defun eldoc-box--help-at-point-cleanup ()
|
||||
"Try to clean up the childframe made by eldoc-box hack."
|
||||
(if (or (eq (point) eldoc-box--help-at-point-last-point)
|
||||
;; don't clean up when the user clicks childframe
|
||||
(eq (selected-frame) eldoc-box--frame))
|
||||
(run-with-timer 0.1 nil #'eldoc-box--help-at-point-cleanup)
|
||||
(eldoc-box-quit-frame)
|
||||
(kill-local-variable 'eldoc-display-functions)))
|
||||
|
||||
(defun eldoc-box-help-at-point ()
|
||||
"Display documentation of the symbol at point."
|
||||
(interactive)
|
||||
(let ((eldoc-box-position-function
|
||||
#'eldoc-box--default-at-point-position-function))
|
||||
(eldoc-box--display
|
||||
(with-current-buffer eldoc--doc-buffer
|
||||
(buffer-string))))
|
||||
(setq eldoc-box--help-at-point-last-point (point))
|
||||
(run-with-timer 0.1 nil #'eldoc-box--help-at-point-cleanup))
|
||||
|
||||
;;;; Backstage
|
||||
;;;;; Variable
|
||||
(defvar eldoc-box--buffer " *eldoc-box*"
|
||||
|
Loading…
Reference in New Issue
Block a user