Skip to content

Commit 9a9c0da

Browse files
committed
Set different highlight for function arguments
With this fix, function keywords, function name, function arguments, parenthesis and commas will have different highlight. It's clearer to read codes.
1 parent 2648939 commit 9a9c0da

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

syntax/javascript.vim

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -167,16 +167,18 @@ endif "DOM/HTML/CSS
167167

168168

169169
"" Code blocks
170-
syntax cluster javaScriptAll contains=javaScriptComment,javaScriptLineComment,javaScriptDocComment,javaScriptStringD,javaScriptStringS,javaScriptRegexpString,javaScriptNumber,javaScriptFloat,javaScriptLabel,javaScriptSource,javaScriptType,javaScriptOperator,javaScriptBoolean,javaScriptNull,javaScriptFunction,javaScriptConditional,javaScriptGlobal,javaScriptRepeat,javaScriptBranch,javaScriptStatement,javaScriptGlobalObjects,javaScriptMessage,javaScriptIdentifier,javaScriptExceptions,javaScriptReserved,javaScriptDeprecated,javaScriptDomErrNo,javaScriptDomNodeConsts,javaScriptHtmlEvents,javaScriptDotNotation,javaScriptBrowserObjects,javaScriptDOMObjects,javaScriptAjaxObjects,javaScriptPropietaryObjects,javaScriptDOMMethods,javaScriptHtmlElemProperties,javaScriptDOMProperties,javaScriptEventListenerKeywords,javaScriptEventListenerMethods,javaScriptAjaxProperties,javaScriptAjaxMethods
170+
syntax cluster javaScriptAll contains=javaScriptComment,javaScriptLineComment,javaScriptDocComment,javaScriptStringD,javaScriptStringS,javaScriptRegexpString,javaScriptNumber,javaScriptFloat,javaScriptLabel,javaScriptSource,javaScriptType,javaScriptOperator,javaScriptBoolean,javaScriptNull,javaScriptFuncKeyword,javaScriptConditional,javaScriptGlobal,javaScriptRepeat,javaScriptBranch,javaScriptStatement,javaScriptGlobalObjects,javaScriptMessage,javaScriptIdentifier,javaScriptExceptions,javaScriptReserved,javaScriptDeprecated,javaScriptDomErrNo,javaScriptDomNodeConsts,javaScriptHtmlEvents,javaScriptDotNotation,javaScriptBrowserObjects,javaScriptDOMObjects,javaScriptAjaxObjects,javaScriptPropietaryObjects,javaScriptDOMMethods,javaScriptHtmlElemProperties,javaScriptDOMProperties,javaScriptEventListenerKeywords,javaScriptEventListenerMethods,javaScriptAjaxProperties,javaScriptAjaxMethods,javaScriptFuncArg
171171

172172
if main_syntax == "javascript"
173173
syntax sync clear
174174
syntax sync ccomment javaScriptComment minlines=200
175175
" syntax sync match javaScriptHighlight grouphere javaScriptBlock /{/
176176
endif
177177

178-
syntax match javaScriptFunction /\<function\>/ nextgroup=javaScriptFuncName skipwhite
179-
syntax region javaScriptFuncName contained matchgroup=javaScriptFuncName start=/\%(\$\|\w\)*\s*(/ end=/)/ contains=javaScriptLineComment,javaScriptComment nextgroup=javaScriptFuncBlock skipwhite skipempty
178+
syntax keyword javaScriptFuncKeyword function contained
179+
syntax region javaScriptFuncDef start="function" end="\([^)]*\)" contains=javaScriptFuncKeyword,javaScriptFuncArg keepend
180+
syntax match javaScriptFuncArg "\(([^()]*)\)" contains=javaScriptParens,javaScriptFuncComma contained
181+
syntax match javaScriptFuncComma /,/ contained
180182
" syntax region javaScriptFuncBlock contained matchgroup=javaScriptFuncBlock start="{" end="}" contains=@javaScriptAll,javaScriptParensErrA,javaScriptParensErrB,javaScriptParen,javaScriptBracket,javaScriptBlock fold
181183

182184
syn match javaScriptBraces "[{}\[\]]"
@@ -195,6 +197,8 @@ function! JavaScriptFold()
195197
setl foldtext=FoldText()
196198
endfunction
197199

200+
au FileType javascript call JavaScriptFold()
201+
198202
" }}}
199203

200204
" Define the default highlighting.
@@ -232,7 +236,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
232236
HiLink javaScriptIdentifier Identifier
233237
HiLink javaScriptRepeat Repeat
234238
HiLink javaScriptStatement Statement
235-
HiLink javaScriptFunction Function
239+
HiLink javaScriptFuncKeyword Function
236240
HiLink javaScriptMessage Keyword
237241
HiLink javaScriptDeprecated Exception
238242
HiLink javaScriptError Error
@@ -274,10 +278,12 @@ if version >= 508 || !exists("did_javascript_syn_inits")
274278
HiLink javaScriptAjaxMethods Exception
275279
HiLink javaScriptAjaxProperties Type
276280

277-
HiLink javaScriptFuncName Title
281+
HiLink javaScriptFuncDef Title
282+
HiLink javaScriptFuncArg Special
283+
HiLink javaScriptFuncComma Operator
278284

279285
HiLink javaScriptHtmlEvents Special
280-
HiLink javaScriptHtmlElemProperties Type
286+
HiLink javaScriptHtmlElemProperties Type
281287

282288
HiLink javaScriptEventListenerKeywords Keyword
283289

0 commit comments

Comments
 (0)