" Vim syntax file " Language: JavaScript " Maintainer: Yi Zhao " Last Change: 2006 March 20 " Version: 0.5.2 " Based On: javascript.vim from Claudio Fleiner " Changes: dollar sigh '$' and underscore '_' are permitted anywhere in an identifier. " Thanks for the help from "Nai chao Wu" " " TODO " - internal function hightlight " 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 "else " let javaScript_fold = 'true' endif " dollar sigh is permittd anywhere in an identifier setlocal iskeyword+=$ syntax case match 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,@htmlPreproc syntax region jsStringS start=+'+ skip=+\\\\\|\\$'+ end=+'+ contains=jsSpecial,@htmlPreproc syntax region jsRegexpString start=+/\(\*\|/\)\@!+ skip=+\\\\\|\\/+ end=+/[gim]\{-,3}\(\s*[),.;$]\)\@=+ contains=jsSpecial,@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 fold syntax match jsLabel /\(?\s*\)\@/ syntax match jsFuncFoldStart /\([=:^]\s*\)\@<=\\(\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 "\" 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 if version >= 508 || !exists("did_javascript_syn_inits") if version < 508 let did_javascript_syn_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link 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 " 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' unlet main_syntax endif " vim: ts=4