diff options
| author | João Távora | 2019-01-22 14:36:54 +0000 |
|---|---|---|
| committer | João Távora | 2019-01-22 16:41:01 +0000 |
| commit | 6ca4626c9fe33f78df685b4df7aca88abb272118 (patch) | |
| tree | b849b9c60cea405653caed954f19d4400f9e818a | |
| parent | 9eaf5e052a802a7b0560f983f2bb786e13ce2488 (diff) | |
| download | emacs-6ca4626c9fe33f78df685b4df7aca88abb272118.tar.gz emacs-6ca4626c9fe33f78df685b4df7aca88abb272118.zip | |
Remove tests of electric-pair-mode and CC-based modes
The behaviour previously observed in cc-mode-based-modes (and every
other major-mode) when electric-pair-mode or electric-layout-mode is
turned on may no longer be observed: this because CC-mode goes around
the generic implementation of electric-pair-mode.
An alternative is to bind every delimiter key like '{', '}', etc to
'self-insert-command, like most major modes already do, at the cost of
losing c-auto-newline functionality (which was incompatible anyway
before the recent changes of bug#33794).
* test/lisp/electric-tests.el
(electric-pair-test-for): No longer set it.
(define-electric-pair-test): Use js-mode instead of c++ mode,
which broke recently.
(whitespace-chomping-2): Add failing C++ test explicitly.
(electric-layout-int-main-kernel-style): Use plainer-c-mode.
(electric-layout-int-main-allman-style): Deleted.
(electric-modes-int-main-allman-style): Renamed from
electric-layout-int-main-allman-style.
| -rw-r--r-- | test/lisp/electric-tests.el | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/test/lisp/electric-tests.el b/test/lisp/electric-tests.el index 5a4b20ed04e..0b076e4be01 100644 --- a/test/lisp/electric-tests.el +++ b/test/lisp/electric-tests.el | |||
| @@ -157,7 +157,7 @@ The buffer's contents should %s: | |||
| 157 | expected-string | 157 | expected-string |
| 158 | expected-point | 158 | expected-point |
| 159 | bindings | 159 | bindings |
| 160 | (modes '(quote (ruby-mode c++-mode))) | 160 | (modes '(quote (ruby-mode js-mode))) |
| 161 | (test-in-comments t) | 161 | (test-in-comments t) |
| 162 | (test-in-strings t) | 162 | (test-in-strings t) |
| 163 | (test-in-code t) | 163 | (test-in-code t) |
| @@ -391,10 +391,16 @@ baz\"\"" | |||
| 391 | :bindings '((electric-pair-skip-whitespace . chomp)) | 391 | :bindings '((electric-pair-skip-whitespace . chomp)) |
| 392 | :test-in-comments nil) | 392 | :test-in-comments nil) |
| 393 | 393 | ||
| 394 | 394 | (define-electric-pair-test whitespace-chomping-2 | |
| 395 | ;; A test failure introduced by some changes in CC mode. Hopefully CC | 395 | " ( \n\t\t\n ) " "--)------" :expected-string " () " :expected-point 4 |
| 396 | ;; mode will sort this out eventually, using some new e-p-m machinery. | 396 | :bindings '((electric-pair-skip-whitespace . chomp)) |
| 397 | ;; See | 397 | :modes '(c++-mode) |
| 398 | :test-in-comments nil) | ||
| 399 | ;; A test failure introduced by: | ||
| 400 | ;; | ||
| 401 | ;; bb591f139f: Enhance CC Mode's fontification, etc., of unterminated strings. | ||
| 402 | ;; | ||
| 403 | ;; Hopefully CC mode will sort this out eventually. See | ||
| 398 | ;; https://lists.gnu.org/archive/html/emacs-devel/2018-06/msg00535.html | 404 | ;; https://lists.gnu.org/archive/html/emacs-devel/2018-06/msg00535.html |
| 399 | (setf | 405 | (setf |
| 400 | (ert-test-expected-result-type | 406 | (ert-test-expected-result-type |
| @@ -817,7 +823,7 @@ baz\"\"" | |||
| 817 | 823 | ||
| 818 | (ert-deftest electric-layout-int-main-kernel-style () | 824 | (ert-deftest electric-layout-int-main-kernel-style () |
| 819 | (ert-with-test-buffer () | 825 | (ert-with-test-buffer () |
| 820 | (c-mode) | 826 | (plainer-c-mode) |
| 821 | (electric-layout-local-mode 1) | 827 | (electric-layout-local-mode 1) |
| 822 | (electric-pair-local-mode 1) | 828 | (electric-pair-local-mode 1) |
| 823 | (electric-indent-local-mode 1) | 829 | (electric-indent-local-mode 1) |
| @@ -828,19 +834,6 @@ baz\"\"" | |||
| 828 | (call-interactively (key-binding `[,last-command-event]))) | 834 | (call-interactively (key-binding `[,last-command-event]))) |
| 829 | (should (equal (buffer-string) "int main () {\n \n}")))) | 835 | (should (equal (buffer-string) "int main () {\n \n}")))) |
| 830 | 836 | ||
| 831 | (ert-deftest electric-layout-int-main-allman-style () | ||
| 832 | (ert-with-test-buffer () | ||
| 833 | (c-mode) | ||
| 834 | (electric-layout-local-mode 1) | ||
| 835 | (electric-pair-local-mode 1) | ||
| 836 | (electric-indent-local-mode 1) | ||
| 837 | (setq-local electric-layout-rules | ||
| 838 | '((?\{ . (before after-stay after)))) | ||
| 839 | (insert "int main () ") | ||
| 840 | (let ((last-command-event ?\{)) | ||
| 841 | (call-interactively (key-binding `[,last-command-event]))) | ||
| 842 | (should (equal (buffer-string) "int main ()\n{\n \n}")))) | ||
| 843 | |||
| 844 | (define-derived-mode plainer-c-mode c-mode "pC" | 837 | (define-derived-mode plainer-c-mode c-mode "pC" |
| 845 | "A plainer/saner C-mode with no internal electric machinery." | 838 | "A plainer/saner C-mode with no internal electric machinery." |
| 846 | (c-toggle-electric-state -1) | 839 | (c-toggle-electric-state -1) |
| @@ -850,7 +843,7 @@ baz\"\"" | |||
| 850 | (dolist (key '(?\" ?\' ?\{ ?\} ?\( ?\) ?\[ ?\])) | 843 | (dolist (key '(?\" ?\' ?\{ ?\} ?\( ?\) ?\[ ?\])) |
| 851 | (local-set-key (vector key) 'self-insert-command))) | 844 | (local-set-key (vector key) 'self-insert-command))) |
| 852 | 845 | ||
| 853 | (ert-deftest electric-modes-in-c-mode-with-self-insert-command () | 846 | (ert-deftest electric-modes-int-main-allman-style () |
| 854 | (ert-with-test-buffer () | 847 | (ert-with-test-buffer () |
| 855 | (plainer-c-mode) | 848 | (plainer-c-mode) |
| 856 | (electric-layout-local-mode 1) | 849 | (electric-layout-local-mode 1) |