Mercurial > cpython-lru_cache-weakref
diff Misc/python-mode.el @ 3434:529f4d9cbe3d legacy-trunk
(py-honor-comment-indentation, py-compute-indentation): allow other
than nil or t values.
| author | Barry Warsaw <barry@python.org> |
|---|---|
| date | Wed, 06 Mar 1996 18:41:38 +0000 |
| parents | da86b3b54363 |
| children | db9f6ede58a7 |
line wrap: on
line diff
--- a/Misc/python-mode.el Wed Mar 06 16:21:34 1996 +0000 +++ b/Misc/python-mode.el Wed Mar 06 18:41:38 1996 +0000 @@ -100,15 +100,20 @@ `...' is arbitrary).") (defvar py-honor-comment-indentation t - "*If non-nil, single-# comments are a hint to subsequent line 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. + "*Controls how comment lines influence subsequent indentation. + +When nil, all comment lines are skipped for indentation purposes, and +in Emacs 19, a faster algorithm is used. -Under Emacs 18, or old Emacs 19's, this variable has no effect, and -the behavior is as if it were always non-nil.") +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 "*Scroll Python process buffer as output arrives. @@ -864,10 +869,18 @@ ;; will skip a blank or non-indenting comment line that ;; happens to be a continuation line too. use fast Emacs 19 ;; function if it's there. - (if (and (not py-honor-comment-indentation) + (if (and (eq py-honor-comment-indentation nil) (fboundp 'forward-comment)) (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 ;; string. this handles triple quoted, multi-line spanning ;; strings.
