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
This commit is contained in:
João Távora 2014-04-07 00:09:19 +01:00
parent aa5ccb01a5
commit 89f20f76d8
4 changed files with 48 additions and 6 deletions

View file

@ -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

View file

@ -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

View file

@ -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):

View file

@ -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
;;;