From b85fe78ce35ace46f42c5922773152843810fa5e Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Tue, 6 Sep 2022 12:02:00 +1000 Subject: adding hook to enable hcel-minor-mode in eldoc doc buffers --- lisp/hcel-source.el | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'lisp/hcel-source.el') diff --git a/lisp/hcel-source.el b/lisp/hcel-source.el index 783436b..b52393e 100644 --- a/lisp/hcel-source.el +++ b/lisp/hcel-source.el @@ -208,12 +208,16 @@ May cause error if the identifier has exact location." (hcel-type-at-point))) (funcall cb docstring :thing symbol - :face 'font-lock-variable-name-face))) + :face 'font-lock-variable-name-face) + (with-current-buffer eldoc--doc-buffer + (hcel-minor-mode)))) (defun hcel-eldoc-docs (cb) (when-let ((docstring (hcel-id-docs-at-point))) (setq this-command nil) - (funcall cb docstring))) + (funcall cb docstring) + (with-current-buffer eldoc--doc-buffer + (hcel-minor-mode)))) (defun hcel-eldoc-expression-type (cb) (when mark-active @@ -223,7 +227,9 @@ May cause error if the identifier has exact location." (setq this-command nil) (funcall cb (cdr expr-and-type) :thing (car expr-and-type) - :face 'font-lock-variable-name-face)))) + :face 'font-lock-variable-name-face) + (with-current-buffer eldoc--doc-buffer + (hcel-minor-mode))))) ;; highlight (defface hcel-highlight-id '((t (:inherit underline))) @@ -367,7 +373,7 @@ May cause error if the identifier has exact location." ;; hcel-minor mode (defvar hcel-minor-major-modes - '(hcel-outline-mode hcel-ids-mode eldoc-mode) + '(hcel-outline-mode hcel-ids-mode) "Major modes where hcel-minor mode can live in.") (defvar hcel-minor-mode-map @@ -377,10 +383,12 @@ May cause error if the identifier has exact location." (define-minor-mode hcel-minor-mode "A minor mode for exploring haskell codebases." + :lighter " hcel-minor" :after-hook (if hcel-minor-mode - (if (not (memq major-mode hcel-minor-major-modes)) - (error "Not in one of the following modes: %s" + (if (and (not (memq major-mode hcel-minor-major-modes)) + (not (eq (current-buffer) eldoc--doc-buffer))) + (error "Not in one of the supported modes (%s) or the eldoc buffer." (string-join (mapcar 'prin1-to-string hcel-minor-major-modes) ", "))))) -- cgit v1.2.3