From 117a7b071ae4b13f1e433832873fdceb68c551ea Mon Sep 17 00:00:00 2001 From: =?utf8?q?Adam=20Go=C5=82=C4=99biowski?= Date: Tue, 25 Apr 2006 10:21:32 +0000 Subject: [PATCH] - updated to 0.5 Changed files: javascript.vim -> 1.2 --- javascript.vim | 58 ++++++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/javascript.vim b/javascript.vim index 9b28fb9..4af812b 100644 --- a/javascript.vim +++ b/javascript.vim @@ -1,14 +1,13 @@ " Vim syntax file " Language: JavaScript " Maintainer: Yi Zhao -" Last Change: 2006 March 10 -" Version: 0.3 +" Last Change: 2006 March 20 +" Version: 0.5 " Based On: javascript.vim from Claudio Fleiner -" 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 @@ 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 syntax case match -syntax match jsSpecial "\\\d\d\d\|\\." -syntax region jsStringD start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=jsSpecial,@htmlPreproc -syntax region jsStringS start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=jsSpecial,@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,@htmlPreproc +syntax region jsStringS start=+'+ skip=+\\\\\|\\$'+ end=+'+ contains=jsSpecial,@htmlPreproc +syntax region jsRegexpString start=+/\(\*\|/\)\@!+ skip=+\\\\\|\\/+ end=+/[gim]*\(\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 +syntax region jsComment start="/\*" end="\*/" contains=jsCommentTodo,jsLineComment fold -syntax match jsLabel /\(?\s*\)\@" - syntax region jsFunctionFold start="\.*[^};]$" end="^\z1}.*$" transparent fold keepend - - syntax sync match jsSync grouphere jsFunctionFold "\" - 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 @@ if main_syntax == "javascript" syntax sync ccomment jsComment endif +if exists("javaScript_fold") + syntax match jsFunction /\/ + 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 @@ -120,6 +123,11 @@ if version >= 508 || !exists("did_javascript_syn_inits") 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 -- 2.44.0