xref: /vim-8.2.3635/runtime/syntax/slice.vim (revision f37506f6)
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