neovim/runtime/syntax/dart.vim

91 lines
3.2 KiB
VimL

" Vim syntax file
"
" Language: Dart
" Maintainer: Eugene 'pr3d4t0r' Ciurana <dart.syntax AT cime.net >
" Source: https://github.com/pr3d4t0r/dart-vim-syntax
" Last Update: 2019 Oct 19
"
" License: Vim is Charityware. dart.vim syntax is Charityware.
" (c) Copyright 2019 by Eugene Ciurana / pr3d4t0r. Licensed
" under the standard VIM LICENSE - Vim command :help uganda.txt
" for details.
"
" Questions, comments: <dart.syntax AT cime.net>
" https://ciurana.eu/pgp, https://keybase.io/pr3d4t0r
"
" vim: set fileencoding=utf-8:
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn keyword dartCommentTodo contained TODO FIXME XXX TBD
syn match dartLineComment "//.*" contains=dartTodo,@Spell
syn match dartCommentSkip "^[ \t]*\*\($\|[ \t]\+\)"
syn region dartComment start="/\*" end="\*/" contains=@Spell,dartTodo
syn keyword dartReserved assert async await class const export extends external final hide import implements interface library mixin on show super sync yield
syn match dartNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
syn keyword dartBoolean false true
syn keyword dartBranch break continue
syn keyword dartConditional if else switch
syn keyword dartException catch finally rethrow throw try
syn keyword dartIdentifier abstract covariant deferred dynamic factory Function operator part static this typedef var
syn keyword dartLabel case default
syn keyword dartNull null
syn keyword dartOperator is new
syn keyword dartRepeat for do in while
syn keyword dartStatement return with
syn keyword dartType bool double enum int String StringBuffer void
syn keyword dartTodo contained TODO FIXME XXX
syn match dartEscape contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
syn match dartSpecialError contained "\\."
syn match dartStrInterpol contained "\${[\x, _]*\}"
syn region dartDQString start=+"+ end=+"+ end=+$+ contains=dartEscape,dartStrInterpol,dartSpecialError,@Spell
syn region dartSQString start=+'+ end=+'+ end=+$+ contains=dartEscape,dartStrInterpol,dartSpecialError,@Spell
syn match dartBraces "[{}\[\]]"
syn match dartParens "[()]"
syn sync fromstart
syn sync maxlines=100
hi def link dartBoolean Boolean
hi def link dartBranch Conditional
hi def link dartComment Comment
hi def link dartConditional Conditional
hi def link dartDQString String
hi def link dartEscape SpecialChar
hi def link dartException Exception
hi def link dartIdentifier Identifier
hi def link dartLabel Label
hi def link dartLineComment Comment
hi def link dartNull Keyword
hi def link dartOperator Operator
hi def link dartRepeat Repeat
hi def link dartReserved Keyword
hi def link dartSQString String
hi def link dartSpecialError Error
hi def link dartStatement Statement
hi def link dartStrInterpol Special
hi def link dartTodo Todo
hi def link dartType Type
let b:current_syntax = "dart"
let &cpo = s:cpo_save
unlet s:cpo_save