summaryrefslogtreecommitdiffhomepage
path: root/lib/eos/jao-buffers.el
diff options
context:
space:
mode:
Diffstat (limited to 'lib/eos/jao-buffers.el')
-rw-r--r--lib/eos/jao-buffers.el43
1 files changed, 35 insertions, 8 deletions
diff --git a/lib/eos/jao-buffers.el b/lib/eos/jao-buffers.el
index 2390cf2..c3f4063 100644
--- a/lib/eos/jao-buffers.el
+++ b/lib/eos/jao-buffers.el
@@ -20,6 +20,8 @@
;;; Code:
+(require 'eldoc)
+
;;;; lines
;;;###autoload
@@ -35,7 +37,7 @@
(defun jao-display-below-eldoc (buffer alist)
(let ((w (selected-window)))
- (pop-to-buffer "*eldoc*" nil t)
+ (pop-to-buffer (eldoc-doc-buffer) nil t)
(jao-display-buffer-below-selected buffer alist)
(select-window w t)))
@@ -45,13 +47,6 @@
(window-height . ,(or height 25))))
;;;###autoload
-(defun jao-attach-below-eldoc (rx &optional h)
- (add-to-list 'display-buffer-alist
- `(,rx
- (display-buffer-reuse-window jao-display-below-eldoc)
- (height . (or ,h 0.5)))))
-
-;;;###autoload
(defmacro jao-with-attached-buffer (name-rx height &rest body)
(declare (indent defun))
`(let ((display-buffer-alist '(,(jao-attached-buffer-entry name-rx height))))
@@ -62,6 +57,38 @@
(add-to-list 'display-buffer-alist
(jao-attached-buffer-entry name-rx height)))
+;;;; eldoc
+;;;###autoload
+(defun jao-eldoc-toggle ()
+ "Toggle eldoc's documentation buffer."
+ (interactive)
+ (let ((buffer (eldoc-doc-buffer)))
+ (if-let* ((w (and buffer (get-buffer-window buffer))))
+ (delete-window w)
+ (eldoc-doc-buffer t))))
+
+;;;###autoload
+(add-to-list 'display-buffer-alist
+ '("\\*eldoc\\( .*\\)?\\*"
+ (display-buffer-reuse-window)
+ (dedicated . t)))
+
+(defsubst jao-eldoc-window () (get-buffer-window (eldoc-doc-buffer)))
+
+;;;###autoload
+(defun jao-clear-below-eldoc ()
+ "Delete any windows below the eldoc buffer, if visible"
+ (interactive)
+ (unless (jao-eldoc-window) (jao-eldoc-toggle))
+ (delete-other-windows-vertically (jao-eldoc-window)))
+
+;;;###autoload
+(defun jao-attach-below-eldoc (rx &optional h)
+ (add-to-list 'display-buffer-alist
+ `(,rx
+ (display-buffer-reuse-window jao-display-below-eldoc)
+ (height . (or ,h 0.5)))))
+
;;;; same mode
;;;###autoload
(defun jao-buffer-same-mode (&optional mode pre-fn switch-fn)