module

Highlight

Constants

BINARY_NUMBER_RE = "\\b(0b[01]+)"
C_NUMBER_RE = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)"
COMMON_KEYWORDS = ["of", "and", "for", "in", "not", "or", "if", "then", "parent", "list", "value"]
DEFAULT_KEYWORD_SCOPE = "keyword"
IDENT_RE = "[a-zA-Z]\\w*"
MATCH_NOTHING_RE = /\b\B/

--- Common regexps (строки как в оригинале) ---

MAX_KEYWORD_HITS = 7
NO_MATCH = -1
NUMBER_RE = "\\b\\d+(\\.\\d+)?"
RE_STARTERS_RE = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~"
SPAN_CLOSE = "</span>"
UNDERSCORE_IDENT_RE = "[a-zA-Z_]\\w*"
VERSION = "11.12.0"

Class methods

compile_keywords(raw_keywords : KeywordsVal, case_insensitive : Bool, scope_name : String = DEFAULT_KEYWORD_SCOPE) : MatchGroups
Source
default
Source
escape_html(value : String) : String
Source
highlight(code : String, language : String | Nil, ignore_illegals : Bool = true)
Source
highlight_auto(code : String, subset : Array(String) | Nil = nil)
Source
tokens(code : String, language : String | Nil) : Array(Tuple(String | Nil, String)) | Nil

Плоский список токенов {scope, text} для GUI-потребителей: DFS по дереву эмиттера (HighlightResult#emitter.root); для текста под вложенными узлами выигрывает ближайший ненулевой scope. language = nil → автодетект (highlight_auto); незарегистрированный язык → nil — вызывающий деградирует сам.

Source

Nested types