OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Ralf S. Engelschall
  Root:   /v/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-src                      Date:   30-May-2008 12:50:40
  Branch: HEAD                             Handle: 2008053011503900

  Added files:
    openpkg-src/haxe        haxe.vim
  Modified files:
    openpkg-src/haxe        haxe.spec

  Log:
    add Vim syntax highlighting

  Summary:
    Revision    Changes     Path
    1.2         +5  -1      openpkg-src/haxe/haxe.spec
    1.1         +265 -0     openpkg-src/haxe/haxe.vim
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/haxe/haxe.spec
  ============================================================================
  $ cvs diff -u -r1.1 -r1.2 haxe.spec
  --- openpkg-src/haxe/haxe.spec        30 May 2008 10:23:05 -0000      1.1
  +++ openpkg-src/haxe/haxe.spec        30 May 2008 10:50:39 -0000      1.2
  @@ -41,6 +41,7 @@
   #   list of sources
   Source0:      
ftp://ftp.openpkg.org/sources/CPY/haxe/haxe-%{V_snapshot}.tar.bz2
   Source1:      haxe.sh
  +Source2:      haxe.vim
   Patch0:       haxe.patch
   
   #   build information
  @@ -77,13 +78,16 @@
       %{l_shtool} mkdir -f -p -m 755 \
           $RPM_BUILD_ROOT%{l_prefix}/bin \
           $RPM_BUILD_ROOT%{l_prefix}/libexec/haxe \
  -        $RPM_BUILD_ROOT%{l_prefix}/lib/haxe
  +        $RPM_BUILD_ROOT%{l_prefix}/lib/haxe \
  +        $RPM_BUILD_ROOT%{l_prefix}/share/vim/syntax
       %{l_shtool} install -c -m 755 %{l_value -s -a} \
           %{SOURCE haxe.sh} $RPM_BUILD_ROOT%{l_prefix}/bin/haxe
       %{l_shtool} install -c -s -m 755 \
           bin/haxe $RPM_BUILD_ROOT%{l_prefix}/libexec/haxe/
       find haxe/std -name CVS -type d -print | xargs rm -rf
       cp -rp haxe/std/* $RPM_BUILD_ROOT%{l_prefix}/lib/haxe/
  +    %{l_shtool} install -c -m 644 \
  +        %{SOURCE haxe.vim} $RPM_BUILD_ROOT%{l_prefix}/share/vim/syntax/
       %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
   
   %files -f files
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/haxe/haxe.vim
  ============================================================================
  $ cvs diff -u -r0 -r1.1 haxe.vim
  --- /dev/null 2008-05-30 12:49:26 +0200
  +++ haxe.vim  2008-05-30 12:50:40 +0200
  @@ -0,0 +1,265 @@
  +" Vim syntax file
  +" Language:     haxe
  +
  +" Please check :help haxe.vim for comments on some of the options available.
  +
  +"set errorformat=%f\:%l\:\ characters\ %c-%*[^\ ]\ %m,%f\:%l\:\ %m
  +set errorformat=%f\:%l\:\ characters\ %c-%*[^\ ]\ %m,%f\:%l\:\ %m
  +
  +" Quit when a syntax file was already loaded
  +if !exists("main_syntax")
  +  if version < 600
  +    syntax clear
  +  elseif exists("b:current_syntax")
  +    finish
  +  endif
  +  " we define it here so that included files can test for it
  +  let main_syntax='haxe'
  +endif
  +
  +" don't use standard HiLink, it will not work with included syntax files
  +if version < 508
  +  command! -nargs=+ HaxeHiLink hi link <args>
  +else
  +  command! -nargs=+ HaxeHiLink hi def link <args>
  +endif
  +
  +" some characters that cannot be in a haxe program (outside a string)
  +syn match haxeError "[EMAIL PROTECTED]"
  +syn match haxeError "<<<\|=>\|<>\|||=\|&&=\|\*\/"
  +
  +" use separate name so that it can be deleted in haxecc.vim
  +syn match   haxeError2 "#\|=<"
  +HaxeHiLink haxeError2 haxeError
  +
  +
  +" keyword definitions
  +syn keyword haxeExternal     import extern package
  +syn keyword haxeConditional  if else switch
  +syn keyword haxeRepeat               while for do in
  +syn keyword haxeBoolean              true false
  +syn keyword haxeConstant     null
  +syn keyword haxeTypedef              this super
  +syn keyword haxeOperator     new cast 
  +syn keyword haxeType         Void Bool Int Float Dynamic
  +syn keyword haxeStatement    return
  +syn keyword haxeStorageClass    function var final typedef enum
  +" syn keyword haxeStatic             
  +syn keyword haxeExceptions      throw try catch finally untyped
  +syn keyword haxeAssert               assert
  +syn keyword haxeMethodDecl      synchronized throws
  +syn keyword haxeClassDecl       extends implements interface
  +syn match   haxeOperator "\.\.\."
  +" to differentiate the keyword class from MyClass.class we use a match here
  +syn match   haxeTypedef              "\.\s*\<class\>"ms=s+1
  +syn match   haxeClassDecl       "^class\>"
  +syn match   haxeClassDecl       "[^.]\s*\<class\>"ms=s+1
  +syn keyword haxeBranch               break continue 
nextgroup=haxeUserLabelRef skipwhite
  +syn match   haxeUserLabelRef    "\k\+" contained
  +syn keyword haxeScopeDecl       static public protected private abstract 
override 
  +
  +" haxe.lang.*
  +syn match haxeLangClass "\<System\>"
  +syn keyword haxeLangClass  Array BasicType Class Date DateTools EReg Hash 
IntHash IntIter Iterator Lambda List Math Md5 Reflect Std String StringBuf 
StringTools Xml XmlType
  +HaxeHiLink haxeLangClass                  haxeConstant
  +HaxeHiLink haxeLangObject                 haxeConstant
  +syn cluster haxeTop add=haxeLangObject,haxeLangClass
  +syn cluster haxeClasses add=haxeLangClass
  +
  +if filereadable(expand("<sfile>:p:h")."/haxeid.vim")
  +  source <sfile>:p:h/haxeid.vim
  +endif
  +
  +if exists("haxe_space_errors")
  +  if !exists("haxe_no_trail_space_error")
  +    syn match   haxeSpaceError  "\s\+$"
  +  endif
  +  if !exists("haxe_no_tab_space_error")
  +    syn match   haxeSpaceError  " \+\t"me=e-1
  +  endif
  +endif
  +
  +syn region  haxeLabelRegion     transparent matchgroup=haxeLabel 
start="\<case\>" matchgroup=NONE end=":" contains=haxeNumber,haxeCharacter
  +syn match   haxeUserLabel       "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 
contains=haxeLabel
  +syn keyword haxeLabel                default
  +
  +" The following cluster contains all haxe groups except the contained ones
  +syn cluster haxeTop 
add=haxeExternal,haxeError,haxeError,haxeBranch,haxeLabelRegion,haxeLabel,haxeConditional,haxeRepeat,haxeBoolean,haxeConstant,haxeTypedef,haxeOperator,haxeType,haxeType,haxeStatement,haxeStorageClass,haxeAssert,haxeExceptions,haxeMethodDecl,haxeClassDecl,haxeClassDecl,haxeClassDecl,haxeScopeDecl,haxeError,haxeError2,haxeUserLabel,haxeLangObject
  +
  +
  +" Comments
  +syn keyword haxeTodo          contained TODO FIXME XXX
  +if exists("haxe_comment_strings")
  +  syn region  haxeCommentString    contained start=+"+ end=+"+ end=+$+ 
end=+\*/+me=s-1,he=s-1 
contains=haxeSpecial,haxeCommentStar,haxeSpecialChar,@Spell
  +  syn region  haxeComment2String   contained start=+"+  end=+$\|"+  
contains=haxeSpecial,haxeSpecialChar,@Spell
  +  syn match   haxeCommentCharacter contained "'\\[^']\{1,6\}'" 
contains=haxeSpecialChar
  +  syn match   haxeCommentCharacter contained "'\\''" contains=haxeSpecialChar
  +  syn match   haxeCommentCharacter contained "'[^\\]'"
  +  syn cluster haxeCommentSpecial 
add=haxeCommentString,haxeCommentCharacter,haxeNumber
  +  syn cluster haxeCommentSpecial2 
add=haxeComment2String,haxeCommentCharacter,haxeNumber
  +endif
  +syn region  haxeComment               start="/\*"  end="\*/" [EMAIL 
PROTECTED],haxeTodo,@Spell
  +syn match   haxeCommentStar      contained "^\s*\*[^/]"me=e-1
  +syn match   haxeCommentStar      contained "^\s*\*$"
  +syn match   haxeLineComment      "//.*" [EMAIL PROTECTED],haxeTodo,@Spell
  +HaxeHiLink haxeCommentString haxeString
  +HaxeHiLink haxeComment2String haxeString
  +HaxeHiLink haxeCommentCharacter haxeCharacter
  +
  +syn cluster haxeTop add=haxeComment,haxeLineComment
  +
  +if exists("haxe_haxedoc") || main_syntax == 'jsp'
  +  syntax case ignore
  +  " syntax coloring for haxedoc comments (HTML)
  +  " syntax include @haxeHtml <sfile>:p:h/html.vim
  +  " unlet b:current_syntax
  +  syn region  haxeDocComment    start="/\*\*"  end="\*/" keepend 
contains=haxeCommentTitle,@haxeHtml,haxeDocTags,haxeTodo,@Spell
  +  syn region  haxeCommentTitle  contained matchgroup=haxeDocComment 
start="/\*\*"   matchgroup=haxeCommentTitle keepend end="\.$" end="\.[ 
\t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 [EMAIL 
PROTECTED],haxeCommentStar,haxeTodo,@Spell,haxeDocTags
  +
  +  syn region haxeDocTags  contained start="[EMAIL 
PROTECTED](link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}"
  +  syn match  haxeDocTags  contained 
"@\(see\|param\|exception\|throws\|since\)\s\+\S\+" contains=haxeDocParam
  +  syn match  haxeDocParam contained "\s\S\+"
  +  syn match  haxeDocTags  contained 
"@\(version\|author\|return\|deprecated\|serial\|serialField\|serialData\)\>"
  +  syntax case match
  +endif
  +
  +" match the special comment /**/
  +syn match   haxeComment               "/\*\*/"
  +
  +" Strings and constants
  +syn match   haxeSpecialError     contained "\\."
  +syn match   haxeSpecialCharError contained "[^']"
  +syn match   haxeSpecialChar      contained 
"\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
  +syn match haxeEregEscape     contained "\(\\\\\|\\/\)"
  +syn region  haxeEreg         start=+\~\/+ end=+\/[gims]*+ 
contains=haxeEregEscape
  +
  +syn region  haxeString               start=+"+ end=+"+ 
contains=haxeSpecialChar,haxeSpecialError,@Spell
  +syn region  haxeSingleString  start=+'+ end=+'+ 
  +" next line disabled, it can cause a crash for a long line
  +"syn match   haxeStringError   +"\([^"\\]\|\\.\)*$+
  +syn match   haxeCharacter     "'[^']*'" 
contains=haxeSpecialChar,haxeSpecialCharError
  +syn match   haxeCharacter     "'\\''" contains=haxeSpecialChar
  +syn match   haxeCharacter     "'[^\\]'"
  +syn match   haxeNumber                
"\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
  +"syn match   haxeNumber               
"\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
  +syn match   haxeNumber                
"\(\<\d\+\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
  +syn match   haxeNumber                "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
  +syn match   haxeNumber                "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
  +
  +
  +syn region haxeCondIf start="#if \+!\?" end="\W" skip="([A-Za-z0-9_ |&!]\+)"
  +syn region haxeCondElse start="#else \+!\?" end="\W" skip="([A-Za-z0-9_ 
|&!]\+)"
  +syn match haxeCondEnd "#end"
  +syn match haxeCondError "#else *$"
  +
  +" unicode characters
  +syn match   haxeSpecial "\\u\d\{4\}"
  +
  +syn cluster haxeTop 
add=haxeString,haxeCharacter,haxeNumber,haxeSpecial,haxeStringError
  +
  +if exists("haxe_highlight_functions")
  +  if haxe_highlight_functions == "indent"
  +    syn match  haxeFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. 
\[\]]*([^-+*/()]*)" 
contains=haxeScopeDecl,haxeType,haxeStorageClass,@haxeClasses
  +    syn region haxeFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. 
\[\]]*([^-+*/()]*,\s*+ end=+)+ 
contains=haxeScopeDecl,haxeType,haxeStorageClass,@haxeClasses
  +    syn match  haxeFuncDef "^  [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" 
contains=haxeScopeDecl,haxeType,haxeStorageClass,@haxeClasses
  +    syn region haxeFuncDef start=+^  [$_a-zA-Z][$_a-zA-Z0-9_. 
\[\]]*([^-+*/()]*,\s*+ end=+)+ 
contains=haxeScopeDecl,haxeType,haxeStorageClass,@haxeClasses
  +  else
  +    " This line catches method declarations at any indentation>0, but it 
assumes
  +    " two things:
  +    "   1. class names are always capitalized (ie: Button)
  +    "   2. method names are never capitalized (except constructors, of 
course)
  +    syn region haxeFuncDef 
start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|override\|final\|native\|synchronized\)\s\+\)*\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*(+
 end=+)+ 
contains=haxeScopeDecl,haxeType,haxeStorageClass,haxeComment,haxeLineComment,@haxeClasses
  +  endif
  +  syn match  haxeBraces  "[{}]"
  +  syn cluster haxeTop add=haxeFuncDef,haxeBraces
  +endif
  +
  +if exists("haxe_mark_braces_in_parens_as_errors")
  +  syn match haxeInParen               contained "[{}]"
  +  HaxeHiLink haxeInParen     haxeError
  +  syn cluster haxeTop add=haxeInParen
  +endif
  +
  +" catch errors caused by wrong parenthesis
  +syn region  haxeParenT  transparent matchgroup=haxeParen  start="("  end=")" 
[EMAIL PROTECTED],haxeParenT1
  +syn region  haxeParenT1 transparent matchgroup=haxeParen1 start="(" end=")" 
[EMAIL PROTECTED],haxeParenT2 contained
  +syn region  haxeParenT2 transparent matchgroup=haxeParen2 start="(" end=")" 
[EMAIL PROTECTED],haxeParenT  contained
  +syn match   haxeParenError       ")"
  +HaxeHiLink haxeParenError       haxeError
  +
  +if !exists("haxe_minlines")
  +  let haxe_minlines = 10
  +endif
  +exec "syn sync ccomment haxeComment minlines=" . haxe_minlines
  +
  +" The default highlighting.
  +if version >= 508 || !exists("did_haxe_syn_inits")
  +  if version < 508
  +    let did_haxe_syn_inits = 1
  +  endif
  +  HaxeHiLink haxeFuncDef             Function
  +  HaxeHiLink haxeBraces              Function
  +  HaxeHiLink haxeBranch              Conditional
  +  HaxeHiLink haxeUserLabelRef        haxeUserLabel
  +  HaxeHiLink haxeLabel               Label
  +  HaxeHiLink haxeUserLabel           Label
  +  HaxeHiLink haxeConditional Conditional
  +  HaxeHiLink haxeRepeat              Repeat
  +  HaxeHiLink haxeExceptions          Exception
  +  HaxeHiLink haxeAssert              Statement
  +  HaxeHiLink haxeStatic MoreMsg
  +  HaxeHiLink haxeStorageClass        StorageClass
  +  HaxeHiLink haxeMethodDecl          haxeStorageClass
  +  HaxeHiLink haxeClassDecl           haxeStorageClass
  +  HaxeHiLink haxeScopeDecl           haxeStorageClass
  +  HaxeHiLink haxeBoolean             Boolean
  +  HaxeHiLink haxeSpecial             Special
  +  HaxeHiLink haxeSpecialError        Error
  +  HaxeHiLink haxeSpecialCharError    Error
  +  HaxeHiLink haxeString              String
  +  HaxeHiLink haxeSingleString        String
  +  HaxeHiLink haxeEreg Special
  +  HaxeHiLink haxeEregEscape Special
  +  HaxeHiLink haxeCharacter           Character
  +  HaxeHiLink haxeSpecialChar SpecialChar
  +  HaxeHiLink haxeNumber              Number
  +  HaxeHiLink haxeError               Error
  +  HaxeHiLink haxeStringError Error
  +  HaxeHiLink haxeStatement           Statement
  +  HaxeHiLink haxeOperator            Operator
  +  HaxeHiLink haxeComment             Comment
  +  HaxeHiLink haxeDocComment          Comment
  +  HaxeHiLink haxeLineComment Comment
  +  HaxeHiLink haxeConstant            Constant
  +  HaxeHiLink haxeTypedef             Typedef
  +  HaxeHiLink haxeTodo                Todo
  +
  +  HaxeHiLink haxeCommentTitle        SpecialComment
  +  HaxeHiLink haxeDocTags             Special
  +  HaxeHiLink haxeDocParam            Function
  +  HaxeHiLink haxeCommentStar haxeComment
  +
  +  HaxeHiLink haxeType                Type
  +  HaxeHiLink haxeExternal            Include
  +
  +  HaxeHiLink htmlComment             Special
  +  HaxeHiLink htmlCommentPart Special
  +  HaxeHiLink haxeSpaceError          Error
  +
  +  HaxeHiLink haxeCondIf Macro
  +  HaxeHiLink haxeCondElse Macro
  +  HaxeHiLink haxeCondEnd Macro
  +  HaxeHiLink haxeCondError Error
  +endif
  +
  +delcommand HaxeHiLink
  +
  +let b:current_syntax = "haxe"
  +
  +if main_syntax == 'haxe'
  +  unlet main_syntax
  +endif
  +
  +let b:spell_options="contained"
  +
  +" vim: ts=8
  @@ .
______________________________________________________________________
OpenPKG                                             http://openpkg.org
CVS Repository Commit List                     [email protected]

Reply via email to