65.9K
CodeProject is changing. Read more.
Home

Syntax Highlighter

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.67/5 (6 votes)

Feb 6, 2002

2 min read

viewsIcon

69592

downloadIcon

1805

An application to generate highlighted code RTF files

Description

How often would we like to insert coloured code in our documents? I know it's not that important but, first, it looks much nicer and, second, it's much easy to understand a piece of source code when it is coloured. At least for me.

What this little application does is exporting Rich Text Format syntax coloured code. To do that, special text files are used defining the each of the languages that the application will handle and colour. These files are found in the application folder.

Sample Image

Language files

Let's have now a look into this language files. From all the sections, only the first one is not optional, the rest of them are, though it doesn't make a lot of sense not including them.

Section Description
§ Language extensions File extensions for which the language file will be used
§ Comment line Comment line indicator (e.g.: // in C++)
§ Comment block Opening and closing comment block symbols (in different lines)
§ String marks Characters that can enclose a string (e.g.: ")
§ Operators Single characters that act as operators in the described language in a single line. (blank spaces can be added)
§ Keywords Language keywords.
§ Colours (normal, comment, string, keyword, operator) Colour in hexadecimal that will be used. One per line.

Note that an empty line is required after the last element of each section and the section names must be exactly like they appear in the table above.

Notes

First of all, saying that the application may have bugs. I'm not speaking about memory leaks or something like that, just pointing out the possibility that somebody gets a bad coloured output for a given source file. I haven't so far anyway.

I've only tested the app under Windows 2000, but it should work as well under Windows 98 and I guess also in WindowsXP (?)

Two of those language files are included in both of the downloads. One for C/C++ and the other one for Visual Basic

The code to transfer the rtf information to a CString object was borrowed from the article Painless streaming with CRichEditCtrl, that can be found in the Docs sections in http://www.calcaria.net.

I'm posting the source code along with the application. I hope this article helps, in the same way many of the articles found here, in the Code Project, helped me.

Salu2, Samuel.