I'm now building a developers editor using Lazarus and as every good developers editor, it n开发者_JAVA百科eeds to have a syntax highlighting, because of this that I want to know some things:
- How is syntax highlight normally built(using many
if
s to change the font on aTextField
? TSynEdit
is very nice to do this?- How to use
TSynEdit
(links and resources)?
You can actually see an excellent example for yourself if you look at the editor for SharpDevelop. It's implemented in C# but uses great OOP that should be readily portable to other platforms or languages.
Most home-brewed syntax highlighters tend to use the MS Windows RichText control but they're usually slow and clunky and really slow down when a lot of code is added.
You could read the source code of Eclipse or VIM. In Eclipse you will find an Abstract Syntax Tree base. On top of it are parsers that are carefully written to be tolerant of errors, since code in progress often does not satisfy the full grammar of the language. The highlighting uses the information in the syntax tree.
精彩评论