Articles in this section
Category / Section

How to use lexical macros in code to specify regular expressions in WinForms SyntaxEditor (EditControl)?

1 min read

Lexical macros

You could use lexical macros in code as shown in code snippets below.

C#

this.editControl1.ApplyConfiguration(KnownLanguages.HTML);
IMacro macro = this.editControl1.LexicalMacrosManager.Add("testMacro", ".+");
// Create a format and set its attributes 
ISnippetFormat formatMethod = this.editControl1.Language.Add("CodeBehind"); 
formatMethod.FontColor = Color.IndianRed; 
formatMethod.Font = new Font("Garamond",12); 
formatMethod.BackColor = Color.Yellow;
// Create a lexem that belongs to this format 
ConfigLexem configLex = new ConfigLexem("<%@", "%>", FormatType.Custom, false); 
configLex.IsBeginRegex = false; 
configLex.IsEndRegex = false;
// NameInConfig returns name of the macro rounded with braces, like "{testmacro}"
configLex.ContinueBlock = macro.NameInConfig; 
configLex.IsContinueRegex = true; 
configLex.FormatName = "CodeBehind"; 
this.editControl1.Language.Splits.Add("<%@");
this.editControl1.Language.Splits.Add("%>");
// Add it to the current language's lexems collection 
this.editControl1.Language.Lexems.Add(configLex); 
this.editControl1.Language.ResetCaches();

 

VB

Me.editControl1.ApplyConfiguration(KnownLanguages.HTML)
Dim macro As IMacro = Me.editControl1.LexicalMacrosManager.Add("testMacro", ".+")
' Create a format and set its attributes 
Dim formatMethod As ISnippetFormat = Me.editControl1.Language.Add("CodeBehind")
formatMethod.FontColor = Color.IndianRed
formatMethod.Font = New Font("Garamond", 12)
formatMethod.BackColor = Color.Yellow
' Create a lexem that belongs to this format 
Dim configLex As New ConfigLexem("<%@", "%>", FormatType.Custom, False)
configLex.IsBeginRegex = False
configLex.IsEndRegex = False
configLex.ContinueBlock = macro.NameInConfig 'NameInConfig returns name of the macro rounded with braces, like "{testmacro}"
configLex.IsContinueRegex = True
configLex.FormatName = "CodeBehind"
Me.editControl1.Language.Splits.Add("<%@")
Me.editControl1.Language.Splits.Add("%>")
' Add it to the current language's lexems collection 
Me.editControl1.Language.Lexems.Add(configLex)
Me.editControl1.Language.ResetCaches()

 

Reference link: https://help.syncfusion.com/windowsforms/syntax-editor/syntax-highlighting

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied