mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-14 22:43:49 -05:00
Add dlang support, closes #401
This commit is contained in:
94
syntax/dsdl.vim
Normal file
94
syntax/dsdl.vim
Normal file
@@ -0,0 +1,94 @@
|
||||
if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'dlang') != -1
|
||||
finish
|
||||
endif
|
||||
|
||||
" Vim syntax file for DUB configurations."
|
||||
"
|
||||
" Language: SDLang (dub config)
|
||||
" Maintainer: Jesse Phillips <Jesse.K.Phillips+D@gmail.com>
|
||||
" Last Change: 2015-07-11
|
||||
"
|
||||
" Contributors:
|
||||
" - Joakim Brannstrom <joakim.brannstrom@gmx.com>
|
||||
"
|
||||
" Please submit bugs/comments/suggestions to the github repo:
|
||||
" https://github.com/JesseKPhillips/d.vim
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
" General matchers
|
||||
syn match dsdlAssign contained "="
|
||||
syn match dsdlAttribute "\w*\s*=" contains=dsdlAssign
|
||||
syn match dsdlStatement "^\s*[a-zA-Z:]*"
|
||||
|
||||
" Keyword grouping
|
||||
syn keyword dsdlInfo name description copyright authors license
|
||||
syn keyword dsdlStructure buildRequirements buildType configuration
|
||||
syn keyword dsdlBoolean true false on off
|
||||
|
||||
syn keyword dsdlTodo contained TODO FIXME XXX
|
||||
|
||||
" dsdlCommentGroup allows adding matches for special things in comments
|
||||
syn cluster dsdlCommentGroup contains=dsdlTodo
|
||||
|
||||
" Highlight % items in strings.
|
||||
syn match dsdlFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
|
||||
|
||||
" dsdlCppString: same as dsdlString, but ends at end of line
|
||||
syn region dsdlString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,dsdlFormat,@Spell extend
|
||||
syn region dsdlCppString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,dsdlFormat,@Spell
|
||||
|
||||
syn cluster dsdlStringGroup contains=dsdlCppString
|
||||
|
||||
" Comments
|
||||
syn region dsdlCommentL start="//" skip="\\$" end="$" keepend contains=@dsdlCommentGroup,cSpaceError,@Spell
|
||||
syn region dsdlComment matchgroup=cCommentStart start="/\*" end="\*/" contains=@dsdlCommentGroup,dsdlCommentStartError,cSpaceError,@Spell fold extend
|
||||
" keep a // comment separately, it terminates a preproc. conditional
|
||||
syn match dsdlCommentError display "\*/"
|
||||
syn match dsdlCommentStartError display "/\*"me=e-1 contained
|
||||
|
||||
"integer number, or floating point number without a dot and with "f".
|
||||
syn case ignore
|
||||
syn match dsdlNumbers display transparent "\<\d\|\.\d" contains=dsdlNumber,dsdlFloat,cOctalError,dsdlOctal
|
||||
" Same, but without octal error (for comments)
|
||||
syn match dsdlNumbersCom display contained transparent "\<\d\|\.\d" contains=dsdlNumber,dsdlFloat,dsdlOctal
|
||||
syn match dsdlNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
|
||||
"hex number
|
||||
syn match dsdlNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
|
||||
" Flag the first zero of an octal number as something special
|
||||
syn match dsdlOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=dsdlOctalZero
|
||||
syn match dsdlOctalZero display contained "\<0"
|
||||
syn match dsdlFloat display contained "\d\+f"
|
||||
"floating point number, with dot, optional exponent
|
||||
syn match dsdlFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
|
||||
"floating point number, starting with a dot, optional exponent
|
||||
syn match dsdlFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
|
||||
"floating point number, without dot, with exponent
|
||||
syn match dsdlFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>"
|
||||
syn case match
|
||||
|
||||
" Define the default highlighting.
|
||||
" Only used when an item doesn't have highlighting yet
|
||||
hi def link dsdlInfo Constant
|
||||
hi def link dsdlAssign Special
|
||||
hi def link dsdlBoolean Boolean
|
||||
hi def link dsdlFormat SpecialChar
|
||||
hi def link dsdlCppString dsdlString
|
||||
hi def link dsdlCommentL dsdlComment
|
||||
hi def link dsdlNumber Number
|
||||
hi def link dsdlOctal Number
|
||||
hi def link dsdlOctalZero PreProc " link this to Error if you want
|
||||
hi def link dsdlFloat Float
|
||||
hi def link dsdlCommentError Error
|
||||
hi def link dsdlCommentStartError Error
|
||||
hi def link dsdlStructure Structure
|
||||
hi def link dsdlString String
|
||||
hi def link dsdlComment Comment
|
||||
hi def link dsdlTodo Todo
|
||||
hi def link dsdlStatement Statement
|
||||
hi def link dsdlAttribute Tag
|
||||
|
||||
let b:current_syntax = "dsdl"
|
||||
Reference in New Issue
Block a user