neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

slice.vim (2928B)


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