(setq major-mode 'apropos-mode
mode-name "Apropos"))
+;;;###autoload
+(defun apropos-variable (regexp)
+ (interactive (list (read-string "Apropos variable (regexp): ")))
+ (apropos-command regexp nil t))
;; For auld lang syne:
;;;###autoload
(fset 'command-apropos 'apropos-command)
;;;###autoload
-(defun apropos-command (apropos-regexp &optional do-all)
- "Shows commands (interactively callable functions) that match REGEXP.
-With optional prefix ARG or if `apropos-do-all' is non-nil, also show
-variables."
- (interactive (list (read-string (concat "Apropos command "
- (if (or current-prefix-arg
- apropos-do-all)
- "or variable ")
- "(regexp): "))
+(defun apropos-command (apropos-regexp &optional do-all just-vars)
+ "Show commands (interactively callable functions) that match REGEXP.
+With optional prefix ARG, or if `apropos-do-all' is non-nil, also show
+variables. If JUST-VARS is non-nil, show only variables."
+ (interactive (list (read-string (concat
+ "Apropos command "
+ (if (or current-prefix-arg
+ apropos-do-all)
+ "or variable ")
+ "(regexp): "))
current-prefix-arg))
(let ((message
(let ((standard-output (get-buffer-create "*Apropos*")))
(if do-all
(lambda (symbol) (or (commandp symbol)
(user-variable-p symbol)))
- 'commandp)))
+ (if just-vars 'user-variable-p
+ 'commandp))))
+ (let ((tem apropos-accumulator))
+ (while tem
+ (if (get (car tem) 'apropos-inhibit)
+ (setq apropos-accumulator (delq (car tem) apropos-accumulator)))
+ (setq tem (cdr tem))))
(if (apropos-print
t
(lambda (p)
(while p
(setcar p (list
(setq symbol (car p))
- (if (commandp symbol)
- (if (setq doc (documentation symbol t))
- (substring doc 0 (string-match "\n" doc))
- "(not documented)"))
+ (if (or do-all (not just-vars))
+ (if (commandp symbol)
+ (if (setq doc (documentation symbol t))
+ (substring doc 0 (string-match "\n" doc))
+ "(not documented)")))
(and do-all
(user-variable-p symbol)
(if (setq doc (documentation-property
(boundp symbol)
(facep symbol)
(symbol-plist symbol))))))
+ (let ((tem apropos-accumulator))
+ (while tem
+ (if (get (car tem) 'apropos-inhibit)
+ (setq apropos-accumulator (delq (car tem) apropos-accumulator)))
+ (setq tem (cdr tem))))
(apropos-print
(or do-all apropos-do-all)
(lambda (p)
(if (apropos-macrop symbol)
"Macro"
"Function"))
- do-keys)
+ t)
(if (get symbol 'custom-type)
(apropos-print-doc 'customize-variable-other-window 2
- "User Option" do-keys)
+ "User Option" t)
(apropos-print-doc 'describe-variable 2
- "Variable" do-keys))
- (apropos-print-doc 'customize-group-other-window 6 "Group" do-keys)
- (apropos-print-doc 'customize-face-other-window 5 "Face" do-keys)
- (apropos-print-doc 'widget-browse-other-window 4 "Widget" do-keys)
+ "Variable" t))
+ (apropos-print-doc 'customize-group-other-window 6 "Group" t)
+ (apropos-print-doc 'customize-face-other-window 5 "Face" t)
+ (apropos-print-doc 'widget-browse-other-window 4 "Widget" t)
(apropos-print-doc 'apropos-describe-plist 3
"Plist" nil)))))
(prog1 apropos-accumulator