Tk Library Source Code

View Ticket
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.
Ticket UUID: 4e8fb9d55e39cad03c7f3cc6bba941fc54e941f1
Title: Update ctext
Type: Patch Version: 3.3
Submitter: anonymous Created on: 2019-05-30 22:29:51
Subsystem: tklib :: ctext Assigned To: nobody
Priority: 5 Medium Severity: Minor
Status: Open Last Modified: 2019-05-30 22:29:51
Resolution: None Closed By: nobody
    Closed on:

Hello everybody,

I use an updated ctext version for a Perl/Tcl::Tk application. Perhaps this is generally interesting for the Tcl community, too?

The new features are:


You can pass an array with option-values-pairs to all addHighlightClasses*. With this you can specifically set the tag configuration of a Highlight class. Especially it is possible to adjust not only the color of the tags/highlight classes, but also the font weight:

e.g.: ::ctextAdvanced::addHighlightClassForRegexp path keywords {-foreground #cb319b -font "Helvetica 10 bold"} pattern


Unfortunately using a bold weight or the lika crashes the linemap numbering. So I had to implement the linemap anew. The main inspiration came from the line number example of Bryan Oakley (see here


Last but not least I added an additional option -linemap_font_select. With this you can change the font of the linemap if a number is pressed (so that you can display the number for example with bold weight if it is pressed)


Perhaps a general option -linemap_font would be a good idea, too, so that the linemap and the text widget could have different fonts. But at the moment I have not implemented this...

I don't know whether my patches could be an idea for an update of ctext. Because I am no Tcl/Tk expert, it would be great, if somebody more experienced could check the proposed update. I think the changes would be very important improvements and would make ctext to a yet powerful tool.

The updated ctext version can be seen at github (Temporary I name the enhanced version ctextAdvanced, but to update ctext one has only to replace ctextAdvanced with ctext (see also the ctext.tcl.patch file))

Best wishes,