Fix triple-quoting electricity in python-mode
* lisp/progmodes/python.el (python-electric-pair-string-delimiter): Fix triple-quoting electricity. * test/automated/python-tests.el (python-triple-quote-pairing): New test. (python-syntax-after-python-backspace): New test. Fixes: debbugs:17192
This commit is contained in:
parent
89f20f76d8
commit
7aecc2f6ca
4 changed files with 53 additions and 3 deletions
|
@ -1,9 +1,14 @@
|
|||
2014-04-06 João Távora <joaotavora@gmail.com>
|
||||
|
||||
* progmodes/python.el (python-electric-pair-string-delimiter): Fix
|
||||
triple-quoting electricity. (Bug#17192)
|
||||
|
||||
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)
|
||||
electric-pair--skip-whitespace. (Bug#17183)
|
||||
|
||||
2014-04-06 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
|
|
|
@ -3651,8 +3651,9 @@ returned as is."
|
|||
(let ((count 0))
|
||||
(while (eq (char-before (- (point) count)) last-command-event)
|
||||
(cl-incf count))
|
||||
(= count 3)))
|
||||
(save-excursion (insert (make-string 3 last-command-event)))))
|
||||
(= count 3))
|
||||
(eq (char-after) last-command-event))
|
||||
(save-excursion (insert (make-string 2 last-command-event)))))
|
||||
|
||||
(defvar electric-indent-inhibit)
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2014-04-06 João Távora <joaotavora@gmail.com>
|
||||
|
||||
* automated/python-tests.el (python-triple-quote-pairing): New test.
|
||||
(python-syntax-after-python-backspace): New test.
|
||||
|
||||
2014-04-06 João Távora <joaotavora@gmail.com>
|
||||
|
||||
* automated/electric-tests.el (electric-pair-define-test-form):
|
||||
|
|
|
@ -134,6 +134,16 @@ aliqua."
|
|||
|
||||
;;; Font-lock and syntax
|
||||
|
||||
(ert-deftest python-syntax-after-python-backspace ()
|
||||
;; `python-indent-dedent-line-backspace' garbles syntax
|
||||
:expected-result :failed
|
||||
(python-tests-with-temp-buffer
|
||||
"\"\"\""
|
||||
(goto-char (point-max))
|
||||
(python-indent-dedent-line-backspace 1)
|
||||
(should (string= (buffer-string) "\"\""))
|
||||
(should (null (nth 3 (syntax-ppss))))))
|
||||
|
||||
|
||||
;;; Indentation
|
||||
|
||||
|
@ -2696,6 +2706,9 @@ def foo(a, b, c):
|
|||
(equal (symbol-value (car ccons)) (cdr ccons)))))
|
||||
(kill-buffer buffer)))
|
||||
|
||||
|
||||
;;; Electricity
|
||||
|
||||
(ert-deftest python-util-forward-comment-1 ()
|
||||
(python-tests-with-temp-buffer
|
||||
(concat
|
||||
|
@ -2708,6 +2721,32 @@ def foo(a, b, c):
|
|||
(python-util-forward-comment -1)
|
||||
(should (= (point) (point-min)))))
|
||||
|
||||
(ert-deftest python-triple-quote-pairing ()
|
||||
(python-tests-with-temp-buffer
|
||||
"\"\"\n"
|
||||
(goto-char (1- (point-max)))
|
||||
(let ((last-command-event ?\"))
|
||||
(call-interactively 'self-insert-command))
|
||||
(should (string= (buffer-string)
|
||||
"\"\"\"\"\"\"\n"))
|
||||
(should (= (point) 4)))
|
||||
(python-tests-with-temp-buffer
|
||||
"\n"
|
||||
(let ((last-command-event ?\"))
|
||||
(dotimes (i 3)
|
||||
(call-interactively 'self-insert-command)))
|
||||
(should (string= (buffer-string)
|
||||
"\"\"\"\"\"\"\n"))
|
||||
(should (= (point) 4)))
|
||||
(python-tests-with-temp-buffer
|
||||
"\"\n\"\"\n"
|
||||
(goto-char (1- (point-max)))
|
||||
(let ((last-command-event ?\"))
|
||||
(call-interactively 'self-insert-command))
|
||||
(should (= (point) (1- (point-max))))
|
||||
(should (string= (buffer-string)
|
||||
"\"\n\"\"\"\n"))))
|
||||
|
||||
|
||||
(provide 'python-tests)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue