emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r115736: * lisp/progmodes/python.el (python-nav-begi


From: Fabián Ezequiel Gallina
Subject: [Emacs-diffs] trunk r115736: * lisp/progmodes/python.el (python-nav-beginning-of-statement): Speed
Date: Tue, 24 Dec 2013 19:49:12 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 115736
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/15295
committer: Fabián Ezequiel Gallina <address@hidden>
branch nick: trunk
timestamp: Tue 2013-12-24 16:48:40 -0300
message:
  * lisp/progmodes/python.el (python-nav-beginning-of-statement): Speed
  up.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/progmodes/python.el       python.el-20091113204419-o5vbwnq5f7feedwu-3008
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-12-24 18:07:55 +0000
+++ b/lisp/ChangeLog    2013-12-24 19:48:40 +0000
@@ -1,3 +1,8 @@
+2013-12-24  Fabián Ezequiel Gallina  <address@hidden>
+
+       * progmodes/python.el (python-nav-beginning-of-statement): Speed
+       up (Bug#15295).
+
 2013-12-24  Lars Ingebrigtsen  <address@hidden>
 
        * net/eww.el (eww-bookmark-browse): Use `quit-window' to restore

=== modified file 'lisp/progmodes/python.el'
--- a/lisp/progmodes/python.el  2013-12-13 00:56:12 +0000
+++ b/lisp/progmodes/python.el  2013-12-24 19:48:40 +0000
@@ -1279,15 +1279,21 @@
 (defun python-nav-beginning-of-statement ()
   "Move to start of current statement."
   (interactive "^")
-  (while (and (or (back-to-indentation) t)
-              (not (bobp))
-              (when (or
-                     (save-excursion
-                       (forward-line -1)
-                       (python-info-line-ends-backslash-p))
-                     (python-syntax-context 'string)
-                     (python-syntax-context 'paren))
-                (forward-line -1))))
+  (back-to-indentation)
+  (let* ((ppss (syntax-ppss))
+         (context-point
+          (or
+           (python-syntax-context 'paren ppss)
+           (python-syntax-context 'string ppss))))
+    (cond ((bobp))
+          (context-point
+           (goto-char context-point)
+           (python-nav-beginning-of-statement))
+          ((save-excursion
+             (forward-line -1)
+             (python-info-line-ends-backslash-p))
+           (forward-line -1)
+           (python-nav-beginning-of-statement))))
   (point-marker))
 
 (defun python-nav-end-of-statement (&optional noend)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]