Merge Py Idle's changes to AutoIndent.py into EditorWindow.py since

EditorWindow has incorporated AutoIndent

Rev 1.17
classifyws():  Fix a "/" to work under -Qnew (as well as without it).
Bugfix candidate!

Rev 1.18
(Already merged)

Rev 1.19
smart_backspace_event():  remove now-pointless int() call.
Bugfix candidate:  the current state of AutoIdent.py should be in 2.2.1.

Rev 1.20
Apply diff2.txt from SF patch http://www.python.org/sf/572113
(with one small bugfix in bgen/bgen/scantools.py)
This replaces string module functions with string methods
for the stuff in the Tools directory. Several uses of
string.letters etc. are still remaining.
This commit is contained in:
Kurt B. Kaiser 2002-09-15 21:31:30 +00:00
parent 87807a66c4
commit 1b3c26998e

View file

@ -1,6 +1,5 @@
import sys
import os
import string
import re
import imp
from Tkinter import *
@ -913,15 +912,15 @@ class EditorWindow:
return "break"
# Ick. It may require *inserting* spaces if we back up over a
# tab character! This is written to be clear, not fast.
expand, tabwidth = string.expandtabs, self.tabwidth
have = len(expand(chars, tabwidth))
tabwidth = self.tabwidth
have = len(chars.expandtabs(tabwidth))
assert have > 0
want = ((have - 1) // self.indentwidth) * self.indentwidth
ncharsdeleted = 0
while 1:
chars = chars[:-1]
ncharsdeleted = ncharsdeleted + 1
have = len(expand(chars, tabwidth))
have = len(chars.expandtabs(tabwidth))
if have <= want or chars[-1] not in " \t":
break
text.undo_block_start()
@ -955,8 +954,7 @@ class EditorWindow:
if self.usetabs:
pad = '\t'
else:
effective = len(string.expandtabs(prefix,
self.tabwidth))
effective = len(prefix.expandtabs(self.tabwidth))
n = self.indentwidth
pad = ' ' * (n - effective % n)
text.insert("insert", pad)
@ -1121,7 +1119,7 @@ class EditorWindow:
head, tail, chars, lines = self.get_region()
tabwidth = self._asktabwidth()
for pos in range(len(lines)):
lines[pos] = string.expandtabs(lines[pos], tabwidth)
lines[pos] = lines[pos].expandtabs(tabwidth)
self.set_region(head, tail, chars, lines)
def toggle_tabs_event(self, event):
@ -1162,12 +1160,12 @@ class EditorWindow:
head = text.index("insert linestart")
tail = text.index("insert lineend +1c")
chars = text.get(head, tail)
lines = string.split(chars, "\n")
lines = chars.split("\n")
return head, tail, chars, lines
def set_region(self, head, tail, chars, lines):
text = self.text
newchars = string.join(lines, "\n")
newchars = "\n".join(lines)
if newchars == chars:
text.bell()
return