commit bdf73998bfe1bd6bb16b90c22f1d973a482011e3
parent 1e5ce8b2cc91dad27fa460c4b473ed44fb36771a
Author: Alexander Miller <alexanderm@web.de>
Date: Wed, 4 Oct 2017 16:44:42 +0200
Also handle variables in helpful-at-point.
Diffstat:
1 file changed, 9 insertions(+), 18 deletions(-)
diff --git a/helpful.el b/helpful.el
@@ -584,7 +584,7 @@ state of the current symbol."
(insert
(helpful--heading "\n\nKey Bindings\n")
(helpful--format-keys helpful--sym)))
-
+
(insert
(helpful--heading "\n\nReferences\n")
(cond
@@ -606,7 +606,7 @@ state of the current symbol."
(insert
(helpful--heading "\n\nSymbol Properties\n")
formatted-props))
-
+
(when (helpful--advised-p helpful--sym)
(insert
(helpful--heading "\n\nAdvice\n")
@@ -621,7 +621,7 @@ state of the current symbol."
(helpful--disassemble-button)
" "))
(helpful--forget-button helpful--sym helpful--callable-p)
-
+
(helpful--heading "\n\nSource Code\n")
(cond
(source-path
@@ -686,12 +686,12 @@ For example, \"(some-func FOO &optional BAR)\"."
(format "(%s %s)" sym
(s-join " " formatted-args))
(format "(%s)" sym))))
-
+
;; If the docstring ends with (fn FOO BAR), extract that.
(-when-let (docstring (documentation sym))
(-when-let (docstring-with-usage (help-split-fundoc docstring sym))
(setq docstring-sig (car docstring-with-usage))))
-
+
(or docstring-sig source-sig)))
;; TODO: Info mentions, e.g. `define-derived-mode' or `defface'.
@@ -814,22 +814,13 @@ See also `helpful-callable' and `helpful-variable'."
(pop-to-buffer (helpful--buffer symbol nil))
(helpful-update))
-;; TODO: offer variable/function choice
;;;###autoload
(defun helpful-at-point ()
- "Show help for the callable symbol at point."
+ "Show help for the symbol point."
(interactive)
- (let ((symbol (symbol-at-point)))
- (cond
- ((null symbol)
- ;; TODO: suggest looking at value help, or nearby symbols, or
- ;; similarly named symbols
- (user-error "No symbol found at point"))
- ((not (fboundp symbol))
- (user-error "%s is not a function or macro" symbol))
- (t
- (pop-to-buffer (helpful--buffer symbol t))
- (helpful-update)))))
+ (-if-let (symbol (symbol-at-point))
+ (helpful-symbol symbol)
+ (user-error "There is no symbol at point.")))
(define-derived-mode helpful-mode special-mode "Helpful"
"Major mode for *Helpful* buffers."