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 59command -nargs=+ HiLink hi def link <args> 60 61HiLink sliceComment Comment 62HiLink sliceConstruct Keyword 63HiLink sliceType Type 64HiLink sliceString String 65HiLink sliceIncluded String 66HiLink sliceQualifier Keyword 67HiLink sliceInclude Include 68HiLink sliceGuard PreProc 69HiLink sliceBoolean Boolean 70HiLink sliceFloat Number 71HiLink sliceNumber Number 72HiLink sliceOctal Number 73HiLink sliceOctalZero Special 74HiLink sliceNumberError Special 75 76delcommand HiLink 77 78let b:current_syntax = "slice" 79 80" vim: ts=8 81