Difference between revisions of "ATSynEdit EControl adapter"
From Free Pascal wiki
Jump to navigationJump to searchLine 30: | Line 30: | ||
* DynamicHiliteEnabled: boolean. This enables dynamic highlight, ie highlight of tokens depending on caret position. If enabled, adapter reads editor's caret-pos-changed event and recalculates hiliting if needed. Some lexers use this feature: HTML hilites tags with green if caret is inside tag; Pascal hilites "begin"/"end" with green if caret is inside block; rare C-like lexers hilite brackets. | * DynamicHiliteEnabled: boolean. This enables dynamic highlight, ie highlight of tokens depending on caret position. If enabled, adapter reads editor's caret-pos-changed event and recalculates hiliting if needed. Some lexers use this feature: HTML hilites tags with green if caret is inside tag; Pascal hilites "begin"/"end" with green if caret is inside block; rare C-like lexers hilite brackets. | ||
+ | |||
+ | * OnParseBegin, OnParseDone: these events called by adapter on analyzing start and after analyzing finish. If big file parsed, OnParseDone will fire after few seconds, during which user may edit/scroll file. | ||
=Syntax tree= | =Syntax tree= |
Revision as of 22:58, 11 September 2015
Intro
ATSynEdit has adapter for lexers from SynWrite editor. It's EControl lexer engine. Use these:
- units from https://github.com/Alexey-T/EControl
- unit from ATSynEdit: ATSynEdit_Adapter_EControl which contains class TATAdapterEControl. You must create object of this class and assign this object to editor property AdapterHilite.
For ex, if you have editor object:
//form's OnCreate
Adapter:= TATAdapterEControl.Create(Self);
Edit1.AdapterHilite:= Adapter;
For ex, if you have 2 editor objects with the same text-source (see help topic ATSynEdit):
Adapter:= TATAdapterEControl.Create(Self);
Adapter.AddEditor(Ed1);
Adapter.AddEditor(Ed2);
Ed1.AdapterHilite:= Adapter;
Ed2.AdapterHilite:= Adapter;
Properties
- Lexer: TecSyntAnalyzer. You must set this prop from SyntaxManager object. SyntaxManager is a collection of lexers, which is loaded from .lxl file. After you load SyntaxManager, get its any item and assign it to Lexer prop. Example exists in demo of ATSynEdit.
- DynamicHiliteEnabled: boolean. This enables dynamic highlight, ie highlight of tokens depending on caret position. If enabled, adapter reads editor's caret-pos-changed event and recalculates hiliting if needed. Some lexers use this feature: HTML hilites tags with green if caret is inside tag; Pascal hilites "begin"/"end" with green if caret is inside block; rare C-like lexers hilite brackets.
- OnParseBegin, OnParseDone: these events called by adapter on analyzing start and after analyzing finish. If big file parsed, OnParseDone will fire after few seconds, during which user may edit/scroll file.