Merge branch 'hack/autopaste'
[vim-kana.git] / runtime / syntax / slice.vim
blob8a4d6751a77f3e7a00dfda9ec67ac650d465391d
1 " Vim syntax file
2 " Language:     Slice (ZeroC's Specification Language for Ice)
3 " Maintainer:   Morel Bodin <slice06@nym.hush.com>
4 " Last Change:  2005 Dec 03
6 " For version 5.x: Clear all syntax items
7 " For version 6.x: Quit when a syntax file was already loaded
8 if version < 600
9   syntax clear
10 elseif exists("b:current_syntax")
11   finish
12 endif
14 " The Slice keywords
16 syn keyword sliceType       bool byte double float int long short string void
17 syn keyword sliceQualifier  const extends idempotent implements local nonmutating out throws
18 syn keyword sliceConstruct  class enum exception dictionary interface module LocalObject Object sequence struct
19 syn keyword sliceQualifier  const extends idempotent implements local nonmutating out throws
20 syn keyword sliceBoolean    false true
22 " Include directives
23 syn match   sliceIncluded   display contained "<[^>]*>"
24 syn match   sliceInclude    display "^\s*#\s*include\>\s*["<]" contains=sliceIncluded
26 " Double-include guards
27 syn region  sliceGuard      start="^#\(define\|ifndef\|endif\)" end="$"
29 " Strings and characters
30 syn region sliceString          start=+"+  end=+"+
32 " Numbers (shamelessly ripped from c.vim, only slightly modified)
33 "integer number, or floating point number without a dot and with "f".
34 syn case ignore
35 syn match   sliceNumbers    display transparent "\<\d\|\.\d" contains=sliceNumber,sliceFloat,sliceOctal
36 syn match   sliceNumber     display contained "\d\+"
37 "hex number
38 syn match   sliceNumber     display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
39 " Flag the first zero of an octal number as something special
40 syn match   sliceOctal      display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=sliceOctalZero
41 syn match   sliceOctalZero  display contained "\<0"
42 syn match   sliceFloat      display contained "\d\+f"
43 "floating point number, with dot, optional exponent
44 syn match   sliceFloat      display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
45 "floating point number, starting with a dot, optional exponent
46 syn match   sliceFloat      display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
47 "floating point number, without dot, with exponent
48 syn match   sliceFloat      display contained "\d\+e[-+]\=\d\+[fl]\=\>"
49 " flag an octal number with wrong digits
50 syn case match
53 " Comments
54 syn region sliceComment    start="/\*"  end="\*/"
55 syn match sliceComment  "//.*"
57 syn sync ccomment sliceComment
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
62 if 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
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
85   delcommand HiLink
86 endif
88 let b:current_syntax = "slice"
90 " vim: ts=8