From 459a658ad24cceed5c129fae8f0d1185925d03d6 Mon Sep 17 00:00:00 2001 From: Wade Simmons Date: Thu, 21 Jul 2011 23:55:55 -0700 Subject: [PATCH 1/6] add Node.JS globals --- syntax/javascript.vim | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/syntax/javascript.vim b/syntax/javascript.vim index 3b3ab5e3..39f4c0ba 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -149,9 +149,15 @@ endif "DOM/HTML/CSS "" end DOM/HTML/CSS specified things +"" Node.JS + +syntax keyword javaScriptNodeGlobalObjects Buffer clearInterval clearTimeout console module process require setInterval setTimeout + +"" end Node.JS + "" Code blocks -syntax cluster javaScriptAll contains=javaScriptComment,javaScriptLineComment,javaScriptDocComment,javaScriptStringD,javaScriptStringS,javaScriptRegexpString,javaScriptNumber,javaScriptFloat,javaScriptLabel,javaScriptSource,javaScriptThis,javaScriptType,javaScriptOperator,javaScriptBoolean,javaScriptNull,javaScriptFunction,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptStatement,javaScriptGlobalObjects,javaScriptExceptions,javaScriptFutureKeys,javaScriptDomErrNo,javaScriptDomNodeConsts,javaScriptHtmlEvents,javaScriptDotNotation +syntax cluster javaScriptAll contains=javaScriptComment,javaScriptLineComment,javaScriptDocComment,javaScriptStringD,javaScriptStringS,javaScriptRegexpString,javaScriptNumber,javaScriptFloat,javaScriptLabel,javaScriptSource,javaScriptThis,javaScriptType,javaScriptOperator,javaScriptBoolean,javaScriptNull,javaScriptFunction,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptStatement,javaScriptGlobalObjects,javaScriptExceptions,javaScriptFutureKeys,javaScriptDomErrNo,javaScriptDomNodeConsts,javaScriptHtmlEvents,javaScriptDotNotation,javaScriptNodeGlobalObjects syntax region javaScriptBracket matchgroup=javaScriptBracket transparent start="\[" end="\]" contains=@javaScriptAll,javaScriptParensErrB,javaScriptParensErrC,javaScriptBracket,javaScriptParen,javaScriptBlock,@htmlPreproc syntax region javaScriptParen matchgroup=javaScriptParen transparent start="(" end=")" contains=@javaScriptAll,javaScriptParensErrA,javaScriptParensErrC,javaScriptParen,javaScriptBracket,javaScriptBlock,@htmlPreproc syntax region javaScriptBlock matchgroup=javaScriptBlock transparent start="{" end="}" contains=@javaScriptAll,javaScriptParensErrA,javaScriptParensErrB,javaScriptParen,javaScriptBracket,javaScriptBlock,@htmlPreproc @@ -239,6 +245,8 @@ if version >= 508 || !exists("did_javascript_syn_inits") HiLink javaScriptCssStyles Label + HiLink javaScriptNodeGlobalObjects Special + delcommand HiLink endif From 5622df7d869b3f94c186da7e4087e8e9a590bbbb Mon Sep 17 00:00:00 2001 From: Wade Simmons Date: Fri, 22 Jul 2011 10:54:22 -0700 Subject: [PATCH 2/6] add other Node.js globals --- syntax/javascript.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/javascript.vim b/syntax/javascript.vim index 39f4c0ba..b4006f51 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -151,7 +151,7 @@ endif "DOM/HTML/CSS "" Node.JS -syntax keyword javaScriptNodeGlobalObjects Buffer clearInterval clearTimeout console module process require setInterval setTimeout +syntax keyword javaScriptNodeGlobalObjects Buffer GLOBAL clearInterval clearTimeout console exports global module process require root setInterval setTimeout __dirname __filename "" end Node.JS From 795d6639a69fd8a52cafb83bd3926f8fb18216f0 Mon Sep 17 00:00:00 2001 From: Wade Simmons Date: Wed, 27 Jul 2011 11:55:19 -0700 Subject: [PATCH 3/6] syntax for "use strict" --- syntax/javascript.vim | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/syntax/javascript.vim b/syntax/javascript.vim index b4006f51..7b70de86 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -155,9 +155,12 @@ syntax keyword javaScriptNodeGlobalObjects Buffer GLOBAL clearInterval clearTim "" end Node.JS +"" Strict mode + +syntax match javaScriptUseStrict +^\s*\("use strict"\|'use strict'\);\?\s*$+ display "" Code blocks -syntax cluster javaScriptAll contains=javaScriptComment,javaScriptLineComment,javaScriptDocComment,javaScriptStringD,javaScriptStringS,javaScriptRegexpString,javaScriptNumber,javaScriptFloat,javaScriptLabel,javaScriptSource,javaScriptThis,javaScriptType,javaScriptOperator,javaScriptBoolean,javaScriptNull,javaScriptFunction,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptStatement,javaScriptGlobalObjects,javaScriptExceptions,javaScriptFutureKeys,javaScriptDomErrNo,javaScriptDomNodeConsts,javaScriptHtmlEvents,javaScriptDotNotation,javaScriptNodeGlobalObjects +syntax cluster javaScriptAll contains=javaScriptComment,javaScriptLineComment,javaScriptDocComment,javaScriptStringD,javaScriptStringS,javaScriptRegexpString,javaScriptNumber,javaScriptFloat,javaScriptLabel,javaScriptSource,javaScriptThis,javaScriptType,javaScriptOperator,javaScriptBoolean,javaScriptNull,javaScriptFunction,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptStatement,javaScriptGlobalObjects,javaScriptExceptions,javaScriptFutureKeys,javaScriptDomErrNo,javaScriptDomNodeConsts,javaScriptHtmlEvents,javaScriptDotNotation,javaScriptNodeGlobalObjects,javaScriptUseStrict syntax region javaScriptBracket matchgroup=javaScriptBracket transparent start="\[" end="\]" contains=@javaScriptAll,javaScriptParensErrB,javaScriptParensErrC,javaScriptBracket,javaScriptParen,javaScriptBlock,@htmlPreproc syntax region javaScriptParen matchgroup=javaScriptParen transparent start="(" end=")" contains=@javaScriptAll,javaScriptParensErrA,javaScriptParensErrC,javaScriptParen,javaScriptBracket,javaScriptBlock,@htmlPreproc syntax region javaScriptBlock matchgroup=javaScriptBlock transparent start="{" end="}" contains=@javaScriptAll,javaScriptParensErrA,javaScriptParensErrB,javaScriptParen,javaScriptBracket,javaScriptBlock,@htmlPreproc @@ -247,6 +250,8 @@ if version >= 508 || !exists("did_javascript_syn_inits") HiLink javaScriptNodeGlobalObjects Special + HiLink javaScriptUseStrict PreProc + delcommand HiLink endif From 2e97b7399573fe43307c478c6660795b4949d338 Mon Sep 17 00:00:00 2001 From: Wade Simmons Date: Tue, 23 Aug 2011 20:25:44 -0700 Subject: [PATCH 4/6] add more helpful JS highlighting for node --- syntax/javascript.vim | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/syntax/javascript.vim b/syntax/javascript.vim index 7b70de86..8de26e57 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -83,11 +83,12 @@ syntax keyword javaScriptPrototype prototype "" Programm Keywords syntax keyword javaScriptSource import export -syntax keyword javaScriptType const undefined var void yield +syntax keyword javaScriptType const undefined var void yield syntax keyword javaScriptOperator delete new in instanceof let typeof syntax keyword javaScriptBoolean true false syntax keyword javaScriptNull null syntax keyword javaScriptThis this +syntax keyword javaScriptArguments arguments "" Statement Keywords syntax keyword javaScriptConditional if else @@ -95,7 +96,7 @@ syntax keyword javaScriptRepeat do while for syntax keyword javaScriptBranch break continue switch case default return syntax keyword javaScriptStatement try catch throw with finally -syntax keyword javaScriptGlobalObjects Array Boolean Date Function Infinity JavaArray JavaClass JavaObject JavaPackage Math Number NaN Object Packages RegExp String Undefined java netscape sun +syntax keyword javaScriptGlobalObjects Array Boolean Date Function Infinity JavaArray JavaClass JavaObject JavaPackage Math Number NaN Object Packages RegExp String Undefined java netscape sun eval parseInt parseFloat isNaN isFinite decodeURI decodeURIComponent encodeURI encodeURIComponent JSON syntax keyword javaScriptExceptions Error EvalError RangeError ReferenceError SyntaxError TypeError URIError @@ -152,6 +153,7 @@ endif "DOM/HTML/CSS "" Node.JS syntax keyword javaScriptNodeGlobalObjects Buffer GLOBAL clearInterval clearTimeout console exports global module process require root setInterval setTimeout __dirname __filename +syntax keyword javaScriptCallback callback cb next "" end Node.JS @@ -160,7 +162,7 @@ syntax keyword javaScriptNodeGlobalObjects Buffer GLOBAL clearInterval clearTim syntax match javaScriptUseStrict +^\s*\("use strict"\|'use strict'\);\?\s*$+ display "" Code blocks -syntax cluster javaScriptAll contains=javaScriptComment,javaScriptLineComment,javaScriptDocComment,javaScriptStringD,javaScriptStringS,javaScriptRegexpString,javaScriptNumber,javaScriptFloat,javaScriptLabel,javaScriptSource,javaScriptThis,javaScriptType,javaScriptOperator,javaScriptBoolean,javaScriptNull,javaScriptFunction,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptStatement,javaScriptGlobalObjects,javaScriptExceptions,javaScriptFutureKeys,javaScriptDomErrNo,javaScriptDomNodeConsts,javaScriptHtmlEvents,javaScriptDotNotation,javaScriptNodeGlobalObjects,javaScriptUseStrict +syntax cluster javaScriptAll contains=javaScriptComment,javaScriptLineComment,javaScriptDocComment,javaScriptStringD,javaScriptStringS,javaScriptRegexpString,javaScriptNumber,javaScriptFloat,javaScriptLabel,javaScriptSource,javaScriptThis,javaScriptType,javaScriptOperator,javaScriptBoolean,javaScriptNull,javaScriptFunction,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptStatement,javaScriptGlobalObjects,javaScriptExceptions,javaScriptFutureKeys,javaScriptDomErrNo,javaScriptDomNodeConsts,javaScriptHtmlEvents,javaScriptDotNotation,javaScriptNodeGlobalObjects,javaScriptCallback,javaScriptUseStrict,javaScriptArguments syntax region javaScriptBracket matchgroup=javaScriptBracket transparent start="\[" end="\]" contains=@javaScriptAll,javaScriptParensErrB,javaScriptParensErrC,javaScriptBracket,javaScriptParen,javaScriptBlock,@htmlPreproc syntax region javaScriptParen matchgroup=javaScriptParen transparent start="(" end=")" contains=@javaScriptAll,javaScriptParensErrA,javaScriptParensErrC,javaScriptParen,javaScriptBracket,javaScriptBlock,@htmlPreproc syntax region javaScriptBlock matchgroup=javaScriptBlock transparent start="{" end="}" contains=@javaScriptAll,javaScriptParensErrA,javaScriptParensErrB,javaScriptParen,javaScriptBracket,javaScriptBlock,@htmlPreproc @@ -181,7 +183,7 @@ endif if exists("b:javascript_fold") syntax match javaScriptFunction /\/ nextgroup=javaScriptFuncName skipwhite syntax match javaScriptOpAssign /=\@= 508 || !exists("did_javascript_syn_inits") HiLink javaScriptOperator Operator HiLink javaScriptType Type HiLink javaScriptThis Type + HiLink javaScriptArguments Type HiLink javaScriptNull Type HiLink javaScriptNumber Number HiLink javaScriptFloat Number @@ -249,6 +252,7 @@ if version >= 508 || !exists("did_javascript_syn_inits") HiLink javaScriptCssStyles Label HiLink javaScriptNodeGlobalObjects Special + HiLink javaScriptCallback Statement HiLink javaScriptUseStrict PreProc From 57464fd2c5349af3c1ae604d5dbd0be13804fd53 Mon Sep 17 00:00:00 2001 From: Wade Simmons Date: Fri, 14 Mar 2014 09:40:39 -0700 Subject: [PATCH 5/6] match jsCallback in jsFuncArgs --- syntax/javascript.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/javascript.vim b/syntax/javascript.vim index 3c77d816..fdedf68a 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -220,7 +220,7 @@ else endif syntax match jsFuncName contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*/ nextgroup=jsFuncArgs skipwhite -syntax region jsFuncArgs contained matchgroup=jsFuncParens start='(' end=')' contains=jsFuncArgCommas nextgroup=jsFuncBlock keepend skipwhite skipempty +syntax region jsFuncArgs contained matchgroup=jsFuncParens start='(' end=')' contains=jsFuncArgCommas,jsCallback nextgroup=jsFuncBlock keepend skipwhite skipempty syntax match jsFuncArgCommas contained ',' syntax keyword jsArgsObj arguments contained containedin=jsFuncBlock From ce30b0f02aa6ceec06ec5e84a926d4ec8975bd5c Mon Sep 17 00:00:00 2001 From: Wade Simmons Date: Sat, 10 May 2014 11:46:05 -0700 Subject: [PATCH 6/6] there are now in Common --- syntax/javascript.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/javascript.vim b/syntax/javascript.vim index cb54aa9e..20cab2ce 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -185,7 +185,7 @@ endif "DOM/HTML/CSS "" Node.JS -syntax keyword jsNodeGlobalObjects Buffer GLOBAL clearInterval clearTimeout console exports global module process require root setInterval setTimeout __dirname __filename +syntax keyword jsNodeGlobalObjects Buffer GLOBAL clearInterval clearTimeout console global process root setInterval setTimeout __dirname __filename syntax keyword jsCallback callback cb next "" end Node.JS