summaryrefslogtreecommitdiffstats
path: root/syntax
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2015-12-06 11:38:02 +0100
committerAdam Stankiewicz <sheerun@sher.pl>2015-12-06 11:38:02 +0100
commit5658b62b7afb7d4855e2634d8d067cbdf1d332c9 (patch)
tree334b18c006622e75e7f6a3ed89a0091a1c8834e0 /syntax
parent938a2f1667820c0ac9d5b08d4118aaf53e76a0cb (diff)
downloadvim-polyglot-5658b62b7afb7d4855e2634d8d067cbdf1d332c9.tar.gz
vim-polyglot-5658b62b7afb7d4855e2634d8d067cbdf1d332c9.zip
Add dart language support, closes #93
Diffstat (limited to 'syntax')
-rw-r--r--syntax/dart.vim110
1 files changed, 110 insertions, 0 deletions
diff --git a/syntax/dart.vim b/syntax/dart.vim
new file mode 100644
index 00000000..ebfb7abd
--- /dev/null
+++ b/syntax/dart.vim
@@ -0,0 +1,110 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'dart') == -1
+
+" Vim syntax file " Language: Dart
+" Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+" for details. All rights reserved. Use of this source code is governed by a
+" BSD-style license that can be found in the LICENSE file.
+
+if !exists("g:main_syntax")
+ if version < 600
+ syntax clear
+ elseif exists("b:current_syntax")
+ finish
+ endif
+ let g:main_syntax = 'dart'
+ syntax region dartFold start="{" end="}" transparent fold
+endif
+
+" Ensure long multiline strings are highlighted.
+syntax sync fromstart
+
+" keyword definitions
+syntax keyword dartConditional if else switch
+syntax keyword dartRepeat do while for
+syntax keyword dartBoolean true false
+syntax keyword dartConstant null
+syntax keyword dartTypedef this super class typedef
+syntax keyword dartOperator new is as in factory
+syntax match dartOperator "+=\=\|-=\=\|*=\=\|/=\=\|%=\=\|\~/=\=\|<<=\=\|>>=\=\|[<>]=\=\|===\=\|\!==\=\|&=\=\|\^=\=\||=\=\|||\|&&\|\[\]=\=\|=>\|!\|\~\|?\|:"
+syntax keyword dartType void var bool int double num dynamic
+syntax keyword dartStatement return
+syntax keyword dartStorageClass static abstract final const
+syntax keyword dartExceptions throw rethrow try on catch finally
+syntax keyword dartAssert assert
+syntax keyword dartClassDecl extends with implements
+syntax keyword dartBranch break continue nextgroup=dartUserLabelRef skipwhite
+syntax keyword dartKeyword get set operator call external async await yield sync
+syntax match dartUserLabelRef "\k\+" contained
+
+syntax region dartLabelRegion transparent matchgroup=dartLabel start="\<case\>" matchgroup=NONE end=":"
+syntax keyword dartLabel default
+
+syntax match dartLibrary "^\(import\|part of\|part\|export\|library\|show\|hide\)\s"
+
+" Comments
+syntax keyword dartTodo contained TODO FIXME XXX
+syntax region dartComment start="/\*" end="\*/" contains=dartTodo,dartDocLink,@Spell
+syntax match dartLineComment "//.*" contains=dartTodo,@Spell
+syntax match dartLineDocComment "///.*" contains=dartTodo,dartDocLink,@Spell
+syntax region dartDocLink contained start=+\[+ end=+\]+
+
+" Strings
+syntax region dartString start=+\z(["']\)+ end=+\z1+ contains=@Spell,dartInterpolation,dartSpecialChar
+syntax region dartRawString start=+r\z(["']\)+ end=+\z1+ contains=@Spell
+syntax region dartMultilineString start=+\z("\{3\}\|'\{3\}\)+ end=+\z1+ contains=@Spell,dartInterpolation,dartSpecialChar
+syntax region dartRawMultilineString start=+r\z("\{3\}\|'\{3\}\)+ end=+\z1+ contains=@Spell
+syntax match dartInterpolation contained "\$\(\w\+\|{[^}]\+}\)"
+syntax match dartSpecialChar contained "\\\(u\x\{4\}\|u{\x\+}\|x\x\x\|x{\x\+}\|.\)"
+
+" Numbers
+syntax match dartNumber "\<\d\+\(\.\d\+\)\=\>"
+
+" TODO(antonm): consider conditional highlighting of corelib classes.
+syntax keyword dartCoreClasses BidirectionalIterator Comparable DateTime Duration Expando Function Invocation Iterable Iterator List Map Match Object Pattern RegExp RuneIterator Runes Set StackTrace Stopwatch String StringBuffer StringSink Symbol Type
+syntax keyword dartCoreTypedefs Comparator
+syntax keyword dartCoreExceptions AbstractClassInstantiationError ArgumentError AssertionError CastError ConcurrentModificationError Error Exception FallThroughError FormatException IntegerDivisionByZeroException NoSuchMethodError NullThrownError OutOfMemoryError RangeError RuntimeError StackOverflowError StateError TypeError UnimplementedError UnsupportedError
+
+
+" The default highlighting.
+highlight default link dartBranch Conditional
+highlight default link dartUserLabelRef dartUserLabel
+highlight default link dartLabel Label
+highlight default link dartUserLabel Label
+highlight default link dartConditional Conditional
+highlight default link dartRepeat Repeat
+highlight default link dartExceptions Exception
+highlight default link dartAssert Statement
+highlight default link dartStorageClass StorageClass
+highlight default link dartClassDecl dartStorageClass
+highlight default link dartBoolean Boolean
+highlight default link dartString String
+highlight default link dartRawString String
+highlight default link dartMultilineString String
+highlight default link dartRawMultilineString String
+highlight default link dartNumber Number
+highlight default link dartStatement Statement
+highlight default link dartOperator Operator
+highlight default link dartComment Comment
+highlight default link dartLineComment Comment
+highlight default link dartLineDocComment Comment
+highlight default link dartConstant Constant
+highlight default link dartTypedef Typedef
+highlight default link dartTodo Todo
+highlight default link dartKeyword Keyword
+highlight default link dartType Type
+highlight default link dartInterpolation PreProc
+highlight default link dartDocLink SpecialComment
+highlight default link dartSpecialChar SpecialChar
+highlight default link dartLibrary Include
+highlight default link dartCoreClasses Type
+highlight default link dartCoreTypedefs Typedef
+highlight default link dartCoreExceptions Exception
+
+let b:current_syntax = "dart"
+let b:spell_options = "contained"
+
+if g:main_syntax is# 'dart'
+ unlet g:main_syntax
+endif
+
+endif