javascript.vim 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. " Vim syntax file
  2. " Language: JavaScript
  3. " Maintainer: Claudio Fleiner <claudio@fleiner.com>
  4. " Updaters: Scott Shattuck (ss) <ss@technicalpursuit.com>
  5. " URL: http://www.fleiner.com/vim/syntax/javascript.vim
  6. " Changes: (ss) added keywords, reserved words, and other identifiers
  7. " (ss) repaired several quoting and grouping glitches
  8. " (ss) fixed regex parsing issue with multiple qualifiers [gi]
  9. " (ss) additional factoring of keywords, globals, and members
  10. " Last Change: 2006 Jun 19
  11. " For version 5.x: Clear all syntax items
  12. " For version 6.x: Quit when a syntax file was already loaded
  13. " tuning parameters:
  14. " unlet javaScript_fold
  15. if !exists("main_syntax")
  16. if version < 600
  17. syntax clear
  18. elseif exists("b:current_syntax")
  19. finish
  20. endif
  21. let main_syntax = 'javascript'
  22. endif
  23. " Drop fold if it set but vim doesn't support it.
  24. if version < 600 && exists("javaScript_fold")
  25. unlet javaScript_fold
  26. endif
  27. syn case ignore
  28. syn keyword javaScriptCommentTodo TODO FIXME XXX TBD contained
  29. syn match javaScriptLineComment "\/\/.*" contains=@Spell,javaScriptCommentTodo
  30. syn match javaScriptCommentSkip "^[ \t]*\*\($\|[ \t]\+\)"
  31. syn region javaScriptComment start="/\*" end="\*/" contains=@Spell,javaScriptCommentTodo
  32. syn match javaScriptSpecial "\\\d\d\d\|\\."
  33. syn region javaScriptStringD start=+"+ skip=+\\\\\|\\"+ end=+"\|$+ contains=javaScriptSpecial,@htmlPreproc
  34. syn region javaScriptStringS start=+'+ skip=+\\\\\|\\'+ end=+'\|$+ contains=javaScriptSpecial,@htmlPreproc
  35. syn match javaScriptSpecialCharacter "'\\.'"
  36. syn match javaScriptNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
  37. syn region javaScriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gi]\{0,2\}\s*$+ end=+/[gi]\{0,2\}\s*[;.,)\]}]+me=e-1 contains=@htmlPreproc oneline
  38. syn keyword javaScriptConditional if else switch
  39. syn keyword javaScriptRepeat while for do in
  40. syn keyword javaScriptBranch break continue
  41. syn keyword javaScriptOperator new delete instanceof typeof
  42. syn keyword javaScriptType Array Boolean Date Function Number Object String RegExp
  43. syn keyword javaScriptStatement return with
  44. syn keyword javaScriptBoolean true false
  45. syn keyword javaScriptNull null undefined
  46. syn keyword javaScriptIdentifier arguments this var
  47. syn keyword javaScriptLabel case default
  48. syn keyword javaScriptException try catch finally throw
  49. syn keyword javaScriptMessage alert confirm prompt status
  50. syn keyword javaScriptGlobal self window top parent
  51. syn keyword javaScriptMember document event location
  52. syn keyword javaScriptDeprecated escape unescape
  53. syn keyword javaScriptReserved abstract boolean byte char class const debugger double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile
  54. if exists("javaScript_fold")
  55. syn match javaScriptFunction "\<function\>"
  56. syn region javaScriptFunctionFold start="\<function\>.*[^};]$" end="^\z1}.*$" transparent fold keepend
  57. syn sync match javaScriptSync grouphere javaScriptFunctionFold "\<function\>"
  58. syn sync match javaScriptSync grouphere NONE "^}"
  59. setlocal foldmethod=syntax
  60. setlocal foldtext=getline(v:foldstart)
  61. else
  62. syn keyword javaScriptFunction function
  63. syn match javaScriptBraces "[{}\[\]]"
  64. syn match javaScriptParens "[()]"
  65. endif
  66. syn sync fromstart
  67. syn sync maxlines=100
  68. if main_syntax == "javascript"
  69. syn sync ccomment javaScriptComment
  70. endif
  71. " Define the default highlighting.
  72. " For version 5.7 and earlier: only when not done already
  73. " For version 5.8 and later: only when an item doesn't have highlighting yet
  74. if version >= 508 || !exists("did_javascript_syn_inits")
  75. if version < 508
  76. let did_javascript_syn_inits = 1
  77. command -nargs=+ HiLink hi link <args>
  78. else
  79. command -nargs=+ HiLink hi def link <args>
  80. endif
  81. HiLink javaScriptComment Comment
  82. HiLink javaScriptLineComment Comment
  83. HiLink javaScriptCommentTodo Todo
  84. HiLink javaScriptSpecial Special
  85. HiLink javaScriptStringS String
  86. HiLink javaScriptStringD String
  87. HiLink javaScriptCharacter Character
  88. HiLink javaScriptSpecialCharacter javaScriptSpecial
  89. HiLink javaScriptNumber javaScriptValue
  90. HiLink javaScriptConditional Conditional
  91. HiLink javaScriptRepeat Repeat
  92. HiLink javaScriptBranch Conditional
  93. HiLink javaScriptOperator Operator
  94. HiLink javaScriptType Type
  95. HiLink javaScriptStatement Statement
  96. HiLink javaScriptFunction Function
  97. HiLink javaScriptBraces Function
  98. HiLink javaScriptError Error
  99. HiLink javaScrParenError javaScriptError
  100. HiLink javaScriptNull Keyword
  101. HiLink javaScriptBoolean Boolean
  102. HiLink javaScriptRegexpString String
  103. HiLink javaScriptIdentifier Identifier
  104. HiLink javaScriptLabel Label
  105. HiLink javaScriptException Exception
  106. HiLink javaScriptMessage Keyword
  107. HiLink javaScriptGlobal Keyword
  108. HiLink javaScriptMember Keyword
  109. HiLink javaScriptDeprecated Exception
  110. HiLink javaScriptReserved Keyword
  111. HiLink javaScriptDebug Debug
  112. HiLink javaScriptConstant Label
  113. delcommand HiLink
  114. endif
  115. let b:current_syntax = "javascript"
  116. if main_syntax == 'javascript'
  117. unlet main_syntax
  118. endif
  119. " vim: ts=8