summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2015-10-28 14:26:44 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2015-10-28 14:26:44 +0100
commit74aae471bccd31d1eff60645cc36dfb8523dc0cc (patch)
tree61d610f9938ce8450b423de25b03d5ef7a782150
parent99ddf21a37275f238fee06dd845ffa9e8f8d1f66 (diff)
downloadvim-74aae471bccd31d1eff60645cc36dfb8523dc0cc.zip
vim-74aae471bccd31d1eff60645cc36dfb8523dc0cc.tar.gz
update efl related files
-rw-r--r--indent/edc.vim83
-rw-r--r--syntax/edc.vim259
-rw-r--r--syntax/eo.vim106
3 files changed, 448 insertions, 0 deletions
diff --git a/indent/edc.vim b/indent/edc.vim
new file mode 100644
index 0000000..498be4a
--- /dev/null
+++ b/indent/edc.vim
@@ -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
diff --git a/syntax/edc.vim b/syntax/edc.vim
new file mode 100644
index 0000000..106a4ed
--- /dev/null
+++ b/syntax/edc.vim
@@ -0,0 +1,259 @@
+" 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 sounds sample contained
+syn keyword edcBlock text font fill origin size image proxy 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 edcBlock set
+syn keyword edcBlock sequence link contained
+" LazEDC blocks
+syn keyword edcBlock desc rect swallow textblock box table external spacer 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 base_scale scale contained
+syn keyword edcLabel ignore_flags precise_is_inside select_mode 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 ellipsis elipsis image contained
+syn keyword edcLabel relative offset to to_x to_y contained
+syn keyword edcLabel source_visible source_clip contained
+syn keyword edcLabel border border_scale border_scale_by 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 focal contained
+syn keyword edcLabel int double string external script_only contained
+syn keyword edcLabel insert_before insert_after contained
+syn keyword edcLabel script_recursion contained
+syn keyword edcLabel limit broadcast_signal targets target_group groups size_range contained
+" LazEDC synonyms
+syn keyword edcLabel before after ignore pointer alt_font clip contained
+
+" LazEDC shorthand
+syn keyword edcLazShort broadcast nobroadcast mouse nomouse repeat norepeat precise noprecise noscale vis hid 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 SPACER
+syn keyword edcConstant NONE PLAIN OUTLINE SOFT_OUTLINE SHADOW PROXY
+syn keyword edcConstant SOFT_SHADOW OUTLINE_SHADOW OUTLINE_SOFT_SHADOW
+syn keyword edcConstant GLOW FAR_SHADOW FAR_SOFT_SHADOW
+syn keyword edcConstant BOTTOM_RIGHT BOTTOM BOTTOM_LEFT LEFT
+syn keyword edcConstant TOP_LEFT TOP TOP_RIGHT RIGHT
+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 LIN DECEL DIVIS BOUNCE SPRING CURRENT
+syn keyword edcConstant ACCEL_FAC DECEL_FAC SIN_FAC DIVISOR_INTERP
+syn keyword edcConstant ACCELERATE_FACTOR DECELERATE_FACTOR
+syn keyword edcConstant VERTICAL HORIZONTAL BOTH BOX TABLE
+syn keyword edcConstant EDITABLE PASSWORD "default"
+syn keyword edcConstant DEFAULT EXPLICIT PLAY_SAMPLE
+syn keyword edcConstant SOLID
+syn keyword edcConstant WIDTH HEIGHT
+
+syn keyword edcTodo contained TODO FIXME XXX
+
+syn match edcLabelMatch "\w\+:" contains=edcLabel
+syn match edcLazSMatch "\w\+;" contains=edcLazShort
+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 edcLazShort 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
diff --git a/syntax/eo.vim b/syntax/eo.vim
new file mode 100644
index 0000000..0d5a3c5
--- /dev/null
+++ b/syntax/eo.vim
@@ -0,0 +1,106 @@
+" Vim syntax file
+" Language: Eo
+" Maintainer: Daniel Zaoui
+" Last Change: 2014 06 01
+
+" A bunch of useful keywords
+syn keyword eoBoolean false true
+syn keyword eoConstants null
+
+syn keyword eoType byte ubyte char short ushort int uint long ulong llong ullong int8 uint8 int16 uint16 int32 uint32 int64 uint64 int128 uint128 size ssize intptr uintptr ptrdiff time float double ldouble bool void
+
+syn keyword eoClassTypes class abstract interface mixin
+syn keyword eoStructure struct enum var
+syn keyword eoTypedef type
+syn keyword eoImport import
+
+syn keyword eoClassBodyLabels legacy_prefix eo_prefix data contained
+syn keyword eoClassBodyBlockOpener properties methods events constructors implements contained
+
+syn keyword eoInnerBlockOpener set get keys values params contained
+syn keyword eoTypeClass const own free contained
+syn keyword functionKeywords constructor destructor finalize virtual legacy
+syn keyword eoStatements return
+
+" syn match className "\(\w\+\.\)\+\w\+"
+
+syn match attributes "@\(inout\|out\|in\|property\|class\|free\|constructor\|extern\|beta\|protected\|const\|optional\|nullable\|warn_unused\|private\)"
+
+syn match eoLabelMatch "\w\+:" contains=eoClassBodyLabels
+syn match eoBlockOpener "\w\+\s*{" contains=eoClassBodyBlockOpener,eoInnerBlockOpener
+syn match eoParenOpener "\w\+\s*(" contains=eoTypeClass
+
+syn keyword eoTodo contained TODO FIXME XXX
+syn cluster eoCommentGroup contains=eoTodo
+
+syn region eoParen start='(' end=')' transparent
+syn region eoTypeParen start='<' end='>' transparent
+syn region eoBlock start="{" end="}" transparent fold
+
+syn region eo_comment start="\/\*" end="\*\/" contains=@eoCommentGroup
+
+" Numbers
+"integer number, or floating point number without a dot and with "f".
+syn case ignore
+syn match eoNumbers display transparent "\<\d\|\.\d" contains=eoNumber,eoFloat,eoOctalError,eoOctal
+" Same, but without octal error (for comments)
+syn match eoNumbersCom display contained transparent "\<\d\|\.\d" contains=eoNumber,eoFloat,eoOctal
+syn match eoNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
+"hex number
+syn match eoNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
+" Flag the first zero of an octal number as something special
+syn match eoOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=eoOctalZero
+syn match eoOctalZero display contained "\<0"
+syn match eoFloat display contained "\d\+f"
+"floating point number, with dot, optional exponent
+syn match eoFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
+"floating point number, starting with a dot, optional exponent
+syn match eoFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
+"floating point number, without dot, with exponent
+syn match eoFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>"
+
+" flag an octal number with wrong digits
+syn match eoOctalError display contained "0\o*[89]\d*"
+syn case match
+
+" Events region
+syn region eoEventsRegion start="events\s*{" end="}" transparent
+syn match eoEvents "^\s*[^;: ]\+\(;\|:\|\s\)" contained containedin=eoEventsRegion contains=eoEvent
+syn match eoEvent "[^;: ]\+" contained
+
+" Implements region
+"syn region eoImplementsRegion start="\<implements\_s*{" end="}" transparent
+"syn match eoImplements "\w\+" contained containedin=eoImplementsRegion
+
+hi def link eoImplements Todo
+hi def link eoEvent Identifier
+hi def link eoClassBodyLabels Label
+hi def link eoClassBodyBlockOpener Label
+hi def link eoInnerBlockOpener Label
+hi def link functionKeywords Label
+hi def link eoTypeClass Label
+hi def link attributes Constant
+hi def link eo_comment Comment
+hi def link eoBoolean Boolean
+hi def link eoConstants Constant
+hi def link className Identifier
+hi def link eoStatements Statement
+
+hi def link eoFloat Float
+hi def link eoOctal Number
+hi def link eoOctalZero Number
+hi def link eoNumber Number
+hi def link eoNumbersCom Number
+
+hi def link eoOctalError Error
+
+hi def link eoStructure Structure
+hi def link eoClassTypes Structure
+
+hi def link eoType Type
+hi def link eoTypedef Typedef
+hi def link eoTodo Todo
+
+hi def link eoImport Include
+
+let b:current_syntax = "eo"