fileTypes baba foldingStartMarker //\s*#?region\b foldingStopMarker //\s*#?endregion\b name Baba Yaga patterns include #comments include #strings include #numbers include #keywords include #operators include #functions include #variables include #types include #with-blocks include #when-expressions repository comments patterns match //.*$ name comment.line.double-slash.baba-yaga begin /\* end \*/ name comment.block.baba-yaga strings patterns begin " end " name string.quoted.double.baba-yaga patterns match \\\\. name constant.character.escape.baba-yaga numbers patterns match \b\d+\b name constant.numeric.integer.baba-yaga match \b\d+\.\d+\b name constant.numeric.float.baba-yaga keywords patterns match \b(when|then|is|Ok|Err)\b name keyword.control.baba-yaga match \b(Bool|Int|Float|String|List|Table|Result|Number)\b name storage.type.baba-yaga match \b(->|=>|\+|-|\*|/|%|=|>|<|>=|<=|\.\.|append|set|merge|shape)\b name keyword.operator.baba-yaga match \b(io\.out|io\.in|io\.emit|io\.listen|map|filter|reduce|pipe)\b name keyword.other.baba-yaga operators patterns match (\+|-|\*|/|%) name keyword.operator.arithmetic.baba-yaga match (=|>|<|>=|<=) name keyword.operator.comparison.baba-yaga match : name keyword.operator.assignment.baba-yaga match -> name keyword.operator.function.baba-yaga match \.\. name keyword.operator.string.baba-yaga functions patterns captures 1 name entity.name.function.baba-yaga match \b([a-zA-Z_][a-zA-Z0-9_]*)\s*: begin \( end \) name meta.function.anonymous.baba-yaga patterns match \b([a-zA-Z_][a-zA-Z0-9_]*)\b name variable.parameter.baba-yaga include #operators variables patterns captures 1 name variable.other.baba-yaga match \b([a-zA-Z_][a-zA-Z0-9_]*)\b types patterns match \b(Bool|Int|Float|String|List|Table|Result|Maybe)\b name storage.type.baba-yaga with-blocks patterns begin \bwith\b\s*\(\s*(?:rec\s*)? end \)\s*-> name meta.with-block.baba-yaga beginCaptures 0 name keyword.control.with.baba-yaga endCaptures 0 name keyword.operator.function.baba-yaga patterns include #comments include #with-block-entries include #strings include #numbers include #variables include #operators with-block-entries patterns begin ([a-zA-Z_][a-zA-Z0-9_]*)\s*: end ; name meta.with-block-entry.baba-yaga beginCaptures 1 name variable.other.with-local.baba-yaga endCaptures 0 name punctuation.terminator.semicolon.baba-yaga patterns include #comments include #when-expressions include #strings include #numbers include #variables include #operators when-expressions patterns begin \bwhen\b end ; name meta.when-expression.baba-yaga patterns match \bwhen\b name keyword.control.when.baba-yaga match \bthen\b name keyword.control.then.baba-yaga match \bis\b name keyword.control.is.baba-yaga match \b_\b name constant.language.wildcard.baba-yaga include #strings include #numbers include #variables scopeName source.baba-yaga uuid BABA-YAGA-SYNTAX-UUID-HERE