auctex-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[AUCTeX-diffs] [elpa] externals/auctex 3d813cd 4/8: Add new test


From: Tassilo Horn
Subject: [AUCTeX-diffs] [elpa] externals/auctex 3d813cd 4/8: Add new test
Date: Sun, 25 Apr 2021 15:22:51 -0400 (EDT)

branch: externals/auctex
commit 3d813cdeb8e7e7184dcf9d58f576584312cffae6
Author: Ikumi Keita <ikumi@ikumi.que.jp>
Commit: Ikumi Keita <ikumi@ikumi.que.jp>

    Add new test
    
    * tests/latex/latex-test.el (LaTeX-electric-pair-interaction): New
    test.
    * latex.el (LaTeX-insert-left-brace): Add comments.
---
 latex.el                  |  7 +++++++
 tests/latex/latex-test.el | 30 ++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+)

diff --git a/latex.el b/latex.el
index 767fe21..3330037 100644
--- a/latex.el
+++ b/latex.el
@@ -2900,7 +2900,12 @@ Normally bound to keys \(, { and [."
              (> (point) (mark)))
         (exchange-point-and-mark))
     (if auto-p
+        ;; Should supply corresponding right brace with possible
+        ;; \right-like macro.
         (let ((lbrace (char-to-string last-command-event)) lmacro skip-p)
+          ;; Use `insert' rather than `self-insert-command' so that
+          ;; unexcpected side effects, e.g. `electric-pair-mode',
+          ;; won't mess up the following outcomes. (bug#47936)
           (insert last-command-event)
           (save-excursion
             (backward-char)
@@ -2931,6 +2936,8 @@ Normally bound to keys \(, { and [."
                   (goto-char (mark)))
               (LaTeX-insert-corresponding-right-macro-and-brace
                lmacro lbrace))))
+      ;; Don't supply right brace and just act as ordinary
+      ;; `self-insert-command'.
       (self-insert-command (prefix-numeric-value arg)))))
 ;; Cater for `delete-selection-mode' (bug#36385)
 ;; See the header comment of delsel.el for detail.
diff --git a/tests/latex/latex-test.el b/tests/latex/latex-test.el
index 6f70d95..81cfc52 100644
--- a/tests/latex/latex-test.el
+++ b/tests/latex/latex-test.el
@@ -536,4 +536,34 @@ ghi"))
 \\end{quote}
 ")))))
 
+(ert-deftest LaTeX-electric-pair-interaction ()
+  "Whether `LaTeX-insert-left-brace' is compatible with `electric-pair-mode'."
+  (require 'elec-pair)
+  (let ((LaTeX-electric-left-right-brace t)
+        (orig-mode electric-pair-mode))
+    (unwind-protect
+        (with-temp-buffer
+          ;; Temporally enable electric pair mode, if not enabled
+          ;; already.
+          (or orig-mode
+              (electric-pair-mode 1))
+          (latex-mode)
+
+          ;; When `LaTeX-insert-left-brace' supplies right brace,
+          ;; `electric-pair-mode' shoudn't come into play.
+          (setq last-command-event ?\()
+          (LaTeX-insert-left-brace nil)
+          (should (string= "()" (buffer-string)))
+
+          (erase-buffer)
+          ;; When there is a prefix argument, `LaTeX-insert-left-brace'
+          ;; just calls `self-insert-command' and `electric-pair-mode'
+          ;; should work.
+          (setq last-command-event ?\()
+          (LaTeX-insert-left-brace 2)
+          (should (string= "(()" (buffer-string))))
+      ;; Restore electric pair mode.
+      (or orig-mode
+          (electric-pair-mode -1)))))
+
 ;;; latex-test.el ends here




reply via email to

[Prev in Thread] Current Thread [Next in Thread]