summaryrefslogtreecommitdiff
path: root/runtime/syntax/slice.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/slice.vim')
-rw-r--r--runtime/syntax/slice.vim90
1 files changed, 90 insertions, 0 deletions
diff --git a/runtime/syntax/slice.vim b/runtime/syntax/slice.vim
new file mode 100644
index 000000000..e8f876c8b
--- /dev/null
+++ b/runtime/syntax/slice.vim
@@ -0,0 +1,90 @@
+" Vim syntax file
+" Language: Slice (ZeroC's Specification Language for Ice)
+" Maintainer: Morel Bodin <bodin@tuxfamily.net>
+" Last Change: 2003 Sep 24
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+" The Slice keywords
+
+syn keyword sliceType bool byte double float int long short string void
+syn keyword sliceQualifier const extends idempotent implements local nonmutating out throws
+syn keyword sliceConstruct class enum exception dictionnary interface module LocalObject Object sequence struct
+syn keyword sliceQualifier const extends idempotent implements local nonmutating out throws
+syn keyword sliceBoolean false true
+
+" Include directives
+syn match sliceIncluded display contained "<[^>]*>"
+syn match sliceInclude display "^\s*#\s*include\>\s*["<]" contains=sliceIncluded
+
+" Double-include guards
+syn region sliceGuard start="^#\(define\|ifndef\|endif\)" end="$"
+
+" Strings and characters
+syn region sliceString start=+"+ end=+"+
+
+" Numbers (shamelessly ripped from c.vim, only slightly modified)
+"integer number, or floating point number without a dot and with "f".
+syn case ignore
+syn match sliceNumbers display transparent "\<\d\|\.\d" contains=sliceNumber,sliceFloat,sliceOctal
+syn match sliceNumber display contained "\d\+"
+"hex number
+syn match sliceNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
+" Flag the first zero of an octal number as something special
+syn match sliceOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=sliceOctalZero
+syn match sliceOctalZero display contained "\<0"
+syn match sliceFloat display contained "\d\+f"
+"floating point number, with dot, optional exponent
+syn match sliceFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
+"floating point number, starting with a dot, optional exponent
+syn match sliceFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
+"floating point number, without dot, with exponent
+syn match sliceFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>"
+" flag an octal number with wrong digits
+syn case match
+
+
+" Comments
+syn region sliceComment start="/\*" end="\*/"
+syn match sliceComment "//.*"
+
+syn sync ccomment sliceComment
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_slice_syn_inits")
+ if version < 508
+ let did_slice_syn_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ endif
+
+ HiLink sliceComment Comment
+ HiLink sliceConstruct Keyword
+ HiLink sliceType Type
+ HiLink sliceString String
+ HiLink sliceIncluded String
+ HiLink sliceQualifier Keyword
+ HiLink sliceInclude Include
+ HiLink sliceGuard PreProc
+ HiLink sliceBoolean Boolean
+ HiLink sliceFloat Number
+ HiLink sliceNumber Number
+ HiLink sliceOctal Number
+ HiLink sliceOctalZero Special
+ HiLink sliceNumberError Special
+
+ delcommand HiLink
+endif
+
+let b:current_syntax = "slice"
+
+" vim: ts=8