* progmodes/python.el (python-info-current-defun): Enhance
match-data cluttering prevention.
This commit is contained in:
parent
4dddd5dcda
commit
c132ab7921
2 changed files with 38 additions and 35 deletions
|
@ -1,3 +1,8 @@
|
|||
2013-02-20 Fabián Ezequiel Gallina <fgallina@cuca>
|
||||
|
||||
* progmodes/python.el (python-info-current-defun): Enhance
|
||||
match-data cluttering prevention.
|
||||
|
||||
2013-02-19 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* net/tramp.el (tramp-get-debug-buffer): Ensure outline.el is not
|
||||
|
|
|
@ -2949,42 +2949,40 @@ not inside a defun."
|
|||
(type))
|
||||
(catch 'exit
|
||||
(while (python-nav-beginning-of-defun 1)
|
||||
(when (and
|
||||
(or (not last-indent)
|
||||
(< (current-indentation) last-indent))
|
||||
(or
|
||||
(and first-run
|
||||
(when (save-match-data
|
||||
(and
|
||||
(or (not last-indent)
|
||||
(< (current-indentation) last-indent))
|
||||
(or
|
||||
(and first-run
|
||||
(save-excursion
|
||||
;; If this is the first run, we may add
|
||||
;; the current defun at point.
|
||||
(setq first-run nil)
|
||||
(goto-char starting-pos)
|
||||
(python-nav-beginning-of-statement)
|
||||
(beginning-of-line 1)
|
||||
(looking-at-p
|
||||
python-nav-beginning-of-defun-regexp)))
|
||||
(< starting-pos
|
||||
(save-excursion
|
||||
;; If this is the first run, we may add
|
||||
;; the current defun at point.
|
||||
(setq first-run nil)
|
||||
(goto-char starting-pos)
|
||||
(python-nav-beginning-of-statement)
|
||||
(beginning-of-line 1)
|
||||
(looking-at-p
|
||||
python-nav-beginning-of-defun-regexp)))
|
||||
(< starting-pos
|
||||
(save-excursion
|
||||
(let ((min-indent
|
||||
(+ (current-indentation)
|
||||
python-indent-offset)))
|
||||
(if (< starting-indentation min-indent)
|
||||
;; If the starting indentation is not
|
||||
;; within the min defun indent make the
|
||||
;; check fail.
|
||||
starting-pos
|
||||
;; Else go to the end of defun and add
|
||||
;; up the current indentation to the
|
||||
;; ending position.
|
||||
(save-match-data
|
||||
;; FIXME: avoid cluttering match-data
|
||||
;; where's not wanted.
|
||||
(python-nav-end-of-defun))
|
||||
(+ (point)
|
||||
(if (>= (current-indentation) min-indent)
|
||||
(1+ (current-indentation))
|
||||
0))))))))
|
||||
(setq last-indent (current-indentation))
|
||||
(let ((min-indent
|
||||
(+ (current-indentation)
|
||||
python-indent-offset)))
|
||||
(if (< starting-indentation min-indent)
|
||||
;; If the starting indentation is not
|
||||
;; within the min defun indent make the
|
||||
;; check fail.
|
||||
starting-pos
|
||||
;; Else go to the end of defun and add
|
||||
;; up the current indentation to the
|
||||
;; ending position.
|
||||
(python-nav-end-of-defun)
|
||||
(+ (point)
|
||||
(if (>= (current-indentation) min-indent)
|
||||
(1+ (current-indentation))
|
||||
0)))))))))
|
||||
(save-match-data (setq last-indent (current-indentation)))
|
||||
(if (or (not include-type) type)
|
||||
(setq names (cons (match-string-no-properties 1) names))
|
||||
(let ((match (split-string (match-string-no-properties 0))))
|
||||
|
|
Loading…
Add table
Reference in a new issue