(info-lookup-maybe-add-help
:mode 'texinfo-mode
:regexp "@\\([a-zA-Z]+\\|[^a-zA-Z]\\)"
- :doc-spec '(("(texinfo)Command and Variable Index"
- ;; Ignore Emacs commands and prepend a `@'.
- (lambda (item)
- (if (string-match "^\\([a-zA-Z]+\\|[^a-zA-Z]\\)\\( .*\\)?$" item)
- (concat "@" (match-string 1 item))))
- "['`‘]" "['’ ]")))
+ :doc-spec `(("(texinfo)Command and Variable Index"
+ ;; Ignore Emacs commands and prepend a `@'.
+ ,(lambda (item)
+ (if (string-match "^\\([a-zA-Z]+\\|[^a-zA-Z]\\)\\( .*\\)?$" item)
+ (concat "@" (match-string 1 item))))
+ "['`‘]" "['’ ]")))
(info-lookup-maybe-add-help
:mode 'm4-mode
(info-lookup-maybe-add-help
:mode 'autoconf-mode
:regexp "A[CM]_[_A-Z0-9]+"
- :doc-spec '(;; Autoconf Macro Index entries are without an "AC_" prefix,
- ;; but with "AH_" or "AU_" for those. So add "AC_" if there
- ;; isn't already an "A._".
+ :doc-spec `(;; Autoconf Macro Index entries are without an "AC_" prefix,
+ ;; but with "AH_" or "AU_" for those. So add "AC_" if there
+ ;; isn't already an "A._".
("(autoconf)Autoconf Macro Index"
- (lambda (item)
- (if (string-match "^A._" item) item (concat "AC_" item)))
- "^[ \t]+-+ \\(Macro\\|Variable\\): .*\\<" "\\>")
+ ,(lambda (item)
+ (if (string-match "^A._" item) item (concat "AC_" item)))
+ "^[ \t]+-+ \\(Macro\\|Variable\\): .*\\<" "\\>")
;; M4 Macro Index entries are without "AS_" prefixes, and
;; mostly without "m4_" prefixes. "dnl" is an exception, not
;; wanting any prefix. So AS_ is added back to upper-case
;; names (if needed), m4_ to others which don't already an m4_.
("(autoconf)M4 Macro Index"
- (lambda (item)
- (let ((case-fold-search nil))
- (cond ((or (string-equal item "dnl")
- (string-match "^m4_" item)
- ;; Autoconf 2.62 index includes some macros
- ;; (e.g., AS_HELP_STRING), so avoid prefixing.
- (string-match "^AS_" item))
- item)
- ((string-match "^[A-Z0-9_]+$" item)
- (concat "AS_" item))
- (t
- (concat "m4_" item)))))
- "^[ \t]+-+ Macro: .*\\<" "\\>")
+ ,(lambda (item)
+ (let ((case-fold-search nil))
+ (cond ((or (string-equal item "dnl")
+ (string-match "^m4_" item)
+ ;; Autoconf 2.62 index includes some macros
+ ;; (e.g., AS_HELP_STRING), so avoid prefixing.
+ (string-match "^AS_" item))
+ item)
+ ((string-match "^[A-Z0-9_]+$" item)
+ (concat "AS_" item))
+ (t
+ (concat "m4_" item)))))
+ "^[ \t]+-+ Macro: .*\\<" "\\>")
;; Autotest Macro Index entries are without "AT_".
("(autoconf)Autotest Macro Index" "AT_"
"^[ \t]+-+ Macro: .*\\<" "\\>")
(info-lookup-maybe-add-help
:mode 'awk-mode
:regexp "[_a-zA-Z]+"
- :doc-spec '(("(gawk)Index"
- (lambda (item)
- (let ((case-fold-search nil))
- (cond
- ;; `BEGIN' and `END'.
- ((string-match "^\\([A-Z]+\\) special pattern\\b" item)
- (match-string 1 item))
- ;; `if', `while', `do', ...
- ((string-match "^\\([a-z]+\\) statement\\b" item)
- (if (not (string-equal (match-string 1 item) "control"))
- (match-string 1 item)))
- ;; `NR', `NF', ...
- ((string-match "^[A-Z]+$" item)
- item)
- ;; Built-in functions (matches to many entries).
- ((string-match "^[a-z]+$" item)
- item))))
- "['`‘]" "\\([ \t]*([^)]*)\\)?['’]")))
+ :doc-spec `(("(gawk)Index"
+ ,(lambda (item)
+ (let ((case-fold-search nil))
+ (cond
+ ;; `BEGIN' and `END'.
+ ((string-match "^\\([A-Z]+\\) special pattern\\b" item)
+ (match-string 1 item))
+ ;; `if', `while', `do', ...
+ ((string-match "^\\([a-z]+\\) statement\\b" item)
+ (if (not (string-equal (match-string 1 item) "control"))
+ (match-string 1 item)))
+ ;; `NR', `NF', ...
+ ((string-match "^[A-Z]+$" item)
+ item)
+ ;; Built-in functions (matches to many entries).
+ ((string-match "^[a-z]+$" item)
+ item))))
+ "['`‘]" "\\([ \t]*([^)]*)\\)?['’]")))
(info-lookup-maybe-add-help
:mode 'perl-mode
:regexp "[$@%][^a-zA-Z]\\|\\$\\^[A-Z]\\|[$@%]?[a-zA-Z][_a-zA-Z0-9]*"
- :doc-spec '(("(perl5)Function Index"
- (lambda (item)
- (if (string-match "^\\([a-zA-Z0-9]+\\)" item)
- (match-string 1 item)))
- "^" "\\b")
- ("(perl5)Variable Index"
- (lambda (item)
- ;; Work around bad formatted array variables.
- (let ((sym (cond ((or (string-match "^\\$\\(.\\|@@\\)$" item)
- (string-match "^\\$\\^[A-Z]$" item))
- item)
- ((string-match
- "^\\([$%@]\\|@@\\)?[_a-zA-Z0-9]+" item)
- (match-string 0 item))
- (t ""))))
- (if (string-match "@@" sym)
- (setq sym (concat (substring sym 0 (match-beginning 0))
- (substring sym (1- (match-end 0))))))
- (if (string-equal sym "") nil sym)))
- "^" "\\b"))
+ :doc-spec `(("(perl5)Function Index"
+ ,(lambda (item)
+ (if (string-match "^\\([a-zA-Z0-9]+\\)" item)
+ (match-string 1 item)))
+ "^" "\\b")
+ ("(perl5)Variable Index"
+ ,(lambda (item)
+ ;; Work around bad formatted array variables.
+ (let ((sym (cond ((or (string-match "^\\$\\(.\\|@@\\)$" item)
+ (string-match "^\\$\\^[A-Z]$" item))
+ item)
+ ((string-match
+ "^\\([$%@]\\|@@\\)?[_a-zA-Z0-9]+" item)
+ (match-string 0 item))
+ (t ""))))
+ (if (string-match "@@" sym)
+ (setq sym (concat (substring sym 0 (match-beginning 0))
+ (substring sym (1- (match-end 0))))))
+ (if (string-equal sym "") nil sym)))
+ "^" "\\b"))
:parse-rule "[$@%]?\\([_a-zA-Z0-9]+\\|[^a-zA-Z]\\)")
(info-lookup-maybe-add-help
(info-lookup-maybe-add-help
:mode 'octave-mode
:regexp "[_a-zA-Z0-9]+\\|\\s.+\\|[-!=^|*/.\\,><~&+]\\{1,3\\}\\|[][();,\"']"
- :doc-spec '(("(octave)Function Index" nil
- "^ -+ [^:]+:[ ]+\\(\\[[^=]*=[ ]+\\)?" nil)
- ("(octave)Variable Index" nil "^ -+ [^:]+:[ ]+" nil)
+ :doc-spec `(("(octave)Function Index" nil
+ "^ -+ [^:]+:[ ]+\\(\\[[^=]*=[ ]+\\)?" nil)
+ ("(octave)Variable Index" nil "^ -+ [^:]+:[ ]+" nil)
("(octave)Operator Index" nil nil nil)
- ;; Catch lines of the form "xyz statement"
- ("(octave)Concept Index"
- (lambda (item)
- (cond
- ((string-match "^\\([A-Z]+\\) statement\\b" item)
- (match-string 1 item))
- (t nil)))
- nil; "^ -+ [^:]+:[ ]+" don't think this prefix is useful here.
- nil)))
+ ;; Catch lines of the form "xyz statement"
+ ("(octave)Concept Index"
+ ,(lambda (item)
+ (cond
+ ((string-match "^\\([A-Z]+\\) statement\\b" item)
+ (match-string 1 item))
+ (t nil)))
+ nil; "^ -+ [^:]+:[ ]+" don't think this prefix is useful here.
+ nil)))
(info-lookup-maybe-add-help
:mode 'maxima-mode
;; bash has "." and ":" in its index, but those chars will probably never
;; work in info, so don't bother matching them in the regexp.
:regexp "\\([a-zA-Z0-9_-]+\\|[!{}@*#?$]\\|\\[\\[?\\|]]?\\)"
- :doc-spec '(("(bash)Builtin Index" nil "^['`‘]" "[ .'’]")
+ :doc-spec `(("(bash)Builtin Index" nil "^['`‘]" "[ .'’]")
("(bash)Reserved Word Index" nil "^['`‘]" "[ .'’]")
("(bash)Variable Index" nil "^['`‘]" "[ .'’]")
;; versions have node "Index", look for both, whichever is
;; absent is quietly ignored
("(coreutils)Index"
- (lambda (item) (if (string-match "\\`[a-z]+\\'" item) item)))
+ ,(lambda (item) (if (string-match "\\`[a-z]+\\'" item) item)))
("(coreutils)Concept Index"
- (lambda (item) (if (string-match "\\`[a-z]+\\'" item) item)))
+ ,(lambda (item) (if (string-match "\\`[a-z]+\\'" item) item)))
;; diff (version 2.8.1) has only a few programs, index entries
;; are things like "foo invocation".
("(diff)Index"
- (lambda (item)
- (if (string-match "\\`\\([a-z]+\\) invocation\\'" item)
- (match-string 1 item))))
+ ,(lambda (item)
+ (if (string-match "\\`\\([a-z]+\\) invocation\\'" item)
+ (match-string 1 item))))
;; there's no plain "sed" index entry as such, mung another
;; hopefully unique one to get to the invocation section
("(sed)Concept Index"
- (lambda (item)
- (if (string-equal item "Standard input, processing as input")
- "sed")))
+ ,(lambda (item)
+ (if (string-equal item "Standard input, processing as input")
+ "sed")))
;; there's no plain "awk" or "gawk" index entries, mung other
;; hopefully unique ones to get to the command line options
("(gawk)Index"
- (lambda (item)
- (cond ((string-equal item "gawk, extensions, disabling")
- "awk")
- ((string-equal item "gawk, versions of, information about, printing")
- "gawk"))))))
+ ,(lambda (item)
+ (cond ((string-equal item "gawk, extensions, disabling")
+ "awk")
+ ((string-equal item "gawk, versions of, information about, printing")
+ "gawk"))))))
;; This misses some things which occur as node names but not in the
;; index. Unfortunately it also picks up the wrong one of multiple
(info-lookup-maybe-add-help
:mode 'cfengine-mode
:regexp "[[:alnum:]_]+\\(?:()\\)?"
- :doc-spec '(("(cfengine-Reference)Variable Index"
- (lambda (item)
- ;; Index entries may be like `IsPlain()'
- (if (string-match "\\([[:alnum:]_]+\\)()" item)
- (match-string 1 item)
- item))
- ;; This gets functions in evaluated classes. Other
- ;; possible patterns don't seem to work too well.
- "['`‘]" "(")))
+ :doc-spec `(("(cfengine-Reference)Variable Index"
+ ,(lambda (item)
+ ;; Index entries may be like `IsPlain()'
+ (if (string-match "\\([[:alnum:]_]+\\)()" item)
+ (match-string 1 item)
+ item))
+ ;; This gets functions in evaluated classes. Other
+ ;; possible patterns don't seem to work too well.
+ "['`‘]" "(")))
(info-lookup-maybe-add-help
:mode 'Custom-mode