From: Fabián Ezequiel Gallina Date: Thu, 17 May 2012 03:03:15 +0000 (-0300) Subject: Implemented python-nav-backward-sentence, python-nav-forward-sentence X-Git-Tag: emacs-24.2.90~1199^2~565 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9fff18585a75ad540aedc84b1147a4a327d1dbdf;p=emacs.git Implemented python-nav-backward-sentence, python-nav-forward-sentence Also small fixes to python-nav-sentence-start and python-nav-sentence-end were added. --- diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index aa20c20fae6..b45b22c139c 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -189,6 +189,13 @@ (defvar python-mode-map (let ((map (make-sparse-keymap))) + ;; Movement + (substitute-key-definition 'backward-sentence + 'python-nav-backward-sentence + map global-map) + (substitute-key-definition 'forward-sentence + 'python-nav-forward-sentence + map global-map) ;; Indent specific (define-key map "\177" 'python-indent-dedent-line-backspace) (define-key map (kbd "") 'python-indent-dedent-line) @@ -957,6 +964,7 @@ Returns nil if point is not in a def or class." (save-excursion (forward-line -1) (python-info-line-ends-backslash-p)) + (python-info-ppss-context 'string) (python-info-ppss-context 'paren)) (forward-line -1))))) @@ -967,9 +975,35 @@ Returns nil if point is not in a def or class." (not (eobp)) (when (or (python-info-line-ends-backslash-p) + (python-info-ppss-context 'string) (python-info-ppss-context 'paren)) (forward-line 1))))) +(defun python-nav-backward-sentence (&optional arg) + "Move backward to start of sentence. With arg, do it arg times. +See `python-nav-forward-sentence' for more information." + (interactive "^p") + (or arg (setq arg 1)) + (python-nav-forward-sentence (- arg))) + +(defun python-nav-forward-sentence (&optional arg) + "Move forward to next end of sentence. With argument, repeat. +With negative argument, move backward repeatedly to start of sentence." + (interactive "^p") + (or arg (setq arg 1)) + (while (> arg 0) + (forward-comment 9999) + (python-nav-sentence-end) + (forward-line 1) + (setq arg (1- arg))) + (while (< arg 0) + (python-nav-sentence-end) + (forward-comment -9999) + (python-nav-sentence-start) + (forward-line -1) + (setq arg (1+ arg)))) + + ;;; Shell integration