summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/tex-info.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/auctex-13.1.3/tex-info.el')
-rw-r--r--elpa/auctex-13.1.3/tex-info.el887
1 files changed, 0 insertions, 887 deletions
diff --git a/elpa/auctex-13.1.3/tex-info.el b/elpa/auctex-13.1.3/tex-info.el
deleted file mode 100644
index 66e5751..0000000
--- a/elpa/auctex-13.1.3/tex-info.el
+++ /dev/null
@@ -1,887 +0,0 @@
-;;; tex-info.el --- Support for editing Texinfo source. -*- lexical-binding: t; -*-
-
-;; Copyright (C) 1993-2022 Free Software Foundation, Inc.
-
-;; Maintainer: auctex-devel@gnu.org
-;; Keywords: tex
-
-;; This file is part of AUCTeX.
-
-;; AUCTeX is free software; you can redistribute it and/or modify it
-;; under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
-
-;; AUCTeX is distributed in the hope that it will be useful, but
-;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-;; General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with AUCTeX; see the file COPYING. If not, write to the Free
-;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-;; 02110-1301, USA.
-
-;;; Code:
-
-(eval-when-compile
- (require 'cl-lib))
-
-(require 'tex)
-
-(require 'texinfo)
-
-;;; Environments:
-(defvar Texinfo-environment-list
- '(("cartouche") ("command") ("copying") ("defcv") ("deffn") ("defivar")
- ("defmac") ("defmethod") ("defop") ("defopt") ("defspec")
- ("deftp") ("deftypefn") ("deftypefun") ("deftypevar") ("deftypevr")
- ("defun") ("defvar") ("defvr") ("description") ("detailmenu")
- ("direntry") ("display") ("documentdescription") ("enumerate")
- ("example") ("float") ("flushleft") ("flushright") ("format") ("ftable")
- ("group") ("html") ("ifclear") ("ifdocbook") ("ifhtml") ("ifinfo")
- ("ifnotdocbook") ("ifnothtml") ("ifnotinfo") ("ifnotplaintext")
- ("ifnottex") ("ifnotxml") ("ifplaintext") ("ifset") ("iftex")
- ("ifxml") ("ignore") ("itemize") ("lisp") ("macro") ("menu")
- ("multitable") ("quotation") ("smalldisplay") ("smallexample")
- ("smallformat") ("smalllisp") ("table") ("tex") ("titlepage")
- ("verbatim") ("vtable"))
- "Alist of Texinfo environments.")
-
-(defconst texinfo-environment-regexp
- ;; Overwrite version from `texinfo.el'.
- (concat "^@\\("
- (mapconcat #'car Texinfo-environment-list "\\|")
- "\\|end\\)\\>")
- "Regexp for environment-like Texinfo list commands.
-Subexpression 1 is what goes into the corresponding `@end' statement.")
-
-(defun Texinfo-environment (env &optional arg)
- "Make Texinfo environment ENV.
-With optional ARG, modify current environment."
- ;; XXX: This could be enhanced to act like `LaTeX-environment',
- ;; i.e. suggest a default environment and have its own history.
- (interactive (list (completing-read "Environment: "
- Texinfo-environment-list)
- current-prefix-arg))
- (if arg
- (Texinfo-modify-environment env)
- (Texinfo-insert-environment env)))
-
-(defun Texinfo-insert-environment (env)
- "Insert Texinfo environment ENV."
- (if (and (TeX-active-mark)
- (not (eq (mark) (point))))
- (progn
- (when (< (mark) (point))
- (exchange-point-and-mark))
- (unless (TeX-looking-at-backward "^[ \t]*")
- (newline))
- (insert "@" env)
- (newline)
- (goto-char (mark))
- (unless (TeX-looking-at-backward "^[ \t]*")
- (newline))
- (insert "@end " env)
- (save-excursion (newline))
- (end-of-line 0))
- (insert "@" env "\n\n@end " env "\n")
- (if (null (cdr-safe (assoc "defcv" Texinfo-environment-list)))
- (forward-line -2))))
-
-(defun Texinfo-modify-environment (env)
- "Change current environment to environment ENV."
- (save-excursion
- (Texinfo-find-env-end)
- (re-search-backward (concat (regexp-quote TeX-esc) "end \\([a-zA-Z]*\\)")
- (line-beginning-position))
- (replace-match env t t nil 1)
- (beginning-of-line)
- (Texinfo-find-env-start)
- (re-search-forward (concat (regexp-quote TeX-esc) "\\([a-zA-Z]*\\)")
- (line-end-position))
- (replace-match env t t nil 1)))
-
-(defun Texinfo-find-env-end ()
- "Move point to the end of the current environment."
- (interactive)
- (let* ((envs (mapcar #'car Texinfo-environment-list))
- (regexp (concat "^[ \t]*" (regexp-quote TeX-esc) "\\(end \\)*"
- (regexp-opt envs t) "\\b"))
- (orig-pos (point))
- (level 1)
- case-fold-search)
- (save-restriction
- (save-excursion
- (save-excursion
- (beginning-of-line)
- ;; Stop if point is inside of an @end <env> command, but not
- ;; if it is behind it.
- (when (and (looking-at regexp)
- (match-string 1)
- (> (match-end 0) orig-pos))
- (setq level 0)))
- (while (and (> level 0) (re-search-forward regexp nil t))
- (if (match-string 1)
- (setq level (1- level))
- (setq level (1+ level)))))
- (if (= level 0)
- (goto-char (match-end 0))
- (error "Can't locate end of current environment")))))
-
-(defun Texinfo-find-env-start ()
- "Move point to the start of the current environment."
- (interactive)
- (let* ((envs (mapcar #'car Texinfo-environment-list))
- (regexp (concat "^[ \t]*\\(" (regexp-quote TeX-esc) "\\)\\(end \\)*"
- (regexp-opt envs t) "\\b"))
- (level 1)
- (orig-pos (point))
- case-fold-search)
- (save-restriction
- (save-excursion
- (save-excursion
- (beginning-of-line)
- ;; Stop if point is inside of an @<env> command, but not if
- ;; it is before it.
- (when (and (looking-at regexp)
- (not (match-string 2))
- (< (match-beginning 1) orig-pos))
- (setq level 0)))
- (while (and (> level 0) (re-search-backward regexp nil t))
- (if (match-string 2)
- (setq level (1+ level))
- (setq level (1- level)))))
- (if (= level 0)
- (goto-char (match-beginning 0))
- (error "Can't locate start of current environment")))))
-
-(defun Texinfo-mark-environment (&optional count)
- "Set mark to end of current environment and point to the matching begin.
-If prefix argument COUNT is given, mark the respective number of
-enclosing environments. The command will not work properly if
-there are unbalanced begin-end pairs in comments and verbatim
-environments."
- ;; TODO:
- ;; This is identical to the LaTeX counterpart but for the find begin/end
- ;; functions. So some day the implemenation should be factorized.
- (interactive "p")
- (setq count (if count (abs count) 1))
- (let ((cur (point)) beg end)
- ;; Only change point and mark after beginning and end were found.
- ;; Point should not end up in the middle of nowhere if the search fails.
- (save-excursion
- (dotimes (_ count)
- (Texinfo-find-env-end))
- (setq end (line-beginning-position 2))
- (goto-char cur)
- (dotimes (c count)
- (Texinfo-find-env-start)
- (unless (= (1+ c) count)
- (beginning-of-line 0)))
- (setq beg (point)))
- (push-mark end)
- (goto-char beg)
- (TeX-activate-region)))
-
-(defun Texinfo-mark-section (&optional no-subsection)
- "Mark current section, with inclusion of any containing node.
-
-The current section is detected as starting by any of the
-structuring commands matched by regexp in variable
-`outline-regexp' which in turn is a regexp matching any element
-of variable `texinfo-section-list'.
-
-If optional argument NO-SUBSECTION is set to any integer or is a
-non nil empty argument (that is, `\\[universal-argument] \\[Texinfo-mark-section]'),
-then mark the current section with exclusion of any subsections.
-
-Otherwise, any included subsections are also marked along with
-current section.
-
-Note that when current section is starting immediatley after a
-node commande, then the node command is also marked as part as
-the section."
- (interactive "P")
- (let (beg end is-beg-section is-end-section
- (section-re (concat "^\\s-*" outline-regexp)))
- (if (and (consp no-subsection) (eq (car no-subsection) 4))
- ;; section with exclusion of any subsection
- (setq beg (save-excursion
- (unless (looking-at section-re)
- (end-of-line))
- (re-search-backward section-re nil t))
- is-beg-section t
- end (save-excursion
- (beginning-of-line)
- (when
- (re-search-forward (concat section-re
- "\\|^\\s-*@bye\\_>" )
- nil t)
- (save-match-data
- (beginning-of-line)
- (point))))
- is-end-section (match-string 1))
- ;; full section without exclusion of any subsection
- (let (section-command-level)
- (setq beg
- (save-excursion
- (end-of-line)
- (re-search-backward section-re nil t)))
- (when beg
- (setq is-beg-section t
- section-command-level
- (cadr (assoc (match-string 1) texinfo-section-list))
- end
- (save-excursion
- (beginning-of-line)
- (while
- (and (re-search-forward
- (concat section-re "\\|^\\s-*@bye\\_>" ) nil t)
- (or (null (setq is-end-section (match-string 1)))
- (> (cadr (assoc is-end-section
- texinfo-section-list))
- section-command-level))))
- (when (match-string 0)
- (beginning-of-line)
- (point))))))); (if ...)
- (when (and beg end)
- ;; now take also enclosing node of beg and end
- (let ((before-@node
- (lambda (pos)
- (save-excursion
- (goto-char pos)
- (while (and
- (null (bobp))
- (progn
- (beginning-of-line 0)
- (looking-at
- "^\\s-*\\($\\|@\\(c\\|comment\\)\\_>\\)"))))
- (when (looking-at "^\\s-*@node\\_>")
- (point))))))
- (when is-beg-section
- (setq beg (or (funcall before-@node beg) beg)))
- (when is-end-section
- (setq end (or (funcall before-@node end) end))))
-
- (push-mark end)
- (goto-char beg)
- (TeX-activate-region) )))
-
-(defun Texinfo-mark-node ()
- "Mark the current node.
-This is the node in which the pointer is. It is starting at
-previous beginning of keyword `@node' and ending at next
-beginning of keyword `@node' or `@bye'."
- (interactive)
- (let ((beg (save-excursion
- (unless (looking-at "^\\s-*@\\(?:node\\)\\_>")
- (end-of-line))
- (re-search-backward "^\\s-*@\\(?:node\\)\\_>" nil t )))
- (end (save-excursion
- (beginning-of-line)
- (and (re-search-forward "^\\s-*@\\(?:node\\|bye\\)\\_>" nil t )
- (progn (beginning-of-line) (point))))))
-
- (when (and beg end)
- (push-mark end)
- (goto-char beg)
- (TeX-activate-region) )))
-
-(defun Texinfo-nodename-de-escape (node-name)
- "In NODE-NAME, convert `@comma{}' commands to the corresponding `,'
-character. Return the resulting string."
- (let ((pos 0) (map '(("comma" . ","))))
- (while (and (< pos (length
- node-name))
- (string-match "@\\(comma\\)[[:blank:]]*{}" node-name pos))
- (setq node-name (concat (substring node-name 0 (match-beginning 0))
- (cdr (assoc-string (match-string 1 node-name) map))
- (substring node-name (match-end 0)))
- pos (1+ (match-beginning 0)))))
- node-name)
-
-
-(defun Texinfo-nodename-escape (node-name)
- "Convert in NODE-NAME the `,' characters to `@comma{}'
-commands. Return the resulting string."
- (let* ((pos 0)
- (map '(("," . "comma")))
- (re (regexp-opt (mapcar #'car map))) )
- (while (and (< pos (length node-name)) (string-match re node-name pos))
- (setq node-name (concat (substring node-name 0 (match-beginning 0))
- "@" (cdr (assoc-string (match-string 0 node-name) map))
- "{}"
- (substring node-name (match-end 0)))
- pos (1+ (match-beginning 0)))))
- node-name)
-
-
-(defun Texinfo-make-node-list ()
- ;; Build list of nodes in current buffer.
- ;; (What about using `imenu--index-alist'?)
- ;; FIXME: Support multi-file documents.
- (save-excursion
- (goto-char (point-min))
- (let (nodes dups)
- (while (re-search-forward "^@node\\b" nil t)
- (skip-chars-forward "[:blank:]")
- (cl-pushnew (list (Texinfo-nodename-de-escape
- (buffer-substring-no-properties
- (point) (progn (skip-chars-forward "^\r\n,")
- (skip-chars-backward "[:blank:]")
- (point)))))
- nodes
- :test (lambda (a b)
- (when (equal a b)
- (push (cons a (line-number-at-pos (point))) dups)
- t))))
- (when dups
- (display-warning
- 'AUCTeX
- (format "There are duplicate nodes:\n%s"
- (mapconcat (lambda (dup)
- (format " %s on line %d" (car dup) (cdr dup)))
- (nreverse dups)
- "\n"))))
- (nreverse nodes))))
-
-(defun Texinfo-insert-node ()
- "Insert a Texinfo node in the current buffer.
-That means, insert the string `@node' and prompt for current,
-next, previous and upper node. If there is an active region, use
-this for the current node and inhibit the prompt for it. Insert
-a comment on the following line indicating the order of arguments
-for @node."
- (interactive)
- (let ((active-mark (and (TeX-active-mark) (not (eq (mark) (point)))))
- (nodes (Texinfo-make-node-list))
- node-name next-node previous-node up-node)
- (unless active-mark
- (setq node-name (Texinfo-nodename-escape
- (TeX-read-string "Node name: "))))
- ;; FIXME: What if key binding for `minibuffer-complete' was changed?
- ;; `substitute-command-keys' doesn't return the correct value.
- (setq next-node (Texinfo-nodename-escape
- (completing-read "Next node (TAB completes): " nodes)))
- (setq previous-node
- (Texinfo-nodename-escape
- (completing-read "Previous node (TAB completes): " nodes)))
- (setq up-node (Texinfo-nodename-escape
- (completing-read "Upper node (TAB completes): " nodes)))
- (when (and active-mark
- (< (mark) (point)))
- (exchange-point-and-mark))
- (insert "@node ")
- (if active-mark
- (goto-char (mark))
- (insert node-name))
- (insert ", " next-node ", " previous-node ", " up-node
- "\n@comment node-name, next, previous, up\n")
- ;; Position point at first empty field.
- (unless (and (or (> (length node-name) 0) active-mark)
- (> (length next-node) 0)
- (> (length previous-node) 0)
- (> (length up-node) 0))
- (forward-line -2)
- (forward-char 6)
- (catch 'break
- (if (or (> (length node-name) 0) active-mark)
- (progn (skip-chars-forward "^,") (forward-char 2))
- (throw 'break nil))
- (dolist (node (list next-node previous-node up-node))
- (if (> (length node) 0)
- (progn (skip-chars-forward "^,") (forward-char 2))
- (throw 'break nil)))))))
-
-(defun Texinfo-arg-nodename (optional &optional prompt _definition)
- "Prompt for a node name completing with known node names.
-OPTIONAL is ignored.
-Use PROMPT as the prompt string.
-If DEFINITION is non-nil, then chosen node name is a node name to be
-added to the list of defined node names. Current implementation
-ignored DEFINITION as the full document is scanned for node names at
-each invocation."
- (let ((node-name (completing-read (TeX-argument-prompt optional prompt "Node")
- (Texinfo-make-node-list))))
- (insert "{" (Texinfo-nodename-escape node-name) "}" )))
-
-(defun Texinfo-arg-lrc (_optional &rest _args)
- (let ((l (read-from-minibuffer "Enter left part: "))
- (c (read-from-minibuffer "Enter center part: "))
- (r (read-from-minibuffer "Enter right part: ")))
- (insert " " l " @| " c " @| " r)))
-
-(defun Texinfo-arg-next-line (_optional &rest _args)
- "Go to the beginning of next line if we are at the end of line.
-Otherwise insert an end-of-line."
- (if (eolp) (forward-line) (insert "\n")))
-
-(defun Texinfo-arg-on|off (optional &optional prompt style)
- "Prompt for a boolean input.
-OPTIONAL is ignored.
-Use PROMPT as the prompt string.
-STYLE may be one of `:on|off' or `:true|false', if omitted `:on|off'
-is assumed by default."
-(let ((collection (cdr (assq style
- '((nil . #1=("on" "off"))
- (:on|off . #1#)
- (:true|false "true" "false"))))))
- (insert (if (y-or-n-p (TeX-argument-prompt optional prompt (concat (car collection) ", not " (cadr collection))))
- (car collection)
- (cadr collection)))))
-
-(defun Texinfo-arg-choice (optional &optional prompt collection)
- (insert (completing-read (TeX-argument-prompt optional prompt "Key")
- collection)))
-
-;; Silence the byte-compiler from warnings for variables and functions declared
-;; in reftex.
-(defvar reftex-section-levels-all)
-(defvar reftex-level-indent)
-(defvar reftex-label-menu-flags)
-(defvar reftex-tables-dirty)
-(defvar reftex-label-alist-builtin)
-
-(declare-function reftex-match-string "reftex" (n))
-(declare-function reftex-section-number "reftex-parse" (&optional level star))
-(declare-function reftex-nicify-text "reftex" (text))
-(declare-function reftex-ensure-compiled-variables "reftex" ())
-
-(defun Texinfo-reftex-section-info (file)
- ;; Return a section entry for the current match.
- ;; Carefull: This function expects the match-data to be still in place!
- (let* ((marker (set-marker (make-marker) (1- (match-beginning 3))))
- (macro (reftex-match-string 3))
- (level-exp (cdr (assoc macro reftex-section-levels-all)))
- (level (if (symbolp level-exp)
- (save-match-data (funcall level-exp))
- level-exp))
- (unnumbered (< level 0))
- (level (abs level))
- (section-number (reftex-section-number level unnumbered))
- (text1 (save-match-data
- (save-excursion
- (buffer-substring-no-properties (point) (progn (end-of-line) (point))))))
- (literal (buffer-substring-no-properties
- (1- (match-beginning 3))
- (min (point-max) (+ (match-end 0) (length text1) 1))))
- ;; Literal can be too short since text1 too short. No big problem.
- (text (reftex-nicify-text text1)))
-
- ;; Add section number and indentation
- (setq text
- (concat
- (make-string (* reftex-level-indent level) ?\ )
- (if (nth 1 reftex-label-menu-flags) ; section number flag
- (concat section-number " "))
- text))
- (prog1
- (list 'toc "toc" text file marker level section-number
- literal (marker-position marker))
- (set-marker marker nil))))
-
-(defun Texinfo-reftex-hook ()
- "Hook function to plug Texinfo into RefTeX."
- ;; force recompilation of variables
- (when (string= TeX-base-mode-name "Texinfo")
- ;; dirty temporary hook to remove when reftex has a Texinfo builtin
- ;; TODO --- taken on <2014-01-06 mon> --- remove the dirty trick once reftex
- ;; has been corrected for long enough a time
- (unless (assq 'Texinfo reftex-label-alist-builtin)
- (setq reftex-label-alist-builtin (append reftex-label-alist-builtin
- '((Texinfo "Texinfo default environments" nil)))))
- (dolist (v `((reftex-section-pre-regexp . "@")
- ; section post-regexp must contain exactly one group
- (reftex-section-post-regexp . "\\([ \t]+\\)")
- (reftex-section-info-function . Texinfo-reftex-section-info)
- (reftex-default-label-alist-entries . (Texinfo))
- (reftex-section-levels
- . ,(mapcar
- (lambda (x)
- (if (string-match "\\(\\`unnumbered\\)\\|\\(heading\\'\\)\\|\\(\\`top\\'\\)"
- (car x))
- (cons (car x) (- (cadr x)))
- (cons (car x) (cadr x))))
- texinfo-section-list))))
- (set (make-local-variable (car v) ) (cdr v)))
- (reftex-ensure-compiled-variables)))
-
-;;; Keymap:
-
-(defvar Texinfo-mode-map
- (let ((map (make-sparse-keymap)))
- (set-keymap-parent map TeX-mode-map)
-
- ;; From texinfo.el
- ;; bindings for updating nodes and menus
- (define-key map "\C-c\C-um" #'texinfo-master-menu)
- (define-key map "\C-c\C-u\C-m" #'texinfo-make-menu)
- (define-key map "\C-c\C-u\C-n" #'texinfo-update-node)
- (define-key map "\C-c\C-u\C-e" #'texinfo-every-node-update)
- (define-key map "\C-c\C-u\C-a" #'texinfo-all-menus-update)
-
- ;; Simulating LaTeX-mode
- (define-key map "\C-c\C-e" #'Texinfo-environment)
- (define-key map "\C-c." #'Texinfo-mark-environment)
- (define-key map "\C-c*" #'Texinfo-mark-section)
- (define-key map "\M-\C-h" #'Texinfo-mark-node)
- (define-key map "\C-c\n" #'texinfo-insert-@item)
- (or (key-binding "\e\r")
- (define-key map "\e\r" #'texinfo-insert-@item)) ;*** Alias
- (define-key map "\C-c\C-s" #'Texinfo-insert-node)
- (define-key map "\C-c]" #'texinfo-insert-@end)
-
- ;; Override some bindings in `TeX-mode-map'
- ;; FIXME: Inside @math{}, you can use all plain TeX math commands
- ;; even in Texinfo documents. Thus it might be nice to develop
- ;; context sensitive command so that the following four keys
- ;; inherit the command in `TeX-mode-map' inside @math{}.
- (define-key map "$" #'self-insert-command)
- (define-key map "^" #'self-insert-command)
- (define-key map "_" #'self-insert-command)
- (define-key map "\\" #'self-insert-command)
- ;; Users benefit from `TeX-electric-macro' even in Texinfo mode
- (define-key map "@" #'TeX-insert-backslash)
- map)
- "Keymap for Texinfo mode.")
-
-(easy-menu-define Texinfo-command-menu
- Texinfo-mode-map
- "Menu used in Texinfo mode for external commands."
- (TeX-mode-specific-command-menu 'texinfo-mode))
-
-(easy-menu-define Texinfo-mode-menu
- Texinfo-mode-map
- "Menu used in Texinfo mode."
- `("Texinfo"
- ["Node ..." texinfo-insert-@node
- :help "Insert a node"]
- ["Macro ..." TeX-insert-macro
- :help "Insert a macro and possibly arguments"]
- ["Complete Macro" TeX-complete-symbol
- :help "Complete the current macro"]
- ["Environment ..." Texinfo-insert-environment
- :help "Insert an environment"]
- ["Item" texinfo-insert-@item
- :help "Insert an @item"]
- "-"
- ("Insert Font"
- ["Emphasize" (TeX-font nil ?\C-e) :keys "C-c C-f C-e"]
- ["Bold" (TeX-font nil ?\C-b) :keys "C-c C-f C-b"]
- ["Typewriter" (TeX-font nil ?\C-t) :keys "C-c C-f C-t"]
- ["Small Caps" (TeX-font nil ?\C-c) :keys "C-c C-f C-c"]
- ["Italic" (TeX-font nil ?\C-i) :keys "C-c C-f C-i"]
- ["Sample" (TeX-font nil ?\C-s) :keys "C-c C-f C-s"]
- ["Roman" (TeX-font nil ?\C-r) :keys "C-c C-f C-r"])
- ("Replace Font"
- ["Emphasize" (TeX-font t ?\C-e) :keys "C-u C-c C-f C-e"]
- ["Bold" (TeX-font t ?\C-b) :keys "C-u C-c C-f C-b"]
- ["Typewriter" (TeX-font t ?\C-t) :keys "C-u C-c C-f C-t"]
- ["Small Caps" (TeX-font t ?\C-c) :keys "C-u C-c C-f C-c"]
- ["Italic" (TeX-font t ?\C-i) :keys "C-u C-c C-f C-i"]
- ["Sample" (TeX-font t ?\C-s) :keys "C-u C-c C-f C-s"]
- ["Roman" (TeX-font t ?\C-r) :keys "C-u C-c C-f C-r"])
- ["Delete Font" (TeX-font t ?\C-d) :keys "C-c C-f C-d"]
- "-"
- ["Create Master Menu" texinfo-master-menu
- :help "Make a master menu for the whole Texinfo file"]
- ["Create Menu" texinfo-make-menu
- :help "Make or update the menu for the current section"]
- ["Update Node" texinfo-update-node
- :help "Update the current node"]
- ["Update Every Node" texinfo-every-node-update
- :help "Update every node in the current file"]
- ["Update All Menus" texinfo-all-menus-update
- :help "Update every menu in the current file"]
- "-"
- ("Commenting"
- ["Comment or Uncomment Region"
- comment-or-uncomment-region
- :help "Comment or uncomment the currently selected region"]
- ["Comment or Uncomment Paragraph"
- TeX-comment-or-uncomment-paragraph
- :help "Comment or uncomment the current paragraph"])
- ,TeX-fold-menu
- "-"
- . ,TeX-common-menu-entries))
-
-(defvar Texinfo-font-list
- '((?\C-b "@b{" "}")
- (?\C-c "@sc{" "}")
- (?\C-e "@emph{" "}")
- (?\C-i "@i{" "}")
- (?\C-r "@r{" "}")
- (?\C-s "@samp{" "}")
- (?\C-t "@t{" "}")
- (?s "@strong{" "}")
- (?\C-f "@file{" "}")
- (?d "@dfn{" "}")
- (?\C-v "@var{" "}")
- (?k "@key{" "}")
- (?\C-k "@kbd{" "}")
- (?c "@code{" "}")
- (?C "@cite{" "}")
- (?\C-d "" "" t))
- "Font commands used in Texinfo mode. See `TeX-font-list'.")
-
-;;; Mode:
-
-;;;###autoload
-(defalias 'Texinfo-mode #'texinfo-mode)
-
-;;;###autoload
-(defun TeX-texinfo-mode ()
- "Major mode in AUCTeX for editing Texinfo files.
-
-Special commands:
-\\{Texinfo-mode-map}
-
-Entering Texinfo mode calls the value of `text-mode-hook' and then the
-value of `Texinfo-mode-hook'."
- (interactive)
- (kill-all-local-variables)
- (setq TeX-mode-p t)
- (setq TeX-output-extension (if TeX-PDF-mode "pdf" "dvi"))
- (setq TeX-sentinel-default-function #'TeX-TeX-sentinel)
- ;; Mostly stolen from texinfo.el
- (setq TeX-base-mode-name "Texinfo")
- (setq major-mode 'texinfo-mode)
- (use-local-map Texinfo-mode-map)
- (set-syntax-table texinfo-mode-syntax-table)
-
- (set (make-local-variable 'page-delimiter)
- (concat
- "^@node [ \t]*[Tt]op\\|^@\\("
- texinfo-chapter-level-regexp
- "\\)"))
- (set (make-local-variable 'require-final-newline) t)
- (set (make-local-variable 'indent-tabs-mode) nil)
- (set (make-local-variable 'paragraph-separate)
- (concat "@[a-zA-Z]*[ \n]\\|" paragraph-separate))
- (set (make-local-variable 'paragraph-start)
- (concat "@[a-zA-Z]*[ \n]\\|" paragraph-start))
- (set (make-local-variable 'fill-column) 72)
- (set (make-local-variable 'comment-start) "@c ")
- (set (make-local-variable 'comment-start-skip) "@c +\\|@comment +")
- (set (make-local-variable 'comment-use-syntax) nil)
- (setq TeX-comment-start-regexp "@c\\(?:omment\\)?\\>")
- (set (make-local-variable 'words-include-escapes) t)
- (set (make-local-variable 'imenu-generic-expression)
- texinfo-imenu-generic-expression)
-
- (set (make-local-variable 'font-lock-defaults)
- '(texinfo-font-lock-keywords nil nil nil backward-paragraph))
- (set (make-local-variable 'syntax-propertize-function)
- texinfo-syntax-propertize-function)
-
- ;; Outline settings.
- (set (make-local-variable 'outline-regexp)
- (concat "@\\("
- (mapconcat #'car texinfo-section-list "\\>\\|")
- "\\>\\)"))
- (set (make-local-variable 'outline-level) 'texinfo-outline-level)
-
- ;; Mostly AUCTeX stuff
- (set (make-local-variable 'TeX-command-current) #'TeX-command-master)
-
- (setq TeX-default-extension "texi")
- (set (make-local-variable 'TeX-esc) "@")
-
- (set (make-local-variable 'TeX-auto-regexp-list) 'TeX-auto-empty-regexp-list)
-
- (setq TeX-command-default "TeX")
- (setq TeX-header-end "%*end")
- (setq TeX-trailer-start (regexp-quote (concat TeX-esc "bye")))
-
- (set (make-local-variable 'TeX-complete-list)
- (list (list "@\\([a-zA-Z]*\\)" 1 'TeX-symbol-list-filtered nil)
- (list "" TeX-complete-word)))
-
- (set (make-local-variable 'TeX-font-list) Texinfo-font-list)
- (set (make-local-variable 'TeX-font-replace-function)
- #'TeX-font-replace-macro)
- (set (make-local-variable 'TeX-style-hook-dialect) :texinfo)
-
- (add-hook 'find-file-hook (lambda ()
- (unless (file-exists-p (buffer-file-name))
- (TeX-master-file nil nil t)))
- nil t)
-
- (when (and (boundp 'add-log-current-defun-function)
- (fboundp 'texinfo-current-defun-name))
- (set (make-local-variable 'add-log-current-defun-function)
- #'texinfo-current-defun-name))
-
- (TeX-add-symbols
- '("acronym" "Acronym")
- '("allowcodebreaks" (TeX-arg-literal " ") (Texinfo-arg-on|off nil :true|false) (Texinfo-arg-next-line))
- '("appendix" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("appendixsec" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("appendixsection" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("appendixsubsec" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("appendixsubsubsec" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("asis")
- '("atchar" nil)
- '("author" (TeX-arg-literal " ") (TeX-arg-free "Author"))
- '("b" "Text")
- '("bullet")
- '("bye")
- '("c" (TeX-arg-literal " ") (TeX-arg-free "Comment"))
- '("caption" "Caption"
- ;; TODO: caption is meaningful only inside float env. Maybe some checking
- ;; and warning would be good.
- )
- '("center" (TeX-arg-literal " ") (TeX-arg-free "Line of text"))
- '("chapheading" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("chapter" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("cindex" (TeX-arg-literal " ") (TeX-arg-free "Entry"))
- '("cite" "Reference")
- '("clear" (TeX-arg-literal " ") (TeX-arg-free "Flag"))
- '("code" "Sample code")
- '("codequotebacktick" (TeX-arg-literal " ") (Texinfo-arg-on|off) (Texinfo-arg-next-line))
- '("codequoteundirected" (TeX-arg-literal " ") (Texinfo-arg-on|off) (Texinfo-arg-next-line))
- '("command" "Command")
- '("comment" (TeX-arg-literal " ") (TeX-arg-free "Comment"))
- '("contents")
- '("copyright" nil)
- '("defcodeindex" (TeX-arg-literal " ") (TeX-arg-free "Index name"))
- '("defindex" (TeX-arg-literal " ") (TeX-arg-free "Index name"))
- '("dfn" "Term")
- '("dmn" "Dimension")
- '("documentlanguage" (TeX-arg-literal " ") (Texinfo-arg-choice "Language" ("ca" "cs" "de" "en" "es" "fr" "hu" "is" "it" "ja" "nb" "nl" "nn" "pl" "pt" "ru" "sr" "tr" "uk")) (Texinfo-arg-next-line))
- '("documentencoding" (TeX-arg-literal " ") (Texinfo-arg-choice "Encoding" ("US-ASCII" "UTF-8" "ISO-8859-1" "ISO-8859-15" "ISO-8859-2" "koi8-r" "koi8-u")) (Texinfo-arg-next-line))
- '("dots" nil)
- '("emph" "Text")
- '("email" "Email address")
- '("equiv" nil)
- '("error")
- '("evenfooting" Texinfo-arg-lrc)
- '("evenheading" Texinfo-arg-lrc)
- '("everyfooting" Texinfo-arg-lrc)
- '("everyheading" Texinfo-arg-lrc)
- '("exdent" (TeX-arg-literal " ") (TeX-arg-free "Line of text"))
- '("expansion" nil)
- '("file" "Filename")
- '("finalout")
- '("findex" (TeX-arg-literal " ") (TeX-arg-free "Entry"))
- '("footnote" "Text of footnote")
- '("footnotestyle" (TeX-arg-literal " ") (TeX-arg-free "Style"))
- '("guillemetleft")
- '("guillemetright")
- '("guilsinglleft")
- '("guilsinglright")
- '("heading" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- ;; XXX: Would be nice with completion.
- '("headings" (TeX-arg-literal " ") (TeX-arg-free "On off single double"))
- '("i" "Text")
- '("ignore")
- '("include" (TeX-arg-literal " ") (TeX-arg-free "Filename"))
- '("inforef" "Node name" "Info file name")
- '("item")
- '("itemx")
- '("kbd" "Keyboard characters")
- '("key" "Key name")
- '("kindex" (TeX-arg-literal " ") (TeX-arg-free "Entry"))
- '("LaTeX" nil)
- '("lowersections" 0)
- '("majorheading" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("menu")
- '("minus")
- '("need" "N")
- '("node" (TeX-arg-literal " ") (TeX-arg-free "Name")
- (TeX-arg-literal ", ") (TeX-arg-free "Next")
- (TeX-arg-literal ", ") (TeX-arg-free "Previous")
- (TeX-arg-literal ", ") (TeX-arg-free "Up"))
- '("noindent")
- '("oddfooting" Texinfo-arg-lrc)
- '("oddheading" Texinfo-arg-lrc)
- '("page")
- '("paragraphindent" (TeX-arg-literal " ") (TeX-arg-free "Indent"))
- '("pindex" "Entry")
- '("point" nil)
- '("print")
- '("printindex" (TeX-arg-literal " ") (TeX-arg-free "Index name"))
- '("pxref" (Texinfo-arg-nodename "Node name"))
- '("quotedblbase")
- '("quotesinglbase")
- '("r" "Text")
- '("raisesections" 0)
- '("ref" (Texinfo-arg-nodename "Node name"))
- '("refill")
- '("result")
- '("samp" "Text")
- '("sc" "Text")
- '("section" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("set" (TeX-arg-literal " ") (TeX-arg-free "Flag"))
- '("setchapternewpage" (TeX-arg-literal " ") (Texinfo-arg-choice "On off odd" ("on" "off" "odd")) (Texinfo-arg-next-line))
- '("setfilename" (TeX-arg-literal " ") (TeX-arg-free "Info file name"))
- '("settitle" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("shortcontents")
- '("smallbook")
- '("sp" "N")
- '("strong" "Text")
- '("subheading" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("subsection" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("subsubheading" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("subsubsection" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("subtitle" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("summarycontents")
- '("syncodeindex" (TeX-arg-literal " ") (TeX-arg-free "From index")
- (TeX-arg-literal " ") (TeX-arg-free "Into index"))
- '("synindex" (TeX-arg-literal " ") (TeX-arg-free "From index")
- (TeX-arg-literal " ") (TeX-arg-free "Into index"))
- '("t" "Text")
- '("TeX" nil)
- '("thischapter")
- '("thischaptername")
- '("thisfile")
- '("thispage")
- '("tie")
- '("tindex" (TeX-arg-literal " ") (TeX-arg-free "Entry"))
- '("title" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("titlefont" "Text")
- '("titlepage")
- '("today" nil)
- '("top" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("unnumbered" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("unnumberedsec" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("unnumberedsubsec" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("unnumberedsubsubsec" (TeX-arg-literal " ") (TeX-arg-free "Title"))
- '("url" "Link")
- '("value" "Flag")
- '("var" "Metasyntactic variable")
- '("vindex" (TeX-arg-literal " ") (TeX-arg-free "Entry"))
- '("vskip" (TeX-arg-literal " ") (TeX-arg-free "Amount"))
- '("w" "Text")
- '("xref" (Texinfo-arg-nodename "Node name")))
-
- ;; RefTeX plugging
- (add-hook 'reftex-mode-hook #'Texinfo-reftex-hook)
- (if (and (boundp 'reftex-mode) reftex-mode)
- (Texinfo-reftex-hook))
-
- (run-mode-hooks 'text-mode-hook 'Texinfo-mode-hook)
- (TeX-set-mode-name))
-
-(defcustom Texinfo-clean-intermediate-suffixes
- '("\\.cps?" "\\.vrs?" "\\.fns?" "\\.tps?" "\\.pgs?" "\\.kys?")
- "List of regexps matching suffixes of files to be deleted.
-The regexps will be anchored at the end of the file name to be matched,
-that is, you do _not_ have to cater for this yourself by adding \\\\\\=' or $."
- :type '(repeat regexp)
- :group 'TeX-command)
-
-(defcustom Texinfo-clean-output-suffixes
- ;; See `man texi2html' for the HTML stuff.
- '("\\.info\\(-[0-9]+\\)?" "\\.dvi" "\\.pdf" "\\.ps" "\\.html"
- "_toc\\.html" "_fot\\.html" "_abt\\.html" "_[0-9]+\\.html" "_l2h_img.+")
- "List of regexps matching suffixes of files to be deleted.
-The regexps will be anchored at the end of the file name to be matched,
-that is, you do _not_ have to cater for this yourself by adding \\\\\\=' or $."
- :type '(repeat regexp)
- :group 'TeX-command)
-
-(provide 'tex-info)
-
-;;; tex-info.el ends here