From fae3e7c0d8119455a186b31fde54472d5dbcf6b1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jo=C3=A3o=20T=C3=A1vora?= Date: Sat, 22 Dec 2018 22:27:27 +0000 Subject: [PATCH] Test electric.el in plainer c-mode without c-electric-{brace,paren} 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 | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/test/lisp/electric-tests.el b/test/lisp/electric-tests.el index b798a3fac7b..af27fab0c6a 100644 --- a/test/lisp/electric-tests.el +++ b/test/lisp/electric-tests.el @@ -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]))) -- 2.39.5