Mercurial > vim
annotate runtime/syntax/mysql.vim @ 9102:0e90f3e13d88 v7.4.1835
commit https://github.com/vim/vim/commit/991dea3ab185fb35e577ab0bdfd443cd4b43ccc6
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue May 24 11:31:32 2016 +0200
patch 7.4.1835
Problem: When splitting and closing a window the status height changes.
Solution: Compute the frame height correctly. (Hirohito Higashi)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 24 May 2016 11:45:06 +0200 |
parents | 47f17f66da3d |
children | 43efa4f5a8ea |
rev | line source |
---|---|
7 | 1 " Vim syntax file |
2 " Language: mysql | |
3 " Maintainer: Kenneth J. Pronovici <pronovic@ieee.org> | |
8876
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
4 " Last Change: $LastChangedDate: 2016-04-11 10:31:04 -0500 (Mon, 11 Apr 2016) $ |
7 | 5 " Filenames: *.mysql |
1624 | 6 " URL: ftp://cedar-solutions.com/software/mysql.vim |
7 " Note: The definitions below are taken from the mysql user manual as of April 2002, for version 3.23 | |
7 | 8 |
9 " For version 5.x: Clear all syntax items | |
10 " For version 6.x: Quit when a syntax file was already loaded | |
11 if version < 600 | |
12 syntax clear | |
13 elseif exists("b:current_syntax") | |
14 finish | |
15 endif | |
16 | |
17 " Always ignore case | |
18 syn case ignore | |
19 | |
20 " General keywords which don't fall into other categories | |
8876
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
21 syn keyword mysqlKeyword action add after aggregate all alter as asc auto_increment avg_row_length |
1624 | 22 syn keyword mysqlKeyword both by |
23 syn keyword mysqlKeyword cascade change character check checksum column columns comment constraint create cross | |
24 syn keyword mysqlKeyword current_date current_time current_timestamp | |
25 syn keyword mysqlKeyword data database databases day day_hour day_minute day_second | |
26 syn keyword mysqlKeyword default delayed delay_key_write delete desc describe distinct distinctrow drop | |
27 syn keyword mysqlKeyword enclosed escape escaped explain | |
28 syn keyword mysqlKeyword fields file first flush for foreign from full function | |
29 syn keyword mysqlKeyword global grant grants group | |
30 syn keyword mysqlKeyword having heap high_priority hosts hour hour_minute hour_second | |
31 syn keyword mysqlKeyword identified ignore index infile inner insert insert_id into isam | |
32 syn keyword mysqlKeyword join | |
8876
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
33 syn keyword mysqlKeyword key keys kill last_insert_id leading left limit lines load local lock logs long |
1624 | 34 syn keyword mysqlKeyword low_priority |
35 syn keyword mysqlKeyword match max_rows middleint min_rows minute minute_second modify month myisam | |
36 syn keyword mysqlKeyword natural no | |
37 syn keyword mysqlKeyword on optimize option optionally order outer outfile | |
38 syn keyword mysqlKeyword pack_keys partial password primary privileges procedure process processlist | |
2034 | 39 syn keyword mysqlKeyword read references reload rename replace restrict returns revoke right row rows |
1624 | 40 syn keyword mysqlKeyword second select show shutdown soname sql_big_result sql_big_selects sql_big_tables sql_log_off |
41 syn keyword mysqlKeyword sql_log_update sql_low_priority_updates sql_select_limit sql_small_result sql_warnings starting | |
42 syn keyword mysqlKeyword status straight_join string | |
43 syn keyword mysqlKeyword table tables temporary terminated to trailing type | |
44 syn keyword mysqlKeyword unique unlock unsigned update usage use using | |
45 syn keyword mysqlKeyword values varbinary variables varying | |
46 syn keyword mysqlKeyword where with write | |
47 syn keyword mysqlKeyword year_month | |
48 syn keyword mysqlKeyword zerofill | |
7 | 49 |
50 " Special values | |
1624 | 51 syn keyword mysqlSpecial false null true |
7 | 52 |
53 " Strings (single- and double-quote) | |
1624 | 54 syn region mysqlString start=+"+ skip=+\\\\\|\\"+ end=+"+ |
55 syn region mysqlString start=+'+ skip=+\\\\\|\\'+ end=+'+ | |
7 | 56 |
57 " Numbers and hexidecimal values | |
1624 | 58 syn match mysqlNumber "-\=\<[0-9]*\>" |
59 syn match mysqlNumber "-\=\<[0-9]*\.[0-9]*\>" | |
2034 | 60 syn match mysqlNumber "-\=\<[0-9][0-9]*e[+-]\=[0-9]*\>" |
1624 | 61 syn match mysqlNumber "-\=\<[0-9]*\.[0-9]*e[+-]\=[0-9]*\>" |
62 syn match mysqlNumber "\<0x[abcdefABCDEF0-9]*\>" | |
7 | 63 |
64 " User variables | |
2152 | 65 syn match mysqlVariable "@\a*[A-Za-z0-9]*\([._]*[A-Za-z0-9]\)*" |
7 | 66 |
8876
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
67 " Escaped column names |
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
68 syn match mysqlEscaped "`[^`]*`" |
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
69 |
7 | 70 " Comments (c-style, mysql-style and modified sql-style) |
1624 | 71 syn region mysqlComment start="/\*" end="\*/" |
72 syn match mysqlComment "#.*" | |
73 syn match mysqlComment "--\_s.*" | |
7 | 74 syn sync ccomment mysqlComment |
75 | |
76 " Column types | |
77 " | |
78 " This gets a bit ugly. There are two different problems we have to | |
79 " deal with. | |
80 " | |
2152 | 81 " The first problem is that some keywords like 'float' can be used |
7 | 82 " both with and without specifiers, i.e. 'float', 'float(1)' and |
83 " 'float(@var)' are all valid. We have to account for this and we | |
84 " also have to make sure that garbage like floatn or float_(1) is not | |
85 " highlighted. | |
86 " | |
87 " The second problem is that some of these keywords are included in | |
88 " function names. For instance, year() is part of the name of the | |
89 " dayofyear() function, and the dec keyword (no parenthesis) is part of | |
8876
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
90 " the name of the decode() function. |
7 | 91 |
8876
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
92 syn keyword mysqlType tinyint smallint mediumint int integer bigint |
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
93 syn keyword mysqlType date datetime time bit bool |
1624 | 94 syn keyword mysqlType tinytext mediumtext longtext text |
95 syn keyword mysqlType tinyblob mediumblob longblob blob | |
8876
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
96 syn region mysqlType start="float\W" end="."me=s-1 |
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
97 syn region mysqlType start="float$" end="."me=s-1 |
1624 | 98 syn region mysqlType start="float(" end=")" contains=mysqlNumber,mysqlVariable |
99 syn region mysqlType start="double\W" end="."me=s-1 | |
100 syn region mysqlType start="double$" end="."me=s-1 | |
101 syn region mysqlType start="double(" end=")" contains=mysqlNumber,mysqlVariable | |
102 syn region mysqlType start="double precision\W" end="."me=s-1 | |
103 syn region mysqlType start="double precision$" end="."me=s-1 | |
104 syn region mysqlType start="double precision(" end=")" contains=mysqlNumber,mysqlVariable | |
105 syn region mysqlType start="real\W" end="."me=s-1 | |
106 syn region mysqlType start="real$" end="."me=s-1 | |
107 syn region mysqlType start="real(" end=")" contains=mysqlNumber,mysqlVariable | |
108 syn region mysqlType start="numeric(" end=")" contains=mysqlNumber,mysqlVariable | |
109 syn region mysqlType start="dec\W" end="."me=s-1 | |
110 syn region mysqlType start="dec$" end="."me=s-1 | |
111 syn region mysqlType start="dec(" end=")" contains=mysqlNumber,mysqlVariable | |
112 syn region mysqlType start="decimal\W" end="."me=s-1 | |
113 syn region mysqlType start="decimal$" end="."me=s-1 | |
114 syn region mysqlType start="decimal(" end=")" contains=mysqlNumber,mysqlVariable | |
115 syn region mysqlType start="\Wtimestamp\W" end="."me=s-1 | |
116 syn region mysqlType start="\Wtimestamp$" end="."me=s-1 | |
117 syn region mysqlType start="\Wtimestamp(" end=")" contains=mysqlNumber,mysqlVariable | |
118 syn region mysqlType start="^timestamp\W" end="."me=s-1 | |
119 syn region mysqlType start="^timestamp$" end="."me=s-1 | |
120 syn region mysqlType start="^timestamp(" end=")" contains=mysqlNumber,mysqlVariable | |
121 syn region mysqlType start="\Wyear(" end=")" contains=mysqlNumber,mysqlVariable | |
122 syn region mysqlType start="^year(" end=")" contains=mysqlNumber,mysqlVariable | |
123 syn region mysqlType start="char(" end=")" contains=mysqlNumber,mysqlVariable | |
124 syn region mysqlType start="varchar(" end=")" contains=mysqlNumber,mysqlVariable | |
125 syn region mysqlType start="enum(" end=")" contains=mysqlString,mysqlVariable | |
126 syn region mysqlType start="\Wset(" end=")" contains=mysqlString,mysqlVariable | |
127 syn region mysqlType start="^set(" end=")" contains=mysqlString,mysqlVariable | |
7 | 128 |
129 " Logical, string and numeric operators | |
1624 | 130 syn keyword mysqlOperator between not and or is in like regexp rlike binary exists |
131 syn region mysqlOperator start="isnull(" end=")" contains=ALL | |
132 syn region mysqlOperator start="coalesce(" end=")" contains=ALL | |
133 syn region mysqlOperator start="interval(" end=")" contains=ALL | |
7 | 134 |
135 " Control flow functions | |
1624 | 136 syn keyword mysqlFlow case when then else end |
137 syn region mysqlFlow start="ifnull(" end=")" contains=ALL | |
138 syn region mysqlFlow start="nullif(" end=")" contains=ALL | |
139 syn region mysqlFlow start="if(" end=")" contains=ALL | |
7 | 140 |
141 " General Functions | |
142 " | |
143 " I'm leery of just defining keywords for functions, since according to the MySQL manual: | |
144 " | |
8876
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
145 " Function names do not clash with table or column names. For example, ABS is a |
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
146 " valid column name. The only restriction is that for a function call, no spaces |
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
147 " are allowed between the function name and the `(' that follows it. |
7 | 148 " |
8876
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
149 " This means that if I want to highlight function names properly, I have to use a |
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
150 " region to define them, not just a keyword. This will probably cause the syntax file |
7 | 151 " to load more slowly, but at least it will be 'correct'. |
152 | |
1624 | 153 syn region mysqlFunction start="abs(" end=")" contains=ALL |
154 syn region mysqlFunction start="acos(" end=")" contains=ALL | |
155 syn region mysqlFunction start="adddate(" end=")" contains=ALL | |
156 syn region mysqlFunction start="ascii(" end=")" contains=ALL | |
157 syn region mysqlFunction start="asin(" end=")" contains=ALL | |
158 syn region mysqlFunction start="atan(" end=")" contains=ALL | |
159 syn region mysqlFunction start="atan2(" end=")" contains=ALL | |
8876
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
2152
diff
changeset
|
160 syn region mysqlFunction start="avg(" end=")" contains=ALL |
1624 | 161 syn region mysqlFunction start="benchmark(" end=")" contains=ALL |
162 syn region mysqlFunction start="bin(" end=")" contains=ALL | |
163 syn region mysqlFunction start="bit_and(" end=")" contains=ALL | |
164 syn region mysqlFunction start="bit_count(" end=")" contains=ALL | |
165 syn region mysqlFunction start="bit_or(" end=")" contains=ALL | |
166 syn region mysqlFunction start="ceiling(" end=")" contains=ALL | |
167 syn region mysqlFunction start="character_length(" end=")" contains=ALL | |
168 syn region mysqlFunction start="char_length(" end=")" contains=ALL | |
169 syn region mysqlFunction start="concat(" end=")" contains=ALL | |
170 syn region mysqlFunction start="concat_ws(" end=")" contains=ALL | |
171 syn region mysqlFunction start="connection_id(" end=")" contains=ALL | |
172 syn region mysqlFunction start="conv(" end=")" contains=ALL | |
173 syn region mysqlFunction start="cos(" end=")" contains=ALL | |
174 syn region mysqlFunction start="cot(" end=")" contains=ALL | |
175 syn region mysqlFunction start="count(" end=")" contains=ALL | |
176 syn region mysqlFunction start="curdate(" end=")" contains=ALL | |
177 syn region mysqlFunction start="curtime(" end=")" contains=ALL | |
178 syn region mysqlFunction start="date_add(" end=")" contains=ALL | |
179 syn region mysqlFunction start="date_format(" end=")" contains=ALL | |
180 syn region mysqlFunction start="date_sub(" end=")" contains=ALL | |
181 syn region mysqlFunction start="dayname(" end=")" contains=ALL | |
182 syn region mysqlFunction start="dayofmonth(" end=")" contains=ALL | |
183 syn region mysqlFunction start="dayofweek(" end=")" contains=ALL | |
184 syn region mysqlFunction start="dayofyear(" end=")" contains=ALL | |
185 syn region mysqlFunction start="decode(" end=")" contains=ALL | |
186 syn region mysqlFunction start="degrees(" end=")" contains=ALL | |
187 syn region mysqlFunction start="elt(" end=")" contains=ALL | |
188 syn region mysqlFunction start="encode(" end=")" contains=ALL | |
189 syn region mysqlFunction start="encrypt(" end=")" contains=ALL | |
190 syn region mysqlFunction start="exp(" end=")" contains=ALL | |
191 syn region mysqlFunction start="export_set(" end=")" contains=ALL | |
192 syn region mysqlFunction start="extract(" end=")" contains=ALL | |
193 syn region mysqlFunction start="field(" end=")" contains=ALL | |
194 syn region mysqlFunction start="find_in_set(" end=")" contains=ALL | |
195 syn region mysqlFunction start="floor(" end=")" contains=ALL | |
196 syn region mysqlFunction start="format(" end=")" contains=ALL | |
197 syn region mysqlFunction start="from_days(" end=")" contains=ALL | |
198 syn region mysqlFunction start="from_unixtime(" end=")" contains=ALL | |
199 syn region mysqlFunction start="get_lock(" end=")" contains=ALL | |
200 syn region mysqlFunction start="greatest(" end=")" contains=ALL | |
201 syn region mysqlFunction start="group_unique_users(" end=")" contains=ALL | |
202 syn region mysqlFunction start="hex(" end=")" contains=ALL | |
203 syn region mysqlFunction start="inet_aton(" end=")" contains=ALL | |
204 syn region mysqlFunction start="inet_ntoa(" end=")" contains=ALL | |
205 syn region mysqlFunction start="instr(" end=")" contains=ALL | |
206 syn region mysqlFunction start="lcase(" end=")" contains=ALL | |
207 syn region mysqlFunction start="least(" end=")" contains=ALL | |
208 syn region mysqlFunction start="length(" end=")" contains=ALL | |
209 syn region mysqlFunction start="load_file(" end=")" contains=ALL | |
210 syn region mysqlFunction start="locate(" end=")" contains=ALL | |
211 syn region mysqlFunction start="log(" end=")" contains=ALL | |
212 syn region mysqlFunction start="log10(" end=")" contains=ALL | |
213 syn region mysqlFunction start="lower(" end=")" contains=ALL | |
214 syn region mysqlFunction start="lpad(" end=")" contains=ALL | |
215 syn region mysqlFunction start="ltrim(" end=")" contains=ALL | |
216 syn region mysqlFunction start="make_set(" end=")" contains=ALL | |
217 syn region mysqlFunction start="master_pos_wait(" end=")" contains=ALL | |
218 syn region mysqlFunction start="max(" end=")" contains=ALL | |
219 syn region mysqlFunction start="md5(" end=")" contains=ALL | |
220 syn region mysqlFunction start="mid(" end=")" contains=ALL | |
221 syn region mysqlFunction start="min(" end=")" contains=ALL | |
222 syn region mysqlFunction start="mod(" end=")" contains=ALL | |
223 syn region mysqlFunction start="monthname(" end=")" contains=ALL | |
224 syn region mysqlFunction start="now(" end=")" contains=ALL | |
225 syn region mysqlFunction start="oct(" end=")" contains=ALL | |
226 syn region mysqlFunction start="octet_length(" end=")" contains=ALL | |
227 syn region mysqlFunction start="ord(" end=")" contains=ALL | |
228 syn region mysqlFunction start="period_add(" end=")" contains=ALL | |
229 syn region mysqlFunction start="period_diff(" end=")" contains=ALL | |
230 syn region mysqlFunction start="pi(" end=")" contains=ALL | |
231 syn region mysqlFunction start="position(" end=")" contains=ALL | |
232 syn region mysqlFunction start="pow(" end=")" contains=ALL | |
233 syn region mysqlFunction start="power(" end=")" contains=ALL | |
234 syn region mysqlFunction start="quarter(" end=")" contains=ALL | |
235 syn region mysqlFunction start="radians(" end=")" contains=ALL | |
236 syn region mysqlFunction start="rand(" end=")" contains=ALL | |
237 syn region mysqlFunction start="release_lock(" end=")" contains=ALL | |
238 syn region mysqlFunction start="repeat(" end=")" contains=ALL | |
239 syn region mysqlFunction start="reverse(" end=")" contains=ALL | |
240 syn region mysqlFunction start="round(" end=")" contains=ALL | |
241 syn region mysqlFunction start="rpad(" end=")" contains=ALL | |
242 syn region mysqlFunction start="rtrim(" end=")" contains=ALL | |
243 syn region mysqlFunction start="sec_to_time(" end=")" contains=ALL | |
244 syn region mysqlFunction start="session_user(" end=")" contains=ALL | |
245 syn region mysqlFunction start="sign(" end=")" contains=ALL | |
246 syn region mysqlFunction start="sin(" end=")" contains=ALL | |
247 syn region mysqlFunction start="soundex(" end=")" contains=ALL | |
248 syn region mysqlFunction start="space(" end=")" contains=ALL | |
249 syn region mysqlFunction start="sqrt(" end=")" contains=ALL | |
250 syn region mysqlFunction start="std(" end=")" contains=ALL | |
251 syn region mysqlFunction start="stddev(" end=")" contains=ALL | |
252 syn region mysqlFunction start="strcmp(" end=")" contains=ALL | |
253 syn region mysqlFunction start="subdate(" end=")" contains=ALL | |
254 syn region mysqlFunction start="substring(" end=")" contains=ALL | |
255 syn region mysqlFunction start="substring_index(" end=")" contains=ALL | |
256 syn region mysqlFunction start="subtime(" end=")" contains=ALL | |
257 syn region mysqlFunction start="sum(" end=")" contains=ALL | |
258 syn region mysqlFunction start="sysdate(" end=")" contains=ALL | |
259 syn region mysqlFunction start="system_user(" end=")" contains=ALL | |
260 syn region mysqlFunction start="tan(" end=")" contains=ALL | |
261 syn region mysqlFunction start="time_format(" end=")" contains=ALL | |
262 syn region mysqlFunction start="time_to_sec(" end=")" contains=ALL | |
263 syn region mysqlFunction start="to_days(" end=")" contains=ALL | |
264 syn region mysqlFunction start="trim(" end=")" contains=ALL | |
265 syn region mysqlFunction start="ucase(" end=")" contains=ALL | |
266 syn region mysqlFunction start="unique_users(" end=")" contains=ALL | |
267 syn region mysqlFunction start="unix_timestamp(" end=")" contains=ALL | |
268 syn region mysqlFunction start="upper(" end=")" contains=ALL | |
269 syn region mysqlFunction start="user(" end=")" contains=ALL | |
270 syn region mysqlFunction start="version(" end=")" contains=ALL | |
271 syn region mysqlFunction start="week(" end=")" contains=ALL | |
272 syn region mysqlFunction start="weekday(" end=")" contains=ALL | |
273 syn region mysqlFunction start="yearweek(" end=")" contains=ALL | |
7 | 274 |
275 " Define the default highlighting. | |
276 " For version 5.7 and earlier: only when not done already | |
277 " For version 5.8 and later: only when an item doesn't have highlighting yet | |
278 if version >= 508 || !exists("did_mysql_syn_inits") | |
279 if version < 508 | |
280 let did_mysql_syn_inits = 1 | |
281 command -nargs=+ HiLink hi link <args> | |
282 else | |
283 command -nargs=+ HiLink hi def link <args> | |
284 endif | |
285 | |
1624 | 286 HiLink mysqlKeyword Statement |
287 HiLink mysqlSpecial Special | |
288 HiLink mysqlString String | |
289 HiLink mysqlNumber Number | |
290 HiLink mysqlVariable Identifier | |
291 HiLink mysqlComment Comment | |
292 HiLink mysqlType Type | |
293 HiLink mysqlOperator Statement | |
294 HiLink mysqlFlow Statement | |
295 HiLink mysqlFunction Function | |
7 | 296 |
297 delcommand HiLink | |
298 endif | |
299 | |
300 let b:current_syntax = "mysql" | |
301 |