annotate runtime/syntax/javascript.vim @ 34:e170173ecb68 current-release

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