1" Vim syntax file 2" Language: Slice (ZeroC's Specification Language for Ice) 3" Maintainer: Morel Bodin <[email protected]> 4" Last Change: 2005 Dec 03 5 6" quit when a syntax file was already loaded 7if exists("b:current_syntax") 8 finish 9endif 10 11" The Slice keywords 12 13syn keyword sliceType bool byte double float int long short string void 14syn keyword sliceQualifier const extends idempotent implements local nonmutating out throws 15syn keyword sliceConstruct class enum exception dictionary interface module LocalObject Object sequence struct 16syn keyword sliceQualifier const extends idempotent implements local nonmutating out throws 17syn keyword sliceBoolean false true 18 19" Include directives 20syn region sliceIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ 21syn match sliceIncluded display contained "<[^>]*>" 22syn match sliceInclude display "^\s*#\s*include\>\s*["<]" contains=sliceIncluded 23 24" Double-include guards 25syn region sliceGuard start="^#\(define\|ifndef\|endif\)" end="$" 26 27" Strings and characters 28syn region sliceString start=+"+ end=+"+ 29 30" Numbers (shamelessly ripped from c.vim, only slightly modified) 31"integer number, or floating point number without a dot and with "f". 32syn case ignore 33syn match sliceNumbers display transparent "\<\d\|\.\d" contains=sliceNumber,sliceFloat,sliceOctal 34syn match sliceNumber display contained "\d\+" 35"hex number 36syn match sliceNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" 37" Flag the first zero of an octal number as something special 38syn match sliceOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=sliceOctalZero 39syn match sliceOctalZero display contained "\<0" 40syn match sliceFloat display contained "\d\+f" 41"floating point number, with dot, optional exponent 42syn match sliceFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" 43"floating point number, starting with a dot, optional exponent 44syn match sliceFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" 45"floating point number, without dot, with exponent 46syn match sliceFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>" 47" flag an octal number with wrong digits 48syn case match 49 50 51" Comments 52syn region sliceComment start="/\*" end="\*/" 53syn match sliceComment "//.*" 54 55syn sync ccomment sliceComment 56 57" Define the default highlighting. 58" Only when an item doesn't have highlighting yet 59 60hi def link sliceComment Comment 61hi def link sliceConstruct Keyword 62hi def link sliceType Type 63hi def link sliceString String 64hi def link sliceIncluded String 65hi def link sliceQualifier Keyword 66hi def link sliceInclude Include 67hi def link sliceGuard PreProc 68hi def link sliceBoolean Boolean 69hi def link sliceFloat Number 70hi def link sliceNumber Number 71hi def link sliceOctal Number 72hi def link sliceOctalZero Special 73hi def link sliceNumberError Special 74 75 76let b:current_syntax = "slice" 77 78" vim: ts=8 79