summaryrefslogtreecommitdiff
path: root/lisp/textmodes/tildify.el
diff options
context:
space:
mode:
authorMichal Nazarewicz <mina86@mina86.com>2014-06-05 16:41:32 +0200
committerMichal Nazarewicz <mina86@mina86.com>2014-06-05 16:41:32 +0200
commitdf344ab435c04aea5bb9261e6d2c349ab8f4fcea (patch)
tree21cf280112e529fbdccb722e27a80ef1e881c374 /lisp/textmodes/tildify.el
parenteb54c73a9d26325f691589a0dce561b124a50c70 (diff)
downloademacs-df344ab435c04aea5bb9261e6d2c349ab8f4fcea.tar.gz
tildify.el: Optimise environments regexes
* lisp/textmodes/tildify.el (tildify-ignored-environments-alist): Each time beginning of an environment to ignore is found, `tildify-find-env' needs to identify regexp for the ending of the environment. This is done by trying all the opening regexes on matched text in a loop, so to speed that up, this loop should have fewer things to match, which can be done by using alternatives in the opening regexes. Coincidentally, this should make matching of the opening regexp faster as well thanks to the use of `regexp-opt' and having common prefix pulled from many regexes.
Diffstat (limited to 'lisp/textmodes/tildify.el')
-rw-r--r--lisp/textmodes/tildify.el37
1 files changed, 15 insertions, 22 deletions
diff --git a/lisp/textmodes/tildify.el b/lisp/textmodes/tildify.el
index 6dd471d49ad..39ccad717d4 100644
--- a/lisp/textmodes/tildify.el
+++ b/lisp/textmodes/tildify.el
@@ -119,42 +119,35 @@ mode, the item for the mode SYMBOL is looked up in the alist instead."
(symbol :tag "Like other")))))
(defcustom tildify-ignored-environments-alist
- '((latex-mode
+ `((latex-mode
("\\\\\\\\" . "") ; do not remove this
- ("\\\\begin{verbatim}" . "\\\\end{verbatim}")
+ (,(eval-when-compile (concat
+ "\\\\begin{\\("
+ (regexp-opt '("verbatim" "math" "displaymath"
+ "equation" "eqnarray" "eqnarray*"))
+ "\\)}"))
+ . ("\\\\end{" 1 "}"))
("\\\\verb\\*?\\(.\\)" . (1))
- ("\\$\\$" . "\\$\\$")
- ("\\$" . "\\$")
+ ("\\$\\$?" . (0))
("\\\\(" . "\\\\)")
("\\\\[[]" . "\\\\[]]")
- ("\\\\begin{math}" . "\\\\end{math}")
- ("\\\\begin{displaymath}" . "\\\\end{displaymath}")
- ("\\\\begin{equation}" . "\\\\end{equation}")
- ("\\\\begin{eqnarray\\*?}" . "\\\\end{eqnarray\\*?}")
("\\\\[a-zA-Z]+\\( +\\|{}\\)[a-zA-Z]*" . "")
("%" . "$"))
(plain-tex-mode . latex-mode)
(html-mode
- ("<pre[^>]*>" . "</pre>")
- ("<dfn>" . "</dfn>")
- ("<code>" . "</code>")
- ("<samp>" . "</samp>")
- ("<kbd>" . "</kbd>")
- ("<var>" . "</var>")
- ("<PRE[^>]*>" . "</PRE>")
- ("<DFN>" . "</DFN>")
- ("<CODE>" . "</CODE>")
- ("<SAMP>" . "</SAMP>")
- ("<KBD>" . "</KBD>")
- ("<VAR>" . "</VAR>")
+ (,(eval-when-compile (concat
+ "<\\("
+ (regexp-opt '("pre" "dfn" "code" "samp" "kbd" "var"
+ "PRE" "DFN" "CODE" "SAMP" "KBD" "VAR"))
+ "\\)\\>[^>]*>"))
+ . ("</" 1 ">"))
("<! *--" . "-- *>")
("<" . ">"))
(sgml-mode . html-mode)
(xml-mode
("<! *--" . "-- *>")
("<" . ">"))
- (nxml-mode . xml-mode)
- (t nil))
+ (nxml-mode . xml-mode))
"Alist specifying ignored structured text environments.
Parts of text defined in this alist are skipped without performing hard space
insertion on them. These setting allow skipping text parts like verbatim or