diff options
author | Tom Hacohen <tom@stosb.com> | 2014-08-04 13:53:54 +0100 |
---|---|---|
committer | Tom Hacohen <tom@stosb.com> | 2014-08-04 13:54:07 +0100 |
commit | 3bf0425af06a5f4baac2f940e020a8c95fc498e4 (patch) | |
tree | b6cefa5f8680ab806f0f846215002f7b8816e1ae /data/edje | |
parent | 0e4fd1b4d1e6e9d37015a4e70d8a9f0e66d5c50a (diff) | |
download | efl-3bf0425af06a5f4baac2f940e020a8c95fc498e4.tar.gz |
Edje vim: Migrate vim files to the editors repo.
Diffstat (limited to 'data/edje')
-rw-r--r-- | data/edje/edc.vim | 375 | ||||
-rw-r--r-- | data/edje/vim/autoload/edccomplete.vim | 892 | ||||
-rw-r--r-- | data/edje/vim/ftdetect/edc.vim | 3 | ||||
-rw-r--r-- | data/edje/vim/ftplugin/edc.vim | 23 | ||||
-rw-r--r-- | data/edje/vim/indent/edc.vim | 83 | ||||
-rw-r--r-- | data/edje/vim/plugin-info.txt | 8 | ||||
-rw-r--r-- | data/edje/vim/snippets/edc.snippets | 99 | ||||
-rw-r--r-- | data/edje/vim/syntax/edc.vim | 246 | ||||
-rw-r--r-- | data/edje/vim/syntax/embryo.vim | 195 |
9 files changed, 0 insertions, 1924 deletions
diff --git a/data/edje/edc.vim b/data/edje/edc.vim deleted file mode 100644 index f8f31d06f0..0000000000 --- a/data/edje/edc.vim +++ /dev/null @@ -1,375 +0,0 @@ -" Vim syntax file -" Language: EDC -" Maintainer: billiob <billiob@gmail.com> -" Last Change: 05/08/2011 - -" For version 5.x: Clear all syntax items -" For version 6.x: Quit when a syntax file was already loaded -" -" Usage: -" 1) Copy this file to $HOME/.vim/syntax/ -" 2) Paste the following line to your $HOME/.vimrc file to load the syntax -" automatically: -" -" au BufNewFile,BufRead *.edc set syntax=edc -" -if version < 600 - syntax clear -elseif exists("b:current_syntax") - finish -endif - -" A bunch of useful C keywords -syn keyword cStructure images data fonts collections group externals -syn keyword cStructure part parts dragable description rel1 rel2 -syn keyword cStatement text image font fill origin size tag -syn keyword cStructure programs program script script_only lua_script lua_script_only styles style base -syn keyword cStructure spectra spectrum box set -syn keyword cStructure physics movement_freedom faces face world -syn match cType "+ + +;" contained - -syn keyword cLabel item name min max type effect file -syn keyword cLabel mouse_events repeat_events clip_to -syn keyword cLabel color_class text_class x y confine -syn keyword cLabel state visible align step aspect aspect_preference fixed -syn keyword cLabel relative offset to to_x to_y normal tween -syn keyword cLabel border color color2 color3 font size fit align -syn keyword cLabel signal source action transition in target after -syn keyword cLabel text smooth inherit scale middle ignore_flags -syn keyword cLabel alias events entry_mode select_mode multiline -syn keyword cLabel source1 source2 source3 source4 source5 source6 -syn keyword cLabel text_source transitions layout padding -syn keyword cLabel size_w size_h size_max_w size_max_h size_min_w size_min_w -syn keyword cLabel spread scale_hint elipsis ellipsis pointer_mode prefer -syn keyword cLabel precise_is_inside use_alternate_font_metrics options -syn keyword cLabel aspect_mode position span angle repch api -syn keyword cLabel external params size_range border_scale minmul -syn keyword cLabel insert_before insert_after - -syn keyword cLabel mass density material restitution friction -syn keyword cLabel ignore_part_pos light_on damping sleep -syn keyword cLabel physics_body hardness linear angular -syn keyword cLabel backface_cull gravity rate z depth -syn keyword cLabel sounds sample - -syn keyword cConditional if else switch -syn keyword cRepeat while for do -syn keyword cConstant COMP RAW LOSSY USER -syn keyword cConstant RECT TEXT IMAGE SWALLOW TEXTBLOCK GRADIENT SPACER -syn keyword cConstant GROUP BOX TABLE EXTERNAL ITEM -syn keyword cConstant SOLID AUTOGRAB NOGRAB -syn keyword cConstant NONE PLAIN OUTLINE SOFT_OUTLINE SHADOW -syn keyword cConstant SOFT_SHADOW OUTLINE_SHADOW OUTLINE_SOFT_SHADOW -syn keyword cConstant FAR_SOFT_SHADOW FAR_SHADOW GLOW -syn keyword cConstant BOTTOM_RIGHT BOTTOM BOTTOM_LEFT LEFT -syn keyword cConstant TOP_LEFT TOP TOP_RIGHT RIGHT -syn keyword cConstant STATE_SET ACTION_STOP SIGNAL_EMIT -syn keyword cConstant SCRIPT LUA_SCRIPT -syn keyword cConstant DRAG_VAL_SET DRAG_VAL_STEP DRAG_VAL_PAGE -syn keyword cConstant LINEAR SINUSOIDAL ACCELERATE DECELERATE SPRING -syn keyword cConstant VERTICAL HORIZONTAL ON_HOLD BOTH EDITABLE -syn keyword cConstatn DEFAULT EXPLICIT -syn keyword cConstant CURRENT -syn keyword cConstant FOCUS_SET "default" NEITHER -syn keyword cConstant DYNAMIC STATIC PASSWORD - -syn keyword cConstant RIGID_BOX RIGID_SPHERE SOFT_BOX SOFT_SPHERE -syn keyword cConstant RIGID_CYLINDER SOFT_CYLINDER -syn keyword cConstant CLOTH BOUNDARY_TOP BOUNDARY_BOTTOM BOUNDARY_LEFT -syn keyword cConstant BOUNDARY_RIGHT BOUNDARY_FRONT BOUNDARY_BACK -syn keyword cConstant PHYSICS_IMPULSE PHYSICS_TORQUE_IMPULSE -syn keyword cConstant PHYSICS_FORCE PHYSICS_TORQUE PHYSICS_STOP -syn keyword cConstant PHYSICS_FORCES_CLEAR PHYSICS_VEL_SET -syn keyword cConstant PHYSICS_ANG_VEL_SET BOX_MIDDLE_FRONT -syn keyword cConstant BOX_MIDDLE_BACK BOX_FRONT BOX_BACK BOX_LEFT -syn keyword cConstant BOX_RIGHT BOX_TOP BOX_BOTTOM -syn keyword cConstant CYLINDER_MIDDLE_FRONT CYLINDER_MIDDLE_BACK -syn keyword cConstant CYLINDER_FRONT CYLINDER_BACK CYLINDER_CURVED -syn keyword cConstant CLOTH_FRONT CLOTH_BACK SPHERE_FRONT SPHERE_BACK -syn keyword cConstant PLAY_SAMPLE - -syn keyword cTodo contained TODO FIXME XXX - -" cCommentGroup allows adding matches for special things in comments -syn cluster cCommentGroup contains=cTodo - -" String and Character constants -" Highlight special characters (those which have a backslash) differently -syn match cSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)" -if !exists("c_no_utf") - syn match cSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)" -endif -if exists("c_no_cformat") - syn region cString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial - " cCppString: same as cString, but ends at end of line - syn region cCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial -else - syn match cFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([diuoxXfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained - syn match cFormat display "%%" contained - syn region cString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat - " cCppString: same as cString, but ends at end of line - syn region cCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat -endif - -syn match cCharacter "L\='[^\\]'" -syn match cCharacter "L'[^']*'" contains=cSpecial -if exists("c_gnu") - syn match cSpecialError "L\='\\[^'\"?\\abefnrtv]'" - syn match cSpecialCharacter "L\='\\['\"?\\abefnrtv]'" -else - syn match cSpecialError "L\='\\[^'\"?\\abfnrtv]'" - syn match cSpecialCharacter "L\='\\['\"?\\abfnrtv]'" -endif -syn match cSpecialCharacter display "L\='\\\o\{1,3}'" -syn match cSpecialCharacter display "'\\x\x\{1,2}'" -syn match cSpecialCharacter display "L'\\x\x\+'" - -"when wanted, highlight trailing white space -if exists("c_space_errors") - if !exists("c_no_trail_space_error") - syn match cSpaceError display excludenl "\s\+$" - endif - if !exists("c_no_tab_space_error") - syn match cSpaceError display " \+\t"me=e-1 - endif -endif - -"catch errors caused by wrong parenthesis and brackets -syn cluster cParenGroup contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cCommentSkip,cOctalZero,cCppOut,cCppOut2,cCppSkip,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom -if exists("c_no_bracket_error") - syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString - " cCppParen: same as cParen but ends at end-of-line; used in cDefine - syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString - syn match cParenError display ")" - syn match cErrInParen display contained "[{}]" -else - syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString - " cCppParen: same as cParen but ends at end-of-line; used in cDefine - syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString - syn match cParenError display "[\])]" - syn match cErrInParen display contained "[\]{}]" - syn region cBracket transparent start='\[' end=']' contains=ALLBUT,@cParenGroup,cErrInParen,cCppParen,cCppBracket,cCppString - " cCppBracket: same as cParen but ends at end-of-line; used in cDefine - syn region cCppBracket transparent start='\[' skip='\\$' excludenl end=']' end='$' contained contains=ALLBUT,@cParenGroup,cErrInParen,cParen,cBracket,cString - syn match cErrInBracket display contained "[);{}]" -endif - -"integer number, or floating point number without a dot and with "f". -syn case ignore -syn match cNumbers display transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctalError,cOctal -" Same, but without octal error (for comments) -syn match cNumbersCom display contained transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctal -syn match cNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>" -"hex number -syn match cNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" -" Flag the first zero of an octal number as something special -syn match cOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=cOctalZero -syn match cOctalZero display contained "\<0" -syn match cFloat display contained "\d\+f" -"floating point number, with dot, optional exponent -syn match cFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" -"floating point number, starting with a dot, optional exponent -syn match cFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" -"floating point number, without dot, with exponent -syn match cFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>" -" flag an octal number with wrong digits -syn match cOctalError display contained "0\o*[89]\d*" -syn case match - -if exists("c_comment_strings") - " A comment can contain cString, cCharacter and cNumber. - " But a "*/" inside a cString in a cComment DOES end the comment! So we - " need to use a special type of cString: cCommentString, 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 cCommentSkip contained "^\s*\*\($\|\s\+\)" - syntax region cCommentString contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=cSpecial,cCommentSkip - syntax region cComment2String contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=cSpecial - syntax region cCommentL start="//" skip="\\$" end="$" keepend contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError - syntax region cComment matchgroup=cCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@cCommentGroup,cCommentStartError,cCommentString,cCharacter,cNumbersCom,cSpaceError -else - syn region cCommentL start="//" skip="\\$" end="$" keepend contains=@cCommentGroup,cSpaceError - syn region cComment matchgroup=cCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@cCommentGroup,cCommentStartError,cSpaceError -endif -" keep a // comment separately, it terminates a preproc. conditional -syntax match cCommentError display "\*/" -syntax match cCommentStartError display "/\*"me=e-1 contained - -syn keyword cOperator sizeof -if exists("c_gnu") - syn keyword cStatement __asm__ - syn keyword cOperator typeof __real__ __imag__ -endif -syn keyword cType int long short char void -syn keyword cType signed unsigned float double -if !exists("c_no_ansi") || exists("c_ansi_typedefs") - syn keyword cType size_t wchar_t ptrdiff_t sig_atomic_t fpos_t - syn keyword cType clock_t time_t va_list jmp_buf FILE DIR div_t ldiv_t - syn keyword cType mbstate_t wctrans_t wint_t wctype_t -endif -if !exists("c_no_c99") " ISO C99 - syn keyword cType bool complex - syn keyword cType int8_t int16_t int32_t int64_t - syn keyword cType uint8_t uint16_t uint32_t uint64_t - syn keyword cType int_least8_t int_least16_t int_least32_t int_least64_t - syn keyword cType uint_least8_t uint_least16_t uint_least32_t uint_least64_t - syn keyword cType int_fast8_t int_fast16_t int_fast32_t int_fast64_t - syn keyword cType uint_fast8_t uint_fast16_t uint_fast32_t uint_fast64_t - syn keyword cType intptr_t uintptr_t - syn keyword cType intmax_t uintmax_t -endif -if exists("c_gnu") - syn keyword cType __label__ __complex__ __volatile__ -endif - -syn keyword cStructure struct union enum typedef -syn keyword cStorageClass static register auto volatile extern const -if exists("c_gnu") - syn keyword cStorageClass inline __attribute__ -endif - -if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu") - if exists("c_gnu") - syn keyword cConstant __GNUC__ __FUNCTION__ __PRETTY_FUNCTION__ - endif - syn keyword cConstant __LINE__ __FILE__ __DATE__ __TIME__ __STDC__ - syn keyword cConstant __STDC_VERSION__ - syn keyword cConstant CHAR_BIT MB_LEN_MAX MB_CUR_MAX - syn keyword cConstant UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX - syn keyword cConstant CHAR_MIN INT_MIN LONG_MIN SHRT_MIN - syn keyword cConstant CHAR_MAX INT_MAX LONG_MAX SHRT_MAX - syn keyword cConstant SCHAR_MIN SINT_MIN SLONG_MIN SSHRT_MIN - syn keyword cConstant SCHAR_MAX SINT_MAX SLONG_MAX SSHRT_MAX - syn keyword cConstant FLT_RADIX FLT_ROUNDS - syn keyword cConstant FLT_DIG FLT_MANT_DIG FLT_EPSILON - syn keyword cConstant DBL_DIG DBL_MANT_DIG DBL_EPSILON - syn keyword cConstant LDBL_DIG LDBL_MANT_DIG LDBL_EPSILON - syn keyword cConstant FLT_MIN FLT_MAX FLT_MIN_EXP FLT_MAX_EXP - syn keyword cConstant FLT_MIN_10_EXP FLT_MAX_10_EXP - syn keyword cConstant DBL_MIN DBL_MAX DBL_MIN_EXP DBL_MAX_EXP - syn keyword cConstant DBL_MIN_10_EXP DBL_MAX_10_EXP - syn keyword cConstant LDBL_MIN LDBL_MAX LDBL_MIN_EXP LDBL_MAX_EXP - syn keyword cConstant LDBL_MIN_10_EXP LDBL_MAX_10_EXP - syn keyword cConstant HUGE_VAL CLOCKS_PER_SEC NULL - syn keyword cConstant LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY - syn keyword cConstant LC_NUMERIC LC_TIME - syn keyword cConstant SIG_DFL SIG_ERR SIG_IGN - syn keyword cConstant SIGABRT SIGFPE SIGILL SIGHUP SIGINT SIGSEGV SIGTERM - " Add POSIX signals as well... - syn keyword cConstant SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP - syn keyword cConstant SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV - syn keyword cConstant SIGSTOP SIGTERM SIGTRAP SIGTSTP SIGTTIN SIGTTOU - syn keyword cConstant SIGUSR1 SIGUSR2 - syn keyword cConstant _IOFBF _IOLBF _IONBF BUFSIZ EOF - syn keyword cConstant FOPEN_MAX FILENAME_MAX L_tmpnam - syn keyword cConstant SEEK_CUR SEEK_END SEEK_SET - syn keyword cConstant TMP_MAX stderr stdin stdout - syn keyword cConstant EXIT_FAILURE EXIT_SUCCESS RAND_MAX - " Add POSIX errors as well - syn keyword cConstant E2BIG EACCES EAGAIN EBADF EBADMSG EBUSY - syn keyword cConstant ECANCELED ECHILD EDEADLK EDOM EEXIST EFAULT - syn keyword cConstant EFBIG EILSEQ EINPROGRESS EINTR EINVAL EIO EISDIR - syn keyword cConstant EMFILE EMLINK EMSGSIZE ENAMETOOLONG ENFILE ENODEV - syn keyword cConstant ENOENT ENOEXEC ENOLCK ENOMEM ENOSPC ENOSYS - syn keyword cConstant ENOTDIR ENOTEMPTY ENOTSUP ENOTTY ENXIO EPERM - syn keyword cConstant EPIPE ERANGE EROFS ESPIPE ESRCH ETIMEDOUT EXDEV - " math.h - syn keyword cConstant M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI_2 M_PI_4 - syn keyword cConstant M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2 -endif -if !exists("c_no_c99") " ISO C99 - syn keyword cConstant true false -endif - -syn region cPreCondit start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=cComment,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError -syn match cPreCondit display "^\s*#\s*\(else\|endif\)\>" -if !exists("c_no_if0") - syn region cCppOut start="^\s*#\s*if\s\+0\+\>" end=".\|$" contains=cCppOut2 - syn region cCppOut2 contained start="0" end="^\s*#\s*\(endif\>\|else\>\|elif\>\)" contains=cSpaceError,cCppSkip - syn region cCppSkip contained start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*#\s*endif\>" contains=cSpaceError,cCppSkip -endif -syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ -syn match cIncluded display contained "<[^>]*>" -syn match cInclude display "^\s*#\s*include\>\s*["<]" contains=cIncluded -"syn match cLineSkip "\\$" -syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOut,cCppOut2,cCppSkip,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti -syn region cDefine start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@cPreProcGroup -syn region cPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup - -syn match cUserLabel display "\I\i*" contained - - - -if exists("c_minlines") - let b:c_minlines = c_minlines -else - if !exists("c_no_if0") - let b:c_minlines = 50 " #if 0 constructs can be long - else - let b:c_minlines = 15 " mostly for () constructs - endif -endif -exec "syn sync ccomment cComment minlines=" . b:c_minlines - -" 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_c_syn_inits") - if version < 508 - let did_c_syn_inits = 1 - command -nargs=+ HiLink hi link <args> - else - command -nargs=+ HiLink hi def link <args> - endif - - HiLink cFormat cSpecial - HiLink cCppString cString - HiLink cCommentL cComment - HiLink cCommentStart cComment - HiLink cLabel Label - HiLink cUserLabel Label - HiLink cConditional Conditional - HiLink cRepeat Repeat - HiLink cCharacter Character - HiLink cSpecialCharacter cSpecial - HiLink cNumber Number - HiLink cOctal Number - HiLink cOctalZero PreProc " link this to Error if you want - HiLink cFloat Float - HiLink cOctalError cError - HiLink cParenError cError - HiLink cErrInParen cError - HiLink cErrInBracket cError - HiLink cCommentError cError - HiLink cCommentStartError cError - HiLink cSpaceError cError - HiLink cSpecialError cError - HiLink cOperator Operator - HiLink cStructure Structure - HiLink cStorageClass StorageClass - HiLink cInclude Include - HiLink cPreProc PreProc - HiLink cDefine Macro - HiLink cIncluded cString - HiLink cError Error - HiLink cStatement Statement - HiLink cPreCondit PreCondit - HiLink cType Type - HiLink cConstant Constant - HiLink cCommentString cString - HiLink cComment2String cString - HiLink cCommentSkip cComment - HiLink cString String - HiLink cComment Comment - HiLink cSpecial SpecialChar - HiLink cTodo Todo - HiLink cCppSkip cCppOut - HiLink cCppOut2 cCppOut - HiLink cCppOut Comment - - delcommand HiLink -endif - -let b:current_syntax = "edc" - -" vim: ts=8 diff --git a/data/edje/vim/autoload/edccomplete.vim b/data/edje/vim/autoload/edccomplete.vim deleted file mode 100644 index e2521e9c42..0000000000 --- a/data/edje/vim/autoload/edccomplete.vim +++ /dev/null @@ -1,892 +0,0 @@ -" Vim completion script -" Language: EDC -" Maintainer: Viktor Kojouharov -" Last Change: 2007 02 24 - -function! edccomplete#Complete(findstart, base) - if a:findstart - " locate the start of the word - let line = getline('.') - let start = col('.') - 1 - let compl_begin = col('.') - 2 - let lastword = -1 - if line =~ ':' && line !~ '\.' - while start > 0 && (line[start - 1] =~ '\k' || line[start - 1] =~ '"') - let start -= 1 - endwhile - else - while start > 0 - if line[start - 1] =~ '\k' - let start -= 1 - elseif line[start - 1] =~ '\.' - if lastword == -1 - let lastword = start - 2 - endif - let start -= 1 - else - break - endif - endwhile - endif - let b:compl_context = getline('.')[0:compl_begin] - - if lastword == -1 - let ppe = searchpos('\.', 'bcn') - let pps = searchpos('\w\+\.', 'bcn') - let b:sparent = '' - if ppe != [0, 0] && pps[0] == ppe[0] && pps[1] <= ppe[1] && pps[0] == line('.') - let b:scontext = line[pps[1] -1 : ppe[1] - 2] - call edccomplete#FindParent(pps[0], pps[1]) - return start - endif - - let startpos = searchpair('{', '', '}', 'bnW') - let lnum = startpos - let line = getline(lnum) - - if line !~ '\a\+' - let lnum = prevnonblank(lnum - 1) - let line = getline(lnum) - endif - - call edccomplete#FindParent(lnum, 1) - let b:scontext = matchstr(line, '\w\+') - - return start - else - let b:scontext = line[start : lastword] - - return lastword + 2 - endif - else - " find months matching with "a:base" - let res = [] - if exists("b:compl_context") - let line = b:compl_context - unlet! b:compl_context - else - let line = a:base - endif - - if b:scontext == 'part' - call edccomplete#AddLabel(res, line, a:base, s:partLabel) - call edccomplete#AddStatement(res, line, a:base, s:partStatement) - if line =~ 'type:\s*' - call edccomplete#AddKeyword(res, a:base, s:partTypes) - elseif line =~ 'effect:\s*' - call edccomplete#AddKeyword(res, a:base, s:partEffects) - elseif line =~ 'select_mode:\s*' - call edccomplete#AddKeyword(res, a:base, s:partSelectMode) - elseif line =~ 'ignore_flags:\s*' - call edccomplete#AddKeyword(res, a:base, s:partIgnoreFlags) - elseif line =~ 'pointer_mode:\s*' - call edccomplete#AddKeyword(res, a:base, s:partPointerMode) - elseif line =~ 'editable_mode:\s*' - call edccomplete#AddKeyword(res, a:base, s:partEditableMode) - endif - if line =~ 'image:\s*".\{-}"' - call edccomplete#AddKeyword(res, a:base, s:imageStorageMethod) - endif - - elseif b:scontext == 'dragable' - call edccomplete#AddLabel(res, line, a:base, s:dragableLabel) - - elseif b:scontext == 'description' - call edccomplete#AddLabel(res, line, a:base, s:descriptionLabel) - call edccomplete#AddStatement(res, line, a:base, s:descriptionStatement) - if line =~ 'aspect_preference:\s*' - call edccomplete#AddKeyword(res, a:base, s:aspectPrefTypes) - elseif line =~ 'inherit:\s*"\?' - call edccomplete#FindStates(res, a:base, 1) - endif - - elseif b:scontext == 'rel1' || b:scontext == 'rel2' - call edccomplete#AddLabel(res, line, a:base, s:relLabel) - if line =~ 'to\%(_[xy]\)\?:\s*"\?' - call edccomplete#FindNamesIn(res, a:base, 'parts') - endif - - elseif b:scontext == 'map' - call edccomplete#AddLabel(res, line, a:base, s:mapLabel) - call edccomplete#AddStatement(res, line, a:base, s:mapStatement) - - elseif b:scontext == 'rotation' - call edccomplete#AddLabel(res, line, a:base, s:rotationLabel) - - elseif b:scontext == 'perspective' - call edccomplete#AddLabel(res, line, a:base, s:perspectiveLabel) - - elseif b:scontext == 'params' - call edccomplete#AddLabel(res, line, a:base, s:paramsLabel) - - elseif b:scontext == 'image' - call edccomplete#AddLabel(res, line, a:base, s:imageLabel) - if line =~ 'image:\s*".\{-}"' - call edccomplete#AddKeyword(res, a:base, s:imageStorageMethod) - elseif line =~ 'middle:\s*' - call edccomplete#AddKeyword(res, a:base, s:imageMiddleTypes) - elseif line =~ 'scale_hint:\s*' - call edccomplete#AddKeyword(res, a:base, s:imageScaleHint) - endif - - elseif b:scontext == 'fill' - call edccomplete#AddLabel(res, line, a:base, s:fillLabel) - call edccomplete#AddStatement(res, line, a:base, s:fillStatement) - if line =~ 'type:\s*' - call edccomplete#AddKeyword(res, a:base, s:fillTypes) - endif - - elseif b:scontext == 'origin' || b:scontext == 'size' - call edccomplete#AddLabel(res, line, a:base, s:fillInnerStatement) - - elseif b:scontext == 'text' - call edccomplete#AddLabel(res, line, a:base, s:textLabel) - call edccomplete#AddStatement(res, line, a:base, s:textStatement) - - elseif b:scontext == 'program' - call edccomplete#AddLabel(res, line, a:base, s:programLabel) - call edccomplete#AddStatement(res, line, a:base, s:programStatement) - if line =~ 'transition:\s*' - call edccomplete#AddKeyword(res, a:base, s:transitionTypes) - elseif line =~ 'STATE_SET\s*"\?' - call edccomplete#FindStates(res, a:base, 0) - elseif line =~ 'action:\s*' - call edccomplete#AddKeyword(res, a:base, s:actionTypes) - elseif line =~ 'target:\s*"\?' - call edccomplete#FindNamesIn(res, a:base, 'parts') - elseif line =~ 'after:\s*"\?' - call edccomplete#FindNamesIn(res, a:base, 'programs') - endif - - elseif b:scontext == 'programs' - call edccomplete#AddLabel(res, line, a:base, s:programsLabel) - call edccomplete#AddStatement(res, line, a:base, s:programsStatement) - if line =~ 'image:\s*".\{-}"' - call edccomplete#AddKeyword(res, a:base, s:imageStorageMethod) - endif - - elseif b:scontext == 'box' && b:sparent == 'part' - call edccomplete#AddStatement(res, line, a:base, s:boxStatement) - - elseif b:scontext == 'items' - call edccomplete#AddStatement(res, line, a:base, s:boxItemsStatement) - - elseif b:scontext == 'item' - call edccomplete#AddLabel(res, line, a:base, s:boxItemLabel) - if line =~ 'type:\s*' - call edccomplete#AddKeyword(res, a:base, s:boxItemTypes) - elseif line =~ 'aspect_mode:\s*"\?' - call edccomplete#AddKeyword(res, a:base, s:boxItemAspectMode) - endif - - elseif b:scontext == 'box' && b:sparent == 'description' - call edccomplete#AddLabel(res, line, a:base, s:boxDescLabel) - if line =~ 'layout:\s*' - call edccomplete#AddKeyword(res, a:base, s:boxLayout) - endif - - elseif b:scontext == 'table' && b:sparent == 'description' - call edccomplete#AddLabel(res, line, a:base, s:tableDescLabel) - if line =~ 'homogeneous:\s*' - call edccomplete#AddKeyword(res, a:base, s:tableHomogeneousMode) - endif - - elseif b:scontext == 'group' - call edccomplete#AddLabel(res, line, a:base, s:groupLabel) - call edccomplete#AddStatement(res, line, a:base, s:groupStatement) - if line =~ 'image:\s*".\{-}"' - call edccomplete#AddKeyword(res, a:base, s:imageStorageMethod) - endif - - elseif b:scontext == 'parts' - call edccomplete#AddLabel(res, line, a:base, s:partsLabel) - call edccomplete#AddStatement(res, line, a:base, s:partsStatement) - if line =~ 'image:\s*".\{-}"' - call edccomplete#AddKeyword(res, a:base, s:imageStorageMethod) - endif - - elseif b:scontext == 'data' - call edccomplete#AddLabel(res, line, a:base, s:dataLabel) - - elseif b:scontext == 'fonts' - call edccomplete#AddLabel(res, line, a:base, s:fontsLabel) - - elseif b:scontext == 'spectra' - call edccomplete#AddStatement(res, line, a:base, s:spectraStatement) - - elseif b:scontext == 'spectrum' - call edccomplete#AddLabel(res, line, a:base, s:spectrumLabel) - - elseif b:scontext == 'gradient' - call edccomplete#AddLabel(res, line, a:base, s:gradientLabel) - call edccomplete#AddStatement(res, line, a:base, s:gradientStatement) - if line =~ 'type:\s*' - call edccomplete#AddKeyword(res, a:base, s:gradientTypes) - endif - - elseif b:scontext == 'styles' - call edccomplete#AddStatement(res, line, a:base, s:stylesStatement) - - elseif b:scontext == 'style' - call edccomplete#AddLabel(res, line, a:base, s:styleLabel) - - elseif b:scontext == 'color_classes' - call edccomplete#AddStatement(res, line, a:base, s:color_classesStatement) - - elseif b:scontext == 'color_class' - call edccomplete#AddLabel(res, line, a:base, s:color_classLabel) - - elseif b:scontext == 'images' - call edccomplete#AddLabel(res, line, a:base, s:imagesLabel) - if line =~ 'image:\s*".\{-}"' - call edccomplete#AddKeyword(res, a:base, s:imageStorageMethod) - endif - - elseif b:scontext == 'collections' - call edccomplete#AddLabel(res, line, a:base, s:collectionsLabel) - call edccomplete#AddStatement(res, line, a:base, s:collectionsStatement) - if line =~ 'image:\s*".\{-}"' - call edccomplete#AddKeyword(res, a:base, s:imageStorageMethod) - endif - - elseif b:scontext == 'externals' - call edccomplete#AddLabel(res, line, a:base, s:externalsLabel) - - elseif strlen(b:scontext) == 0 - call edccomplete#AddStatement(res, line, a:base, s:topStatement) - endif - - unlet! b:scontext - - return res - endif -endfunction - -function! edccomplete#AddLabel(res, line, base, label) - if a:line =~ ':' - return - endif - - for m in sort(keys(a:label)) - if m =~ '^' . a:base - call add(a:res, {'word': m . ':', 'menu': a:label[m]}) - endif - endfor -endfunction - -function! edccomplete#AddKeyword(res, base, label) - for m in sort(keys(a:label)) - if m =~ '^' . a:base - call add(a:res, {'word': m, 'menu': a:label[m]}) - endif - endfor -endfunction - -function! edccomplete#AddStatement(res, line, base, statement) - if a:line =~ ':' - return - endif - - for m in sort(a:statement) - if m =~ '^' . a:base - call add(a:res, m . ' {') - endif - endfor -endfunction - -function! edccomplete#FindStates(res, base, in_part) - let curpos = getpos('.') - call remove(curpos, 0, 0) - - let states_list = [] - if a:in_part == 1 " in the current part only - let part_start = search('^[ \t}]*\<part\>[ \t{]*$', 'bnW') - if part_start != 0 " found it - let line = getline(part_start) - if line !~ '{' - let part_start = nextnonblank(part_start) - endif - call cursor(part_start, 0) - let part_end = searchpair('{', '', '}', 'nW') - endif - else " in the current parts group - let part_start = search('^[ \t}]*\<parts\>[ \t{]*$', 'bnW') - if part_start != 0 " found it - let line = getline(part_start) - if line !~ '{' - let part_start = nextnonblank(part_start) - endif - call cursor(part_start, 0) - let part_end = searchpair('{', '', '}', 'nW') - endif - endif - - let state_num = search('\%(state:\s*\)"\w\+"', 'W', part_end) - while state_num - let state = matchstr(getline(state_num), '\%(state:\s*\)\@<="\w\+"') - call extend(states_list, [state]) - let state_num = search('\%(state:\s*\)"\w\+"', 'W', part_end) - endwhile - call cursor(curpos) - - for m in sort(states_list) - if m =~ '^' . a:base - call add(a:res, m) - endif - endfor -endfunction - -function! edccomplete#FindNamesIn(res, base, str) - let curpos = getpos('.') - call remove(curpos, 0, 0) - - let names_list = [] - let part_start = search('^[ \t}]*\<' . a:str . '\>[ \t{]*$', 'bnW') - if part_start != 0 " found it - let line = getline(part_start) - if line !~ '{' - let part_start = nextnonblank(part_start) - endif - call cursor(part_start, 0) - let part_end = searchpair('{', '', '}', 'nW') - endif - - let name_num = search('\%(name:\s*\)"\w\+"', 'W', part_end) - while name_num - let name = matchstr(getline(name_num), '\%(name:\s*\)\@<="\w\+"') - call extend(names_list, [name]) - let name_num = search('\%(name:\s*\)"\w\+"', 'W', part_end) - endwhile - call cursor(curpos) - - for m in sort(names_list) - if m =~ '^' . a:base - call add(a:res, m) - endif - endfor -endfunction - -function! edccomplete#FindParent(lnum, cnum) - call setpos('.', [0, a:lnum, a:cnum, 0]) - let ppe = searchpos('\.', 'bcn') - let pps = searchpos('\w\+\.', 'bcn') - if ppe != [0, 0] && pps[0] == ppe[0] && pps[1] <= ppe[1] && pps[0] == line('.') - let b:sparent = line[pps[1] -1 : ppe[1] - 2] - return - endif - - let startpos = searchpair('{', '', '}', 'bnW') - let lnum = startpos - let line = getline(lnum) - - if line !~ '\a\+' - let line = getline(prevnonblank(lnum - 1)) - endif - - let b:sparent = matchstr(line, '\w\+') -endfunction - -" part -let s:partLabel = { - \ 'name': '"name"', - \ 'type': 'keyword', - \ 'effect': 'keyword', - \ 'clip_to': '"part_name"', - \ 'scale': '0-1', - \ 'mouse_events': '0-1', - \ 'repeat_events': '0-1', - \ 'ignore_flags': 'keyword ...', - \ 'pointer_mode': 'keyword', - \ 'select_mode': 'keyword', - \ 'precise_is_inside': '0-1', - \ 'use_alternate_font_metrics': '0-1', - \ 'image': '"filename" keyword', - \ 'font': '"filename" "name"', - \ 'entry_mode': 'keyword', - \ 'multiline': '0-1 (TEXTBLOCK only)', - \ 'source': '"group_name" (GROUP or TEXTBLOCK only)', - \ 'source2': '"group_name" (TEXTBLOCK only)', - \ 'source3': '"group_name" (TEXTBLOCK only)', - \ 'source4': '"group_name" (TEXTBLOCK only)', - \ 'source5': '"group_name" (TEXTBLOCK only)', - \ 'source6': '"group_name" (TEXTBLOCK only)', - \ } -let s:partStatement = [ - \ 'dragable', - \ 'images', - \ 'fonts', - \ 'description', - \ 'styles', - \ 'color_classes', - \ 'program', - \ 'programs', - \ 'box', - \ ] - -" dragable -let s:dragableLabel = { - \ 'x': '0-1 int int', - \ 'y': '0-1 int int', - \ 'confine': '"part_name"', - \ 'events': '"draggable_part_name"', - \ } - -" description -let s:descriptionLabel = { - \ 'state': '"name" index (float)', - \ 'inherit': '"description" index (float)', - \ 'visible': '0-1', - \ 'align': 'x y (float)', - \ 'fixed': 'width height (0-1)', - \ 'min': 'width height (int)', - \ 'max': 'width height (int)', - \ 'step': 'width height (int)', - \ 'aspect': 'min max (float)', - \ 'aspect_preference': 'keyword', - \ 'color_class': '"name"', - \ 'color': '0-255 0-255 0-255 0-255', - \ 'color2': '0-255 0-255 0-255 0-255', - \ 'color3': '0-255 0-255 0-255 0-255', - \ 'font': '"filename" "name"', - \ } -let s:descriptionStatement = [ - \ 'rel1', - \ 'rel2', - \ 'image', - \ 'fill', - \ 'text', - \ 'gradient', - \ 'images', - \ 'fonts', - \ 'styles', - \ 'color_classes', - \ 'program', - \ 'programs', - \ 'box', - \ 'map', - \ ] - -" rel -let s:relLabel = { - \ 'relative': 'x y (float)', - \ 'offset': 'x y (int)', - \ 'to': '"part_name"', - \ 'to_x': '"part_name"', - \ 'to_y': '"part_name"', - \ } -" map -let s:mapLabel = { - \ 'on': '0-1', - \ 'perspective': '"part_name"', - \ 'light': '"part_name"', - \ 'smooth': '0-1', - \ 'pespective_on':'0-1', - \ 'backface_cull':'0-1', - \ 'alpha': '0-1', - \ } -let s:mapStatement = [ - \ 'rotation', - \ ] - -let s:rotationLabel = { - \ 'center': '"part_name"', - \ 'x': '"degrees (float)"', - \ 'y': '"degrees (float)"', - \ 'z': '"degrees (float)"', - \ } - -" params -let s:paramsLabel = { - \ 'int': '"name" int', - \ 'double': '"name" double', - \ 'string': '"name" "string"', - \ } - -" perspective -let s:perspectiveLabel = { - \ 'zplane': 'int', - \ 'focal': 'int', - \ } - - -" image -let s:imageLabel = { - \ 'image': '"filename" keyword', - \ 'normal': '"filename"', - \ 'tween': '"filename"', - \ 'border': 'left right top bottom (int)', - \ 'middle': 'keyword', - \ 'border_scale': '0-1', - \ 'scale_hint': 'keyword', - \ } - -" fill -let s:fillLabel = { - \ 'smooth': '0-1', - \ 'angle': '0-360 (GRADIENT)', - \ 'spread': '0-1', - \ 'type': 'keyword', - \ } -let s:fillStatement = [ - \ 'origin', - \ 'size', - \ ] -" fill origin/size -let s:fillInnerStatement = { - \ 'relative': 'width height (float)', - \ 'offset': 'x y (int)', - \ } -" fill types -let s:fillTypes = { - \ 'SCALE': '', - \ 'TILE': '', - \ } - -" text -let s:textLabel = { - \ 'text': '"string"', - \ 'font': '"font_name"', - \ 'size': 'size (int)', - \ 'text_class': '"class_name"', - \ 'fit': 'x y (0-1)', - \ 'min': 'x y (0-1)', - \ 'max': 'x y (0-1)', - \ 'align': 'x y (float)', - \ 'source': '"part_name"', - \ 'text_source': '"text_part_name"', - \ 'style': '"style_name"', - \ 'elipsis': '0.0-1.0', - \ 'repch': '"string" (PASSWORD mode)', - \ } -let s:textStatement = [ - \ 'fonts', - \ ] - -" program -let s:programLabel = { - \ 'name': '"name"', - \ 'signal': '"signal_name"', - \ 'source': '"part_name"', - \ 'action': 'keyword ...', - \ 'transition': 'keyword time (float)', - \ 'filter': '"part_name" "state_name"', - \ 'in': 'from range (float)', - \ 'target': '"part_name"', - \ 'after': '"program_name"', - \ } -let s:programStatement = [ - \ 'script', - \ 'lua_script', - \ ] - - -" programs -let s:programsLabel = { - \ 'image': '"filename" keyword', - \ 'font': '"filename" "name"', - \ } -let s:programsStatement = [ - \ 'images', - \ 'fonts', - \ 'program', - \ ] - -" box and table -let s:boxStatement = [ - \ 'items', - \ ] -let s:boxItemsStatement = [ - \ 'item', - \ ] -let s:boxItemLabel = { - \ 'type': 'keyword', - \ 'name': '"name"', - \ 'source': '"group_name"', - \ 'min': 'width height (int)', - \ 'prefer': 'width height (int)', - \ 'max': 'width height (int)', - \ 'padding': 'left right top bottom (int)', - \ 'align': 'x y (float)', - \ 'weight': 'x y (float)', - \ 'aspect': 'w h (float)', - \ 'aspect_mode': 'keyword', - \ 'options': '"extra options"', - \ } -let s:boxDescLabel = { - \ 'layout': '"string" ["string"]', - \ 'align': 'float float', - \ 'padding': 'int int', - \ } -let s:tableItemLabel = { - \ 'position': 'col row (int)', - \ 'span': 'col row (int)', - \ } -let s:tableDescLabel = { - \ 'homogeneous': 'keyword', - \ 'align': 'float float', - \ 'padding': 'int int', - \ } - -" group -let s:groupLabel = { - \ 'name': '"name"', - \ 'alias': '"alias"', - \ 'min': 'width height', - \ 'max': 'width height', - \ 'image': '"filename" keyword', - \ 'font': '"filename" "name"', - \ 'script_only': '0-1', - \ } -let s:groupStatement = [ - \ 'data', - \ 'script', - \ 'lua_script', - \ 'parts', - \ 'images', - \ 'fonts', - \ 'styles', - \ 'color_classes', - \ 'program', - \ 'programs', - \ 'externals', - \ ] - -" parts -let s:partsStatement = [ - \ 'images', - \ 'fonts', - \ 'part', - \ 'styles', - \ 'color_classes', - \ 'program', - \ 'programs', - \ ] -let s:partsLabel = { - \ 'image': '"filename" keyword', - \ 'font': '"filename" "name"', - \ } - -" data -let s:dataLabel = { - \ 'item': '"key" "value"', - \ 'file': '"key" "filename"', - \ } - -" fonts -let s:fontsLabel = { - \ 'font': '"filename" "name"', - \ } - -"images -let s:imagesLabel = { - \ 'image': '"filename" keyword', - \ } - -"collections -let s:collectionsStatement = [ - \ 'group', - \ 'images', - \ 'fonts', - \ 'styles', - \ 'color_classes', - \ 'externals', - \ ] -let s:collectionsLabel = { - \ 'image': '"filename" keyword', - \ 'font': '"filename" "name"', - \ } - -" externals -let s:externalsLabel = { - \ 'external': '"name"', - \ } - -" spectra -let s:spectraStatement = [ - \ 'spectrum', - \ ] -" spectrum -let s:spectrumLabel = { - \ 'name': '"name"', - \ 'color': '0-255 0-255 0-255 0-255', - \ } -" gradient -let s:gradientLabel = { - \ 'type': '"keyword"', - \ 'spectrum': '"spectrum_name"', - \ } -let s:gradientStatement = [ - \ 'rel1', - \ 'rel2', - \ ] -" gradient types -let s:gradientTypes = { - \ '"linear"': '', - \ '"radial"': '', - \ '"rectangular"': '', - \ '"angular"': '', - \ '"sinusoidal"': '', - \ } - -" styles -let s:stylesStatement = [ - \ 'style', - \ ] -" style -let s:styleLabel = { - \ 'name': '"name"', - \ 'base': '".. default style properties .."', - \ 'tag': '"tagname" "style properties"', - \ } - -" color_classes -let s:color_classesStatement = [ - \ 'color_class', - \ ] -" color_class -let s:color_classLabel = { - \ 'name': '"name"', - \ 'color': '0-255 0-255 0-255 0-255', - \ 'color2': '0-255 0-255 0-255 0-255', - \ 'color3': '0-255 0-255 0-255 0-255', - \ } - -" toplevel -let s:topStatement = [ - \ 'fonts', - \ 'images', - \ 'data', - \ 'collections', - \ 'spectra', - \ 'styles', - \ 'color_classes', - \ 'externals', - \ ] - -" images image storage method -let s:imageStorageMethod = { - \ 'COMP': '', - \ 'RAW': '', - \ 'USER': '', - \ 'LOSSY': '0-100', - \ } -" image middle types -let s:imageMiddleTypes = { - \ '0': '', - \ '1': '', - \ 'NONE': '', - \ 'DEFAULT': '', - \ 'SOLID': '', - \ } -" image scale hint -let s:imageScaleHint = { - \ '0': '', - \ 'NONE': '', - \ 'DYNAMIC': '', - \ 'STATIC': '', - \ } - -" part types -let s:partTypes = { - \ 'TEXT': '', - \ 'IMAGE': '', - \ 'RECT': '', - \ 'TEXTBLOCK': '', - \ 'SWALLOW': '', - \ 'GRADIENT': '', - \ 'GROUP': '', - \ 'BOX': '', - \ 'TABLE': '', - \ 'EXTERNAL': '', - \ } -" part effects -let s:partEffects = { - \ 'NONE': '', - \ 'PLAIN': '', - \ 'OUTLINE': '', - \ 'SOFT_OUTLINE': '', - \ 'SHADOW': '', - \ 'SOFT_SHADOW': '', - \ 'OUTLINE_SHADOW': '', - \ 'OUTLINE_SOFT_SHADOW': '', - \ 'FAR_SHADOW': '', - \ 'FAR_SOFT_SHADOW': '', - \ 'GLOW': '', - \ } -" part select_mode -let s:partSelectMode = { - \ 'DEFAULT': '', - \ 'EXPLICIT': '', - \ } -" part ignore flags -let s:partIgnoreFlags = { - \ 'NONE': '', - \ 'ON_HOLD': '', - \ } -" part pointer mode -let s:partPointerMode = { - \ 'AUTOGRAB': '', - \ 'NOGRAB': '', - \ } -" part editable_mode -let s:partEditableMode = { - \ 'NONE': '', - \ 'PLAIN': '', - \ 'EDITABLE': '', - \ 'PASSWORD': '', - \ } - -" aspect_preference types -let s:aspectPrefTypes = { - \ 'VERTICAL': '', - \ 'HORIZONTAL': '', - \ 'BOTH': '', - \ } - -" program transition types -let s:transitionTypes = { - \ 'LINEAR': '0.0 - 1.0', - \ 'SINUSOIDAL': '0.0 - 1.0', - \ 'ACCELERATE': '0.0 - 1.0', - \ 'DECELERATE': '0.0 - 1.0', - \ } -" program action types -let s:actionTypes = { - \ 'STATE_SET': '"string" "0.0 - 1.0"', - \ 'ACTION_STOP': '', - \ 'SIGNAL_EMIT': '"string" "string"', - \ 'DRAG_VAL_SET': 'float float', - \ 'DRAG_VAL_STEP': 'float float', - \ 'DRAG_VAL_PAGE': 'float float', - \ 'FOCUS_SET': '', - \ } -" box item types -let s:boxItemTypes = { - \ 'GROUP': '', - \ } -" box item aspect mode -let s:boxItemAspectMode = { - \ 'NONE': '', - \ 'NEITHER': '', - \ 'VERTICAL': '', - \ 'HORIZONTAL': '', - \ 'BOTH': '', - \ } -" box layout -let s:boxLayout = { - \ '"horizontal"': '', - \ '"horizontal_homogeneous"': '', - \ '"horizontal_max"': '', - \ '"horizontal_flow"': '', - \ '"vertical"': '', - \ '"vertical_homogeneous"': '', - \ '"vertical_max"': '', - \ '"vertical_flow"': '', - \ '"stack"': '', - \ } -" table homogeneous mode -let s:tableHomogeneousMode = { - \ 'NONE': '', - \ 'TABLE': '', - \ 'ITEM': '', - \ } diff --git a/data/edje/vim/ftdetect/edc.vim b/data/edje/vim/ftdetect/edc.vim deleted file mode 100644 index d8cc228c27..0000000000 --- a/data/edje/vim/ftdetect/edc.vim +++ /dev/null @@ -1,3 +0,0 @@ -au BufRead,BufNewFile *.edc set filetype=edc -au BufRead,BufNewFile *.sma set filetype=embryo -au BufRead,BufNewFile *.embryo set filetype=embryo diff --git a/data/edje/vim/ftplugin/edc.vim b/data/edje/vim/ftplugin/edc.vim deleted file mode 100644 index 5a90a56a6c..0000000000 --- a/data/edje/vim/ftplugin/edc.vim +++ /dev/null @@ -1,23 +0,0 @@ -" 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 diff --git a/data/edje/vim/indent/edc.vim b/data/edje/vim/indent/edc.vim deleted file mode 100644 index 498be4a5b1..0000000000 --- a/data/edje/vim/indent/edc.vim +++ /dev/null @@ -1,83 +0,0 @@ -" 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/data/edje/vim/plugin-info.txt b/data/edje/vim/plugin-info.txt deleted file mode 100644 index e01cb420e4..0000000000 --- a/data/edje/vim/plugin-info.txt +++ /dev/null @@ -1,8 +0,0 @@ -{ - "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" -} diff --git a/data/edje/vim/snippets/edc.snippets b/data/edje/vim/snippets/edc.snippets deleted file mode 100644 index bb93e42265..0000000000 --- a/data/edje/vim/snippets/edc.snippets +++ /dev/null @@ -1,99 +0,0 @@ -snippet col - collections { - ${1} - } - -snippet images - images { - ${1} - } - -snippet image - image: "${1:.png}" COMP; - -snippet group - group { name: "${1}"; - ${2} - parts { - ${3} - } - } - -snippet part - part { name: "${1}"; - type: ${2:RECT}; - mouse_events: 0; - description { state: "default" 0.0; - visible: 1; - color: 255 255 255 255; - rel1 { - to_x: "${2:bg}"; - to_y: "${3:bg}"; - relative: 0.0 0.0; - offset: 0 0; - } - rel2 { - to_x: "${4:bg}"; - to_y: "${5:bg}"; - relative: 1.0 1.0; - offset: -1 -1; - } - } - } - -snippet bg - part { name: "${1:bg}"; - type: RECT; - mouse_events: 0; - description { state: "default" 0.0; - visible: 1; - color: 0 0 0 0; - } - } - -snippet event - part { name: "${1:event}"; - type: RECT; - mouse_events: 1; - description { state: "default" 0.0; - visible: 1; - color: 0 0 0 0; - } - } - -snippet IMAGE - part { name: "${1:image}"; - type: IMAGE; - mouse_events: 0; - description { state: "default" 0.0; - visible: 1; - image { - normal: "${2}"; - border: 0 0 0 0; - middle: 1; - } - } - } - -snippet desc - description { state: "${1}" ${2:0.0}; - inherit: "default" 0.0; - ${3} - } - -snippet programs - programs { - ${1} - } - -snippet program - program { name: "${1}"; - ${2} - } - -snippet clicked - program { name: "${1:mouse_clicked}"; - signal: "mouse,clicked,${2:1}"; - source: "${2:event}"; - action: SIGNAL_EMIT "${3}" "${4}"; - } diff --git a/data/edje/vim/syntax/edc.vim b/data/edje/vim/syntax/edc.vim deleted file mode 100644 index 6d87d7097f..0000000000 --- a/data/edje/vim/syntax/edc.vim +++ /dev/null @@ -1,246 +0,0 @@ -" 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 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 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 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 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 -syn keyword edcConstant SOLID - -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 diff --git a/data/edje/vim/syntax/embryo.vim b/data/edje/vim/syntax/embryo.vim deleted file mode 100644 index 11175d893f..0000000000 --- a/data/edje/vim/syntax/embryo.vim +++ /dev/null @@ -1,195 +0,0 @@ -" 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 -"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 |