111 lines
5.4 KiB
VimL
111 lines
5.4 KiB
VimL
|
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
|