Index: tools/utils/textmate/Dart.tmbundle/Syntaxes/Dart.textmate |
diff --git a/tools/utils/textmate/Dart.tmbundle/Syntaxes/Dart.textmate b/tools/utils/textmate/Dart.tmbundle/Syntaxes/Dart.textmate |
new file mode 100644 |
index 0000000000000000000000000000000000000000..44d04d6def25203722c936a96fd635bd9a38b765 |
--- /dev/null |
+++ b/tools/utils/textmate/Dart.tmbundle/Syntaxes/Dart.textmate |
@@ -0,0 +1,178 @@ |
+{ scopeName = 'source.dart'; |
+ fileTypes = ( 'dart' ); |
+ foldingStartMarker = '\{\s*$'; |
+ foldingStopMarker = '^\s*\}'; |
+ patterns = ( |
+ { name = 'meta.preprocessor.script.dart'; |
+ match = '^(#!.*)$'; |
+ }, |
+ { name = 'meta.declaration.dart'; |
+ begin = '#\b(library|import|source|resource)\b'; |
+ end = ';'; |
+ beginCaptures = { 0 = { name = 'keyword.other.import.dart'; }; }; |
+ endCaptures = { 0 = { name = 'punctuation.terminator.dart'; }; }; |
+ patterns = ( |
+ { include = '#strings'; }, |
+ { match = '\b(prefix)\s*:'; |
+ captures = { 1 = { name = 'keyword.other.import.dart'; }; }; |
+ }, |
+ ); |
+ }, |
+ { include = '#comments'; }, |
+ { include = '#constants-and-special-vars'; }, |
+ { include = '#keywords'; }, |
+ { include = '#strings'; }, |
+ ); |
+ repository = { |
+ comments = { |
+ patterns = ( |
+ { name = 'comment.block.empty.dart'; |
+ match = '/\*\*/'; |
+ captures = { 0 = { name = 'punctuation.definition.comment.dart'; }; }; |
+ }, |
+ { include = 'text.html.javadoc'; }, |
+ { include = '#comments-inline'; }, |
+ ); |
+ }; |
+ comments-inline = { |
+ patterns = ( |
+ { name = 'comment.block.dart'; |
+ begin = '/\*'; |
+ end = '\*/'; |
+ }, |
+ { match = '((//).*)$'; |
+ captures = { 1 = { name = 'comment.line.double-slash.dart'; }; }; |
+ }, |
+ ); |
+ }; |
+ constants-and-special-vars = { |
+ patterns = ( |
+ { name = 'constant.language.dart'; |
+ match = '\b(true|false|null)\b'; |
+ }, |
+ { name = 'variable.language.dart'; |
+ match = '\b(this|super)\b'; |
+ }, |
+ { name = 'constant.numeric.dart'; |
+ match = '\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)\b'; |
+ }, |
+ ); |
+ }; |
+ keywords = { |
+ patterns = ( |
+ { name = 'keyword.control.catch-exception.dart'; |
+ match = '\b(try|catch|finally|throw)\b'; |
+ }, |
+ { name = 'keyword.control.ternary.dart'; |
+ match = '\?|:'; |
+ }, |
+ { name = 'keyword.control.dart'; |
+ match = '\b(break|case|continue|default|do|else|for|if|in|return|switch|while)\b'; |
+ }, |
+ { name = 'keyword.control.new.dart'; |
+ match = '\b(new)\b'; |
+ }, |
+ { name = 'keyword.operator.dart'; |
+ match = '\b(is\!?)\b'; |
+ }, |
+ { name = 'keyword.operator.bitwise.dart'; |
+ match = '(<<|>>>?|~|\^|\||&)'; |
+ }, |
+ { name = 'keyword.operator.assignment.bitwise.dart'; |
+ match = '((&|\^|\||<<|>>>?)=)'; |
+ }, |
+ { name = 'keyword.operator.comparison.dart'; |
+ match = '(===?|!==?|<=?|>=?)'; |
+ }, |
+ { name = 'keyword.operator.assignment.arithmetic.dart'; |
+ match = '(([+*/%-]|\~)=)'; |
+ }, |
+ { name = 'keyword.operator.assignment.dart'; |
+ match = '(=)'; |
+ }, |
+ { name = 'keyword.operator.increment-decrement.dart'; |
+ match = '(\-\-|\+\+)'; |
+ }, |
+ { name = 'keyword.operator.arithmetic.dart'; |
+ match = '(\-|\+|\*|\/|\~\/|%)'; |
+ }, |
+ { name = 'keyword.operator.logical.dart'; |
+ match = '(!|&&|\|\|)'; |
+ }, |
+ { name = 'punctuation.terminator.dart'; |
+ match = ';'; |
+ }, |
+ { name = 'storage.modifier.dart'; |
+ match = '\b(static|final|native|abstract|const|class|interface)\b'; |
+ }, |
+ { name = 'storage.type.primitive.dart'; |
+ match = '\b(?:void|bool|num|int|double|Dynamic|var)\b'; |
+ }, |
+ ); |
+ }; |
+ string-interp = { |
+ patterns = ( |
+ { match = '\$((\w+)|\{(\w+)\})'; |
+ captures = { |
+ 2 = { name = 'variable.parameter.dart'; }; |
+ 3 = { name = 'variable.parameter.dart'; }; |
+ }; |
+ }, |
+ { name = 'constant.character.escape.dart'; |
+ match = '\\.'; |
+ }, |
+ ); |
+ }; |
+ strings = { |
+ patterns = ( |
+ { name = 'string.interpolated.triple.dart'; |
+ begin = '(?<!@)"""'; |
+ end = '"""(?!")'; |
+ patterns = ( { include = '#string-interp'; } ); |
+ }, |
+ { name = 'string.quoted.triple.dart'; |
+ begin = '@"""'; |
+ end = '"""(?!")'; |
+ }, |
+ { name = 'string.interpolated.double.dart'; |
+ begin = '(?<!\\|@)"'; |
+ end = '"'; |
+ patterns = ( |
+ { name = 'invalid.string.newline'; |
+ match = '\n'; |
+ }, |
+ { include = '#string-interp'; }, |
+ ); |
+ }, |
+ { name = 'string.quoted.double.dart'; |
+ begin = '@"'; |
+ end = '"'; |
+ patterns = ( |
+ { name = 'invalid.string.newline'; |
+ match = '\n'; |
+ }, |
+ ); |
+ }, |
+ { name = 'string.interpolated.single.dart'; |
+ begin = "(?<!\|@)'"; |
+ end = "'"; |
+ patterns = ( |
+ { name = 'invalid.string.newline'; |
+ match = '\n'; |
+ }, |
+ { include = '#string-interp'; }, |
+ ); |
+ }, |
+ { name = 'string.quoted.single.dart'; |
+ begin = "@'"; |
+ end = "'"; |
+ patterns = ( |
+ { name = 'invalid.string.newline'; |
+ match = '\n'; |
+ }, |
+ ); |
+ }, |
+ ); |
+ }; |
+ }; |
+} |