Table of Contents

Class LanguageDefinitionBuilder

Namespace
BlazOrbit.SyntaxHighlight.Builder
Assembly
BlazOrbit.SyntaxHighlight.dll

Provides a fluent API for constructing LanguageDefinition instances.

public sealed class LanguageDefinitionBuilder
Inheritance
object
LanguageDefinitionBuilder

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

tokenType TokenType
prefix string
open char
close char
innerTokenizer Func<string, IReadOnlyList<Token>>
priority int?
maxDepth int

Returns

LanguageDefinitionBuilder

AddBlockComment(string, string, int?)

Adds a block comment rule.

public LanguageDefinitionBuilder AddBlockComment(string start, string end, int? priority = null)

Parameters

start string
end string
priority int?

Returns

LanguageDefinitionBuilder

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

tokenType TokenType
keywords IEnumerable<string>
contextPredicate Func<string, int, bool>
priority int?

Returns

LanguageDefinitionBuilder

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

tokenType TokenType
pattern string
contextPredicate Func<string, int, bool>
requireWordBoundary bool
priority int?

Returns

LanguageDefinitionBuilder

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

tokenType TokenType
start string
end string
escape string
multiline bool
priority int?

Returns

LanguageDefinitionBuilder

AddKeywords(TokenType, IEnumerable<string>, int?)

Adds keyword tokens.

public LanguageDefinitionBuilder AddKeywords(TokenType tokenType, IEnumerable<string> keywords, int? priority = null)

Parameters

tokenType TokenType
keywords IEnumerable<string>
priority int?

Returns

LanguageDefinitionBuilder

AddLineComment(string, int?)

Adds a line comment rule.

public LanguageDefinitionBuilder AddLineComment(string start, int? priority = null)

Parameters

start string
priority int?

Returns

LanguageDefinitionBuilder

AddMarkup(int?)

Adds a markup rule for HTML-like tags.

public LanguageDefinitionBuilder AddMarkup(int? priority = null)

Parameters

priority int?

Returns

LanguageDefinitionBuilder

AddOperators(IEnumerable<string>)

Adds multi-character operators.

public LanguageDefinitionBuilder AddOperators(IEnumerable<string> operators)

Parameters

operators IEnumerable<string>

Returns

LanguageDefinitionBuilder

AddOperators(IEnumerable<string>, int?)

Adds multi-character operators with the specified priority.

public LanguageDefinitionBuilder AddOperators(IEnumerable<string> operators, int? priority)

Parameters

operators IEnumerable<string>
priority int?

Returns

LanguageDefinitionBuilder

AddOperators(string)

Adds single-character operators.

public LanguageDefinitionBuilder AddOperators(string operators)

Parameters

operators string

Returns

LanguageDefinitionBuilder

AddOperators(string, int?)

Adds single-character operators with the specified priority.

public LanguageDefinitionBuilder AddOperators(string operators, int? priority)

Parameters

operators string
priority int?

Returns

LanguageDefinitionBuilder

AddPattern(TokenType, string, bool, int?)

Adds a regex pattern rule.

public LanguageDefinitionBuilder AddPattern(TokenType tokenType, string pattern, bool requireWordBoundary = false, int? priority = null)

Parameters

tokenType TokenType
pattern string
requireWordBoundary bool
priority int?

Returns

LanguageDefinitionBuilder

AddPunctuation(string, int?)

Adds punctuation characters.

public LanguageDefinitionBuilder AddPunctuation(string punctuation, int? priority = null)

Parameters

punctuation string
priority int?

Returns

LanguageDefinitionBuilder

AddRule(ITokenRule)

Adds a custom token rule.

public LanguageDefinitionBuilder AddRule(ITokenRule rule)

Parameters

rule ITokenRule

Returns

LanguageDefinitionBuilder

AddSequence(TokenType, string, int?)

Adds a sequence token rule.

public LanguageDefinitionBuilder AddSequence(TokenType tokenType, string sequence, int? priority = null)

Parameters

tokenType TokenType
sequence string
priority int?

Returns

LanguageDefinitionBuilder

AddSequences(TokenType, IEnumerable<string>, int?)

Adds multiple sequence token rules.

public LanguageDefinitionBuilder AddSequences(TokenType tokenType, IEnumerable<string> sequences, int? priority = null)

Parameters

tokenType TokenType
sequences IEnumerable<string>
priority int?

Returns

LanguageDefinitionBuilder

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

start string
end string
escape string
tokenType TokenType
priority int?

Returns

LanguageDefinitionBuilder

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

value bool

Returns

LanguageDefinitionBuilder

Embed(LanguageDefinition, int)

Embeds rules from another language definition with an optional priority offset.

public LanguageDefinitionBuilder Embed(LanguageDefinition other, int priorityOffset = 0)

Parameters

other LanguageDefinition
priorityOffset int

Returns

LanguageDefinitionBuilder