[Tkinter-discuss] syntax highlighting
Nemes Andrei
teh_sh_meister at yahoo.com
Sat May 21 13:46:07 CEST 2011
Hi!
I was wondering if there is any auto-tag function in Tkinter. I want to make a simple syntax highlighter, and so far what I've done is bind a function to Key event and build a string with the registered keys, compare that to a list of special words and if they match, delete the word from the text and replace it with a tagged version on the same position. This did not work out very well because the key event and handlers are fired off on key press, therefore before the character is actually written in the text itself, resulting in the function deleting everything before the last letter is printed in the text; this results always in the last letter of the word remaining on screen (for example "doctype" = "doctypee").
How can I fix this?
Is there a "KeyUp" event?
Better yet, is there a nicer way to do syntax highlighting?
Please advise.
Here is the bit of code:
self.edit.bind("<Key>", self.parent.key)
...
def key(self,event):
if event.char == " ":
self.word=""
if event.char == event.keysym:
self.word=self.word+event.char
self.match(self.word,"HTML")
def match(self,keyword,lang):
match=False
print keyword
if lang=="HTML":
for item in self.html:
if item==keyword:
match=True
break
if match:
self.tab.editlist[self.tab.nav.index("current")].delete("insert-%s c" %len(keyword), "insert")
self.tab.editlist[self.tab.nav.index("current")].insert("insert", keyword, "blue")
Thanks in advance!
Regards,
Andrei Nemes
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tkinter-discuss/attachments/20110521/59917492/attachment.html>
More information about the Tkinter-discuss
mailing list