]> git.eshelyaron.com Git - emacs.git/commitdiff
Test electric.el in plainer c-mode without c-electric-{brace,paren}
authorJoão Távora <joaotavora@gmail.com>
Sat, 22 Dec 2018 22:27:27 +0000 (22:27 +0000)
committerJoão Távora <joaotavora@gmail.com>
Sun, 23 Dec 2018 20:42:17 +0000 (20:42 +0000)
If cc-mode ever drops/changes its usage of c-electric-{brace,paren}
test that electric pairing, layout and indentation based on
electric.el keep working.

* test/lisp/electric-tests.el
(electric-layout-int-main-kernel-style)
(electric-layout-int-main-allman-style): Change order of after and
after-stay.
(plainer-c-mode): New test mode.
(electric-modes-in-c-mode-with-self-insert-command): New test.

test/lisp/electric-tests.el

index b798a3fac7b41efdf5b8108715a69405e6e12027..af27fab0c6a17054bc2ed299aae968682de3c236 100644 (file)
@@ -823,7 +823,7 @@ baz\"\""
       (electric-pair-local-mode 1)
       (electric-indent-local-mode 1)
       (setq-local electric-layout-rules
-              '((?\{ . (after after-stay))))
+              '((?\{ . (after-stay after))))
       (insert "int main () ")
       (let ((last-command-event ?\{))
         (call-interactively (key-binding `[,last-command-event])))
@@ -837,7 +837,26 @@ baz\"\""
       (electric-pair-local-mode 1)
       (electric-indent-local-mode 1)
       (setq-local electric-layout-rules
-              '((?\{ . (before after after-stay))))
+              '((?\{ . (before after-stay after))))
+      (insert "int main () ")
+      (let ((last-command-event ?\{))
+        (call-interactively (key-binding `[,last-command-event])))
+      (should (equal (buffer-string) "int main ()\n{\n  \n}")))))
+
+(define-derived-mode plainer-c-mode c-mode "pC"
+  "A plainer C-mode")
+
+(ert-deftest electric-modes-in-c-mode-with-self-insert-command ()
+  (save-electric-modes
+    (ert-with-test-buffer ()
+      (plainer-c-mode)
+      (electric-layout-local-mode 1)
+      (electric-pair-local-mode 1)
+      (electric-indent-local-mode 1)
+      (dolist (key '(?\" ?\' ?\{ ?\} ?\( ?\) ?\[ ?\]))
+        (local-set-key (vector key) 'self-insert-command))
+      (setq-local electric-layout-rules
+              '((?\{ . (before after-stay after))))
       (insert "int main () ")
       (let ((last-command-event ?\{))
         (call-interactively (key-binding `[,last-command-event])))