diff --git a/indent/javascript.vim b/indent/javascript.vim index 99e03ee..22893fe 100644 --- a/indent/javascript.vim +++ b/indent/javascript.vim @@ -33,15 +33,13 @@ set cpo&vim " ============ " Regex of syntax group names that are or delimit string or are comments. -let s:syng_strcom = '\' +let s:syng_strcom = 'javaScript\%(String\|RegexpString\|CommentTodo\|LineComment\|Comment\|DocComment\)' " Regex of syntax group names that are strings. -let s:syng_string = - \ '\' +let s:syng_string = 'javaScript\%(RegexpString\)' " Regex of syntax group names that are strings or documentation. -let s:syng_stringdoc = - \'\' +let s:syng_stringdoc = 'javaScriptDocComment' " Expression used to check whether we should skip a match with searchpair(). let s:skip_expr = "synIDattr(synID(line('.'),col('.'),1),'name') =~ '".s:syng_strcom."'" @@ -167,7 +165,7 @@ function s:IndentWithContinuation(lnum, ind, width) " TODO: the || s:IsInString() thing worries me a bit. if p_lnum != lnum if s:Match(p_lnum,s:continuation_regex)||s:IsInString(p_lnum,strlen(line)) - return a:ind + a:width + return a:ind endif endif diff --git a/syntax/javascript.vim b/syntax/javascript.vim index 625e35e..3b3ab5e 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -1,10 +1,10 @@ " Vim syntax file " Language: JavaScript " Maintainer: Yi Zhao (ZHAOYI) -" Last Change By: Darrick Wiebe -" Last Change: August 25, 2010 -" Version: 0.7.8 -" Changes: Disambiguate regex strings and mathematical statements +" Last Change By: Marc Harter +" Last Change: February 18, 2011 +" Version: 0.7.9 +" Changes: Updates JSDoc syntax " " TODO: " - Add the HTML syntax inside the JSDoc @@ -19,10 +19,10 @@ if !exists("main_syntax") endif "" Drop fold if it set but VIM doesn't support it. -"let b:javascript_fold='true' -"if version < 600 " Don't support the old version -" unlet! b:javascript_fold -"endif +let b:javascript_fold='true' +if version < 600 " Don't support the old version + unlet! b:javascript_fold +endif "" dollar sigh is permittd anywhere in an identifier setlocal iskeyword+=$ @@ -32,11 +32,12 @@ syntax sync fromstart "" JavaScript comments syntax keyword javaScriptCommentTodo TODO FIXME XXX TBD contained syntax region javaScriptLineComment start=+\/\/+ end=+$+ keepend contains=javaScriptCommentTodo,@Spell +syntax region javaScriptEnvComment start="\%^#!" end="$" display syntax region javaScriptLineComment start=+^\s*\/\/+ skip=+\n\s*\/\/+ end=+$+ keepend contains=javaScriptCommentTodo,@Spell fold syntax region javaScriptCvsTag start="\$\cid:" end="\$" oneline contained syntax region javaScriptComment start="/\*" end="\*/" contains=javaScriptCommentTodo,javaScriptCvsTag,@Spell fold -"" JSDoc support start +"" JSDoc / JSDoc Toolkit if !exists("javascript_ignore_javaScriptdoc") syntax case ignore @@ -44,11 +45,23 @@ if !exists("javascript_ignore_javaScriptdoc") "syntax include @javaHtml :p:h/html.vim "unlet b:current_syntax - syntax region javaScriptDocComment matchgroup=javaScriptComment start="/\*\*\s*$" end="\*/" contains=javaScriptDocTags,javaScriptCommentTodo,javaScriptCvsTag,@javaScriptHtml,@Spell fold - syntax match javaScriptDocTags contained "@\(param\|argument\|requires\|exception\|throws\|type\|class\|extends\|see\|link\|member\|module\|method\|title\|namespace\|optional\|default\|base\|file\)\>" nextgroup=javaScriptDocParam,javaScriptDocSeeTag skipwhite - syntax match javaScriptDocTags contained "@\(beta\|deprecated\|description\|fileoverview\|author\|license\|version\|returns\=\|constructor\|private\|protected\|final\|ignore\|addon\|exec\)\>" - syntax match javaScriptDocParam contained "\%(#\|\w\|\.\|:\|\/\)\+" - syntax region javaScriptDocSeeTag contained matchgroup=javaScriptDocSeeTag start="{" end="}" contains=javaScriptDocTags + syntax region javaScriptDocComment matchgroup=javaScriptComment start="/\*\*\s*" end="\*/" contains=javaScriptDocTags,javaScriptCommentTodo,javaScriptCvsTag,@javaScriptHtml,@Spell fold + + " tags containing a param + syntax match javaScriptDocTags contained "@\(augments\|base\|borrows\|class\|constructs\|default\|exception\|exports\|extends\|file\|member\|memberOf\|module\|name\|namespace\|optional\|requires\|title\|throws\|version\)\>" nextgroup=javaScriptDocParam skipwhite + " tags containing type and param + syntax match javaScriptDocTags contained "@\(argument\|param\|property\)\>" nextgroup=javaScriptDocType skipwhite + " tags containing type but no param + syntax match javaScriptDocTags contained "@\(type\|return\|returns\)\>" nextgroup=javaScriptDocTypeNoParam skipwhite + " tags containing references + syntax match javaScriptDocTags contained "@\(lends\|link\|see\)\>" nextgroup=javaScriptDocSeeTag skipwhite + " other tags (no extra syntax) + syntax match javaScriptDocTags contained "@\(access\|addon\|alias\|author\|beta\|constant\|constructor\|copyright\|deprecated\|description\|event\|example\|exec\|field\|fileOverview\|fileoverview\|function\|global\|ignore\|inner\|license\|overview\|private\|protected\|project\|public\|readonly\|since\|static\)\>" + + syntax match javaScriptDocType contained "\%(#\|\"\|{\|}\|\w\|\.\|:\|\/\)\+" nextgroup=javaScriptDocParam skipwhite + syntax match javaScriptDocTypeNoParam contained "\%(#\|\"\|{\|}\|\w\|\.\|:\|\/\)\+" + syntax match javaScriptDocParam contained "\%(#\|\"\|{\|}\|\w\|\.\|:\|\/\)\+" + syntax region javaScriptDocSeeTag contained matchgroup=javaScriptDocSeeTag start="{" end="}" contains=javaScriptDocTags syntax case match endif "" JSDoc end @@ -59,7 +72,8 @@ syntax case match syntax match javaScriptSpecial "\\\d\d\d\|\\x\x\{2\}\|\\u\x\{4\}\|\\." syntax region javaScriptStringD start=+"+ skip=+\\\\\|\\$"+ end=+"+ contains=javaScriptSpecial,@htmlPreproc syntax region javaScriptStringS start=+'+ skip=+\\\\\|\\$'+ end=+'+ contains=javaScriptSpecial,@htmlPreproc -syntax region javaScriptRegexpString start=+\(\([)\]"']\|\d\|\w\)\s*\)\@\|\<0[xX]\x\+\>/ syntax match javaScriptFloat /\<-\=\%(\d\+\.\d\+\|\d\+\.\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/ syntax match javaScriptLabel /\(?\s*\)\@= 508 || !exists("did_javascript_syn_inits") endif HiLink javaScriptComment Comment HiLink javaScriptLineComment Comment + HiLink javaScriptEnvComment PreProc HiLink javaScriptDocComment Comment HiLink javaScriptCommentTodo Todo HiLink javaScriptCvsTag Function HiLink javaScriptDocTags Special HiLink javaScriptDocSeeTag Function - HiLink javaScriptDocParam Function + HiLink javaScriptDocType Type + HiLink javaScriptDocTypeNoParam Type + HiLink javaScriptDocParam Label HiLink javaScriptStringS String HiLink javaScriptStringD String HiLink javaScriptRegexpString String + HiLink javaScriptRegexpCharClass Character HiLink javaScriptCharacter Character HiLink javaScriptPrototype Type HiLink javaScriptConditional Conditional @@ -209,6 +217,7 @@ if version >= 508 || !exists("did_javascript_syn_inits") HiLink javaScriptParensErrC Error HiLink javaScriptOperator Operator HiLink javaScriptType Type + HiLink javaScriptThis Type HiLink javaScriptNull Type HiLink javaScriptNumber Number HiLink javaScriptFloat Number