2010-01-08 7 views
0

Je suis en train de construire un éditeur de développeurs utilisant Lazarus et comme tout bon éditeur de développeurs, il a besoin d'avoir une mise en évidence de la syntaxe, à cause de cela que je veux savoir certaines choses:Comment la mise en évidence de la syntaxe est-elle construite?

  • Comment surbrillance de la syntaxe normalement construit (à l'aide de nombreux if s pour changer la police sur un TextField?
  • TSynEdit est très agréable de le faire?
  • Comment utiliser TSynEdit (liens et ressources)?

Répondre

2

Vous pouvez réellement voir un excellent exemple pour vous-même si vous regardez le editor for SharpDevelop. Il est implémenté en C# mais utilise une excellente POO qui devrait être facilement portable vers d'autres plateformes ou langages.

La plupart des surligneurs de syntaxe maison ont tendance à utiliser le contrôle MS Windows RichText, mais ils sont généralement lents et maladroits et ralentissent vraiment lorsque beaucoup de code est ajouté.

3

Vous pouvez lire le code source d'Eclipse ou de VIM. Dans Eclipse, vous trouverez une base d'arbre de syntaxe abstraite. En plus, les parseurs sont soigneusement écrits pour être tolérants aux erreurs, car le code en cours ne satisfait pas toujours la grammaire complète de la langue. La surbrillance utilise les informations dans l'arbre de syntaxe.