SOURCES: javascript.vim - updated to 0.5

adamg adamg at pld-linux.org
Tue Apr 25 12:21:37 CEST 2006


Author: adamg                        Date: Tue Apr 25 10:21:37 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- updated to 0.5

---- Files affected:
SOURCES:
   javascript.vim (1.1 -> 1.2) 

---- Diffs:

================================================================
Index: SOURCES/javascript.vim
diff -u SOURCES/javascript.vim:1.1 SOURCES/javascript.vim:1.2
--- SOURCES/javascript.vim:1.1	Tue Mar 14 22:30:17 2006
+++ SOURCES/javascript.vim	Tue Apr 25 12:21:32 2006
@@ -1,14 +1,13 @@
 " Vim syntax file
 " Language:     JavaScript
 " Maintainer:   Yi Zhao <zzlinux AT hotmail DOT com>
-" Last Change:  2006 March 10
-" Version:      0.3
+" Last Change:  2006 March 20
+" Version:      0.5
 " Based On:     javascript.vim from Claudio Fleiner <claudio at fleiner.com>
-" Changes:      Include all JavaScript Global Objects; and jsLabel support
+" Changes:      export @htmlJavaScript to html.vim
 "
 " TODO
 "   - internal function hightlight
-"   - code fold support
 "
 
 if !exists("main_syntax")
@@ -23,21 +22,23 @@
 " Drop fold if it set but vim doesn't support it.
 if version < 600 && exists("javaScript_fold")
   unlet javaScript_fold
+"else
+"  let javaScript_fold = 'true'
 endif
 
 syntax case match
 
-syntax match   jsSpecial        "\\\d\d\d\|\\."
-syntax region  jsStringD        start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=jsSpecial, at htmlPreproc
-syntax region  jsStringS        start=+'+  skip=+\\\\\|\\'+  end=+'+  contains=jsSpecial, at htmlPreproc
-syntax region  jsRegexpString   start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gi]\?\s*$+ end=+/[gi]\?\s*[;.,)]+me=e-1 contains=@htmlPreproc oneline
+syntax match   jsSpecial        "\\\d\d\d\|\\x[0-9a-fA-F]\{2\}\|\\u[0-9a-fA-F]\{4\}\|\\."
+syntax region  jsStringD        start=+"+  skip=+\\\\\|\\$"+  end=+"+  contains=jsSpecial, at htmlPreproc
+syntax region  jsStringS        start=+'+  skip=+\\\\\|\\$'+  end=+'+  contains=jsSpecial, at htmlPreproc
+syntax region  jsRegexpString   start=+/\(\*\|/\)\@!+ skip=+\\\\\|\\/+ end=+/[gim]*\(\s*[),.;$]\)\@=+ contains=jsSpecial, at htmlPreproc oneline
 syntax match   jsNumber         "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
 
 syntax keyword jsCommentTodo    TODO FIXME XXX TBD contained
 syntax region  jsLineComment    start=+\/\/+ end=/$/ contains=jsCommentTodo oneline
-syntax region  jsComment        start="/\*"  end="\*/" contains=jsCommentTodo,jsLineComment
+syntax region  jsComment        start="/\*"  end="\*/" contains=jsCommentTodo,jsLineComment fold
 
-syntax match   jsLabel          /\(?\s*\)\@<!\w\+\(\s*:\)\@=/
+syntax match   jsLabel          /\(?\s*\)\@<!\<\w\+\(\s*:\)\@=/
 
 "" Programm Keywords
 syntax keyword jsSource         import export
@@ -48,30 +49,17 @@
 
 "" Statement Keywords
 syntax keyword jsConditional    if else
-syntax keyword jsRepeat         while for
+syntax keyword jsRepeat         do while for
 syntax keyword jsBranch         break continue switch case default return 
 syntax keyword jsStatement      try catch throw with 
 
 syntax keyword jsGlobalObjects  Array Boolean Date Error Function java JavaArray JavaClass JavaObject JavaPackage Math netscape Number Object Packages RegExp String sun
 
-if exists("javaScript_fold")
-    syntax match  jsFunction            "\<function\>"
-    syntax region jsFunctionFold        start="\<function\>.*[^};]$" end="^\z1}.*$" transparent fold keepend
-
-    syntax sync match jsSync    grouphere jsFunctionFold "\<function\>"
-    syntax sync match jsSync    grouphere NONE "^}"
-
-    setlocal foldmethod=syntax
-    setlocal foldtext=getline(v:foldstart)
-else
-    syntax keyword    jsFunction        function
-endif
-
 syntax sync fromstart
 syntax sync maxlines=100
 
 " Code blocks
-syntax cluster jsAll       contains=jsComment,jsSpecial,jsStringD,jsStringS,jsNumber,jsRegexpString,jsBoolean,jsFunction,jsFunctionFold,jsConditional,jsRepeat,jsBranch,jsOperator,jsType,jsStatement,jsBoolean,jsGlobalObjects
+syntax cluster jsAll       contains=jsComment,jsLineComment,jsSpecial,jsStringD,jsStringS,jsNumber,jsRegexpString,jsBoolean,jsFunction,jsConditional,jsRepeat,jsBranch,jsOperator,jsType,jsStatement,jsBoolean,jsGlobalObjects
 syntax region  jsBracket   matchgroup=jsBracket transparent start="\[" end="\]" contains=@jsAll,jsBracket,jsParen,jsBlock
 syntax region  jsParen     matchgroup=jsParen transparent start="(" end=")" contains=@jsAll,jsParen,jsBracket,jsBlock
 syntax region  jsBlock     matchgroup=jsBlcok transparent start="{" end="}" contains=ALL 
@@ -83,6 +71,21 @@
   syntax sync ccomment jsComment
 endif
 
+if exists("javaScript_fold")
+    syntax match  jsFunction            /\<function\>/
+    syntax match  jsFuncFoldStart       /\([=:^]\s*\)\@<=\<function\>\(\s*\w*\s*\)\@=/ nextgroup=jsFuncFoldParen skipwhite fold
+    syntax region jsFuncFoldParen       start="(" end=")" contained nextgroup=jsFuncBlock skipwhite contains=@jsAll,jsParen fold
+    syntax region jsFuncFoldBlock       start="{" end="}\([\s;]*$\)\@=" skipwhite contains=ALL contained fold
+
+    syntax sync match jsSync    grouphere jsFuncFoldBlock "\<function\>"
+    syntax sync match jsSync    grouphere NONE "^}"
+
+    setlocal foldmethod=syntax
+    setlocal foldtext=getline(v:foldstart)
+else
+    syntax keyword    jsFunction        function
+endif
+
 " 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
@@ -119,6 +122,11 @@
   HiLink jsGlobalObjects        Special
   delcommand HiLink
 endif
+
+" Define the htmlJavaScript for HTML syntax html.vim
+syntax cluster htmlJavaScript contains=@jsAll,jsBracket,jsParen,jsBlock,jsParenError
+" Removing javaScriptExpression, while it didn't work because we are loaded first.
+"syntax clear javaScriptExpression
 
 let b:current_syntax = "javascript"
 if main_syntax == 'javascript'
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/javascript.vim?r1=1.1&r2=1.2&f=u



More information about the pld-cvs-commit mailing list