Class LanguageDefinitionBuilder
- Namespace
- BlazOrbit.SyntaxHighlight.Builder
- Assembly
- BlazOrbit.SyntaxHighlight.dll
Provides a fluent API for constructing LanguageDefinition instances.
public sealed class LanguageDefinitionBuilder
- Inheritance
-
objectLanguageDefinitionBuilder
Methods
AddBalanced(TokenType, string, char, char, Func<string, IReadOnlyList<Token>>?, int?, int)
Adds a balanced rule that matches delimited blocks with optional nested tokenization.
public LanguageDefinitionBuilder AddBalanced(TokenType tokenType, string prefix, char open, char close, Func<string, IReadOnlyList<Token>>? innerTokenizer = null, int? priority = null, int maxDepth = 100)
Parameters
tokenTypeTokenTypeprefixstringopencharclosecharinnerTokenizerFunc<string, IReadOnlyList<Token>>priorityint?maxDepthint
Returns
AddBlockComment(string, string, int?)
Adds a block comment rule.
public LanguageDefinitionBuilder AddBlockComment(string start, string end, int? priority = null)
Parameters
startstringendstringpriorityint?
Returns
AddContextualKeywords(TokenType, IEnumerable<string>, Func<string, int, bool>, int?)
Adds contextual keywords that match only when the specified predicate is satisfied.
public LanguageDefinitionBuilder AddContextualKeywords(TokenType tokenType, IEnumerable<string> keywords, Func<string, int, bool> contextPredicate, int? priority = null)
Parameters
tokenTypeTokenTypekeywordsIEnumerable<string>contextPredicateFunc<string, int, bool>priorityint?
Returns
AddContextualPattern(TokenType, string, Func<string, int, bool>, bool, int?)
Adds a contextual regex pattern that matches only when the specified predicate is satisfied.
public LanguageDefinitionBuilder AddContextualPattern(TokenType tokenType, string pattern, Func<string, int, bool> contextPredicate, bool requireWordBoundary = false, int? priority = null)
Parameters
tokenTypeTokenTypepatternstringcontextPredicateFunc<string, int, bool>requireWordBoundaryboolpriorityint?
Returns
AddDelimited(TokenType, string, string, string?, bool, int?)
Adds a delimited token rule.
public LanguageDefinitionBuilder AddDelimited(TokenType tokenType, string start, string end, string? escape = null, bool multiline = true, int? priority = null)
Parameters
tokenTypeTokenTypestartstringendstringescapestringmultilineboolpriorityint?
Returns
AddKeywords(TokenType, IEnumerable<string>, int?)
Adds keyword tokens.
public LanguageDefinitionBuilder AddKeywords(TokenType tokenType, IEnumerable<string> keywords, int? priority = null)
Parameters
tokenTypeTokenTypekeywordsIEnumerable<string>priorityint?
Returns
AddLineComment(string, int?)
Adds a line comment rule.
public LanguageDefinitionBuilder AddLineComment(string start, int? priority = null)
Parameters
startstringpriorityint?
Returns
AddMarkup(int?)
Adds a markup rule for HTML-like tags.
public LanguageDefinitionBuilder AddMarkup(int? priority = null)
Parameters
priorityint?
Returns
AddOperators(IEnumerable<string>)
Adds multi-character operators.
public LanguageDefinitionBuilder AddOperators(IEnumerable<string> operators)
Parameters
operatorsIEnumerable<string>
Returns
AddOperators(IEnumerable<string>, int?)
Adds multi-character operators with the specified priority.
public LanguageDefinitionBuilder AddOperators(IEnumerable<string> operators, int? priority)
Parameters
operatorsIEnumerable<string>priorityint?
Returns
AddOperators(string)
Adds single-character operators.
public LanguageDefinitionBuilder AddOperators(string operators)
Parameters
operatorsstring
Returns
AddOperators(string, int?)
Adds single-character operators with the specified priority.
public LanguageDefinitionBuilder AddOperators(string operators, int? priority)
Parameters
operatorsstringpriorityint?
Returns
AddPattern(TokenType, string, bool, int?)
Adds a regex pattern rule.
public LanguageDefinitionBuilder AddPattern(TokenType tokenType, string pattern, bool requireWordBoundary = false, int? priority = null)
Parameters
tokenTypeTokenTypepatternstringrequireWordBoundaryboolpriorityint?
Returns
AddPunctuation(string, int?)
Adds punctuation characters.
public LanguageDefinitionBuilder AddPunctuation(string punctuation, int? priority = null)
Parameters
punctuationstringpriorityint?
Returns
AddRule(ITokenRule)
Adds a custom token rule.
public LanguageDefinitionBuilder AddRule(ITokenRule rule)
Parameters
ruleITokenRule
Returns
AddSequence(TokenType, string, int?)
Adds a sequence token rule.
public LanguageDefinitionBuilder AddSequence(TokenType tokenType, string sequence, int? priority = null)
Parameters
tokenTypeTokenTypesequencestringpriorityint?
Returns
AddSequences(TokenType, IEnumerable<string>, int?)
Adds multiple sequence token rules.
public LanguageDefinitionBuilder AddSequences(TokenType tokenType, IEnumerable<string> sequences, int? priority = null)
Parameters
tokenTypeTokenTypesequencesIEnumerable<string>priorityint?
Returns
AddString(string, string, string?, TokenType, int?)
Adds a string delimited rule with the specified start and end markers.
public LanguageDefinitionBuilder AddString(string start, string end, string? escape = "\\", TokenType tokenType = TokenType.String, int? priority = null)
Parameters
startstringendstringescapestringtokenTypeTokenTypepriorityint?
Returns
Build()
Builds the LanguageDefinition.
public LanguageDefinition Build()
Returns
- LanguageDefinition
The configured language definition.
CaseSensitive(bool)
Sets whether the language is case-sensitive.
public LanguageDefinitionBuilder CaseSensitive(bool value = true)
Parameters
valuebool
Returns
Embed(LanguageDefinition, int)
Embeds rules from another language definition with an optional priority offset.
public LanguageDefinitionBuilder Embed(LanguageDefinition other, int priorityOffset = 0)
Parameters
otherLanguageDefinitionpriorityOffsetint