SOURCES: javascript.vim (NEW) - javascript syntax replacement (one...

baggins baggins at pld-linux.org
Tue Mar 14 22:30:22 CET 2006


Author: baggins                      Date: Tue Mar 14 21:30:22 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- javascript syntax replacement (one that's useful)

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

---- Diffs:

================================================================
Index: SOURCES/javascript.vim
diff -u /dev/null SOURCES/javascript.vim:1.1
--- /dev/null	Tue Mar 14 22:30:22 2006
+++ SOURCES/javascript.vim	Tue Mar 14 22:30:17 2006
@@ -0,0 +1,128 @@
+" Vim syntax file
+" Language:     JavaScript
+" Maintainer:   Yi Zhao <zzlinux AT hotmail DOT com>
+" Last Change:  2006 March 10
+" Version:      0.3
+" Based On:     javascript.vim from Claudio Fleiner <claudio at fleiner.com>
+" Changes:      Include all JavaScript Global Objects; and jsLabel support
+"
+" TODO
+"   - internal function hightlight
+"   - code fold support
+"
+
+if !exists("main_syntax")
+  if version < 600
+    syntax clear
+  elseif exists("b:current_syntax")
+    finish
+  endif
+  let main_syntax = 'javascript'
+endif
+
+" Drop fold if it set but vim doesn't support it.
+if version < 600 && exists("javaScript_fold")
+  unlet javaScript_fold
+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   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 match   jsLabel          /\(?\s*\)\@<!\w\+\(\s*:\)\@=/
+
+"" Programm Keywords
+syntax keyword jsSource         import export
+syntax keyword jsType           this var const void 
+syntax keyword jsOperator       delete new in instanceof typeof 
+syntax keyword jsBoolean        true false
+syntax keyword jsNull           null
+
+"" Statement Keywords
+syntax keyword jsConditional    if else
+syntax keyword jsRepeat         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 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 
+
+" catch errors caused by wrong parenthesis
+syntax match   jsParenError  ")\|}\|\]"
+
+if main_syntax == "javascript"
+  syntax sync ccomment jsComment
+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
+if version >= 508 || !exists("did_javascript_syn_inits")
+  if version < 508
+    let did_javascript_syn_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+  HiLink jsComment              Comment
+  HiLink jsLineComment          Comment
+  HiLink jsCommentTodo          Todo
+  HiLink jsStringS              String
+  HiLink jsStringD              String
+  HiLink jsRegexpString         String
+  HiLink jsCharacter            Character
+  HiLink jsConditional          Conditional
+  HiLink jsBranch               Conditional
+  HiLink jsRepeat               Repeat
+  HiLink jsStatement            Statement
+  HiLink jsFunction             Function
+  HiLink jsBlock                Function
+  HiLink jsError                Error
+  HiLink jsParenError           Error
+  HiLink jsOperator             Operator
+  HiLink jsType                 Type
+  HiLink jsNull                 Type
+  HiLink jsNumber               Number
+  HiLink jsBoolean              Boolean
+  HiLink jsLabel                Label
+  HiLink jsSpecial              Special
+  HiLink jsSource               Special
+  HiLink jsGlobalObjects        Special
+  delcommand HiLink
+endif
+
+let b:current_syntax = "javascript"
+if main_syntax == 'javascript'
+  unlet main_syntax
+endif
+
+" vim: ts=4
================================================================


More information about the pld-cvs-commit mailing list