diff options
author | Guido van Rossum <guido@python.org> | 1995-03-15 19:55:55 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1995-03-15 19:55:55 (GMT) |
commit | d97cc37489f434ec78021576391fac66e549ff1d (patch) | |
tree | 0914b6c900a257de5f0a02cf3196d1a3822d1c17 | |
parent | d865bc59843bcdaacd257d87c8382759dd21d9f2 (diff) | |
download | cpython-d97cc37489f434ec78021576391fac66e549ff1d.zip cpython-d97cc37489f434ec78021576391fac66e549ff1d.tar.gz cpython-d97cc37489f434ec78021576391fac66e549ff1d.tar.bz2 |
barry's 2.13 -- minor reworking of code (added py-outdent-p)
-rw-r--r-- | Misc/python-mode-old.el | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/Misc/python-mode-old.el b/Misc/python-mode-old.el index 2894b9b..24a492a 100644 --- a/Misc/python-mode-old.el +++ b/Misc/python-mode-old.el @@ -6,8 +6,8 @@ ;; 1992-1994 Tim Peters <tim@ksr.com> ;; Maintainer: bwarsaw@cnri.reston.va.us ;; Created: Feb 1992 -;; Version: 2.12 -;; Last Modified: 1995/03/14 20:53:08 +;; Version: 2.13 +;; Last Modified: 1995/03/14 22:05:53 ;; Keywords: python editing language major-mode ;; This software is provided as-is, without express or implied @@ -68,7 +68,7 @@ ;; LCD Archive Entry: ;; python-mode|Barry A. Warsaw|bwarsaw@cnri.reston.va.us ;; |Major mode for editing Python programs -;; |1995/03/14 20:53:08|2.12| +;; |1995/03/14 22:05:53|2.13| ;;; Code: @@ -403,6 +403,19 @@ py-beep-if-tab-change\tring the bell if tab-width is changed" ;; electric characters +(defun py-outdent-p () + ;; returns non-nil if the current line should outdent one level + (save-excursion + (and (progn (back-to-indentation) + (looking-at py-outdent-re)) + (progn (backward-to-indentation 1) + (while (or (looking-at py-blank-or-comment-re) + (bobp)) + (backward-to-indentation 1)) + (not (looking-at py-no-outdent-re))) + ))) + + (defun py-electric-colon (arg) "Insert a colon. In certain cases the line is outdented appropriately. If a numeric @@ -414,13 +427,7 @@ argument is provided, that many colons are inserted non-electrically." (outdent 0) (indent (py-compute-indentation))) (if (and (not arg) - (progn - (back-to-indentation) - (looking-at py-outdent-re)) - (prog2 - (backward-to-indentation 1) - (not (looking-at py-no-outdent-re)) - (goto-char here)) + (py-outdent-p) (= indent (progn (forward-line -1) (py-compute-indentation))) @@ -650,11 +657,7 @@ needed so that only a single column position is deleted." (move-to-indentation-p (<= (current-column) ci)) (need (py-compute-indentation))) ;; see if we need to outdent - (if (save-excursion - (and (progn (back-to-indentation) - (looking-at py-outdent-re)) - (progn (backward-to-indentation 1) - (not (looking-at py-no-outdent-re))))) + (if (py-outdent-p) (setq need (- need py-indent-offset))) (if (/= ci need) (save-excursion @@ -1860,7 +1863,7 @@ local bindings to py-newline-and-indent.")) (setq zmacs-region-stays t))) -(defconst py-version "2.12" +(defconst py-version "2.13" "`python-mode' version number.") (defconst py-help-address "bwarsaw@cnri.reston.va.us" "Address accepting submission of bug reports.") |