xref: /vim-8.2.3635/runtime/syntax/slice.vim (revision 044b68f4)
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" For version 5.x: Clear all syntax items
7" For version 6.x: Quit when a syntax file was already loaded
8if version < 600
9  syntax clear
10elseif exists("b:current_syntax")
11  finish
12endif
13
14" The Slice keywords
15
16syn keyword sliceType	    bool byte double float int long short string void
17syn keyword sliceQualifier  const extends idempotent implements local nonmutating out throws
18syn keyword sliceConstruct  class enum exception dictionary interface module LocalObject Object sequence struct
19syn keyword sliceQualifier  const extends idempotent implements local nonmutating out throws
20syn keyword sliceBoolean    false true
21
22" Include directives
23syn match   sliceIncluded   display contained "<[^>]*>"
24syn match   sliceInclude    display "^\s*#\s*include\>\s*["<]" contains=sliceIncluded
25
26" Double-include guards
27syn region  sliceGuard      start="^#\(define\|ifndef\|endif\)" end="$"
28
29" Strings and characters
30syn region sliceString		start=+"+  end=+"+
31
32" Numbers (shamelessly ripped from c.vim, only slightly modified)
33"integer number, or floating point number without a dot and with "f".
34syn case ignore
35syn match   sliceNumbers    display transparent "\<\d\|\.\d" contains=sliceNumber,sliceFloat,sliceOctal
36syn match   sliceNumber     display contained "\d\+"
37"hex number
38syn match   sliceNumber     display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
39" Flag the first zero of an octal number as something special
40syn match   sliceOctal      display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=sliceOctalZero
41syn match   sliceOctalZero  display contained "\<0"
42syn match   sliceFloat      display contained "\d\+f"
43"floating point number, with dot, optional exponent
44syn match   sliceFloat      display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
45"floating point number, starting with a dot, optional exponent
46syn match   sliceFloat      display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
47"floating point number, without dot, with exponent
48syn match   sliceFloat      display contained "\d\+e[-+]\=\d\+[fl]\=\>"
49" flag an octal number with wrong digits
50syn case match
51
52
53" Comments
54syn region sliceComment    start="/\*"  end="\*/"
55syn match sliceComment	"//.*"
56
57syn sync ccomment sliceComment
58
59" Define the default highlighting.
60" For version 5.7 and earlier: only when not done already
61" For version 5.8 and later: only when an item doesn't have highlighting yet
62if version >= 508 || !exists("did_slice_syn_inits")
63  if version < 508
64    let did_slice_syn_inits = 1
65    command -nargs=+ HiLink hi link <args>
66  else
67    command -nargs=+ HiLink hi def link <args>
68  endif
69
70  HiLink sliceComment	Comment
71  HiLink sliceConstruct	Keyword
72  HiLink sliceType	Type
73  HiLink sliceString	String
74  HiLink sliceIncluded	String
75  HiLink sliceQualifier	Keyword
76  HiLink sliceInclude	Include
77  HiLink sliceGuard	PreProc
78  HiLink sliceBoolean	Boolean
79  HiLink sliceFloat	Number
80  HiLink sliceNumber	Number
81  HiLink sliceOctal	Number
82  HiLink sliceOctalZero	Special
83  HiLink sliceNumberError Special
84
85  delcommand HiLink
86endif
87
88let b:current_syntax = "slice"
89
90" vim: ts=8
91