Extract the VBA file. And adding one metafile.

The metafile is for use with vim-addon-manager.
Read more in http://github.com/MarcWeber/vim-addon-manager/blob/master/doc/vim-addon-manager.txt

For future, merge with billiob's edc.vim.

SVN revision: 49799
devs/devilhorns/wayland_egl
Tiago Rezende Campos Falcao 13 years ago
parent 40db7f8c61
commit 11ca8f8aa0
  1. 555
      legacy/edje/data/vim/autoload/edccomplete.vim
  2. 3
      legacy/edje/data/vim/ftdetect/edc.vim
  3. 23
      legacy/edje/data/vim/ftplugin/edc.vim
  4. 83
      legacy/edje/data/vim/indent/edc.vim
  5. 8
      legacy/edje/data/vim/plugin-info.txt
  6. 235
      legacy/edje/data/vim/syntax/edc.vim
  7. 195
      legacy/edje/data/vim/syntax/embryo.vim

@ -1,361 +1,3 @@
" 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
@ -1248,200 +890,3 @@ let s:tableHomogeneousMode = {
\ '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

@ -0,0 +1,3 @@
au BufRead,BufNewFile *.edc set filetype=edc
au BufRead,BufNewFile *.sma set filetype=embryo
au BufRead,BufNewFile *.embryo set filetype=embryo

@ -0,0 +1,23 @@
" 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

@ -0,0 +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

@ -0,0 +1,8 @@
{
"name" : "edje",
"version" : "dev",
"author" : "viktor kojouharov <vkojouharov at gmail.com>",
"repository" : {"type": "svn", "url": "http://svn.enlightenment.org/svn/e/trunk/edje/data/vim/"},
"dependencies" : {},
"description" : "Edje vim support addon"
}

@ -0,0 +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

@ -0,0 +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
Loading…
Cancel
Save