]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
(py-narrow-to-defun): New command (bound to C-x n d) which mimics the
authorBarry Warsaw <barry@python.org>
Mon, 18 Jan 1999 21:49:39 +0000 (21:49 +0000)
committerBarry Warsaw <barry@python.org>
Mon, 18 Jan 1999 21:49:39 +0000 (21:49 +0000)
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.

Misc/python-mode.el

index 15d9f0995e33e13cd348f3ccbecbcd69e1c320aa..0bdcfa13cb4060a37dd6a03725fe3cae00d67a12 100644 (file)
@@ -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))))
+
 \f
 (defun py-shift-region (start end count)
   "Indent lines from START to END by COUNT spaces."