summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTassilo Horn <tsdh@gnu.org>2013-04-15 09:55:05 +0200
committerTassilo Horn <tsdh@gnu.org>2013-04-15 09:55:05 +0200
commit4d9a0979f6930ef23ef0b05996cc737002b25e06 (patch)
treef4bab59c898d591955ff686a80b06a2b07606472
parent5fbcd237859a2f7979e2cff3bf6f3ac56f2bfa24 (diff)
downloademacs-4d9a0979f6930ef23ef0b05996cc737002b25e06.tar.gz
* textmodes/reftex-vars.el (reftex-label-regexps): New defcustom.
* textmodes/reftex.el (reftex-compile-variables): Use it.
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/textmodes/reftex-vars.el14
-rw-r--r--lisp/textmodes/reftex.el8
3 files changed, 21 insertions, 7 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b0997a307f5..34711b72c3e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2013-04-15 Tassilo Horn <tsdh@gnu.org>
+
+ * textmodes/reftex-vars.el (reftex-label-regexps): New defcustom.
+
+ * textmodes/reftex.el (reftex-compile-variables): Use it.
+
2013-04-14 Stefan Monnier <monnier@iro.umontreal.ca>
* files.el (normal-mode): Only use default major-mode if no other mode
diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el
index 2a5c9c55866..c00cf36c79e 100644
--- a/lisp/textmodes/reftex-vars.el
+++ b/lisp/textmodes/reftex-vars.el
@@ -863,6 +863,20 @@ DOWNCASE t: Downcase words before using them."
(string :tag ""))
(option (boolean :tag "Downcase words "))))
+(defcustom reftex-label-regexps
+ '(;; Normal \\label{foo} labels
+ "\\\\label{\\(?1:[^}]*\\)}"
+ ;; keyvals [..., label = {foo}, ...] forms used by ctable,
+ ;; listings, minted, ...
+ "\\[[^]]*\\<label[[:space:]]*=[[:space:]]*{?\\(?1:[^],}]+\\)}?")
+ "List of regexps matching \\label definitions.
+The default value matches usual \\label{...} definitions and
+keyval style [..., label = {...}, ...] label definitions. It is
+assumed that the regexp group 1 matches the label text, so you
+have to define it using \\(?1:...\\) when adding new regexps."
+ :group 'reftex-defining-label-environments
+ :type '(repeat (regexp :tag "Regular Expression")))
+
(defcustom reftex-label-illegal-re "[^-a-zA-Z0-9_+=:;,.]"
"Regexp matching characters not valid in labels."
:group 'reftex-making-and-inserting-labels
diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el
index d5bb0170cd9..21083fd188a 100644
--- a/lisp/textmodes/reftex.el
+++ b/lisp/textmodes/reftex.el
@@ -1081,13 +1081,7 @@ This enforces rescanning the buffer on next use."
(wbol "\\(^\\)[ \t]*") ; Need to keep the empty group because
; match numbers are hard coded
(label-re (concat "\\(?:"
- ;; Normal \label{...}
- "\\\\label{\\([^}]*\\)}"
- "\\|"
- ;; keyvals [..., label = {foo}, ...]
- ;; forms used by ctable, listings,
- ;; minted, ...
- "\\[[^]]*label[[:space:]]*=[[:space:]]*{?\\(?1:[^],}]+\\)}?"
+ (mapconcat 'identity reftex-label-regexps "\\|")
"\\)"))
(include-re (concat wbol
"\\\\\\("