diff options
Diffstat (limited to 'lisp/progmodes/python.el')
| -rw-r--r-- | lisp/progmodes/python.el | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 357ca5b56d8..6d3916c07a5 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el | |||
| @@ -1175,12 +1175,18 @@ the line will be re-indented automatically if needed." | |||
| 1175 | (eolp) | 1175 | (eolp) |
| 1176 | ;; Avoid re-indenting on extra colon | 1176 | ;; Avoid re-indenting on extra colon |
| 1177 | (not (equal ?: (char-before (1- (point))))) | 1177 | (not (equal ?: (char-before (1- (point))))) |
| 1178 | (not (python-syntax-comment-or-string-p)) | 1178 | (not (python-syntax-comment-or-string-p))) |
| 1179 | ;; Never re-indent at beginning of defun | 1179 | ;; Just re-indent dedenters |
| 1180 | (not (save-excursion | 1180 | (let ((dedenter-pos (python-info-dedenter-statement-p)) |
| 1181 | (python-nav-beginning-of-statement) | 1181 | (current-pos (point))) |
| 1182 | (python-info-looking-at-beginning-of-defun)))) | 1182 | (when dedenter-pos |
| 1183 | (python-indent-line))))) | 1183 | (save-excursion |
| 1184 | (goto-char dedenter-pos) | ||
| 1185 | (python-indent-line) | ||
| 1186 | (unless (= (line-number-at-pos dedenter-pos) | ||
| 1187 | (line-number-at-pos current-pos)) | ||
| 1188 | ;; Reindent region if this is a multiline statement | ||
| 1189 | (python-indent-region dedenter-pos current-pos))))))))) | ||
| 1184 | 1190 | ||
| 1185 | 1191 | ||
| 1186 | ;;; Navigation | 1192 | ;;; Navigation |