1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: Slice (ZeroC's Specification Language for Ice) 39372a11cSBram Moolenaar" Maintainer: Morel Bodin <[email protected]> 49372a11cSBram Moolenaar" Last Change: 2005 Dec 03 5071d4279SBram Moolenaar 689bcfda6SBram Moolenaar" quit when a syntax file was already loaded 789bcfda6SBram Moolenaarif exists("b:current_syntax") 8071d4279SBram Moolenaar finish 9071d4279SBram Moolenaarendif 10071d4279SBram Moolenaar 11071d4279SBram Moolenaar" The Slice keywords 12071d4279SBram Moolenaar 13071d4279SBram Moolenaarsyn keyword sliceType bool byte double float int long short string void 14071d4279SBram Moolenaarsyn keyword sliceQualifier const extends idempotent implements local nonmutating out throws 159372a11cSBram Moolenaarsyn keyword sliceConstruct class enum exception dictionary interface module LocalObject Object sequence struct 16071d4279SBram Moolenaarsyn keyword sliceQualifier const extends idempotent implements local nonmutating out throws 17071d4279SBram Moolenaarsyn keyword sliceBoolean false true 18071d4279SBram Moolenaar 19071d4279SBram Moolenaar" Include directives 20ac7bd638SBram Moolenaarsyn region sliceIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ 21071d4279SBram Moolenaarsyn match sliceIncluded display contained "<[^>]*>" 22071d4279SBram Moolenaarsyn match sliceInclude display "^\s*#\s*include\>\s*["<]" contains=sliceIncluded 23071d4279SBram Moolenaar 24071d4279SBram Moolenaar" Double-include guards 25071d4279SBram Moolenaarsyn region sliceGuard start="^#\(define\|ifndef\|endif\)" end="$" 26071d4279SBram Moolenaar 27071d4279SBram Moolenaar" Strings and characters 28071d4279SBram Moolenaarsyn region sliceString start=+"+ end=+"+ 29071d4279SBram Moolenaar 30071d4279SBram Moolenaar" Numbers (shamelessly ripped from c.vim, only slightly modified) 31071d4279SBram Moolenaar"integer number, or floating point number without a dot and with "f". 32071d4279SBram Moolenaarsyn case ignore 33071d4279SBram Moolenaarsyn match sliceNumbers display transparent "\<\d\|\.\d" contains=sliceNumber,sliceFloat,sliceOctal 34071d4279SBram Moolenaarsyn match sliceNumber display contained "\d\+" 35071d4279SBram Moolenaar"hex number 36071d4279SBram Moolenaarsyn match sliceNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" 37071d4279SBram Moolenaar" Flag the first zero of an octal number as something special 38071d4279SBram Moolenaarsyn match sliceOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=sliceOctalZero 39071d4279SBram Moolenaarsyn match sliceOctalZero display contained "\<0" 40071d4279SBram Moolenaarsyn match sliceFloat display contained "\d\+f" 41071d4279SBram Moolenaar"floating point number, with dot, optional exponent 42071d4279SBram Moolenaarsyn match sliceFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" 43071d4279SBram Moolenaar"floating point number, starting with a dot, optional exponent 44071d4279SBram Moolenaarsyn match sliceFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" 45071d4279SBram Moolenaar"floating point number, without dot, with exponent 46071d4279SBram Moolenaarsyn match sliceFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>" 47071d4279SBram Moolenaar" flag an octal number with wrong digits 48071d4279SBram Moolenaarsyn case match 49071d4279SBram Moolenaar 50071d4279SBram Moolenaar 51071d4279SBram Moolenaar" Comments 52071d4279SBram Moolenaarsyn region sliceComment start="/\*" end="\*/" 53071d4279SBram Moolenaarsyn match sliceComment "//.*" 54071d4279SBram Moolenaar 55071d4279SBram Moolenaarsyn sync ccomment sliceComment 56071d4279SBram Moolenaar 57071d4279SBram Moolenaar" Define the default highlighting. 5889bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 59071d4279SBram Moolenaar 60*f37506f6SBram Moolenaarhi def link sliceComment Comment 61*f37506f6SBram Moolenaarhi def link sliceConstruct Keyword 62*f37506f6SBram Moolenaarhi def link sliceType Type 63*f37506f6SBram Moolenaarhi def link sliceString String 64*f37506f6SBram Moolenaarhi def link sliceIncluded String 65*f37506f6SBram Moolenaarhi def link sliceQualifier Keyword 66*f37506f6SBram Moolenaarhi def link sliceInclude Include 67*f37506f6SBram Moolenaarhi def link sliceGuard PreProc 68*f37506f6SBram Moolenaarhi def link sliceBoolean Boolean 69*f37506f6SBram Moolenaarhi def link sliceFloat Number 70*f37506f6SBram Moolenaarhi def link sliceNumber Number 71*f37506f6SBram Moolenaarhi def link sliceOctal Number 72*f37506f6SBram Moolenaarhi def link sliceOctalZero Special 73*f37506f6SBram Moolenaarhi def link sliceNumberError Special 74071d4279SBram Moolenaar 75071d4279SBram Moolenaar 76071d4279SBram Moolenaarlet b:current_syntax = "slice" 77071d4279SBram Moolenaar 78071d4279SBram Moolenaar" vim: ts=8 79