diff options
author | João Távora <joaotavora@gmail.com> | 2014-04-07 00:09:19 +0100 |
---|---|---|
committer | João Távora <joaotavora@gmail.com> | 2014-04-07 00:09:19 +0100 |
commit | 89f20f76d8fa700d2a534834bf178ac8796d35cf (patch) | |
tree | 8b3a2f1a6bd427320ddb303d69a25dfb87ba5b8a | |
parent | aa5ccb01a59901cb15a25995b70a7f49d2b03b57 (diff) | |
download | emacs-89f20f76d8fa700d2a534834bf178ac8796d35cf.tar.gz |
Fix electric-pair-skip-whitespace with quotes in text-mode
* lisp/elec-pair.el (electric-pair-post-self-insert-function): Don't
skip whitespace for quote syntax when `electric-pair-text-pairs'
and `electric-pair-pairs' were used.
* test/automated/electric-tests.el (electric-pair-define-test-form):
More readable test docstrings.
(whitespace-skipping-for-quotes-not-ouside)
(whitespace-skipping-for-quotes-only-inside)
(whitespace-skipping-not-without-proper-syntax):
Fixes: debbugs:17183
-rw-r--r-- | lisp/ChangeLog | 7 | ||||
-rw-r--r-- | lisp/elec-pair.el | 10 | ||||
-rw-r--r-- | test/ChangeLog | 8 | ||||
-rw-r--r-- | test/automated/electric-tests.el | 29 |
4 files changed, 48 insertions, 6 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b082670dc54..7d6436cfafc 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2014-04-06 João Távora <joaotavora@gmail.com> + + * elec-pair.el (electric-pair-post-self-insert-function): Don't + skip whitespace when `electric-pair-text-pairs' and + `electric-pair-pairs' were used. syntax to + electric-pair--skip-whitespace. (Bug#17183) + 2014-04-06 Eli Zaretskii <eliz@gnu.org> * leim/quail/ipa.el (ipa-x-sampa): Fix the character produced for diff --git a/lisp/elec-pair.el b/lisp/elec-pair.el index 52ad9bc0249..2c1ea7262d3 100644 --- a/lisp/elec-pair.el +++ b/lisp/elec-pair.el @@ -485,10 +485,12 @@ happened." (funcall electric-pair-skip-self last-command-event) electric-pair-skip-self)) (save-excursion - (when (setq skip-whitespace-info - (if (functionp electric-pair-skip-whitespace) - (funcall electric-pair-skip-whitespace) - electric-pair-skip-whitespace)) + (when (and (not (and unconditional + (eq syntax ?\"))) + (setq skip-whitespace-info + (if (functionp electric-pair-skip-whitespace) + (funcall electric-pair-skip-whitespace) + electric-pair-skip-whitespace))) (electric-pair--skip-whitespace)) (eq (char-after) last-command-event)))) ;; This is too late: rather than insert&delete we'd want to only diff --git a/test/ChangeLog b/test/ChangeLog index 5e5a8ae73af..846da9621fc 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,11 @@ +2014-04-06 João Távora <joaotavora@gmail.com> + + * automated/electric-tests.el (electric-pair-define-test-form): + More readable test docstrings. + (whitespace-skipping-for-quotes-not-ouside) + (whitespace-skipping-for-quotes-only-inside) + (whitespace-skipping-for-quotes-in-text-mode): New tests. + 2014-03-24 Barry O'Reilly <gundaetiapo@gmail.com> * automated/undo-tests.el (undo-test-marker-adjustment-nominal): diff --git a/test/automated/electric-tests.el b/test/automated/electric-tests.el index e3ffd1abd2e..184a91f5105 100644 --- a/test/automated/electric-tests.el +++ b/test/automated/electric-tests.el @@ -114,8 +114,8 @@ mode extra-desc)) () - ,(format "With \"%s\", try input %c at point %d. \ -Should %s \"%s\" and point at %d" + ,(format "With |%s|, try input %c at point %d. \ +Should %s |%s| and point at %d" fixture char (1+ pos) @@ -341,6 +341,31 @@ Should %s \"%s\" and point at %d" :test-in-code nil :test-in-comments t) +(define-electric-pair-test whitespace-skipping-for-quotes-not-ouside + " \" \"" "\"-----" :expected-string "\"\" \" \"" + :expected-point 2 + :bindings '((electric-pair-skip-whitespace . chomp)) + :test-in-strings nil + :test-in-code t + :test-in-comments nil) + +(define-electric-pair-test whitespace-skipping-for-quotes-only-inside + " \" \"" "---\"--" :expected-string " \"\"" + :expected-point 5 + :bindings '((electric-pair-skip-whitespace . chomp)) + :test-in-strings nil + :test-in-code t + :test-in-comments nil) + +(define-electric-pair-test whitespace-skipping-quotes-not-without-proper-syntax + " \" \"" "---\"--" :expected-string " \"\"\" \"" + :expected-point 5 + :modes '(text-mode) + :bindings '((electric-pair-skip-whitespace . chomp)) + :test-in-strings nil + :test-in-code t + :test-in-comments nil) + ;;; Pairing arbitrary characters ;;; |