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