Super-elegant patch by Tim Peters that speeds up colorization
dramatically (up to 15 times he claims). Works by reading more than one line at a time, up to 100-line chunks (starting with one line and then doubling up to the limit). On a typical machine (e.g. Tim's P5-166) this doesn't reduce interactive responsiveness in a noticeable way.
This commit is contained in:
parent
693a2c6581
commit
e62e76c383
|
@ -180,9 +180,12 @@ class ColorDelegator(Delegator):
|
|||
|
||||
chars = ""
|
||||
mark = head
|
||||
lines_to_get = 1
|
||||
is_ok = was_ok = 0
|
||||
while not (was_ok and is_ok):
|
||||
next = self.index(mark + " lineend +1c")
|
||||
next = self.index(mark + "+%d lines linestart" %
|
||||
lines_to_get)
|
||||
lines_to_get = min(lines_to_get * 2, 100)
|
||||
was_ok = "SYNC" in self.tag_names(next + "-1c")
|
||||
line = self.get(mark, next)
|
||||
##print head, "get", mark, next, "->", `line`
|
||||
|
|
Loading…
Reference in New Issue