]> gitweb.michael.orlitzky.com - emacs.d.git/blobdiff - latex-query-replace-regexp-math.el
Add the latex-query-replace-regexp-math library.
[emacs.d.git] / latex-query-replace-regexp-math.el
diff --git a/latex-query-replace-regexp-math.el b/latex-query-replace-regexp-math.el
new file mode 100644 (file)
index 0000000..2c486ec
--- /dev/null
@@ -0,0 +1,21 @@
+;; This is a math-mode find and replace. It relies on the AUCTeX
+;; package for the "texmathp" function.
+;;
+;; Originally from http://stackoverflow.com/questions/19845598,
+;; and modified to mention AUCTeX if it is missing.
+
+(fset 'latex-query-replace-regexp-math
+  `(lambda (regexp to-string &optional delimited start end backward)
+  "Like `query-replace-regexp' but only searches within math environments."
+  ,(interactive-form 'query-replace-regexp)
+
+  (if (fboundp 'texmathp)
+    (let ((replace-re-search-function
+          (lambda (regexp bound noerror)
+            (catch :found
+              (while (let ((ret (re-search-forward regexp bound noerror)))
+                       (when (save-match-data (texmathp)) (throw :found ret))
+                       ret))))))
+      (query-replace-regexp regexp to-string delimited start end backward))
+    (error "AUCTeX and latex-mode are required for this function.")
+  )))