From: Barry Warsaw Date: Mon, 18 Jan 1999 21:49:39 +0000 (+0000) Subject: (py-narrow-to-defun): New command (bound to C-x n d) which mimics the X-Git-Tag: v1.5.2b2~323 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f8ddb6afa0d4f0b35ed7d811cf994849b7a04da1;p=thirdparty%2FPython%2Fcpython.git (py-narrow-to-defun): New command (bound to C-x n d) which mimics the standard narrow-to-defun but works with Python classes and methods. With no arg, narrows to most enclosing def/method. With C-u arg, narrows to most enclosing class. --- diff --git a/Misc/python-mode.el b/Misc/python-mode.el index 15d9f0995e33..0bdcfa13cb40 100644 --- a/Misc/python-mode.el +++ b/Misc/python-mode.el @@ -477,6 +477,9 @@ Currently-active file is at the head of the list.") (define-key py-mode-map "\e\C-e" 'py-end-of-def-or-class) (define-key py-mode-map "\C-c-" 'py-up-exception) (define-key py-mode-map "\C-c=" 'py-down-exception) + ;; stuff that is `standard' but doesn't interface well with + ;; python-mode, which forces us to rebind to special commands + (define-key py-mode-map "\C-xnd" 'py-narrow-to-defun) ;; information (define-key py-mode-map "\C-c\C-b" 'py-submit-bug-report) (define-key py-mode-map "\C-c\C-v" 'py-version) @@ -1827,6 +1830,18 @@ it's tried again going backward." (max comment-column (+ (current-column) (if (bolp) 0 1))) ))) +(defun py-narrow-to-defun (&optional class) + "Make text outside current defun invisible. +The defun visible is the one that contains point or follows point. +Optional CLASS is passed directly to `py-beginning-of-def-or-class'." + (interactive "P") + (save-excursion + (widen) + (py-end-of-def-or-class class) + (let ((end (point))) + (py-beginning-of-def-or-class class) + (narrow-to-region (point) end)))) + (defun py-shift-region (start end count) "Indent lines from START to END by COUNT spaces."