* lisp/progmodes/python.el (python-indent-post-self-insert-function):

Avoid electric colon at beginning-of-defun. 

* test/automated/python-tests.el:
(python-indent-electric-colon-1): New test.  (Bug#18228)
This commit is contained in:
Fabián Ezequiel Gallina 2014-09-01 19:51:46 -03:00
parent ad5c82a8cc
commit 0e4c8f1856
4 changed files with 31 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2014-09-01 Fabián Ezequiel Gallina <fgallina@gnu.org>
* progmodes/python.el (python-indent-post-self-insert-function):
Avoid electric colon at beginning-of-defun. (Bug#18228)
2014-09-01 Glenn Morris <rgm@gnu.org>
* tutorial.el (tutorial--display-changes):

View file

@ -1155,9 +1155,15 @@ the line will be re-indented automatically if needed."
((and (eq ?: last-command-event)
(memq ?: electric-indent-chars)
(not current-prefix-arg)
;; Trigger electric colon only at end of line
(eolp)
;; Avoid re-indenting on extra colon
(not (equal ?: (char-before (1- (point)))))
(not (python-syntax-comment-or-string-p)))
(not (python-syntax-comment-or-string-p))
;; Never re-indent at beginning of defun
(not (save-excursion
(python-nav-beginning-of-statement)
(python-info-looking-at-beginning-of-defun))))
(python-indent-line)))))

View file

@ -1,3 +1,8 @@
2014-09-01 Fabián Ezequiel Gallina <fgallina@gnu.org>
* automated/python-tests.el:
(python-indent-electric-colon-1): New test. (Bug#18228)
2014-08-18 Glenn Morris <rgm@gnu.org>
* automated/python-tests.el (python-shell-calculate-exec-path-2):

View file

@ -711,6 +711,20 @@ if a:
(should (= (python-indent-calculate-indentation) 0))
(should (equal (python-indent-calculate-levels) '(0)))))
(ert-deftest python-indent-electric-colon-1 ()
"Test indentation case from Bug#18228."
(python-tests-with-temp-buffer
"
def a():
pass
def b()
"
(python-tests-look-at "def b()")
(goto-char (line-end-position))
(python-tests-self-insert ":")
(should (= (current-indentation) 0))))
;;; Navigation