1# Vim Language file for GNU source-highlighter
2
3vardef TODO = "TODO|FIXME|XXX"
4
5# If a double-quote is first non-whitespace char on a line, treat as a
6# comment.  This allows double-quotes to appear in the comment.
7environment comment start '^[[:blank:]]*\"' begin
8    todo = $TODO
9end
10
11# Keywords 'endif' and 'else' are special, a '"' after them is always
12# a comment. This really shows how moronic it is to use '"' for comments.
13state keyword start "endif|else" begin
14    todo = $TODO
15    comment = '\s*\".*'
16end
17
18# Need to match strings before comments so that we consume paired dbl-quotes.
19# We only match the opening quote if it is followed by a closing quote but we
20# don't include the matched text following the opening delimiter.
21environment string delim '\"(?=.*\")' "\"" begin
22    specialchar = '\\.'
23end
24
25# Match any trailing double-quotes.  This relies on us having consumed all
26# matching double-quotes that form strings.  Don't consume text following the
27# final double-quote so that we can format it.
28environment comment start '\"(?=[^"]*$)' begin
29    todo = $TODO
30end
31
32# Handle the 'augroup END' special case
33(keyword,normal,specialchar) = `(augroup|aug)([[:blank:]]+)(END)`
34
35(keyword,normal,preproc) = `(:?syntax)([[:blank:]]+)(on|off|enable)`
36(keyword,normal,variable) = `(:?set)([[:blank:]]+)([[:alpha:]][^\s+=$]+)`
37
38symbol = '(?<=\s)is|is#|is\?|isnot|isnot#|isnot\?'
39
40predef_var = '[abglst]:\w+'
41predef_var = 'v:\w+'
42
43keyword = "DiffOrig",
44  "Man",
45  "N",
46  "N|Ne|Nex|Next",
47  "P",
48  "P|Pr|Pri|Prin|Print",
49  "Ren",
50  "TOhtml",
51  "XMLent",
52  "XMLns",
53  "a",
54  "ab|abb|abbr|abbre|abbrev|abbrevi|abbrevia|abbreviat|abbreviate",
55  "abc|abcl|abcle|abclea|abclear",
56  "abo|abov|above|abovel|abovele|abovelef|aboveleft",
57  "al|all",
58  "ar|arg|args",
59  "arga|argad|argadd",
60  "argd|argde|argdel|argdele|argdelet|argdelete",
61  "argdo",
62  "arge|arged|argedi|argedit",
63  "argg|arggl|argglo|argglob|arggloba|argglobal",
64  "argl|arglo|argloc|argloca|arglocal",
65  "argu|argum|argume|argumen|argument",
66  "as|asc|asci|ascii",
67  "au|aut|auto|autoc|autocm|autocmd",
68  "b|bu|buf|buff|buffe|buffer",
69  "bN|bNe|bNex|bNext",
70  "ba|bal|ball",
71  "bad|badd",
72  "bar",
73  "bd|bde|bdel|bdele|bdelet|bdelete",
74  "bel|belo|below|belowr|belowri|belowrig|belowrigh|belowright",
75  "bf|bfi|bfir|bfirs|bfirst",
76  "bl|bla|blas|blast",
77  "bm|bmo|bmod|bmodi|bmodif|bmodifi|bmodifie|bmodified",
78  "bn|bne|bnex|bnext",
79  "bn|bne|bnex|bnext",
80  "bo|bot|botr|botri|botrig|botrigh|botright",
81  "bp|bpr|bpre|bprev|bprevi|bprevio|bpreviou|bprevious",
82  "br|bre|brew|brewi|brewin|brewind",
83  "brea|break",
84  "breaka|breakad|breakadd",
85  "breakd|breakde|breakdel",
86  "breakl|breakli|breaklis|breaklist",
87  "bro|brow|brows|browse",
88  "browseset",
89  "bufdo",
90  "buffers",
91  "bun|bunl|bunlo|bunloa|bunload",
92  "bw|bwi|bwip|bwipe|bwipeo|bwipeou|bwipeout",
93  "c|ch|cha|chan|chang|change",
94  "cN|cNe|cNex|cNext",
95  "cNf|cNfi|cNfil|cNfile",
96  "cabc|cabcl|cabcle|cabclea|cabclear",
97  "cad|cadd|cadde|caddex|caddexp|caddexpr",
98  "caddb|caddbu|caddbuf|caddbuff|caddbuffe|caddbuffer",
99  "caddf|caddfi|caddfil|caddfile",
100  "cal|call",
101  "cat|catc|catch",
102  "cb|cbu|cbuf|cbuff|cbuffe|cbuffer",
103  "cc",
104  "ccl|cclo|cclos|cclose",
105  "cd",
106  "ce|cen|cent|cente|center",
107  "cex|cexp|cexpr",
108  "cf|cfi|cfil|cfile",
109  "cfir|cfirs|cfirst",
110  "cg|cge|cget|cgetf|cgetfi|cgetfil|cgetfile",
111  "cgetb|cgetbu|cgetbuf|cgetbuff|cgetbuffe|cgetbuffer",
112  "cgete|cgetex|cgetexp|cgetexpr",
113  "changes",
114  "chd|chdi|chdir",
115  "che|chec|check|checkp|checkpa|checkpat|checkpath",
116  "checkt|checkti|checktim|checktime",
117  "cl|cli|clis|clist",
118  "cla|clas|clast",
119  "clo|clos|close",
120  "cmapc|cmapcl|cmapcle|cmapclea|cmapclear",
121  "cmdname",
122  "cn|cne|cnex|cnext",
123  "cn|cne|cnex|cnext",
124  "cnew|cnewe|cnewer",
125  "cnf|cnfi|cnfil|cnfile",
126  "cnf|cnfi|cnfil|cnfile",
127  "co|cop|copy",
128  "col|cold|colde|colder",
129  "colo|color|colors|colorsc|colorsch|colorsche|colorschem|colorscheme",
130  "com|comm|comma|comman|command",
131  "comc|comcl|comcle|comclea|comclear",
132  "comment",
133  "comp|compi|compil|compile|compiler",
134  "con|cont|conti|contin|continu|continue",
135  "conf|confi|confir|confirm",
136  "cope|copen",
137  "count",
138  "cp|cpr|cpre|cprev|cprevi|cprevio|cpreviou|cprevious",
139  "cpf|cpfi|cpfil|cpfile",
140  "cq|cqu|cqui|cquit",
141  "cr|cre|crew|crewi|crewin|crewind",
142  "cs|csc|csco|cscop|cscope",
143  "cstag",
144  "cuna|cunab|cunabb|cunabbr|cunabbre|cunabbrev",
145  "cw|cwi|cwin|cwind|cwindo|cwindow",
146  "d|de|del|dele|delet|delete",
147  "debug",
148  "debugg|debuggr|debuggre|debuggree|debuggreed|debuggreedy",
149  "delc|delco|delcom|delcomm|delcomma|delcomman|delcommand",
150  "delf|delfu|delfun|delfunc|delfunct|delfuncti|delfunctio|delfunction",
151  "delm|delma|delmar|delmark|delmarks",
152  "di|dis|disp|displ|displa|display",
153  "diffg|diffge|diffget",
154  "diffo|diffof|diffoff",
155  "diffp|diffpa|diffpat|diffpatc|diffpatch",
156  "diffpu|diffput",
157  "diffs|diffsp|diffspl|diffspli|diffsplit",
158  "difft|diffth|diffthi|diffthis",
159  "diffu|diffup|diffupd|diffupda|diffupdat|diffupdate",
160  "dig|digr|digra|digrap|digraph|digraphs",
161  "dj|dju|djum|djump",
162  "dl|dli|dlis|dlist",
163  "do|doa|doau|doaut|doauto|doautoc|doautocm|doautocmd",
164  "dr|dro|drop",
165  "ds|dse|dsea|dsear|dsearc|dsearch",
166  "dsp|dspl|dspli|dsplit",
167  "e|ed|edi|edit",
168  "ea|ear|earl|earli|earlie|earlier",
169  "ec|ech|echo",
170  "echoe|echoer|echoerr",
171  "echoh|echohl",
172  "echom|echoms|echomsg",
173  "echon",
174  "el|els|else",
175  "elsei|elseif",
176  "em|eme|emen|emenu",
177  "en|end|endi|endif",
178  "endf|endfu|endfun|endfunc|endfunct|endfuncti|endfunctio|endfunction",
179  "endfo|endfor",
180  "endt|endtr|endtry",
181  "endw|endwh|endwhi|endwhil|endwhile",
182  "ene|enew",
183  "ex|exi|exit",
184  "exu|exus|exusa|exusag|exusage",
185  "f|fi|fil|file",
186  "file|filen|filena|filenam|filename",
187  "files",
188  "filet|filety|filetyp|filetype",
189  "fin|find",
190  "fina|final|finall|finally",
191  "fini|finis|finish",
192  "fir|firs|first",
193  "fix|fixd|fixde|fixdel",
194  "fo|fol|fold",
195  "foldc|foldcl|foldclo|foldclos|foldclose",
196  "foldd|folddo|folddoo|folddoop|folddoope|folddoopen",
197  "folddoc|folddocl|folddoclo|folddoclos|folddoclose|folddoclosed",
198  "foldo|foldop|foldope|foldopen",
199  "for",
200  "fu|fun|func|funct|functi|functio|function",
201  "g|gl|glo|glob|globa|global",
202  "go|got|goto",
203  "gr|gre|grep",
204  "grepa|grepad|grepadd",
205  "gui",
206  "gvim",
207  "h|he|hel|help",
208  "ha|har|hard|hardc|hardco|hardcop|hardcopy",
209  "helpf|helpfi|helpfin|helpfind",
210  "helpg|helpgr|helpgre|helpgrep",
211  "helpt|helpta|helptag|helptags",
212  "hi|hid|hide",
213  "his|hist|histo|histor|history",
214  "i|in|ins|inse|inser|insert",
215  "ia|iab|iabb|iabbr|iabbre|iabbrev",
216  "iabc|iabcl|iabcle|iabclea|iabclear",
217  "if",
218  "ij|iju|ijum|ijump",
219  "il|ili|ilis|ilist",
220  "imapc|imapcl|imapcle|imapclea|imapclear",
221  "intro",
222  "is|ise|isea|isear|isearc|isearch",
223  "isp|ispl|ispli|isplit",
224  "iuna|iunab|iunabb|iunabbr|iunabbre|iunabbrev",
225  "j|jo|joi|join",
226  "ju|jum|jump|jumps",
227  "k",
228  "kee|keep|keepm|keepma|keepmar|keepmark|keepmarks",
229  "keepa|keepal|keepalt",
230  "keepj|keepju|keepjum|keepjump|keepjumps",
231  "l|li|lis|list",
232  "lN",
233  "lN|lNe|lNex|lNext",
234  "lNf",
235  "lNf|lNfi|lNfil|lNfile",
236  "la",
237  "la|las|last",
238  "lad|ladd|ladde|laddex|laddexp|laddexpr",
239  "laddb|laddbu|laddbuf|laddbuff|laddbuffe|laddbuffer",
240  "laddf|laddfi|laddfil|laddfile",
241  "lan|lang|langu|langua|languag|language",
242  "lat|late|later",
243  "lb|lbu|lbuf|lbuff|lbuffe|lbuffer",
244  "lc|lcd",
245  "lch|lchd|lchdi|lchdir",
246  "lcl|lclo|lclos|lclose",
247  "lcs|lcsc|lcsco|lcscop|lcscope",
248  "le|lef|left",
249  "lefta|leftab|leftabo|leftabov|leftabove",
250  "let",
251  "lex|lexp|lexpr",
252  "lf|lfi|lfil|lfile",
253  "lfir|lfirs|lfirst",
254  "lg|lge|lget|lgetf|lgetfi|lgetfil|lgetfile",
255  "lgetb|lgetbu|lgetbuf|lgetbuff|lgetbuffe|lgetbuffer",
256  "lgete|lgetex|lgetexp|lgetexpr",
257  "lgr|lgre|lgrep",
258  "lgrepa|lgrepad|lgrepadd",
259  "lh|lhe|lhel|lhelp|lhelpg|lhelpgr|lhelpgre|lhelpgrep",
260  "ll",
261  "lla|llas|llast",
262  "lli|llis|llist",
263  "lmak|lmake",
264  "lmapc|lmapcl|lmapcle|lmapclea|lmapclear",
265  "lne|lnex|lnext",
266  "lnew|lnewe|lnewer",
267  "lnf|lnfi|lnfil|lnfile",
268  "lo|loa|load|loadv|loadvi|loadvie|loadview",
269  "loadk",
270  "loadkeymap",
271  "loc|lock|lockm|lockma|lockmar|lockmark|lockmarks",
272  "locale",
273  "lockv|lockva|lockvar",
274  "lol|lold|lolde|lolder",
275  "lop|lope|lopen",
276  "lp|lpr|lpre|lprev|lprevi|lprevio|lpreviou|lprevious",
277  "lpf|lpfi|lpfil|lpfile",
278  "lr|lre|lrew|lrewi|lrewin|lrewind",
279  "ls",
280  "lt|lta|ltag",
281  "lua",
282  "luado",
283  "luafile",
284  "lv|lvi|lvim|lvimg|lvimgr|lvimgre|lvimgrep",
285  "lvimgrepa|lvimgrepad|lvimgrepadd",
286  "lw|lwi|lwin|lwind|lwindo|lwindow",
287  "m|mo|mov|move",
288  "ma",
289  "ma|mar|mark",
290  "mak|make",
291  "marks",
292  "mat|matc|match",
293  "menut|menutr|menutra|menutran|menutrans|menutransl|menutransla|menutranslat|menutranslate",
294  "mes|mess|messa|messag|message|messages",
295  "mk|mke|mkex|mkexr|mkexrc",
296  "mkdir",
297  "mks|mkse|mkses|mksess|mksessi|mksessio|mksession",
298  "mksp|mkspe|mkspel|mkspell",
299  "mkv|mkvi|mkvim|mkvimr|mkvimrc",
300  "mkvie|mkview",
301  "mo|mov|move",
302  "mod|mode",
303  "mz|mzs|mzsc|mzsch|mzsche|mzschem|mzscheme",
304  "mzf|mzfi|mzfil|mzfile",
305  "n|ne|nex|next",
306  "nb|nbk|nbke|nbkey",
307  "nbc|nbcl|nbclo|nbclos|nbclose",
308  "nbs|nbst|nbsta|nbstar|nbstart",
309  "ne|nex|next",
310  "new",
311  "nkf",
312  "nmapc|nmapcl|nmapcle|nmapclea|nmapclear",
313  "noa|noau|noaut|noauto|noautoc|noautocm|noautocmd",
314  "noh|nohl|nohls|nohlse|nohlsea|nohlsear|nohlsearc|nohlsearch",
315  "nu|num|numb|numbe|number",
316  "o|op|ope|open",
317  "ol|old|oldf|oldfi|oldfil|oldfile|oldfiles",
318  "omapc|omapcl|omapcle|omapclea|omapclear",
319  "on|onl|only",
320  "opt|opti|optio|option|options",
321  "ownsyntax",
322  "p|pr|pri|prin|print",
323  "pc|pcl|pclo|pclos|pclose",
324  "pe|per|perl",
325  "ped|pedi|pedit",
326  "perld|perldo",
327  "po|pop",
328  "popu",
329  "popu|popup",
330  "pp|ppo|ppop",
331  "pre|pres|prese|preser|preserv|preserve",
332  "prev|previ|previo|previou|previous",
333  "pro|promptf|promptfi|promptfin|promptfind",
334  "prof|profi|profil|profile",
335  "profd|profde|profdel",
336  "promptr|promptre|promptrep|promptrepl",
337  "ps|pse|psea|psear|psearc|psearch",
338  "ptN|ptNe|ptNex|ptNext",
339  "pta|ptag",
340  "ptf|ptfi|ptfir|ptfirs|ptfirst",
341  "ptj|ptju|ptjum|ptjump",
342  "ptl|ptla|ptlas|ptlast",
343  "ptn|ptne|ptnex|ptnext",
344  "ptp|ptpr|ptpre|ptprev|ptprevi|ptprevio|ptpreviou|ptprevious",
345  "ptr|ptre|ptrew|ptrewi|ptrewin|ptrewind",
346  "pts|ptse|ptsel|ptsele|ptselec|ptselect",
347  "pu|put",
348  "pw|pwd",
349  "py|pyt|pyth|pytho|python",
350  "py3",
351  "py3f|py3fi|py3fil|py3file",
352  "pyf|pyfi|pyfil|pyfile",
353  "python3",
354  "q|qu|qui|quit",
355  "qa|qal|qall",
356  "quita|quital|quitall",
357  "quote",
358  "r|re|rea|read",
359  "rec|reco|recov|recove|recover",
360  "red|redo",
361  "redi|redir",
362  "redr|redra|redraw",
363  "redraws|redrawst|redrawsta|redrawstat|redrawstatu|redrawstatus",
364  "reg|regi|regis|regist|registe|register|registers",
365  "res|resi|resiz|resize",
366  "ret|reta|retab",
367  "retu|retur|return",
368  "rew|rewi|rewin|rewind",
369  "ri|rig|righ|right",
370  "rightb|rightbe|rightbel|rightbelo|rightbelow",
371  "ru|run|runt|runti|runtim|runtime",
372  "rub|ruby",
373  "rubyd|rubydo",
374  "rubyf|rubyfi|rubyfil|rubyfile",
375  "rundo",
376  "rv|rvi|rvim|rvimi|rvimin|rviminf|rviminfo",
377  "sN|sNe|sNex|sNext",
378  "sa|sar|sarg|sargu|sargum|sargume|sargumen|sargument",
379  "sal|sall",
380  "san|sand|sandb|sandbo|sandbox",
381  "sav|save|savea|saveas",
382  "sb|sbu|sbuf|sbuff|sbuffe|sbuffer",
383  "sbN|sbNe|sbNex|sbNext",
384  "sba|sbal|sball",
385  "sbf|sbfi|sbfir|sbfirs|sbfirst",
386  "sbl|sbla|sblas|sblast",
387  "sbm|sbmo|sbmod|sbmodi|sbmodif|sbmodifi|sbmodifie|sbmodified",
388  "sbn|sbne|sbnex|sbnext",
389  "sbp|sbpr|sbpre|sbprev|sbprevi|sbprevio|sbpreviou|sbprevious",
390  "sbr|sbre|sbrew|sbrewi|sbrewin|sbrewind",
391  "scrip|script|scriptn|scriptna|scriptnam|scriptname|scriptnames",
392  "scripte|scripten|scriptenc|scriptenco|scriptencod|scriptencodi|scriptencodin|scriptencoding",
393  "scs|scsc|scsco|scscop|scscope",
394  "se|set",
395  "setf|setfi|setfil|setfile|setfilet|setfilety|setfiletyp|setfiletype",
396  "setg|setgl|setglo|setglob|setgloba|setglobal",
397  "setl|setlo|setloc|setloca|setlocal",
398  "sf|sfi|sfin|sfind",
399  "sfir|sfirs|sfirst",
400  "sh|she|shel|shell",
401  "sig|sign",
402  "sil|sile|silen|silent",
403  "sim|sima|simal|simalt",
404  "sl|sle|slee|sleep",
405  "sla|slas|slast",
406  "sm|sma|smag|smagi|smagic",
407  "smap",
408  "sme",
409  "smenu",
410  "sn|sne|snex|snext",
411  "sni|snif|sniff",
412  "sno|snom|snoma|snomag|snomagi|snomagic",
413  "snoreme||snoremen|snoremenu",
414  "so|sou|sour|sourc|source",
415  "sor|sort",
416  "sp|spl|spli|split",
417  "spe|spel|spell|spellg|spellgo|spellgoo|spellgood",
418  "spelld|spelldu|spelldum|spelldump",
419  "spelli|spellin|spellinf|spellinfo",
420  "spellr|spellre|spellrep|spellrepa|spellrepal|spellrepall",
421  "spellu|spellun|spellund|spellundo",
422  "spellw|spellwr|spellwro|spellwron|spellwrong",
423  "spr|spre|sprev|sprevi|sprevio|spreviou|sprevious",
424  "sre|srew|srewi|srewin|srewind",
425  "st|sto|stop",
426  "sta|stag",
427  "star|start|starti|startin|startins|startinse|startinser|startinsert",
428  "startg|startgr|startgre|startgrep|startgrepl|startgrepla|startgreplac|startgreplace",
429  "startr|startre|startrep|startrepl|startrepla|startreplac|startreplace",
430  "stj|stju|stjum|stjump",
431  "stopi|stopin|stopins|stopinse|stopinser|stopinsert",
432  "sts|stse|stsel|stsele|stselec|stselect",
433  "sun|sunh|sunhi|sunhid|sunhide",
434  "sunme|sunmen|sunmenu",
435  "sus|susp|suspe|suspen|suspend",
436  "sv|svi|svie|sview",
437  "sw|swa|swap|swapn|swapna|swapnam|swapname",
438  "sy|syn|synt|synta|syntax",
439  "sync|syncb|syncbi|syncbin|syncbind",
440  "t",
441  "tN",
442  "tN|tNe|tNex|tNext",
443  "ta|tag",
444  "tab",
445  "tabN",
446  "tabN|tabNe|tabNex|tabNext",
447  "tabc|tabcl|tabclo|tabclos|tabclose",
448  "tabd|tabdo",
449  "tabe|tabed|tabedi|tabedit",
450  "tabf|tabfi|tabfin|tabfind",
451  "tabfir|tabfirs|tabfirst",
452  "tabl|tabla|tablas|tablast",
453  "tabm|tabmo|tabmov|tabmove",
454  "tabn|tabne|tabnex|tabnext",
455  "tabnew",
456  "tabo|tabon|tabonl|tabonly",
457  "tabp|tabpr|tabpre|tabprev|tabprevi|tabprevio|tabpreviou|tabprevious",
458  "tabr|tabre|tabrew|tabrewi|tabrewin|tabrewind",
459  "tabs",
460  "tags",
461  "tc|tcl",
462  "tcld|tcldo",
463  "tclf|tclfi|tclfil|tclfile",
464  "te|tea|tear|tearo|tearof|tearoff",
465  "tf|tfi|tfir|tfirs|tfirst",
466  "th|thr|thro|throw",
467  "tj|tju|tjum|tjump",
468  "tl|tla|tlas|tlast",
469  "tm|tme|tmen|tmenu",
470  "tn|tne|tnex|tnext",
471  "to|top|topl|tople|toplef|topleft",
472  "tp|tpr|tpre|tprev|tprevi|tprevio|tpreviou|tprevious",
473  "tr|tre|trew|trewi|trewin|trewind",
474  "try",
475  "ts|tse|tsel|tsele|tselec|tselect",
476  "tu|tun|tunm|tunme|tunmen|tunmenu",
477  "u|un|und|undo",
478  "una|unab|unabb|unabbr|unabbre|unabbrev|unabbrevi|unabbrevia|unabbreviat|unabbreviate",
479  "undoj|undojo|undojoi|undojoin",
480  "undol|undoli|undolis|undolist",
481  "unh|unhi|unhid|unhide",
482  "unl|unle|unlet",
483  "unlo|unloc|unlock|unlockv|unlockva|unlockvar",
484  "uns|unsi|unsil|unsile|unsilen|unsilent",
485  "up|upd|upda|updat|update",
486  "v|vg|vgl|vglo|vglob|vgloba|vglobal",
487  "ve|ver|vers|versi|versio|version",
488  "verb|verbo|verbos|verbose",
489  "vert|verti|vertic|vertica|vertical",
490  "vi|vis|visu|visua|visual",
491  "vie|view",
492  "vim|vimg|vimgr|vimgre|vimgrep",
493  "vimgrepa|vimgrepad|vimgrepadd",
494  "viu|vius|viusa|viusag|viusage",
495  "vmapc|vmapcl|vmapcle|vmapclea|vmapclear",
496  "vne|vnew",
497  "vs|vsp|vspl|vspli|vsplit",
498  "w|wr|wri|writ|write",
499  "wN|wNe|wNex|wNext",
500  "wa|wal|wall",
501  "wh|whi|whil|while",
502  "win|wins|winsi|winsiz|winsize",
503  "winc|wincm|wincmd",
504  "windo",
505  "winp|winpo|winpos",
506  "wn|wne|wnex|wnext",
507  "wp|wpr|wpre|wprev|wprevi|wprevio|wpreviou|wprevious",
508  "wq",
509  "wqa|wqal|wqall",
510  "ws|wsv|wsve|wsver|wsverb",
511  "wundo",
512  "wv|wvi|wvim|wvimi|wvimin|wviminf|wviminfo",
513  "x|xi|xit",
514  "xa|xal|xall",
515  "xmapc|xmapcl|xmapcle|xmapclea|xmapclear",
516  "xme|xmen|xmenu",
517  "xnoreme|xnoremen|xnoremenu",
518  "xunme|xunmen|xunmenu",
519  "xwininfo",
520  "y|ya|yan|yank"
521
522# Vim options
523type = "t_#2|t_#4|t_%1|t_%i|t_&8",
524  "t_*7|t_@7|t_k;|acd|ai",
525  "akm|al|aleph|allowrevins|altkeymap",
526  "ambiwidth|ambw|anti|antialias|ar",
527  "arab|arabic|arabicshape|ari|arshape",
528  "autochdir|autoindent|autoread|autowrite|autowriteall",
529  "aw|awa|background|backspace|backup",
530  "backupcopy|backupdir|backupext|backupskip|balloondelay",
531  "ballooneval|balloonexpr|bdir|bdlay|beval",
532  "bex|bexpr|bg|bh|bin",
533  "binary|biosk|bioskey|bk|bkc",
534  "bl|bomb|breakat|brk|browsedir",
535  "bs|bsdir|bsk|bt|bufhidden",
536  "buflisted|buftype|casemap|cb|cc",
537  "ccv|cd|cdpath|cedit|cf",
538  "cfu|ch|charconvert|ci|cin",
539  "cindent|cink|cinkeys|cino|cinoptions",
540  "cinw|cinwords|clipboard|cmdheight|cmdwinheight",
541  "cmp|cms|co|cocu|cole",
542  "colorcolumn|columns|com|comments|commentstring",
543  "compatible|complete|completefunc|completeopt|concealcursor",
544  "conceallevel|confirm|consk|conskey|copyindent",
545  "cot|cp|cpo|cpoptions|cpt",
546  "crb|cryptmethod|cscopepathcomp|cscopeprg|cscopequickfix",
547  "cscoperelative|cscopetag|cscopetagorder|cscopeverbose|cspc",
548  "csprg|csqf|csre|cst|csto",
549  "csverb|cuc|cul|cursorbind|cursorcolumn",
550  "cursorline|cwh|debug|deco|def",
551  "define|delcombine|dex|dg|dict",
552  "dictionary|diff|diffexpr|diffopt|digraph",
553  "dip|dir|directory|display|dy",
554  "ea|ead|eadirection|eb|ed",
555  "edcompatible|ef|efm|ei|ek",
556  "enc|encoding|endofline|eol|ep",
557  "equalalways|equalprg|errorbells|errorfile|errorformat",
558  "esckeys|et|eventignore|ex|expandtab",
559  "exrc|fcl|fcs|fdc|fde",
560  "fdi|fdl|fdls|fdm|fdn",
561  "fdo|fdt|fen|fenc|fencs",
562  "fex|ff|ffs|fileencoding|fileencodings",
563  "fileformat|fileformats|filetype|fillchars|fk",
564  "fkmap|flp|fml|fmr|fo",
565  "foldclose|foldcolumn|foldenable|foldexpr|foldignore",
566  "foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines",
567  "foldnestmax|foldopen|foldtext|formatexpr|formatlistpat",
568  "formatoptions|formatprg|fp|fs|fsync",
569  "ft|gcr|gd|gdefault|gfm",
570  "gfn|gfs|gfw|ghr|go",
571  "gp|grepformat|grepprg|gtl|gtt",
572  "guicursor|guifont|guifontset|guifontwide|guiheadroom",
573  "guioptions|guipty|guitablabel|guitabtooltip|helpfile",
574  "helpheight|helplang|hf|hh|hi",
575  "hid|hidden|highlight|history|hk",
576  "hkmap|hkmapp|hkp|hl|hlg",
577  "hls|hlsearch|ic|icon|iconstring",
578  "ignorecase|im|imactivatekey|imak|imc",
579  "imcmdline|imd|imdisable|imi|iminsert",
580  "ims|imsearch|inc|include|includeexpr",
581  "incsearch|inde|indentexpr|indentkeys|indk",
582  "inex|inf|infercase|insertmode|invacd",
583  "invai|invakm|invallowrevins|invaltkeymap|invanti",
584  "invantialias|invar|invarab|invarabic|invarabicshape",
585  "invari|invarshape|invautochdir|invautoindent|invautoread",
586  "invautowrite|invautowriteall|invaw|invawa|invbackup",
587  "invballooneval|invbeval|invbin|invbinary|invbiosk",
588  "invbioskey|invbk|invbl|invbomb|invbuflisted",
589  "invcf|invci|invcin|invcindent|invcompatible",
590  "invconfirm|invconsk|invconskey|invcopyindent|invcp",
591  "invcrb|invcscopetag|invcscopeverbose|invcst|invcsverb",
592  "invcuc|invcul|invcursorbind|invcursorcolumn|invcursorline",
593  "invdeco|invdelcombine|invdg|invdiff|invdigraph",
594  "invea|inveb|inved|invedcompatible|invek",
595  "invendofline|inveol|invequalalways|inverrorbells|invesckeys",
596  "invet|invex|invexpandtab|invexrc|invfen",
597  "invfk|invfkmap|invfoldenable|invgd|invgdefault",
598  "invguipty|invhid|invhidden|invhk|invhkmap",
599  "invhkmapp|invhkp|invhls|invhlsearch|invic",
600  "invicon|invignorecase|invim|invimc|invimcmdline",
601  "invimd|invimdisable|invincsearch|invinf|invinfercase",
602  "invinsertmode|invis|invjoinspaces|invjs|invlazyredraw",
603  "invlbr|invlinebreak|invlisp|invlist|invloadplugins",
604  "invlpl|invlz|invma|invmacatsui|invmagic",
605  "invmh|invml|invmod|invmodeline|invmodifiable",
606  "invmodified|invmore|invmousef|invmousefocus|invmousehide",
607  "invnu|invnumber|invodev|invopendevice|invpaste",
608  "invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw",
609  "invreadonly|invrelativenumber|invremap|invrestorescreen|invrevins",
610  "invri|invrightleft|invrl|invrnu|invro",
611  "invrs|invru|invruler|invsb|invsc",
612  "invscb|invscrollbind|invscs|invsecure|invsft",
613  "invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd",
614  "invshowfulltag|invshowmatch|invshowmode|invsi|invsm",
615  "invsmartcase|invsmartindent|invsmarttab|invsmd|invsn",
616  "invsol|invspell|invsplitbelow|invsplitright|invspr",
617  "invsr|invssl|invsta|invstartofline|invstmp",
618  "invswapfile|invswf|invta|invtagbsearch|invtagrelative",
619  "invtagstack|invtbi|invtbidi|invtbs|invtermbidi",
620  "invterse|invtextauto|invtextmode|invtf|invtgst",
621  "invtildeop|invtimeout|invtitle|invto|invtop",
622  "invtr|invttimeout|invttybuiltin|invttyfast|invtx",
623  "invvb|invvisualbell|invwa|invwarn|invwb",
624  "invweirdinvert|invwfh|invwfw|invwildignorecase*|invwildmenu",
625  "invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap",
626  "invwrapscan|invwrite|invwriteany|invwritebackup|invws",
627  "is|isf|isfname|isi|isident",
628  "isk|iskeyword|isp|isprint|joinspaces",
629  "js|key|keymap|keymodel|keywordprg",
630  "km|kmp|kp|langmap|langmenu",
631  "laststatus|lazyredraw|lbr|lcs|linebreak",
632  "lines|linespace|lisp|lispwords|list",
633  "listchars|lm|lmap|loadplugins|lpl",
634  "ls|lsp|lw|lz|ma",
635  "macatsui|magic|makeef|makeprg|mat",
636  "matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth",
637  "maxmem|maxmempattern|maxmemtot|mco|mef",
638  "menuitems|mfd|mh|mis|mkspellmem",
639  "ml|mls|mm|mmd|mmp",
640  "mmt|mod|modeline|modelines|modifiable",
641  "modified|more|mouse|mousef|mousefocus",
642  "mousehide|mousem|mousemodel|mouses|mouseshape",
643  "mouset|mousetime|mp|mps|msm",
644  "mzq|mzquantum|nf|noacd|noai",
645  "noakm|noallowrevins|noaltkeymap|noanti|noantialias",
646  "noar|noarab|noarabic|noarabicshape|noari",
647  "noarshape|noautochdir|noautoindent|noautoread|noautowrite",
648  "noautowriteall|noaw|noawa|nobackup|noballooneval",
649  "nobeval|nobin|nobinary|nobiosk|nobioskey",
650  "nobk|nobl|nobomb|nobuflisted|nocf",
651  "noci|nocin|nocindent|nocompatible|noconfirm",
652  "noconsk|noconskey|nocopyindent|nocp|nocrb",
653  "nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc",
654  "nocul|nocursorbind|nocursorcolumn|nocursorline|nodeco",
655  "nodelcombine|nodg|nodiff|nodigraph|noea",
656  "noeb|noed|noedcompatible|noek|noendofline",
657  "noeol|noequalalways|noerrorbells|noesckeys|noet",
658  "noex|noexpandtab|noexrc|nofen|nofk",
659  "nofkmap|nofoldenable|nogd|nogdefault|noguipty",
660  "nohid|nohidden|nohk|nohkmap|nohkmapp",
661  "nohkp|nohls|nohlsearch|noic|noicon",
662  "noignorecase|noim|noimc|noimcmdline|noimd",
663  "noimdisable|noincsearch|noinf|noinfercase|noinsertmode",
664  "nois|nojoinspaces|nojs|nolazyredraw|nolbr",
665  "nolinebreak|nolisp|nolist|noloadplugins|nolpl",
666  "nolz|noma|nomacatsui|nomagic|nomh",
667  "noml|nomod|nomodeline|nomodifiable|nomodified",
668  "nomore|nomousef|nomousefocus|nomousehide|nonu",
669  "nonumber|noodev|noopendevice|nopaste|nopi",
670  "nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly",
671  "norelativenumber|noremap|norestorescreen|norevins|nori",
672  "norightleft|norl|nornu|noro|nors",
673  "noru|noruler|nosb|nosc|noscb",
674  "noscrollbind|noscs|nosecure|nosft|noshellslash",
675  "noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag",
676  "noshowmatch|noshowmode|nosi|nosm|nosmartcase",
677  "nosmartindent|nosmarttab|nosmd|nosn|nosol",
678  "nospell|nosplitbelow|nosplitright|nospr|nosr",
679  "nossl|nosta|nostartofline|nostmp|noswapfile",
680  "noswf|nota|notagbsearch|notagrelative|notagstack",
681  "notbi|notbidi|notbs|notermbidi|noterse",
682  "notextauto|notextmode|notf|notgst|notildeop",
683  "notimeout|notitle|noto|notop|notr",
684  "nottimeout|nottybuiltin|nottyfast|notx|novb",
685  "novisualbell|nowa|nowarn|nowb|noweirdinvert",
686  "nowfh|nowfw|nowildignorecase*|nowildmenu|nowinfixheight",
687  "nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan",
688  "nowrite|nowriteany|nowritebackup|nows|nrformats",
689  "nu|number|numberwidth|nuw|odev",
690  "oft|ofu|omnifunc|opendevice|operatorfunc",
691  "opfunc|osfiletype|pa|para|paragraphs",
692  "paste|pastetoggle|patchexpr|patchmode|path",
693  "pdev|penc|pex|pexpr|pfn",
694  "ph|pheader|pi|pm|pmbcs",
695  "pmbfn|popt|preserveindent|previewheight|previewwindow",
696  "printdevice|printencoding|printexpr|printfont|printheader",
697  "printmbcharset|printmbfont|printoptions|prompt|pt",
698  "pumheight|pvh|pvw|qe|quoteescape",
699  "rdt|readonly|redrawtime|relativenumber|remap",
700  "report|restorescreen|revins|ri|rightleft",
701  "rightleftcmd|rl|rlc|rnu|ro",
702  "rs|rtp|ru|ruf|ruler",
703  "rulerformat|runtimepath|sb|sbo|sbr",
704  "sc|scb|scr|scroll|scrollbind",
705  "scrolljump|scrolloff|scrollopt|scs|sect",
706  "sections|secure|sel|selection|selectmode",
707  "sessionoptions|sft|sh|shcf|shell",
708  "shellcmdflag|shellpipe|shellquote|shellredir|shellslash",
709  "shelltemp|shelltype|shellxescape|shellxquote|shiftround",
710  "shiftwidth|shm|shortmess|shortname|showbreak",
711  "showcmd|showfulltag|showmatch|showmode|showtabline",
712  "shq|si|sidescroll|sidescrolloff|siso",
713  "sj|slm|sm|smartcase|smartindent",
714  "smarttab|smc|smd|sn|so",
715  "softtabstop|sol|sp|spc|spell",
716  "spellcapcheck|spellfile|spelllang|spellsuggest|spf",
717  "spl|splitbelow|splitright|spr|sps",
718  "sr|srr|ss|ssl|ssop",
719  "st|sta|stal|startofline|statusline",
720  "stl|stmp|sts|su|sua",
721  "suffixes|suffixesadd|sw|swapfile|swapsync",
722  "swb|swf|switchbuf|sws|sxe",
723  "sxq|syn|synmaxcol|syntax|t_AB",
724  "t_AF|t_AL|t_CS|t_CV|t_Ce",
725  "t_Co|t_Cs|t_DL|t_EI|t_F1",
726  "t_F2|t_F3|t_F4|t_F5|t_F6",
727  "t_F7|t_F8|t_F9|t_IE|t_IS",
728  "t_K1|t_K3|t_K4|t_K5|t_K6",
729  "t_K7|t_K8|t_K9|t_KA|t_KB",
730  "t_KC|t_KD|t_KE|t_KF|t_KG",
731  "t_KH|t_KI|t_KJ|t_KK|t_KL",
732  "t_RI|t_RV|t_SI|t_Sb|t_Sf",
733  "t_WP|t_WS|t_ZH|t_ZR|t_al",
734  "t_bc|t_cd|t_ce|t_cl|t_cm",
735  "t_cs|t_da|t_db|t_dl|t_fs",
736  "t_k1|t_k2|t_k3|t_k4|t_k5",
737  "t_k6|t_k7|t_k8|t_k9|t_kB",
738  "t_kD|t_kI|t_kN|t_kP|t_kb",
739  "t_kd|t_ke|t_kh|t_kl|t_kr",
740  "t_ks|t_ku|t_le|t_mb|t_md",
741  "t_me|t_mr|t_ms|t_nd|t_op",
742  "t_se|t_so|t_sr|t_te|t_ti",
743  "t_ts|t_ue|t_us|t_ut|t_vb",
744  "t_ve|t_vi|t_vs|t_xs|ta",
745  "tabline|tabpagemax|tabstop|tag|tagbsearch",
746  "taglength|tagrelative|tags|tagstack|tal",
747  "tb|tbi|tbidi|tbis|tbs",
748  "tenc|term|termbidi|termencoding|terse",
749  "textauto|textmode|textwidth|tf|tgst",
750  "thesaurus|tildeop|timeout|timeoutlen|title",
751  "titlelen|titleold|titlestring|tl|tm",
752  "to|toolbar|toolbariconsize|top|tpm",
753  "tr|ts|tsl|tsr|ttimeout",
754  "ttimeoutlen|ttm|tty|ttybuiltin|ttyfast",
755  "ttym|ttymouse|ttyscroll|ttytype|tw",
756  "tx|uc|udf|udir|ul",
757  "undodir|undofile|undolevels|undoreload|updatecount",
758  "updatetime|ur|ut|vb|vbs",
759  "vdir|ve|verbose|verbosefile|vfile",
760  "vi|viewdir|viewoptions|viminfo|virtualedit",
761  "visualbell|vop|wa|wak|warn",
762  "wb|wc|wcm|wd|weirdinvert",
763  "wfh|wfw|wh|whichwrap|wi",
764  "wic|wig|wildchar|wildcharm|wildignore",
765  "wildignorecase|wildmenu|wildmode|wildoptions|wim",
766  "winaltkeys|window|winfixheight|winfixwidth|winheight",
767  "winminheight|winminwidth|winwidth|wiv|wiw",
768  "wm|wmh|wmnu|wmw|wop",
769  "wrap|wrapmargin|wrapscan|write|writeany",
770  "writebackup|writedelay|ws|ww"
771
772# Vim Events
773classname = "BufAdd|BufCreate|BufDelete|BufEnter|BufFilePost",
774  "BufFilePre|BufHidden|BufLeave|BufNew|BufNewFile",
775  "BufRead|BufReadCmd|BufReadPost|BufReadPre|BufUnload",
776  "BufWinEnter|BufWinLeave|BufWipeout|BufWrite|BufWriteCmd",
777  "BufWritePost|BufWritePre|Cmd-event|CmdwinEnter|CmdwinLeave",
778  "ColorScheme|CursorHold|CursorHoldI|CursorMoved|CursorMovedI",
779  "EncodingChanged|FileAppendCmd|FileAppendPost|FileAppendPre|FileChangedRO",
780  "FileChangedShell|FileChangedShellPost|FileEncoding|FileReadCmd|FileReadPost",
781  "FileReadPre|FileType|FileWriteCmd|FileWritePost|FileWritePre",
782  "FilterReadPost|FilterReadPre|FilterWritePost|FilterWritePre|FocusGained",
783  "FocusLost|FuncUndefined|GUIEnter|GUIFailed|InsertChange",
784  "InsertCharPre|InsertEnter|InsertLeave|MenuPopup|QuickFixCmdPost",
785  "QuickFixCmdPre|RemoteReply|SessionLoadPost|ShellCmdPost|ShellFilterPost",
786  "SourceCmd|SourcePre|SpellFileMissing|StdinReadPost|StdinReadPre",
787  "SwapExists|Syntax|TabEnter|TabLeave|TermChanged",
788  "TermResponse|User|UserGettingBored|VimEnter|VimLeave",
789  "VimLeavePre|VimResized|WinEnter"
790
791predef_func = "abs|acos|add|and|append",
792  "argc|argidx|argv|asin|atan",
793  "atan2|browse|browsedir|bufexists|buflisted",
794  "bufloaded|bufname|bufnr|bufwinnr|byte2line",
795  "byteidx|call|ceil|changenr|char2nr",
796  "cindent|clearmatches|col|complete|complete_add",
797  "complete_check|confirm|copy|cos|cosh",
798  "count|cscope_connection|cursor|deepcopy|delete",
799  "did_filetype|diff_filler|diff_hlID|empty|escape",
800  "eval|eventhandler|executable|exists|exp",
801  "expand|extend|feedkeys|filereadable|filewritable",
802  "filter|finddir|findfile|float2nr|floor",
803  "fmod|fnameescape|fnamemodify|foldclosed|foldclosedend",
804  "foldlevel|foldtext|foldtextresult|foreground|function",
805  "garbagecollect|get|getbufline|getbufvar|getchar",
806  "getcharmod|getcmdline|getcmdpos|getcmdtype|getcwd",
807  "getfontname|getfperm|getfsize|getftime|getftype",
808  "getline|getloclist|getmatches|getpid|getpos",
809  "getqflist|getreg|getregtype|gettabvar|gettabwinvar",
810  "getwinposx|getwinposy|getwinvar|glob|globpath",
811  "has|has_key|haslocaldir|hasmapto|histadd",
812  "histdel|histget|histnr|hlID|hlexists",
813  "hostname|iconv|indent|index|input",
814  "inputdialog|inputlist|inputrestore|inputsave|inputsecret",
815  "insert|invert|isdirectory|islocked|items",
816  "join|keys|len|libcall|libcallnr",
817  "line|line2byte|lispindent|localtime|log",
818  "log10|luaeval|map|maparg|mapcheck",
819  "match|matchadd|matcharg|matchdelete|matchend",
820  "matchlist|matchstr|max|min|mkdir",
821  "mode|mzeval|nextnonblank|nr2char|or",
822  "pathshorten|pow|prevnonblank|printf|pumvisible",
823  "py3eval|pyeval|range|readfile|reltime",
824  "reltimestr|remote_expr|remote_foreground|remote_peek|remote_read",
825  "remote_send|remove|rename|repeat|resolve",
826  "reverse|round|search|searchdecl|searchpair",
827  "searchpairpos|searchpos|server2client|serverlist|setbufvar",
828  "setcmdpos|setline|setloclist|setmatches|setpos",
829  "setqflist|setreg|settabvar|settabwinvar|setwinvar",
830  "shellescape|shiftwidth|simplify|sin|sinh",
831  "sort|soundfold|spellbadword|spellsuggest|split",
832  "sqrt|str2float|str2nr|strchars|strdisplaywidth",
833  "strftime|stridx|string|strlen|strpart",
834  "strridx|strtrans|strwidth|submatch|substitute",
835  "synID|synIDattr|synIDtrans|synconcealed|synstack",
836  "system|tabpagebuflist|tabpagenr|tabpagewinnr|tagfiles",
837  "taglist|tan|tanh|tempname|tolower",
838  "toupper|tr|trunc|type|undofile",
839  "undotree|values|virtcol|visualmode|winbufnr",
840  "wincol|winheight|winline|winnr|winrestcmd",
841  "winrestview|winsaveview|winwidth|writefile"
842
843# For things like <leader>, <c-r> and <cr>
844atom = '<[[:word:]]+>'
845
846regexp = `([^[:alpha:]])[[:word:]]*\1[[:word:]]*\1`
847
848symbol = "==|==#|==?|!=|!=#|!=?",
849  ">=|>=#|>=?|<=|<=#|<=?",
850  "=~|=~#|=~?|!~|!~#|!~?",
851  ">|>#|>?|<|<#|<?",
852  "=|\|\||&&|+|-|.",
853  "(|)|[|]|{|}"
854
855function = '(?=function!?[[:blank:]]*)[[:word:]]*'
856
857include "number.lang"
858include "c_string.lang"
859