annotate runtime/syntax/kix.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
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: KixTart 95, Kix2001 Windows script language http://kixtart.org/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
3 " Maintainer: Richard Howarth <rhowarth@sgb.co.uk>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
4 " Last Change: 2003 May 11
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
5 " URL: http://www.howsoft.demon.co.uk/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
6
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
7 " KixTart files identified by *.kix extension.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
8
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
9 " Amendment History:
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
10 " 26 April 2001: RMH
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
11 " Removed development comments from distro version
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
12 " Renamed "Kix*" to "kix*" for consistancy
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
13 " Changes made in preperation for VIM version 5.8/6.00
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
14
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
15 " TODO:
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
16 " Handle arrays highlighting
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
17 " Handle object highlighting
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
18 " The next two may not be possible:
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
19 " Work out how to error too many "(", i.e. (() should be an error.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
20 " Similarly, "if" without "endif" and similar constructs should error.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
21
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
22 " Clear legacy syntax rules for version 5.x, exit if already processed for version 6+
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
23 if version < 600
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
24 syn clear
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
25 elseif exists("b:current_syntax")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
26 finish
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
27 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
28
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
29 syn case match
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
30 syn keyword kixTODO TODO FIX XXX contained
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
31
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
32 " Case insensitive language.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
33 syn case ignore
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
34
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
35 " Kix statements
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
36 syn match kixStatement "?"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
37 syn keyword kixStatement beep big break
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
38 syn keyword kixStatement call cd cls color cookie1 copy
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
39 syn keyword kixStatement del dim display
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
40 syn keyword kixStatement exit
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
41 syn keyword kixStatement flushkb
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
42 syn keyword kixStatement get gets global go gosub goto
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
43 syn keyword kixStatement md
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
44 syn keyword kixStatement password play
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
45 syn keyword kixStatement quit
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
46 syn keyword kixStatement rd return run
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
47 syn keyword kixStatement set setl setm settime shell sleep small
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
48 syn keyword kixStatement use
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
49
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
50 " Kix2001
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
51 syn keyword kixStatement debug function endfunction redim
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
52
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
53 " Simple variables
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
54 syn match kixNotVar "\$\$\|@@\|%%" transparent contains=NONE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
55 syn match kixLocalVar "\$\w\+"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
56 syn match kixMacro "@\w\+"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
57 syn match kixEnvVar "%\w\+"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
58
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
59 " Destination labels
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
60 syn match kixLabel ":\w\+\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
61
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
62 " Identify strings, trap unterminated strings
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
63 syn match kixStringError +".*\|'.*+
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
64 syn region kixDoubleString oneline start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=kixLocalVar,kixMacro,kixEnvVar,kixNotVar
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
65 syn region kixSingleString oneline start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=kixLocalVar,kixMacro,kixEnvVar,kixNotVar
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
66
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
67 " Operators
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
68 syn match kixOperator "+\|-\|\*\|/\|=\|&\||"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
69 syn keyword kixOperator and or
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
70 " Kix2001
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
71 syn match kixOperator "=="
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
72 syn keyword kixOperator not
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
73
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
74 " Numeric constants
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
75 syn match kixInteger "-\=\<\d\+\>" contains=NONE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
76 syn match kixFloat "-\=\.\d\+\>\|-\=\<\d\+\.\d\+\>" contains=NONE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
77
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
78 " Hex numeric constants
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
79 syn match kixHex "\&\x\+\>" contains=NONE
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
80
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
81 " Other contants
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
82 " Kix2001
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
83 syn keyword kixConstant on off
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
84
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
85 " Comments
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
86 syn match kixComment ";.*$" contains=kixTODO
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
87
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
88 " Trap unmatched parenthesis
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
89 syn match kixParenCloseError ")"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
90 syn region kixParen oneline transparent start="(" end=")" contains=ALLBUT,kixParenCloseError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
91
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
92 " Functions (Builtin + UDF)
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
93 syn match kixFunction "\w\+("he=e-1,me=e-1 contains=ALL
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
94
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
95 " Trap unmatched brackets
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
96 syn match kixBrackCloseError "\]"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
97 syn region kixBrack transparent start="\[" end="\]" contains=ALLBUT,kixBrackCloseError
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
98
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
99 " Clusters for ALLBUT shorthand
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
100 syn cluster kixIfBut contains=kixIfError,kixSelectOK,kixDoOK,kixWhileOK,kixForEachOK,kixForNextOK
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
101 syn cluster kixSelectBut contains=kixSelectError,kixIfOK,kixDoOK,kixWhileOK,kixForEachOK,kixForNextOK
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
102 syn cluster kixDoBut contains=kixDoError,kixSelectOK,kixIfOK,kixWhileOK,kixForEachOK,kixForNextOK
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
103 syn cluster kixWhileBut contains=kixWhileError,kixSelectOK,kixIfOK,kixDoOK,kixForEachOK,kixForNextOK
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
104 syn cluster kixForEachBut contains=kixForEachError,kixSelectOK,kixIfOK,kixDoOK,kixForNextOK,kixWhileOK
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
105 syn cluster kixForNextBut contains=kixForNextError,kixSelectOK,kixIfOK,kixDoOK,kixForEachOK,kixWhileOK
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
106 " Condtional construct errors.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
107 syn match kixIfError "\<if\>\|\<else\>\|\<endif\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
108 syn match kixIfOK contained "\<if\>\|\<else\>\|\<endif\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
109 syn region kixIf transparent matchgroup=kixIfOK start="\<if\>" end="\<endif\>" contains=ALLBUT,@kixIfBut
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
110 syn match kixSelectError "\<select\>\|\<case\>\|\<endselect\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
111 syn match kixSelectOK contained "\<select\>\|\<case\>\|\<endselect\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
112 syn region kixSelect transparent matchgroup=kixSelectOK start="\<select\>" end="\<endselect\>" contains=ALLBUT,@kixSelectBut
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
113
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
114 " Program control constructs.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
115 syn match kixDoError "\<do\>\|\<until\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
116 syn match kixDoOK contained "\<do\>\|\<until\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
117 syn region kixDo transparent matchgroup=kixDoOK start="\<do\>" end="\<until\>" contains=ALLBUT,@kixDoBut
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
118 syn match kixWhileError "\<while\>\|\<loop\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
119 syn match kixWhileOK contained "\<while\>\|\<loop\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
120 syn region kixWhile transparent matchgroup=kixWhileOK start="\<while\>" end="\<loop\>" contains=ALLBUT,@kixWhileBut
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
121 syn match kixForNextError "\<for\>\|\<to\>\|\<step\>\|\<next\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
122 syn match kixForNextOK contained "\<for\>\|\<to\>\|\<step\>\|\<next\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
123 syn region kixForNext transparent matchgroup=kixForNextOK start="\<for\>" end="\<next\>" contains=ALLBUT,@kixForBut
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
124 syn match kixForEachError "\<for each\>\|\<in\>\|\<next\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
125 syn match kixForEachOK contained "\<for each\>\|\<in\>\|\<next\>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
126 syn region kixForEach transparent matchgroup=kixForEachOK start="\<for each\>" end="\<next\>" contains=ALLBUT,@kixForEachBut
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
127
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
128 " Expressions
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
129 syn match kixExpression "<\|>\|<=\|>=\|<>"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
130
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
131
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
132 " Default highlighting.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
133 " Version < 5.8 set default highlight if file not already processed.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
134 " Version >= 5.8 set default highlight only if it doesn't already have a value.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
135 if version > 508 || !exists("did_kix_syn_inits")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
136 if version < 508
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
137 let did_kix_syn_inits=1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
138 command -nargs=+ HiLink hi link <args>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
139 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
140 command -nargs=+ HiLink hi def link <args>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
141 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
142
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
143 HiLink kixDoubleString String
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
144 HiLink kixSingleString String
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
145 HiLink kixStatement Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
146 HiLink kixRepeat Repeat
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
147 HiLink kixComment Comment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
148 HiLink kixBuiltin Function
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
149 HiLink kixLocalVar Special
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
150 HiLink kixMacro Special
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
151 HiLink kixEnvVar Special
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
152 HiLink kixLabel Type
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
153 HiLink kixFunction Function
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
154 HiLink kixInteger Number
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
155 HiLink kixHex Number
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
156 HiLink kixFloat Number
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
157 HiLink kixOperator Operator
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
158 HiLink kixExpression Operator
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
159
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
160 HiLink kixParenCloseError Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
161 HiLink kixBrackCloseError Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
162 HiLink kixStringError Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
163
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
164 HiLink kixWhileError Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
165 HiLink kixWhileOK Conditional
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
166 HiLink kixDoError Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
167 HiLink kixDoOK Conditional
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
168 HiLink kixIfError Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
169 HiLink kixIfOK Conditional
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
170 HiLink kixSelectError Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
171 HiLink kixSelectOK Conditional
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
172 HiLink kixForNextError Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
173 HiLink kixForNextOK Conditional
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
174 HiLink kixForEachError Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
175 HiLink kixForEachOK Conditional
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
176
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
177 delcommand HiLink
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
178 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
179
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
180 let b:current_syntax = "kix"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
181
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
182 " vim: ts=8 sw=2