%YAML 1.2 --- # http://www.sublimetext.com/docs/3/syntax.html name: Anselme comment: "Anselme v0.10.0 syntax" file_extensions: - ans - anselme scope: source.anselme variables: identifier: '[^\{\}\§\>\<\(\)\~\+\-\*\/\%\=\?\!\&\|\:\^\,\@\s\.\#\"\d][^\{\}\§\>\<\(\)\~\+\-\*\/\%\=\?\!\&\|\:\^\,\@\s\.\#\"]*' contexts: main: - match: ^\s*\(.*$ scope: comment.anselme - match: ^\s*(§)(.*?)\((.*)\)$ captures: 1: keyword.control.anselme 2: entity.name.function.anselme 3: variable.parameter.anselme - match: ^\s*(§)(.*)$ captures: 1: keyword.control.anselme 2: entity.name.function.anselme - match: '^\s*>' scope: keyword.control.conditional.anselme push: text_formatting - match: '^\s*[:=+\-*/%!&|]' scope: keyword.operator.assignment.anselme push: line_expression - match: '^\s*~~?' scope: keyword.control.conditional.anselme push: line_expression - match: '^\s*#' scope: keyword.other.anselme push: line_expression - match: '^\s*@' scope: keyword.control.anselme push: line_expression - match: '^\s*(?:=+\-*/%!&|~\n@])' push: text_formatting text_formatting: - meta_scope: markup.quote.anselme - match: '\{' scope: keyword.other.anselme push: brace_expression - match: '\\$' scope: keyword.other.anselme - include: decorable - match: '\n' pop: true line_expression: - include: expression - include: decorable - match: '\n' pop: true decorable: - match: '~' scope: keyword.control.conditional.anselme set: line_expression - match: '#' scope: keyword.other.anselme set: line_expression - match: '(§)([^\~\#\§\n]*)' captures: 1: keyword.control.anselme 2: entity.name.function.anselme set: line_expression expression: - meta_scope: meta.group.anselme - match: '[|&!?]' scope: keyword.operator.logical.anselme - match: '[+\-*/%^<>=]' scope: keyword.operator.arithmetic.anselme - match: '[:,]' scope: keyword.operator.anselme - match: \d*\.\d+ scope: constant.numeric.float.anselme - match: \d+ scope: constant.numeric.integer.anselme - match: \" scope: punctuation.definition.string.begin push: string - match: '({{identifier}})(\()' captures: 1: variable.function.anselme 2: keyword.other.anselme push: arguments - match: '\(' scope: keyword.other.anselme push: parenthesis_expression - match: '{{identifier}}' scope: variable.other.anselme parenthesis_expression: - include: expression - match: '\)' scope: keyword.other.anselme pop: true brace_expression: - include: expression - match: '\}' scope: keyword.other.anselme pop: true string: - meta_scope: string.quoted.double - match: \" scope: punctuation.definition.string.end pop: true arguments: - include: parenthesis_expression - meta_content_scope: variable.parameter.anselme - match: ',' scope: punctuation.separator.anselme