Added Donald Beaudry's change for neater indentation within

parentheses
This commit is contained in:
Guido van Rossum 1994-04-13 19:01:12 +00:00
parent 5333c5d734
commit d3976e20d8

View file

@ -1,4 +1,4 @@
;;; Major mode for editing Python programs, version 1.08a ;;; Major mode for editing Python programs, version 1.08a+
;; by: Tim Peters <tim@ksr.com> ;; by: Tim Peters <tim@ksr.com>
;; after an original idea by: Michael A. Guravage ;; after an original idea by: Michael A. Guravage
;; ;;
@ -204,6 +204,9 @@ Emacs bell is also rung as a warning.")
( ?\# . "<") ; hash starts comment ( ?\# . "<") ; hash starts comment
( ?\n . ">")))) ; newline ends comment ( ?\n . ">")))) ; newline ends comment
(defvar py-nested-indent t
"*If non-nil, indent nested continuation lines to inside the opening paren")
(defconst py-stringlit-re "'\\([^'\n\\]\\|\\\\.\\)*'" (defconst py-stringlit-re "'\\([^'\n\\]\\|\\\\.\\)*'"
"regexp matching a Python string literal") "regexp matching a Python string literal")
@ -515,12 +518,18 @@ the new line indented."
(cond (cond
;; are we on a continuation line? ;; are we on a continuation line?
( (py-continuation-line-p) ( (py-continuation-line-p)
(forward-line -1) (let ((nest (and py-nested-indent (py-nesting-level))))
(if (py-continuation-line-p) ; on at least 3rd line in block (if nest
(current-indentation) ; so just continue the pattern (save-excursion
(goto-char nest)
(beginning-of-line)
(1+ (- nest (point))))
(forward-line -1)
(if (py-continuation-line-p) ; on at least 3rd line in block
(current-indentation) ; so just continue the pattern
;; else on 2nd line in block, so indent more ;; else on 2nd line in block, so indent more
(+ (current-indentation) py-indent-offset (+ (current-indentation) py-indent-offset
py-continuation-offset))) py-continuation-offset)))))
;; not on a continuation line ;; not on a continuation line
;; if at start of restriction, or on a non-indenting comment line, ;; if at start of restriction, or on a non-indenting comment line,