Mercurial > hg > xemacs-beta
comparison etc/auctex/style/latexinfo.el @ 50:ee648375d8d6 r19-16b91
Import from CVS: tag r19-16b91
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:56:41 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
49:b46643e427ac | 50:ee648375d8d6 |
---|---|
1 ;;; latexinfo.el - Support for LaTeXinfo files. | |
2 | |
3 ;; Copyright (C) 1993 Marc Gemis <makke@wins.uia.ac.be> | |
4 | |
5 ;; Author: Marc Gemis <makke@wins.uia.ac.be> | |
6 ;; Version: $Id: latexinfo.el,v 1.1 1997/08/30 02:45:16 steve Exp $ | |
7 | |
8 ;; This program is free software; you can redistribute it and/or modify | |
9 ;; it under the terms of the GNU General Public License as published by | |
10 ;; the Free Software Foundation; either version 2, or (at your option) | |
11 ;; any later version. | |
12 ;; | |
13 ;; This program is distributed in the hope that it will be useful, | |
14 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 ;; GNU General Public License for more details. | |
17 ;; | |
18 ;; You should have received a copy of the GNU General Public License | |
19 ;; along with this program; if not, write to the Free Software | |
20 ;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |
21 | |
22 ;;; Code: | |
23 | |
24 (require 'latex) | |
25 | |
26 ;;; LaTeXinfo mode | |
27 | |
28 (defvar TeX-latexinfo-node-regexp | |
29 '("\\\\node[ \t]+\\([^,\n\r%]+\\)" 1 TeX-auto-label) | |
30 "Matches LaTeXinfo \\node commands, only current node will be found. | |
31 We ignore next, previous and up fields.") | |
32 | |
33 (defvar LaTeXinfo-mode nil | |
34 "Non-nil means LaTeXinfo minor mode is active.") | |
35 (make-variable-buffer-local 'LaTeXinfo-mode) | |
36 | |
37 (defvar LaTeXinfo-mode-map nil | |
38 "Keymap containing LaTeXinfo commands.") | |
39 | |
40 (if LaTeXinfo-mode-map | |
41 () | |
42 (setq LaTeXinfo-mode-map (make-sparse-keymap)) | |
43 (define-key LaTeXinfo-mode-map "\C-c\C-u\C-b" 'latexinfo-format-buffer) | |
44 (define-key LaTeXinfo-mode-map "\C-c\C-u\C-r" 'latexinfo-format-region) | |
45 (define-key LaTeXinfo-mode-map "\C-c\C-u\C-s" 'latexinfo-show-structure) | |
46 (define-key LaTeXinfo-mode-map "\C-c\C-ud" 'makke:latexinfo-delete-structure) | |
47 (define-key LaTeXinfo-mode-map "\C-c\C-ug" 'latexinfo-goto-node) | |
48 (define-key LaTeXinfo-mode-map "\C-c\C-ui" 'makke:latexinfo-structure)) | |
49 | |
50 (or (assq 'LaTeXinfo-mode minor-mode-map-alist) | |
51 (setq minor-mode-map-alist | |
52 (cons (cons 'LaTeXinfo-mode LaTeXinfo-mode-map) | |
53 minor-mode-map-alist))) | |
54 | |
55 (defun TeX-arg-latexinfo-index (optional &optional prompt) | |
56 "Prompt for a LaTeXinfo index type with completion." | |
57 (TeX-argument-insert | |
58 (completing-read (TeX-argument-prompt optional prompt "Index") | |
59 '(("cp") ("vr") ("fn") ("tp") ("pg") ("ky")) | |
60 nil t) | |
61 optional)) | |
62 | |
63 (defun LaTeX-item-latexinfo-menu () | |
64 "Insert a new menu item" | |
65 (insert "* ::") | |
66 (backward-char 2)) | |
67 | |
68 (defun latexinfo-goto-node () ; temporarily here, later in latexinfo-upd.el ?? | |
69 "Place pointer on the node given by the user, read node with completion | |
70 This fails when the user types in the label of something else" | |
71 (interactive) | |
72 (let ((node-name (completing-read "Goto Node: " (LaTeX-label-list)))) | |
73 (goto-char (point-min)) | |
74 (if (re-search-forward | |
75 (concat | |
76 TeX-esc "node[ \\t]+" node-name "," | |
77 "\\|" | |
78 TeX-esc "label{" LaTeX-section-label node-name | |
79 "\\|" | |
80 TeX-esc "label{" node-name | |
81 ) | |
82 (point-max) t) | |
83 (beginning-of-line 1) | |
84 (error "No such node")))) | |
85 | |
86 ;;; Hook | |
87 | |
88 (TeX-add-style-hook "latexinfo" | |
89 (function | |
90 (lambda () | |
91 (require 'latexinfo) | |
92 (require 'latexinfo-structure) | |
93 | |
94 (require 'min-map) | |
95 (setq LaTeXinfo-mode t) | |
96 | |
97 (TeX-auto-add-regexp TeX-latexinfo-node-regexp) | |
98 | |
99 (TeX-add-symbols | |
100 '("node" | |
101 (TeX-arg-literal " ") | |
102 (TeX-arg-free TeX-arg-define-label "Node name") | |
103 (TeX-arg-literal ", ") | |
104 (TeX-arg-free TeX-arg-label "Next node") | |
105 (TeX-arg-literal ", ") | |
106 (TeX-arg-free TeX-arg-label "Previous node") | |
107 (TeX-arg-literal ", ") | |
108 (TeX-arg-free TeX-arg-label "Up node")) | |
109 '("setfilename" TeX-arg-file) | |
110 | |
111 '("var" t) | |
112 '("dfn" t) | |
113 '("emph" t) | |
114 '("kbd" t) | |
115 '("code" t) | |
116 '("samp" t) | |
117 '("key" t) | |
118 '("ctrl" t) | |
119 '("file" t) | |
120 | |
121 '("comment" | |
122 (TeX-arg-literal " ") | |
123 (TeX-arg-free "Comment")) | |
124 '("c" | |
125 (TeX-arg-literal " ") | |
126 (TeX-arg-free "Comment")) | |
127 | |
128 '("cindex" t) | |
129 '("cpsubindex" 2) | |
130 '("cpindexbold" t) | |
131 | |
132 '("newindex" TeX-arg-latexinfo-index) | |
133 | |
134 '("br" nil) | |
135 '("w" "Text") | |
136 '("dots" nil) | |
137 '("refill" nil) | |
138 '("bullet" nil) | |
139 '("copyright" nil) | |
140 '("sp" nil) | |
141 | |
142 '("xref" TeX-arg-label) | |
143 '("pxref" TeX-arg-label) | |
144 '("inforef" | |
145 (TeX-arg-literal "{") | |
146 (TeX-arg-free "Name of node") | |
147 (TeX-arg-literal ", ") | |
148 (TeX-arg-free "Name for note") | |
149 (TeX-arg-literal ", ") | |
150 (TeX-arg-free TeX-arg-file "Info file") | |
151 (TeX-arg-literal "}"))) | |
152 | |
153 (LaTeX-add-environments "menu" "tex" "ignore" "ifinfo" "iftex" | |
154 "example" "same" "display" "format") | |
155 | |
156 ; Menu's have a special kind of items | |
157 (make-local-variable 'LaTeX-item-list) | |
158 (setq LaTeX-item-list (cons '("menu" . LaTeX-item-latexinfo-menu) | |
159 LaTeX-item-list)) | |
160 | |
161 (make-local-variable 'TeX-font-list) | |
162 (setq TeX-font-list | |
163 (list (list ?\C-b (concat TeX-esc "b{") "}") | |
164 (list ?\C-c (concat TeX-esc "sc{") "}") | |
165 (list ?\C-e (concat TeX-esc "emph{") "}") | |
166 (list ?\C-i (concat TeX-esc "i{") "}") | |
167 (list ?\C-r (concat TeX-esc "r{") "}") | |
168 (list ?\C-s (concat TeX-esc "samp{") "}") | |
169 (list ?\C-t (concat TeX-esc "t{") "}") | |
170 (list ?s (concat TeX-esc "strong{") "}") | |
171 (list ?\C-f (concat TeX-esc "file{") "}") | |
172 (list ?\C-d (concat TeX-esc "dfn{") "}") | |
173 (list ?\C-v (concat TeX-esc "var{") "}") | |
174 (list ?k (concat TeX-esc "key{") "}") | |
175 (list ?\C-k (concat TeX-esc "kbd{") "}") | |
176 (list ?c (concat TeX-esc "code{") "}") | |
177 (list ?C (concat TeX-esc "cite{") "}"))) | |
178 | |
179 ;; need the following stuff to let xref and pxref work | |
180 (make-local-variable 'LaTeX-section-label) | |
181 (setq LaTeX-section-label "")))) | |
182 | |
183 ;;; latexinfo.el ends here |