diff options
| author | Fabián Ezequiel Gallina <fgallina@cuca> | 2012-05-17 00:03:36 -0300 |
|---|---|---|
| committer | Fabián Ezequiel Gallina <fgallina@gnu.org> | 2012-05-17 00:03:36 -0300 |
| commit | cd1ed6c8f4a50c0bc499bdcf78bbd4e39bdfc4d2 (patch) | |
| tree | faebce2fe4a1076e5d5ea6c8d373d463b769124b /lisp/progmodes/python.el | |
| parent | dc4f2e532630fa58381b9d3e52350279c98e89b7 (diff) | |
python-end-of-defun-function now works correctly when comments are not indented properly.
Calling `end-of-defun' on a python file will now do the correct thing,
even for cases like this:
def fib(n):
if n < 2:
# base cases
return n
else:
return fib(n - 2) + fib(n - 1)
Diffstat (limited to 'lisp/progmodes/python.el')
| -rw-r--r-- | lisp/progmodes/python.el | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index ff790bdc25c..7f4aa940d8d 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -1062,7 +1062,12 @@ Returns nil if point is not in a def or class." (while (and (forward-line 1) (not (eobp)) (or (not (current-word)) - (> (current-indentation) beg-defun-indent)))) + ;; This checks if the indentation is less than the base + ;; one and if the line is not a comment + (or (> (current-indentation) beg-defun-indent) + (equal + (char-after + (+ (point) (current-indentation))) ?#))))) (python-util-forward-comment) (goto-char (line-beginning-position)))) |
