Virtual Developer Workshop: Containerized Development with Docker
This class provides a CWnd derived editor that provides syntax coloring based on a keyword file you provide. It also supports auto-indent and retab. It is much faster than using CRichEditView to do the same thing, but it flickers a little and does not support any additional formatting.
There are two classes that must be added to a project "ColorEditWnd" is the editor and "Colorize" is the parser. The included project shows how to add the window.
Add a member variable which is a pointer to a ColorEditWnd (in this example cColorWnd)
After initialization of the parent window instantiate the color edit window as follows:
CString keywordsFile = "Keywords.ini";
BOOL caseSensitive = FALSE;
long pCharDX = 10;
long pCharDY = 16;
long pTabSize = 4;
int pFontSize = 120;
CString pFontName = "Courier New";
cColorWnd = new ColorEditWnd(this, //parent window
client, //initial size and position
IDC_COLOR_WND, //id value
keywordsFile, //keywords file
caseSensitive, //case sensitive ?
pCharDX, //width of each character
pCharDY, //height of each character
pTabSize, //size of a tab in characters
pFontSize, //font size * 10 (I.E. 100 = 10)
pFontName); //the font name
Use the methods "LoadText" and "UnloadText" to control the text in the edit window. .
The keyword file is a simple text file with each word on a separate line. Individual words will appear as keywords (blue), words preceded by '&' are user defined functions (red). If a word is preceded by '+' it causes an auto-indent, '-' causes an auto-unindent.
The example project includes a keyword file for VBA.
There is some flickering in the current version.