[Tkinter-discuss] Here's a tough one -- dynamic, multi-line XML
syntax highlighting
Jared Cohen
Jared.Cohen at noaa.gov
Mon Mar 28 20:45:56 CEST 2005
Actually, I seem to have hit on a solution. It seems that the two
instances of multi-line highlighting that I mentioned (comments and
CDATA) are the ONLY two instances there are. And in each of these two
cases, there are five subcases: when the user inserts/removes a new
start-delimeter, inserts/removes a new end-delimeter, or makes some
change between 2 delimeters (changing a delimeter to make it invalid
counts as "removing" it). With this in mind, I was able to manually test
for these cases and change the highlighting myself, without having to go
back to expat and re-parse the file. For all OTHER cases, I use expat to
just re-parse that one line. So far, it seems to be working perfectly,
and it's certainly much more efficient than before!
Thanks anyway for the suggestions :-)
Tim Jones wrote:
> On Mar 28, 2005, at 10:21 AM, Jared Cohen wrote:
>
> Not a bad idea, but real syntax highlighting doesn't work that
> way. If I'm programming C++ and I type the word "int", the word
> gets highlighted as a keyword the instant I type the "t", not when
> there's a pause in my typing. If that were the case, then I could
> type an entire paragraph and the highlighting wouldn't change
> until I was done.
>
> Thanks anyway though. Any other ideas? :-)
>
>
> How about a maintained list of keywords as part of your syntax
> dictionary that effect from the current insertion point forward (<!--
> for example) and keywords that effect the entire document (--> for
> example)? This way you're not always parsing the entire text on an
> insertion. And, you might consider only updating the text that is
> visible at the moment of updating.
>
> As another thought, how about auto-completion of the block for the
> user: i.e.: They type '<!--' and you automatically insert the closing
> '-->' on the next line or on a new line at the end of a selected section.
>
> I can't think of anything else at the moment. Have you also considered
> examining what is done in VIM's syntax highlighting?
>
> Tim
> --
> Tim Jones tjmac [at] tolisgroup [dot] com
>
>
> Tim Jones wrote:
> On Mar 28, 2005, at 10:10 AM, Jared Cohen wrote:
>
> <snip>
>
> When that happens with every single keystroke, it adds up to a
> whole lot of highlighting. There's got to be a better way, but I
> can't think of one. Can anyone help?
>
>
> How about using a timer to monitor the delay between keystrokes?
> This way, you only update the highlight if the user pauses in
> their typing rather than after each keyup.
>
> Tim
> --
> Tim Jones tjmac
> [at] tolisgroup [dot] com
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tkinter-discuss/attachments/20050328/4e9ceca2/attachment.html
More information about the Tkinter-discuss
mailing list