We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: November 16, 2018).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

How do I use lexical macros in code to specify regular expressions ?

 

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()

Please refer to the test sample attached below for more information in this regard.

Article ID: Published Date: Last Revised Date: Platform: Control:
380 04/30/2011 07/10/2014 WinForms EditControl
Tags:
Did you find this information helpful?
Add Comment
You must log in to leave a comment

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon