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
This commit is contained in:
parent
40db7f8c61
commit
11ca8f8aa0
|
@ -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…
Reference in New Issue