diff options
| -rw-r--r-- | custom/jao-custom-programming.el | 16 | ||||
| -rw-r--r-- | lib/eos/jao-buffers.el | 43 |
2 files changed, 38 insertions, 21 deletions
diff --git a/custom/jao-custom-programming.el b/custom/jao-custom-programming.el index f60dbc9..4ea4029 100644 --- a/custom/jao-custom-programming.el +++ b/custom/jao-custom-programming.el @@ -11,19 +11,6 @@ eldoc-display-functions '(eldoc-display-in-echo-area)) :config (global-eldoc-mode 1)) -(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)))) - -(add-to-list 'display-buffer-alist - '("\\*eldoc\\( .*\\)?\\*" - (display-buffer-reuse-window) - (dedicated . t))) - ;;;; automatic modes (add-to-list 'auto-mode-alist '("\\.mix\\'" . hexl-mode)) (add-to-list 'auto-mode-alist '("\\.m4\\'" . m4-mode)) @@ -362,6 +349,9 @@ ("w" "Workspace tests" jao-rust-test-workspace) ("d" "Doc tests" jao-rust-test-doctests) ("r" "Retest last" jao-rust-retest)] + ["eldoc" + ("-" "Clear popups" jao-clear-below-eldoc) + ("." "Toggle eldoc buffer" jao-eldoc-toggle)] ["utilities" ("F" "Open flymake diagnostics" flymake-show-project-diagnostics) ("e" "Consult eglot symbolss" consult-eglot-symbols) 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) |
