2362cf2415
Closes #1268
212 lines
6.3 KiB
YAML
212 lines
6.3 KiB
YAML
%YAML 1.2
|
|
---
|
|
# http://www.sublimetext.com/docs/3/syntax.html
|
|
name: Dart
|
|
file_extensions:
|
|
- dart
|
|
scope: source.dart
|
|
contexts:
|
|
main:
|
|
- match: ^(#!.*)$
|
|
scope: meta.preprocessor.script.dart
|
|
- match: ^\w*\b(library|import|part of|part|export)\b
|
|
captures:
|
|
0: keyword.other.import.dart
|
|
push:
|
|
- meta_scope: meta.declaration.dart
|
|
- match: ;
|
|
captures:
|
|
0: punctuation.terminator.dart
|
|
pop: true
|
|
- include: strings
|
|
- include: comments
|
|
- match: \b(as|show|hide)\b
|
|
scope: keyword.other.import.dart
|
|
- include: comments
|
|
- include: punctuation
|
|
- include: annotations
|
|
- include: keywords
|
|
- include: constants-and-special-vars
|
|
- include: strings
|
|
annotations:
|
|
- match: "@[a-zA-Z]+"
|
|
scope: storage.type.annotation.dart
|
|
comments:
|
|
- match: /\*\*/
|
|
scope: comment.block.empty.dart
|
|
captures:
|
|
0: punctuation.definition.comment.dart
|
|
- include: comments-doc-oldschool
|
|
- include: comments-doc
|
|
- include: comments-inline
|
|
comments-block:
|
|
- match: /\*
|
|
push:
|
|
- meta_scope: comment.block.dart
|
|
- match: \*/
|
|
pop: true
|
|
- include: comments-block
|
|
comments-doc:
|
|
- match: ///
|
|
push:
|
|
- meta_scope: comment.block.documentation.dart
|
|
- match: .*
|
|
pop: true
|
|
- include: dartdoc
|
|
comments-doc-oldschool:
|
|
- match: /\*\*
|
|
push:
|
|
- meta_scope: comment.block.documentation.dart
|
|
- match: \*/
|
|
pop: true
|
|
- include: comments-doc-oldschool
|
|
- include: comments-block
|
|
- include: dartdoc
|
|
comments-inline:
|
|
- include: comments-block
|
|
- match: ((//).*)$
|
|
captures:
|
|
1: comment.line.double-slash.dart
|
|
constants-and-special-vars:
|
|
- match: (?<!\$)\b(true|false|null)\b(?!\$)
|
|
scope: constant.language.dart
|
|
- match: (?<!\$)\b(this|super)\b(?!\$)
|
|
scope: variable.language.dart
|
|
- match: '(?<!\$)\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)\b(?!\$)'
|
|
scope: constant.numeric.dart
|
|
- match: '(?<![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*|bool\b|num\b|int\b|double\b|dynamic\b)'
|
|
scope: support.class.dart
|
|
- match: '([_$]*[a-z][a-zA-Z0-9_$]*)(<|\(|\s+=>)'
|
|
captures:
|
|
1: entity.name.function.dart
|
|
dartdoc:
|
|
- match: '(\[.*?\])'
|
|
captures:
|
|
0: variable.name.source.dart
|
|
- match: '^ {4,}(?![ \*]).*'
|
|
captures:
|
|
0: variable.name.source.dart
|
|
- match: "```.*?$"
|
|
push:
|
|
- meta_content_scope: variable.other.source.dart
|
|
- match: "```"
|
|
pop: true
|
|
- match: (`.*?`)
|
|
captures:
|
|
0: variable.other.source.dart
|
|
- match: (`.*?`)
|
|
captures:
|
|
0: variable.other.source.dart
|
|
- match: (\* (( ).*))$
|
|
captures:
|
|
2: variable.other.source.dart
|
|
- match: (\* .*)$
|
|
keywords:
|
|
- match: (?<!\$)\bas\b(?!\$)
|
|
scope: keyword.cast.dart
|
|
- match: (?<!\$)\b(try|on|catch|finally|throw|rethrow)\b(?!\$)
|
|
scope: keyword.control.catch-exception.dart
|
|
- match: (?<!\$)\b(break|case|continue|default|do|else|for|if|in|return|switch|while)\b(?!\$)
|
|
scope: keyword.control.dart
|
|
- match: (?<!\$)\b(sync(\*)?|async(\*)?|await|yield(\*)?)\b(?!\$)
|
|
scope: keyword.control.dart
|
|
- match: (?<!\$)\bassert\b(?!\$)
|
|
scope: keyword.control.dart
|
|
- match: (?<!\$)\b(new)\b(?!\$)
|
|
scope: keyword.control.new.dart
|
|
- match: (?<!\$)\b(abstract|class|enum|extends|external|factory|implements|get|mixin|native|operator|set|typedef|with|covariant)\b(?!\$)
|
|
scope: keyword.declaration.dart
|
|
- match: (?<!\$)\b(is\!?)\b(?!\$)
|
|
scope: keyword.operator.dart
|
|
- match: '\?|:'
|
|
scope: keyword.operator.ternary.dart
|
|
- match: (<<|>>>?|~|\^|\||&)
|
|
scope: keyword.operator.bitwise.dart
|
|
- match: ((&|\^|\||<<|>>>?)=)
|
|
scope: keyword.operator.assignment.bitwise.dart
|
|
- match: (=>)
|
|
scope: keyword.operator.closure.dart
|
|
- match: (==|!=|<=?|>=?)
|
|
scope: keyword.operator.comparison.dart
|
|
- match: '(([+*/%-]|\~)=)'
|
|
scope: keyword.operator.assignment.arithmetic.dart
|
|
- match: (=)
|
|
scope: keyword.operator.assignment.dart
|
|
- match: (\-\-|\+\+)
|
|
scope: keyword.operator.increment-decrement.dart
|
|
- match: (\-|\+|\*|\/|\~\/|%)
|
|
scope: keyword.operator.arithmetic.dart
|
|
- match: (!|&&|\|\|)
|
|
scope: keyword.operator.logical.dart
|
|
- match: (?<!\$)\b(static|final|const)\b(?!\$)
|
|
scope: storage.modifier.dart
|
|
- match: (?<!\$)\b(?:void|var)\b(?!\$)
|
|
scope: storage.type.primitive.dart
|
|
punctuation:
|
|
- match: ","
|
|
scope: punctuation.comma.dart
|
|
- match: ;
|
|
scope: punctuation.terminator.dart
|
|
- match: \.
|
|
scope: punctuation.dot.dart
|
|
string-interp:
|
|
- match: '\$((\w+)|\{([^{}]+)\})'
|
|
captures:
|
|
2: variable.parameter.dart
|
|
3: variable.parameter.dart
|
|
- match: \\.
|
|
scope: constant.character.escape.dart
|
|
strings:
|
|
- match: (?<!r)"""
|
|
push:
|
|
- meta_scope: string.interpolated.triple.double.dart
|
|
- match: '"""(?!")'
|
|
pop: true
|
|
- include: string-interp
|
|
- match: (?<!r)'''
|
|
push:
|
|
- meta_scope: string.interpolated.triple.single.dart
|
|
- match: "'''(?!')"
|
|
pop: true
|
|
- include: string-interp
|
|
- match: r"""
|
|
push:
|
|
- meta_scope: string.quoted.triple.double.dart
|
|
- match: '"""(?!")'
|
|
pop: true
|
|
- match: r'''
|
|
push:
|
|
- meta_scope: string.quoted.triple.single.dart
|
|
- match: "'''(?!')"
|
|
pop: true
|
|
- match: (?<!\|r)"
|
|
push:
|
|
- meta_scope: string.interpolated.double.dart
|
|
- match: '"'
|
|
pop: true
|
|
- match: \n
|
|
scope: invalid.string.newline
|
|
- include: string-interp
|
|
- match: r"
|
|
push:
|
|
- meta_scope: string.quoted.double.dart
|
|
- match: '"'
|
|
pop: true
|
|
- match: \n
|
|
scope: invalid.string.newline
|
|
- match: (?<!\|r)'
|
|
push:
|
|
- meta_scope: string.interpolated.single.dart
|
|
- match: "'"
|
|
pop: true
|
|
- match: \n
|
|
scope: invalid.string.newline
|
|
- include: string-interp
|
|
- match: r'
|
|
push:
|
|
- meta_scope: string.quoted.single.dart
|
|
- match: "'"
|
|
pop: true
|
|
- match: \n
|
|
scope: invalid.string.newline
|