-" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.
-UseVimball
-finish
-ftplugin/edc.vim [[[1
-24
-" Vim filetype plugin file
-" Language: EDC
-" Maintainer: Viktor Kojouharov
-" Latest Revision: 2006-10-29
-
-if exists("b:did_ftplugin")
- finish
-endif
-let b:did_ftplugin = 1
-
-let b:undo_ftplugin = "setl com< cms< inc< fo< efm< mp<"
-
-setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
-setlocal commentstring=/*%s*/
-setlocal formatoptions-=t formatoptions+=croql
-setlocal include=^\s*#\s*include
-setlocal efm=edje_cc:%s.\ %f:%l\ %m
-setlocal mp=edje_cc\ %
-
-if exists('&ofu')
- setlocal ofu=edccomplete#Complete
- setlocal cfu=edccomplete#Complete
-endif
-
-syntax/edc.vim [[[1
-235
-" Vim syntax file
-" Language: EDC
-" Maintainer: Viktor Kojouharov
-" Last Change: 2007 02 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
-
-" A bunch of useful keywords
-syn keyword edcBlock images data fonts collections group contained
-syn keyword edcBlock part parts dragable description contained
-syn keyword edcBlock text font fill origin size image contained
-syn keyword edcBlock programs program styles style contained
-syn keyword edcBlock gradient spectra spectrum contained
-syn keyword edcBlock color_classes color_class rel1 rel2 contained
-syn keyword edcBlock items item file params externals contained
-syn keyword edcBlock map rotation perspective script lua_script contained
-
-syn keyword edcLabel item name alias min max type effect contained
-syn keyword edcLabel mouse_events repeat_events clip_to contained
-syn keyword edcLabel x y z confine events scale contained
-syn keyword edcLabel ignore_flags precise_is_inside contained
-syn keyword edcLabel use_alternate_font_metrics entry_mode contained
-syn keyword edcLabel source source2 source3 source4 contained
-syn keyword edcLabel source5 source6 multiline pointer_mode contained
-syn keyword edcLabel state visible step aspect fixed middle contained
-syn keyword edcLabel aspect_preference elipsis image contained
-syn keyword edcLabel relative offset to to_x to_y contained
-syn keyword edcLabel border border_scale scale_hint color color2 color3 font size contained
-syn keyword edcLabel signal action transition in filter contained
-syn keyword edcLabel target after fit align contained
-syn keyword edcLabel text smooth inherit tag base style contained
-syn keyword edcLabel text_source color_class text_class contained
-syn keyword edcLabel spectrum angle spread normal tween contained
-syn keyword edcLabel padding prefer weight aspect_mode contained
-syn keyword edcLabel options layout position span contained
-syn keyword edcLabel homogeneous contained
-syn keyword edcLabel on perspective light perspective_on contained
-syn keyword edcLabel backface_cull alpha center focus zplane contained
-syn keyword edcLabel int double string external script_only contained
-
-syn keyword edcConstant COMP RAW LOSSY NONE ON_HOLD AUTOGRAB NOGRAB
-syn keyword edcConstant TEXT IMAGE RECT TEXTBLOCK SWALLOW GRADIENT GROUP
-syn keyword edcConstant NONE PLAIN OUTLINE SOFT_OUTLINE SHADOW
-syn keyword edcConstant SOFT_SHADOW OUTLINE_SHADOW OUTLINE_SOFT_SHADOW
-syn keyword edcConstant GLOW FAR_SHADOW FAR_SOFT_SHADOW
-syn keyword edcConstant STATE_SET ACTION_STOP SIGNAL_EMIT FOCUS_SET
-syn keyword edcConstant DRAG_VAL_SET DRAG_VAL_STEP DRAG_VAL_PAGE
-syn keyword edcConstant LINEAR SINUSOIDAL ACCELERATE DECELERATE
-syn keyword edcConstant VERTICAL HORIZONTAL BOTH BOX TABLE
-syn keyword edcConstant EDITABLE PASSWORD "default"
-
-syn keyword edcTodo contained TODO FIXME XXX
-
-syn match edcLabelMatch "\w\+:" contains=edcLabel
-syn match edcBlockMatch "\w\+\_s*{" contains=edcBlock
-syn match edcBlockMatch "\w\+\.\a"me=e-2 contains=edcBlock
-" edcCommentGroup allows adding matches for special things in comments
-syn cluster edcCommentGroup contains=edcTodo
-
-" String and Character constants
-" Highlight special characters (those which have a backslash) differently
-syn match edcSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
-syn region edcString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=edcSpecial
-syn match edcFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([diuoxXfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
-syn match edcFormat display "%%" contained
-syn region edcString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat
-
-syn match edcCharacter "L\='[^\\]'"
-syn match edcCharacter "L'[^']*'" contains=edcSpecial
-syn match edcSpecialError "L\='\\[^'\"?\\abfnrtv]'"
-syn match edcSpecialCharacter "L\='\\['\"?\\abfnrtv]'"
-syn match edcSpecialCharacter display "L\='\\\o\{1,3}'"
-syn match edcSpecialCharacter display "'\\x\x\{1,2}'"
-syn match edcSpecialCharacter display "L'\\x\x\+'"
-
-"when wanted, highlight trailing white space
-if exists("edc_space_errors")
- if !exists("edc_no_trail_space_error")
- syn match edcSpaceError display excludenl "\s\+$"
- endif
- if !exists("edc_no_tab_space_error")
- syn match edcSpaceError display " \+\t"me=e-1
- endif
-endif
-
-"catch errors caused by wrong parenthesis and brackets
-syn cluster edcParenGroup contains=edcParenError,edcIncluded,edcSpecial,edcCommentSkip,edcCommentString,edcComment2String,@edcCommentGroup,edcCommentStartError,edcUserCont,edcUserLabel,edcBitField,edcCommentSkip,edcOctalZero,edcFormat,edcNumber,edcFloat,edcOctal,edcOctalError,edcNumbersCom
-if exists("edc_no_bracket_error")
- syn region edcParen transparent start='(' end=')' contains=ALLBUT,@edcParenGroup
- syn match edcParenError display ")"
- syn match edcErrInParen display contained "[{}]"
-else
- syn region edcParen transparent start='(' end=')' contains=ALLBUT,@edcParenGroup,edcErrInBracket
- syn match edcParenError display "[\])]"
- syn match edcErrInParen display contained "[\]{}]"
- syn region edcBracket transparent start='\[' end=']' contains=ALLBUT,@edcParenGroup,edcErrInParen
- syn match edcErrInBracket display contained "[);{}]"
-endif
-
-"integer number, or floating point number without a dot and with "f".
-syn case ignore
-syn match edcNumbers display transparent "\<\d\|\.\d" contains=edcNumber,edcFloat,edcOctalError,edcOctal
-" Same, but without octal error (for comments)
-syn match edcNumbersCom display contained transparent "\<\d\|\.\d" contains=edcNumber,edcFloat,edcOctal
-syn match edcNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
-"hex number
-syn match edcNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
-" Flag the first zero of an octal number as something special
-syn match edcOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=edcOctalZero
-syn match edcOctalZero display contained "\<0"
-syn match edcFloat display contained "\d\+f"
-"floating point number, with dot, optional exponent
-syn match edcFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
-"floating point number, starting with a dot, optional exponent
-syn match edcFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
-"floating point number, without dot, with exponent
-syn match edcFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>"
-" flag an octal number with wrong digits
-syn match edcOctalError display contained "0\o*[89]\d*"
-syn case match
-
-if exists("edc_comment_strings")
- " A comment can contain edcString, edcCharacter and edcNumber.
- " But a "*/" inside a edcString in a edcComment DOES end the comment! So we
- " need to use a special type of edcString: edcCommentString, which also ends
- " on "*/", and sees a "*" at the start of the line as comment again.
- " Unfortunately this doesn't very well work for // type of comments :-(
- syntax match edcCommentSkip contained "^\s*\*\($\|\s\+\)"
- syntax region edcCommentString contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=edcSpecial,edcCommentSkip
- syntax region edcComment2String contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=edcSpecial
- syntax region edcCommentL start="//" skip="\\$" end="$" keepend contains=@edcCommentGroup,edcComment2String,edcCharacter,edcNumbersCom,edcSpaceError
- syntax region edcComment matchgroup=edcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@edcCommentGroup,edcCommentStartError,edcCommentString,edcCharacter,edcNumbersCom,edcSpaceError
-else
- syn region edcCommentL start="//" skip="\\$" end="$" keepend contains=@edcCommentGroup,edcSpaceError
- syn region edcComment matchgroup=edcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@edcCommentGroup,edcCommentStartError,edcSpaceError
-endif
-" keep a // comment separately, it terminates a preproc. conditional
-syntax match edcCommentError display "\*/"
-syntax match edcCommentStartError display "/\*"me=e-1 contained
-
-syn region edcPreCondit start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=edcComment,edcCharacter,edcParenError,edcNumbers,edcCommentError,edcSpaceError
-syn match edcPreCondit display "^\s*#\s*\(else\|endif\)\>"
-syn region edcIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
-syn match edcIncluded display contained "<[^>]*>"
-syn match edcInclude display "^\s*#\s*include\>\s*["<]" contains=edcIncluded
-syn cluster edcPreProcGroup contains=edcPreCondit,edcIncluded,edcInclude,edcDefine,edcErrInParen,edcErrInBracket,edcCommentSkip,edcCommentString,edcComment2String,@edcCommentGroup,edcCommentStartError,edcParen,edcBracket,edcMulti,edcUserLabel
-syn cluster edcAlphaNum contains=edcSpecial,edcOctalZero,edcFormat,edcNumber,edcFloat,edcOctal,edcOctalError,edcNumbersCom,edcString
-syn region edcDefine start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@edcPreProcGroup
-syn region edcPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@edcPreProcGroup
-
-syn match edcUserLabel display "\I\i*" contained
-
-syn include @edcEmbryo syntax/embryo.vim
-unlet b:current_syntax
-syn region edcScript matchgroup=edcScriptTag start="\<script\_s*{" end="}" contains=@edcEmbryo,edcScriptTag
-syn keyword edcScriptTag contained script
-
-syn include @edcLua syntax/lua.vim
-unlet b:current_syntax
-syn region edcLuaScript matchgroup=edcLuaScriptTag start="\<lua_script\_s*{" end="}" contains=@edcLua,edcLuaScriptTag
-syn keyword edcLuaScriptTag contained script
-
-if exists("edc_minlines")
- let b:edc_minlines = edc_minlines
-else
- let b:edc_minlines = 50 " #if 0 constructs can be long
-endif
-exec "syn sync ccomment edcComment minlines=" . b:edc_minlines
-"syn sync fromstart
-
-" 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_edc_syn_inits")
- if version < 508
- let did_edc_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink edcFormat edcSpecial
- HiLink edcCommentL edcComment
- HiLink edcCommentStart edcComment
- HiLink edcLabel Label
- HiLink edcUserLabel Label
- HiLink edcConditional Conditional
- HiLink edcRepeat Repeat
- HiLink edcCharacter Character
- HiLink edcSpecialCharacter cSpecial
- HiLink edcNumber Number
- HiLink edcOctal Number
- HiLink edcOctalZero PreProc " link this to Error if you want
- HiLink edcFloat Float
- HiLink edcOctalError edcError
- HiLink edcParenError edcError
- HiLink edcErrInParen edcError
- HiLink edcErrInBracket edcError
- HiLink edcCommentError edcError
- HiLink edcCommentStartError edcError
- HiLink edcSpaceError edcError
- HiLink edcSpecialError edcError
- HiLink edcOperator Operator
- HiLink edcStructure Structure
- HiLink edcStorageClass StorageClass
- HiLink edcInclude Include
- HiLink edcPreProc PreProc
- HiLink edcDefine Macro
- HiLink edcIncluded edcString
- HiLink edcError Error
- HiLink edcBlock Function
- HiLink edcScriptTag Function
- HiLink edcLuaScriptTag Function
- HiLink edcPreCondit PreCondit
- HiLink edcConstant Constant
- HiLink edcCommentString edcString
- HiLink edcComment2String edcString
- HiLink edcCommentSkip edcComment
- HiLink edcString String
- HiLink edcComment Comment
- HiLink edcSpecial SpecialChar
- HiLink edcTodo Todo
-
- delcommand HiLink
-endif
-
-let b:current_syntax = "edc"
-
-" vim: ts=8
-indent/edc.vim [[[1
-83
-" Vim indent file
-" Language: EDC
-" Maintainer: Viktor Kojouharov
-" Latest Revision: 2007 02 24
-
-if exists("b:did_indent")
- finish
-endif
-let b:did_indent = 1
-
-setlocal indentexpr=GetEDCIndent()
-setlocal indentkeys=0{,0},!^F,o,O
-
-if exists("*GetEDCIndent")
- finish
-endif
-
-function s:prevnonblanknoncomment(lnum)
- let lnum = a:lnum
- while lnum > 1
- let lnum = prevnonblank(lnum)
- let line = getline(lnum)
- if line =~ '\*/'
- while lnum > 1 && line !~ '/\*'
- let lnum -= 1
- endwhile
- if line =~ '^\s*/\*'
- let lnum -= 1
- else
- break
- endif
- elseif line =~ '^\s*//'
- let lnum -= 1
- else
- break
- endif
- endwhile
- return lnum
-endfunction
-
-function s:count_braces(lnum, count_open)
- let n_open = 0
- let n_close = 0
- let line = getline(a:lnum)
- let pattern = '[{}]'
- let i = match(line, pattern)
- while i != -1
- if synIDattr(synID(a:lnum, i + 1, 0), 'name') !~ 'c\%(CommentL\|Comment\|StringQ\{1,2}\)'
- if line[i] == '{'
- let n_open += 1
- elseif line[i] == '}'
- if n_open > 0
- let n_open -= 1
- else
- let n_close += 1
- endif
- endif
- endif
- let i = match(line, pattern, i + 1)
- endwhile
- return a:count_open ? n_open : n_close
-endfunction
-
-function GetEDCIndent()
- let line = getline(v:lnum)
- if line =~ '^\s*\*' || line =~ '^\s*//' || line =~ '^\s*}'
- return cindent(v:lnum)
- endif
-
- let pnum = s:prevnonblanknoncomment(v:lnum - 1)
- if pnum == 0
- return 0
- endif
-
- let ind = indent(pnum) + s:count_braces(pnum, 1) * &sw
-
- let pline = getline(pnum)
- if pline =~ '}\s*$'
- let ind -= (s:count_braces(pnum, 0) - (pline =~ '^\s*}' ? 1 : 0)) * &sw
- endif
-
- return ind
-endfunction
-ftdetect/edc.vim [[[1
-3
-au BufRead,BufNewFile *.edc set filetype=edc
-au BufRead,BufNewFile *.sma set filetype=embryo
-au BufRead,BufNewFile *.embryo set filetype=embryo
-autoload/edccomplete.vim [[[1
-892
" Vim completion script
" Language: EDC
" Maintainer: Viktor Kojouharov
\ 'TABLE': '',
\ 'ITEM': '',
\ }
-syntax/embryo.vim [[[1
-195
-" Vim syntax file
-" Language: Embryo
-" Maintainer: Viktor Kojouharov
-" Last Change: 2006 10 06
-
-" 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
-
-" A bunch of useful keywords
-syn keyword embryoConditional if else switch
-syn keyword embryoRepeat while for do in
-syn keyword embryoBranch break continue
-syn keyword embryoOperator new
-syn keyword embryoType Float State_Param Msg_Type enum
-syn keyword embryoStatement return with native stock forward
-syn keyword embryoLabel case default
-syn keyword embryoReserved public
-syn keyword embryoEdjeKey PART PROGRAM
-
-syn keyword embryoTodo contained TODO FIXME XXX
-
-" embryoCommentGroup allows adding matches for special things in comments
-syn cluster embryoCommentGroup contains=embryoTodo
-
-" String and Character constants
-" Highlight special characters (those which have a backslash) differently
-syn match embryoSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
-syn region embryoString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=embryoSpecial
-syn match embryoFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([diuoxXfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
-syn match embryoFormat display "%%" contained
-syn region embryoString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat
-
-syn match embryoCharacter "L\='[^\\]'"
-syn match embryoCharacter "L'[^']*'" contains=embryoSpecial
-syn match embryoSpecialError "L\='\\[^'\"?\\abfnrtv]'"
-syn match embryoSpecialCharacter "L\='\\['\"?\\abfnrtv]'"
-syn match embryoSpecialCharacter display "L\='\\\o\{1,3}'"
-syn match embryoSpecialCharacter display "'\\x\x\{1,2}'"
-syn match embryoSpecialCharacter display "L'\\x\x\+'"
-
-"when wanted, highlight trailing white space
-if exists("embryo_space_errors")
- if !exists("embryo_no_trail_space_error")
- syn match embryoSpaceError display excludenl "\s\+$"
- endif
- if !exists("embryo_no_tab_space_error")
- syn match embryoSpaceError display " \+\t"me=e-1
- endif
-endif
-
-"catch errors caused by wrong parenthesis and brackets
-syn cluster embryoParenGroup contains=embryoParenError,embryoIncluded,embryoSpecial,embryoCommentSkip,embryoCommentString,embryoComment2String,@embryoCommentGroup,embryoCommentStartErr,embryoUserCont,embryoUserLabel,embryoBitField,embryoCommentSkip,embryoOctalZero,embryoFormat,embryoNumber,embryoFloat,embryoOctal,embryoOctalError,embryoNumbersCom
-if exists("embryo_no_bracket_error")
- syn region embryoParen transparent start='(' end=')' contains=ALLBUT,@embryoParenGroup
- syn match embryoParenError display ")"
- syn match embryoErrInParen display contained "[{}]"
-else
- syn region embryoParen transparent start='(' end=')' contains=ALLBUT,@embryoParenGroup,embryoErrInBracket
- syn match embryoParenError display "[\])]"
- syn match embryoErrInParen display contained "[\]{}]"
- syn region embryoBracket transparent start='\[' end=']' contains=ALLBUT,@embryoParenGroup,embryoErrInParen
- syn match embryoErrInBracket display contained "[);{}]"
-endif
-
-syn region embryoBrace start='{' end='}' transparent keepend
-"integer number, or floating point number without a dot and with "f".
-syn case ignore
-syn match embryoNumbers display transparent "\<\d\|\.\d" contains=embryoNumber,embryoFloat,embryoOctalError,embryoOctal
-" Same, but without octal error (for comments)
-syn match embryoNumbersCom display contained transparent "\<\d\|\.\d" contains=embryoNumber,embryoFloat,embryoOctal
-syn match embryoNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
-"hex number
-syn match embryoNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
-" Flag the first zero of an octal number as something special
-syn match embryoOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=embryoOctalZero
-syn match embryoOctalZero display contained "\<0"
-syn match embryoFloat display contained "\d\+f"
-"floating point number, with dot, optional exponent
-syn match embryoFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
-"floating point number, starting with a dot, optional exponent
-syn match embryoFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
-"floating point number, without dot, with exponent
-syn match embryoFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>"
-" flag an octal number with wrong digits
-syn match embryoOctalError display contained "0\o*[89]\d*"
-syn case match
-
-if exists("embryo_comment_strings")
- " A comment can contain embryoString, embryoCharacter and embryoNumber.
- " But a "*/" inside a embryoString in a embryoComment DOES end the comment! So we
- " need to use a special type of embryoString: embryoCommentString, which also ends
- " on "*/", and sees a "*" at the start of the line as comment again.
- " Unfortunately this doesn't very well work for // type of comments :-(
- syntax match embryoCommentSkip contained "^\s*\*\($\|\s\+\)"
- syntax region embryoCommentString contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=embryoSpecial,embryoCommentSkip
- syntax region embryoComment2String contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=embryoSpecial
- syntax region embryoCommentL start="//" skip="\\$" end="$" keepend contains=@embryoCommentGroup,embryoComment2String,embryoCharacter,embryoNumbersCom,embryoSpaceError
- syntax region embryoComment matchgroup=embryoCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@embryoCommentGroup,embryoCommentStartErr,embryoCommentString,embryoCharacter,embryoNumbersCom,embryoSpaceError
-else
- syn region embryoCommentL start="//" skip="\\$" end="$" keepend contains=@embryoCommentGroup,embryoSpaceError
- syn region embryoComment matchgroup=embryoCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@embryoCommentGroup,embryoCommentStartErr,embryoSpaceError
-endif
-" keep a // comment separately, it terminates a preproc. conditional
-syntax match embryoCommentError display "\*/"
-syntax match embryoCommentStartErr display "/\*"me=e-1 contained
-
-syn region embryoPreCondit start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=embryoComment,embryoCharacter,embryoParenError,embryoNumbers,embryoCommentError,embryoSpaceError
-syn match embryoPreCondit display "^\s*#\s*\(else\|endif\)\>"
-syn region embryoIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
-syn match embryoIncluded display contained "<[^>]*>"
-syn match embryoInclude display "^\s*#\s*include\>\s*["<]" contains=embryoIncluded
-syn cluster embryoPreProcGroup contains=embryoPreCondit,embryoIncluded,embryoInclude,embryoDefine,embryoErrInParen,embryoErrInBracket,embryoCommentSkip,embryoCommentString,embryoComment2String,@embryoCommentGroup,embryoCommentStartErr,embryoParen,embryoBracket,embryoMulti,embryoUserLabel
-syn cluster embryoAlphaNum contains=embryoSpecial,embryoOctalZero,embryoFormat,embryoNumber,embryoFloat,embryoOctal,embryoOctalError,embryoNumbersCom,embryoString
-syn region embryoDefine start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@embryoPreProcGroup
-syn region embryoPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@embryoPreProcGroup
-
-syn match embryoUserLabel display "\I\i*" contained
-
-syn match embryoFunctionName "\h\w*\s*\%((\@=\)"
-
-if exists("embryo_minlines")
- let b:embryo_minlines = embryo_minlines
-else
- let b:embryo_minlines = 50 " #if 0 constructs can be long
-endif
-exec "syn sync ccomment embryoComment minlines=" . b:embryo_minlines
-"syn sync fromstart
-
-" 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_embryo_syn_inits")
- if version < 508
- let did_embryo_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink embryoFormat embryoSpecial
- HiLink embryoCommentL embryoComment
- HiLink embryoCommentStart embryoComment
- HiLink embryoLabel Label
- HiLink embryoUserLabel Label
- HiLink embryoConditional Conditional
- HiLink embryoRepeat Repeat
- HiLink embryoBranch Conditional
- HiLink embryoReserved Keyword
- HiLink embryoCharacter Character
- HiLink embryoSpecialCharacter cSpecial
- HiLink embryoNumber Number
- HiLink embryoOctal Number
- HiLink embryoOctalZero PreProc " link this to Error if you want
- HiLink embryoFloat Float
- HiLink embryoOctalError embryoError
- HiLink embryoParenError embryoError
- HiLink embryoErrInParen embryoError
- HiLink embryoErrInBracket embryoError
- HiLink embryoCommentError embryoError
- HiLink embryoCommentStartErr embryoError
- HiLink embryoSpaceError embryoError
- HiLink embryoSpecialError embryoError
- HiLink embryoOperator Operator
- HiLink embryoStructure Structure
- HiLink embryoEdjeKey Structure
- HiLink embryoStorageClass StorageClass
- HiLink embryoInclude Include
- HiLink embryoPreProc PreProc
- HiLink embryoDefine Macro
- HiLink embryoIncluded embryoString
- HiLink embryoError Error
- HiLink embryoStatement Statement
- HiLink embryoPreCondit PreCondit
- HiLink embryoType Type
- HiLink embryoConstant Constant
- HiLink embryoCommentString embryoString
- HiLink embryoComment2String embryoString
- HiLink embryoCommentSkip embryoComment
- HiLink embryoString String
- HiLink embryoComment Comment
- HiLink embryoSpecial SpecialChar
- HiLink embryoTodo Todo
- HiLink embryoFunctionName Function
-
- delcommand HiLink
-endif
-
-let b:current_syntax = "embryo"
-
-" vim: ts=8
--- /dev/null
+" Vim syntax file
+" Language: EDC
+" Maintainer: Viktor Kojouharov
+" Last Change: 2007 02 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
+
+" A bunch of useful keywords
+syn keyword edcBlock images data fonts collections group contained
+syn keyword edcBlock part parts dragable description contained
+syn keyword edcBlock text font fill origin size image contained
+syn keyword edcBlock programs program styles style contained
+syn keyword edcBlock gradient spectra spectrum contained
+syn keyword edcBlock color_classes color_class rel1 rel2 contained
+syn keyword edcBlock items item file params externals contained
+syn keyword edcBlock map rotation perspective script lua_script contained
+
+syn keyword edcLabel item name alias min max type effect contained
+syn keyword edcLabel mouse_events repeat_events clip_to contained
+syn keyword edcLabel x y z confine events scale contained
+syn keyword edcLabel ignore_flags precise_is_inside contained
+syn keyword edcLabel use_alternate_font_metrics entry_mode contained
+syn keyword edcLabel source source2 source3 source4 contained
+syn keyword edcLabel source5 source6 multiline pointer_mode contained
+syn keyword edcLabel state visible step aspect fixed middle contained
+syn keyword edcLabel aspect_preference elipsis image contained
+syn keyword edcLabel relative offset to to_x to_y contained
+syn keyword edcLabel border border_scale scale_hint color color2 color3 font size contained
+syn keyword edcLabel signal action transition in filter contained
+syn keyword edcLabel target after fit align contained
+syn keyword edcLabel text smooth inherit tag base style contained
+syn keyword edcLabel text_source color_class text_class contained
+syn keyword edcLabel spectrum angle spread normal tween contained
+syn keyword edcLabel padding prefer weight aspect_mode contained
+syn keyword edcLabel options layout position span contained
+syn keyword edcLabel homogeneous contained
+syn keyword edcLabel on perspective light perspective_on contained
+syn keyword edcLabel backface_cull alpha center focus zplane contained
+syn keyword edcLabel int double string external script_only contained
+
+syn keyword edcConstant COMP RAW LOSSY NONE ON_HOLD AUTOGRAB NOGRAB
+syn keyword edcConstant TEXT IMAGE RECT TEXTBLOCK SWALLOW GRADIENT GROUP
+syn keyword edcConstant NONE PLAIN OUTLINE SOFT_OUTLINE SHADOW
+syn keyword edcConstant SOFT_SHADOW OUTLINE_SHADOW OUTLINE_SOFT_SHADOW
+syn keyword edcConstant GLOW FAR_SHADOW FAR_SOFT_SHADOW
+syn keyword edcConstant STATE_SET ACTION_STOP SIGNAL_EMIT FOCUS_SET
+syn keyword edcConstant DRAG_VAL_SET DRAG_VAL_STEP DRAG_VAL_PAGE
+syn keyword edcConstant LINEAR SINUSOIDAL ACCELERATE DECELERATE
+syn keyword edcConstant VERTICAL HORIZONTAL BOTH BOX TABLE
+syn keyword edcConstant EDITABLE PASSWORD "default"
+
+syn keyword edcTodo contained TODO FIXME XXX
+
+syn match edcLabelMatch "\w\+:" contains=edcLabel
+syn match edcBlockMatch "\w\+\_s*{" contains=edcBlock
+syn match edcBlockMatch "\w\+\.\a"me=e-2 contains=edcBlock
+" edcCommentGroup allows adding matches for special things in comments
+syn cluster edcCommentGroup contains=edcTodo
+
+" String and Character constants
+" Highlight special characters (those which have a backslash) differently
+syn match edcSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
+syn region edcString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=edcSpecial
+syn match edcFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([diuoxXfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
+syn match edcFormat display "%%" contained
+syn region edcString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat
+
+syn match edcCharacter "L\='[^\\]'"
+syn match edcCharacter "L'[^']*'" contains=edcSpecial
+syn match edcSpecialError "L\='\\[^'\"?\\abfnrtv]'"
+syn match edcSpecialCharacter "L\='\\['\"?\\abfnrtv]'"
+syn match edcSpecialCharacter display "L\='\\\o\{1,3}'"
+syn match edcSpecialCharacter display "'\\x\x\{1,2}'"
+syn match edcSpecialCharacter display "L'\\x\x\+'"
+
+"when wanted, highlight trailing white space
+if exists("edc_space_errors")
+ if !exists("edc_no_trail_space_error")
+ syn match edcSpaceError display excludenl "\s\+$"
+ endif
+ if !exists("edc_no_tab_space_error")
+ syn match edcSpaceError display " \+\t"me=e-1
+ endif
+endif
+
+"catch errors caused by wrong parenthesis and brackets
+syn cluster edcParenGroup contains=edcParenError,edcIncluded,edcSpecial,edcCommentSkip,edcCommentString,edcComment2String,@edcCommentGroup,edcCommentStartError,edcUserCont,edcUserLabel,edcBitField,edcCommentSkip,edcOctalZero,edcFormat,edcNumber,edcFloat,edcOctal,edcOctalError,edcNumbersCom
+if exists("edc_no_bracket_error")
+ syn region edcParen transparent start='(' end=')' contains=ALLBUT,@edcParenGroup
+ syn match edcParenError display ")"
+ syn match edcErrInParen display contained "[{}]"
+else
+ syn region edcParen transparent start='(' end=')' contains=ALLBUT,@edcParenGroup,edcErrInBracket
+ syn match edcParenError display "[\])]"
+ syn match edcErrInParen display contained "[\]{}]"
+ syn region edcBracket transparent start='\[' end=']' contains=ALLBUT,@edcParenGroup,edcErrInParen
+ syn match edcErrInBracket display contained "[);{}]"
+endif
+
+"integer number, or floating point number without a dot and with "f".
+syn case ignore
+syn match edcNumbers display transparent "\<\d\|\.\d" contains=edcNumber,edcFloat,edcOctalError,edcOctal
+" Same, but without octal error (for comments)
+syn match edcNumbersCom display contained transparent "\<\d\|\.\d" contains=edcNumber,edcFloat,edcOctal
+syn match edcNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
+"hex number
+syn match edcNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
+" Flag the first zero of an octal number as something special
+syn match edcOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=edcOctalZero
+syn match edcOctalZero display contained "\<0"
+syn match edcFloat display contained "\d\+f"
+"floating point number, with dot, optional exponent
+syn match edcFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
+"floating point number, starting with a dot, optional exponent
+syn match edcFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
+"floating point number, without dot, with exponent
+syn match edcFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>"
+" flag an octal number with wrong digits
+syn match edcOctalError display contained "0\o*[89]\d*"
+syn case match
+
+if exists("edc_comment_strings")
+ " A comment can contain edcString, edcCharacter and edcNumber.
+ " But a "*/" inside a edcString in a edcComment DOES end the comment! So we
+ " need to use a special type of edcString: edcCommentString, which also ends
+ " on "*/", and sees a "*" at the start of the line as comment again.
+ " Unfortunately this doesn't very well work for // type of comments :-(
+ syntax match edcCommentSkip contained "^\s*\*\($\|\s\+\)"
+ syntax region edcCommentString contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=edcSpecial,edcCommentSkip
+ syntax region edcComment2String contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=edcSpecial
+ syntax region edcCommentL start="//" skip="\\$" end="$" keepend contains=@edcCommentGroup,edcComment2String,edcCharacter,edcNumbersCom,edcSpaceError
+ syntax region edcComment matchgroup=edcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@edcCommentGroup,edcCommentStartError,edcCommentString,edcCharacter,edcNumbersCom,edcSpaceError
+else
+ syn region edcCommentL start="//" skip="\\$" end="$" keepend contains=@edcCommentGroup,edcSpaceError
+ syn region edcComment matchgroup=edcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@edcCommentGroup,edcCommentStartError,edcSpaceError
+endif
+" keep a // comment separately, it terminates a preproc. conditional
+syntax match edcCommentError display "\*/"
+syntax match edcCommentStartError display "/\*"me=e-1 contained
+
+syn region edcPreCondit start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=edcComment,edcCharacter,edcParenError,edcNumbers,edcCommentError,edcSpaceError
+syn match edcPreCondit display "^\s*#\s*\(else\|endif\)\>"
+syn region edcIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
+syn match edcIncluded display contained "<[^>]*>"
+syn match edcInclude display "^\s*#\s*include\>\s*["<]" contains=edcIncluded
+syn cluster edcPreProcGroup contains=edcPreCondit,edcIncluded,edcInclude,edcDefine,edcErrInParen,edcErrInBracket,edcCommentSkip,edcCommentString,edcComment2String,@edcCommentGroup,edcCommentStartError,edcParen,edcBracket,edcMulti,edcUserLabel
+syn cluster edcAlphaNum contains=edcSpecial,edcOctalZero,edcFormat,edcNumber,edcFloat,edcOctal,edcOctalError,edcNumbersCom,edcString
+syn region edcDefine start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@edcPreProcGroup
+syn region edcPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@edcPreProcGroup
+
+syn match edcUserLabel display "\I\i*" contained
+
+syn include @edcEmbryo syntax/embryo.vim
+unlet b:current_syntax
+syn region edcScript matchgroup=edcScriptTag start="\<script\_s*{" end="}" contains=@edcEmbryo,edcScriptTag
+syn keyword edcScriptTag contained script
+
+syn include @edcLua syntax/lua.vim
+unlet b:current_syntax
+syn region edcLuaScript matchgroup=edcLuaScriptTag start="\<lua_script\_s*{" end="}" contains=@edcLua,edcLuaScriptTag
+syn keyword edcLuaScriptTag contained script
+
+if exists("edc_minlines")
+ let b:edc_minlines = edc_minlines
+else
+ let b:edc_minlines = 50 " #if 0 constructs can be long
+endif
+exec "syn sync ccomment edcComment minlines=" . b:edc_minlines
+"syn sync fromstart
+
+" 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_edc_syn_inits")
+ if version < 508
+ let did_edc_syn_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ endif
+
+ HiLink edcFormat edcSpecial
+ HiLink edcCommentL edcComment
+ HiLink edcCommentStart edcComment
+ HiLink edcLabel Label
+ HiLink edcUserLabel Label
+ HiLink edcConditional Conditional
+ HiLink edcRepeat Repeat
+ HiLink edcCharacter Character
+ HiLink edcSpecialCharacter cSpecial
+ HiLink edcNumber Number
+ HiLink edcOctal Number
+ HiLink edcOctalZero PreProc " link this to Error if you want
+ HiLink edcFloat Float
+ HiLink edcOctalError edcError
+ HiLink edcParenError edcError
+ HiLink edcErrInParen edcError
+ HiLink edcErrInBracket edcError
+ HiLink edcCommentError edcError
+ HiLink edcCommentStartError edcError
+ HiLink edcSpaceError edcError
+ HiLink edcSpecialError edcError
+ HiLink edcOperator Operator
+ HiLink edcStructure Structure
+ HiLink edcStorageClass StorageClass
+ HiLink edcInclude Include
+ HiLink edcPreProc PreProc
+ HiLink edcDefine Macro
+ HiLink edcIncluded edcString
+ HiLink edcError Error
+ HiLink edcBlock Function
+ HiLink edcScriptTag Function
+ HiLink edcLuaScriptTag Function
+ HiLink edcPreCondit PreCondit
+ HiLink edcConstant Constant
+ HiLink edcCommentString edcString
+ HiLink edcComment2String edcString
+ HiLink edcCommentSkip edcComment
+ HiLink edcString String
+ HiLink edcComment Comment
+ HiLink edcSpecial SpecialChar
+ HiLink edcTodo Todo
+
+ delcommand HiLink
+endif
+
+let b:current_syntax = "edc"
+
+" vim: ts=8
--- /dev/null
+" Vim syntax file
+" Language: Embryo
+" Maintainer: Viktor Kojouharov
+" Last Change: 2006 10 06
+
+" 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
+
+" A bunch of useful keywords
+syn keyword embryoConditional if else switch
+syn keyword embryoRepeat while for do in
+syn keyword embryoBranch break continue
+syn keyword embryoOperator new
+syn keyword embryoType Float State_Param Msg_Type enum
+syn keyword embryoStatement return with native stock forward
+syn keyword embryoLabel case default
+syn keyword embryoReserved public
+syn keyword embryoEdjeKey PART PROGRAM
+
+syn keyword embryoTodo contained TODO FIXME XXX
+
+" embryoCommentGroup allows adding matches for special things in comments
+syn cluster embryoCommentGroup contains=embryoTodo
+
+" String and Character constants
+" Highlight special characters (those which have a backslash) differently
+syn match embryoSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
+syn region embryoString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=embryoSpecial
+syn match embryoFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([diuoxXfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
+syn match embryoFormat display "%%" contained
+syn region embryoString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat
+
+syn match embryoCharacter "L\='[^\\]'"
+syn match embryoCharacter "L'[^']*'" contains=embryoSpecial
+syn match embryoSpecialError "L\='\\[^'\"?\\abfnrtv]'"
+syn match embryoSpecialCharacter "L\='\\['\"?\\abfnrtv]'"
+syn match embryoSpecialCharacter display "L\='\\\o\{1,3}'"
+syn match embryoSpecialCharacter display "'\\x\x\{1,2}'"
+syn match embryoSpecialCharacter display "L'\\x\x\+'"
+
+"when wanted, highlight trailing white space
+if exists("embryo_space_errors")
+ if !exists("embryo_no_trail_space_error")
+ syn match embryoSpaceError display excludenl "\s\+$"
+ endif
+ if !exists("embryo_no_tab_space_error")
+ syn match embryoSpaceError display " \+\t"me=e-1
+ endif
+endif
+
+"catch errors caused by wrong parenthesis and brackets
+syn cluster embryoParenGroup contains=embryoParenError,embryoIncluded,embryoSpecial,embryoCommentSkip,embryoCommentString,embryoComment2String,@embryoCommentGroup,embryoCommentStartErr,embryoUserCont,embryoUserLabel,embryoBitField,embryoCommentSkip,embryoOctalZero,embryoFormat,embryoNumber,embryoFloat,embryoOctal,embryoOctalError,embryoNumbersCom
+if exists("embryo_no_bracket_error")
+ syn region embryoParen transparent start='(' end=')' contains=ALLBUT,@embryoParenGroup
+ syn match embryoParenError display ")"
+ syn match embryoErrInParen display contained "[{}]"
+else
+ syn region embryoParen transparent start='(' end=')' contains=ALLBUT,@embryoParenGroup,embryoErrInBracket
+ syn match embryoParenError display "[\])]"
+ syn match embryoErrInParen display contained "[\]{}]"
+ syn region embryoBracket transparent start='\[' end=']' contains=ALLBUT,@embryoParenGroup,embryoErrInParen
+ syn match embryoErrInBracket display contained "[);{}]"
+endif
+
+syn region embryoBrace start='{' end='}' transparent keepend
+"integer number, or floating point number without a dot and with "f".
+syn case ignore
+syn match embryoNumbers display transparent "\<\d\|\.\d" contains=embryoNumber,embryoFloat,embryoOctalError,embryoOctal
+" Same, but without octal error (for comments)
+syn match embryoNumbersCom display contained transparent "\<\d\|\.\d" contains=embryoNumber,embryoFloat,embryoOctal
+syn match embryoNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
+"hex number
+syn match embryoNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
+" Flag the first zero of an octal number as something special
+syn match embryoOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=embryoOctalZero
+syn match embryoOctalZero display contained "\<0"
+syn match embryoFloat display contained "\d\+f"
+"floating point number, with dot, optional exponent
+syn match embryoFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
+"floating point number, starting with a dot, optional exponent
+syn match embryoFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
+"floating point number, without dot, with exponent
+syn match embryoFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>"
+" flag an octal number with wrong digits
+syn match embryoOctalError display contained "0\o*[89]\d*"
+syn case match
+
+if exists("embryo_comment_strings")
+ " A comment can contain embryoString, embryoCharacter and embryoNumber.
+ " But a "*/" inside a embryoString in a embryoComment DOES end the comment! So we
+ " need to use a special type of embryoString: embryoCommentString, which also ends
+ " on "*/", and sees a "*" at the start of the line as comment again.
+ " Unfortunately this doesn't very well work for // type of comments :-(
+ syntax match embryoCommentSkip contained "^\s*\*\($\|\s\+\)"
+ syntax region embryoCommentString contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=embryoSpecial,embryoCommentSkip
+ syntax region embryoComment2String contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=embryoSpecial
+ syntax region embryoCommentL start="//" skip="\\$" end="$" keepend contains=@embryoCommentGroup,embryoComment2String,embryoCharacter,embryoNumbersCom,embryoSpaceError
+ syntax region embryoComment matchgroup=embryoCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@embryoCommentGroup,embryoCommentStartErr,embryoCommentString,embryoCharacter,embryoNumbersCom,embryoSpaceError
+else
+ syn region embryoCommentL start="//" skip="\\$" end="$" keepend contains=@embryoCommentGroup,embryoSpaceError
+ syn region embryoComment matchgroup=embryoCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@embryoCommentGroup,embryoCommentStartErr,embryoSpaceError
+endif
+" keep a // comment separately, it terminates a preproc. conditional
+syntax match embryoCommentError display "\*/"
+syntax match embryoCommentStartErr display "/\*"me=e-1 contained
+
+syn region embryoPreCondit start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=embryoComment,embryoCharacter,embryoParenError,embryoNumbers,embryoCommentError,embryoSpaceError
+syn match embryoPreCondit display "^\s*#\s*\(else\|endif\)\>"
+syn region embryoIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
+syn match embryoIncluded display contained "<[^>]*>"
+syn match embryoInclude display "^\s*#\s*include\>\s*["<]" contains=embryoIncluded
+syn cluster embryoPreProcGroup contains=embryoPreCondit,embryoIncluded,embryoInclude,embryoDefine,embryoErrInParen,embryoErrInBracket,embryoCommentSkip,embryoCommentString,embryoComment2String,@embryoCommentGroup,embryoCommentStartErr,embryoParen,embryoBracket,embryoMulti,embryoUserLabel
+syn cluster embryoAlphaNum contains=embryoSpecial,embryoOctalZero,embryoFormat,embryoNumber,embryoFloat,embryoOctal,embryoOctalError,embryoNumbersCom,embryoString
+syn region embryoDefine start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@embryoPreProcGroup
+syn region embryoPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@embryoPreProcGroup
+
+syn match embryoUserLabel display "\I\i*" contained
+
+syn match embryoFunctionName "\h\w*\s*\%((\@=\)"
+
+if exists("embryo_minlines")
+ let b:embryo_minlines = embryo_minlines
+else
+ let b:embryo_minlines = 50 " #if 0 constructs can be long
+endif
+exec "syn sync ccomment embryoComment minlines=" . b:embryo_minlines
+"syn sync fromstart
+
+" 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_embryo_syn_inits")
+ if version < 508
+ let did_embryo_syn_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ endif
+
+ HiLink embryoFormat embryoSpecial
+ HiLink embryoCommentL embryoComment
+ HiLink embryoCommentStart embryoComment
+ HiLink embryoLabel Label
+ HiLink embryoUserLabel Label
+ HiLink embryoConditional Conditional
+ HiLink embryoRepeat Repeat
+ HiLink embryoBranch Conditional
+ HiLink embryoReserved Keyword
+ HiLink embryoCharacter Character
+ HiLink embryoSpecialCharacter cSpecial
+ HiLink embryoNumber Number
+ HiLink embryoOctal Number
+ HiLink embryoOctalZero PreProc " link this to Error if you want
+ HiLink embryoFloat Float
+ HiLink embryoOctalError embryoError
+ HiLink embryoParenError embryoError
+ HiLink embryoErrInParen embryoError
+ HiLink embryoErrInBracket embryoError
+ HiLink embryoCommentError embryoError
+ HiLink embryoCommentStartErr embryoError
+ HiLink embryoSpaceError embryoError
+ HiLink embryoSpecialError embryoError
+ HiLink embryoOperator Operator
+ HiLink embryoStructure Structure
+ HiLink embryoEdjeKey Structure
+ HiLink embryoStorageClass StorageClass
+ HiLink embryoInclude Include
+ HiLink embryoPreProc PreProc
+ HiLink embryoDefine Macro
+ HiLink embryoIncluded embryoString
+ HiLink embryoError Error
+ HiLink embryoStatement Statement
+ HiLink embryoPreCondit PreCondit
+ HiLink embryoType Type
+ HiLink embryoConstant Constant
+ HiLink embryoCommentString embryoString
+ HiLink embryoComment2String embryoString
+ HiLink embryoCommentSkip embryoComment
+ HiLink embryoString String
+ HiLink embryoComment Comment
+ HiLink embryoSpecial SpecialChar
+ HiLink embryoTodo Todo
+ HiLink embryoFunctionName Function
+
+ delcommand HiLink
+endif
+
+let b:current_syntax = "embryo"
+
+" vim: ts=8