(py-honor-comment-indentation, py-compute-indentation): allow other

than nil or t values.
This commit is contained in:
Barry Warsaw 1996-03-06 18:41:38 +00:00
parent 378815ca86
commit 6d627754c1

View file

@ -100,15 +100,20 @@ should be of the form `#x...' where `x' is not a blank or a tab, and
`...' is arbitrary).") `...' is arbitrary).")
(defvar py-honor-comment-indentation t (defvar py-honor-comment-indentation t
"*If non-nil, single-# comments are a hint to subsequent line indentation. "*Controls how comment lines influence subsequent indentation.
If the previous line is a comment which begins with a single `#'
character (as opposed to `py-block-comment-prefix' -- normally `##'),
then it's indentation is used as a hint for this line's indentation.
When this variable is nil, all comments are skipped for indentation
purposes, and a faster algorithm is used.
Under Emacs 18, or old Emacs 19's, this variable has no effect, and When nil, all comment lines are skipped for indentation purposes, and
the behavior is as if it were always non-nil.") in Emacs 19, a faster algorithm is used.
When t, lines that begin with a single `#' are a hint to subsequent
line indentation. If the previous line is such a comment line (as
opposed to one that starts with `py-block-comment-prefix'), then it's
indentation is used as a hint for this line's indentation. Lines that
begin with `py-block-comment-prefix' are ignored for indentation
purposes.
When not nil or t, comment lines that begin with a `#' are used as
indentation hints, unless the comment character is in column zero.")
(defvar py-scroll-process-buffer t (defvar py-scroll-process-buffer t
"*Scroll Python process buffer as output arrives. "*Scroll Python process buffer as output arrives.
@ -864,10 +869,18 @@ the new line indented."
;; will skip a blank or non-indenting comment line that ;; will skip a blank or non-indenting comment line that
;; happens to be a continuation line too. use fast Emacs 19 ;; happens to be a continuation line too. use fast Emacs 19
;; function if it's there. ;; function if it's there.
(if (and (not py-honor-comment-indentation) (if (and (eq py-honor-comment-indentation nil)
(fboundp 'forward-comment)) (fboundp 'forward-comment))
(forward-comment (- (point-max))) (forward-comment (- (point-max)))
(re-search-backward "^[ \t]*\\([^ \t\n#]\\|#[ \t\n]\\)" nil 'move)) (let (done)
(while (not done)
(re-search-backward "^[ \t]*\\([^ \t\n#]\\|#[ \t\n]\\)"
nil 'move)
(setq done (or (eq py-honor-comment-indentation t)
(bobp)
(/= (following-char) ?#)
(not (zerop (current-column)))))
)))
;; if we landed inside a string, go to the beginning of that ;; if we landed inside a string, go to the beginning of that
;; string. this handles triple quoted, multi-line spanning ;; string. this handles triple quoted, multi-line spanning
;; strings. ;; strings.