]> granicus.if.org Git - python/commitdiff
(py-parse-state): stop searching backwards when we found a keyword at
authorBarry Warsaw <barry@python.org>
Wed, 31 Jul 1996 20:57:22 +0000 (20:57 +0000)
committerBarry Warsaw <barry@python.org>
Wed, 31 Jul 1996 20:57:22 +0000 (20:57 +0000)
column zero.  Perhaps a kludge, but similar in nature to Emacs'
beginning-of-defun shortcut.

Misc/python-mode.el

index ebcc7916c6ebf1e853b3cfdc577f15aee3c9510a..c95f75bd44c70d6586e343a9be1470fcaadc168a 100644 (file)
@@ -1792,7 +1792,7 @@ local bindings to py-newline-and-indent."))
 (defun py-parse-state ()
   (save-excursion
     (let ((here (point))
-         pps done)
+         pps done ci)
       (while (not done)
        ;; back up to the first preceding line (if any; else start of
        ;; buffer) that begins with a popular Python keyword, or a
@@ -1801,11 +1801,15 @@ local bindings to py-newline-and-indent."))
        ;; at a non-zero nesting level.  It may be slow for people who
        ;; write huge code blocks or huge lists ... tough beans.
        (re-search-backward py-parse-state-re nil 'move)
+       (setq ci (current-indentation))
        (beginning-of-line)
        (save-excursion
          (setq pps (parse-partial-sexp (point) here)))
        ;; make sure we don't land inside a triple-quoted string
-       (setq done (or (not (nth 3 pps)) (bobp))))
+       (setq done (or (zerop ci)
+                      (not (nth 3 pps))
+                      (bobp)))
+       )
       pps)))
 
 ;; if point is at a non-zero nesting level, returns the number of the