summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/idlelib/ColorDelegator.py43
-rw-r--r--Lib/idlelib/NEWS.txt5
2 files changed, 26 insertions, 22 deletions
diff --git a/Lib/idlelib/ColorDelegator.py b/Lib/idlelib/ColorDelegator.py
index 250ca94..019e5d4 100644
--- a/Lib/idlelib/ColorDelegator.py
+++ b/Lib/idlelib/ColorDelegator.py
@@ -6,12 +6,7 @@ from Tkinter import *
from Delegator import Delegator
from configHandler import idleConf
-#$ event <<toggle-auto-coloring>>
-#$ win <Control-slash>
-#$ unix <Control-slash>
-
-DEBUG = 0
-
+DEBUG = False
def any(name, list):
return "(?P<%s>" % name + "|".join(list) + ")"
@@ -20,14 +15,17 @@ def make_pat():
kw = r"\b" + any("KEYWORD", keyword.kwlist) + r"\b"
builtinlist = [str(name) for name in dir(__builtin__)
if not name.startswith('_')]
- builtin = r"([^\\.]\b|^)" + any("BUILTIN", builtinlist) + r"\b"
+ # self.file = file("file") :
+ # 1st 'file' colorized normal, 2nd as builtin, 3rd as comment
+ builtin = r"([^.'\"\\]\b|^)" + any("BUILTIN", builtinlist) + r"\b"
comment = any("COMMENT", [r"#[^\n]*"])
sqstring = r"(\b[rR])?'[^'\\\n]*(\\.[^'\\\n]*)*'?"
dqstring = r'(\b[rR])?"[^"\\\n]*(\\.[^"\\\n]*)*"?'
sq3string = r"(\b[rR])?'''[^'\\]*((\\.|'(?!''))[^'\\]*)*(''')?"
dq3string = r'(\b[rR])?"""[^"\\]*((\\.|"(?!""))[^"\\]*)*(""")?'
string = any("STRING", [sq3string, dq3string, sqstring, dqstring])
- return kw + "|" + builtin + "|" + comment + "|" + string + "|" + any("SYNC", [r"\n"])
+ return kw + "|" + builtin + "|" + comment + "|" + string +\
+ "|" + any("SYNC", [r"\n"])
prog = re.compile(make_pat(), re.S)
idprog = re.compile(r"\s+(\w+)", re.S)
@@ -86,8 +84,8 @@ class ColorDelegator(Delegator):
self.notify_range(index1)
after_id = None
- allow_colorizing = 1
- colorizing = 0
+ allow_colorizing = True
+ colorizing = False
def notify_range(self, index1, index2=None):
self.tag_add("TODO", index1, index2)
@@ -95,7 +93,7 @@ class ColorDelegator(Delegator):
if DEBUG: print "colorizing already scheduled"
return
if self.colorizing:
- self.stop_colorizing = 1
+ self.stop_colorizing = True
if DEBUG: print "stop colorizing"
if self.allow_colorizing:
if DEBUG: print "schedule colorizing"
@@ -109,8 +107,8 @@ class ColorDelegator(Delegator):
self.after_id = None
if DEBUG: print "cancel scheduled recolorizer"
self.after_cancel(after_id)
- self.allow_colorizing = 0
- self.stop_colorizing = 1
+ self.allow_colorizing = False
+ self.stop_colorizing = True
if close_when_done:
if not self.colorizing:
close_when_done.destroy()
@@ -125,12 +123,13 @@ class ColorDelegator(Delegator):
self.after_cancel(after_id)
if self.allow_colorizing and self.colorizing:
if DEBUG: print "stop colorizing"
- self.stop_colorizing = 1
+ self.stop_colorizing = True
self.allow_colorizing = not self.allow_colorizing
if self.allow_colorizing and not self.colorizing:
self.after_id = self.after(1, self.recolorize)
if DEBUG:
- print "auto colorizing turned", self.allow_colorizing and "on" or "off"
+ print "auto colorizing turned",\
+ self.allow_colorizing and "on" or "off"
return "break"
def recolorize(self):
@@ -145,15 +144,15 @@ class ColorDelegator(Delegator):
if DEBUG: print "already colorizing"
return
try:
- self.stop_colorizing = 0
- self.colorizing = 1
+ self.stop_colorizing = False
+ self.colorizing = True
if DEBUG: print "colorizing..."
t0 = time.clock()
self.recolorize_main()
t1 = time.clock()
if DEBUG: print "%.3f seconds" % (t1-t0)
finally:
- self.colorizing = 0
+ self.colorizing = False
if self.allow_colorizing and self.tag_nextrange("TODO", "1.0"):
if DEBUG: print "reschedule colorizing"
self.after_id = self.after(1, self.recolorize)
@@ -164,7 +163,7 @@ class ColorDelegator(Delegator):
def recolorize_main(self):
next = "1.0"
- while 1:
+ while True:
item = self.tag_nextrange("TODO", next)
if not item:
break
@@ -179,7 +178,7 @@ class ColorDelegator(Delegator):
chars = ""
next = head
lines_to_get = 1
- ok = 0
+ ok = False
while not ok:
mark = next
next = self.index(mark + "+%d lines linestart" %
@@ -211,7 +210,7 @@ class ColorDelegator(Delegator):
elif value == "import":
# color all the "as" words on same line;
# cheap approximation to the truth
- while 1:
+ while True:
m1 = self.asprog.match(chars, b)
if not m1:
break
@@ -224,7 +223,7 @@ class ColorDelegator(Delegator):
head = next
chars = ""
else:
- ok = 0
+ ok = False
if not ok:
# We're in an inconsistent state, and the call to
# update may tell us to stop. It may also change
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt
index 2ee1243..717eabc 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -3,7 +3,12 @@ What's New in IDLE 1.1a0?
*Release date: XX-XXX-2004*
+- If the normal background is changed via Configure/Highlighting, it will update
+ immediately, thanks to the previously mentioned patch.
+
- Add a highlight theme for builtin keywords. Python Patch 805830 Nigel Rowe
+ This also fixed IDLEfork bug [ 693418 ] Normal text background color not refreshed
+ and Python bug [897872 ] Unknown color name on HP-UX
- rpc.py:SocketIO - Large modules were generating large pickles when downloaded
to the execution server. The return of the OK response from the subprocess