1<?php
2/*************************************************************************************
3 * vim.php
4 * ----------------
5 * Author: Swaroop C H (swaroop@swaroopch.com)
6 * Contributors:
7 *  - Laurent Peuch (psycojoker@gmail.com)
8 * Copyright: (c) 2008 Swaroop C H (http://www.swaroopch.com)
9 * Release Version: 1.0.9.1
10 * Date Started: 2008/10/19
11 *
12 * Vim scripting language file for GeSHi.
13 *
14 * Reference: http://qbnz.com/highlighter/geshi-doc.html#language-files
15 * All keywords scraped from `:help expression-commands`.
16 * All method names scraped from `:help function-list`.
17 *
18 * CHANGES
19 * -------
20 * 2008/10/19 (1.0.8.2)
21 * - Started.
22 * 2009/07/05
23 * - Fill out list of zillion commands (maybe somes still miss).
24 * - fix a part of the regex, now works for comment that have white space before the "
25 *
26 * TODO (updated 2009/07/05)
27 * -------------------------
28 * - Make this damn string with "" work correctly. I've just remove it for my wiki.
29 * - Make the comment regex able to find comment after some code.
30 *   (i.e: let rocks " unworking comment)
31 * - Make <F1> <F2> ... <Esc> <CR> ... works event if they aren't surround by space.
32 *
33 *************************************************************************************
34 *
35 *     This file is part of GeSHi.
36 *
37 *   GeSHi is free software; you can redistribute it and/or modify
38 *   it under the terms of the GNU General Public License as published by
39 *   the Free Software Foundation; either version 2 of the License, or
40 *   (at your option) any later version.
41 *
42 *   GeSHi is distributed in the hope that it will be useful,
43 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
44 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
45 *   GNU General Public License for more details.
46 *
47 *   You should have received a copy of the GNU General Public License
48 *   along with GeSHi; if not, write to the Free Software
49 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
50 *
51 ************************************************************************************/
52
53$language_data = array(
54    'LANG_NAME' => 'Vim Script',
55    'COMMENT_SINGLE' => array(),
56    'COMMENT_REGEXP' => array(
57        1 => "/\s*\"[^\"]*?$/m",
58        //Regular expressions (Ported from perl.php)
59//        2 => "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
60        ),
61    'COMMENT_MULTI' => array(),
62    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
63    'QUOTEMARKS' => array("'", '"'),
64    'ESCAPE_CHAR' => '\\',
65    'KEYWORDS' => array(
66        1 => array(
67            'au', 'augroup', 'autocmd', 'brea', 'break', 'bufadd',
68            'bufcreate', 'bufdelete', 'bufenter', 'buffilepost',
69            'buffilepre', 'bufleave', 'bufnew', 'bufnewfile',
70            'bufread', 'bufreadcmd', 'bufreadpost', 'bufreadpre',
71            'bufunload', 'bufwinenter', 'bufwinleave', 'bufwipeout',
72            'bufwrite', 'bufwritecmd', 'bufwritepost', 'bufwritepre',
73            'call', 'cat', 'catc', 'catch', 'cmd-event', 'cmdwinenter',
74            'cmdwinleave', 'colorscheme', 'con', 'confirm', 'cont', 'conti',
75            'contin', 'continu', 'continue', 'cursorhold', 'cursorholdi',
76            'cursormoved', 'cursormovedi', 'ec', 'echo', 'echoe',
77            'echoer', 'echoerr', 'echoh', 'echohl', 'echom', 'echoms',
78            'echomsg', 'echon', 'el', 'els', 'else', 'elsei', 'elseif',
79            'en', 'encodingchanged', 'end', 'endfo', 'endfor', 'endi',
80            'endif', 'endt', 'endtr', 'endtry', 'endw', 'endwh', 'endwhi',
81            'endwhil', 'endwhile', 'exe', 'exec', 'execu', 'execut',
82            'execute', 'fileappendcmd', 'fileappendpost', 'fileappendpre',
83            'filechangedro', 'filechangedshell', 'filechangedshellpost',
84            'filereadcmd', 'filereadpost', 'filereadpre',
85            'filetype', 'filewritecmd', 'filewritepost', 'filewritepre',
86            'filterreadpost', 'filterreadpre', 'filterwritepost',
87            'filterwritepre', 'fina', 'final', 'finall', 'finally',
88            'finish', 'focusgained', 'focuslost', 'for', 'fun', 'func',
89            'funct', 'functi', 'functio', 'function', 'funcundefined',
90            'guienter', 'guifailed', 'hi', 'highlight', 'if', 'in',
91            'insertchange', 'insertenter', 'insertleave', 'let', 'lockv',
92            'lockva', 'lockvar', 'map', 'match', 'menupopup', 'nnoremap',
93            'quickfixcmdpost', 'quickfixcmdpre', 'remotereply', 'retu',
94            'retur', 'return', 'sessionloadpost', 'set', 'setlocal',
95            'shellcmdpost', 'shellfilterpost', 'sourcecmd', 'sourcepre',
96            'spellfilemissing', 'stdinreadpost', 'stdinreadpre',
97            'swapexists', 'syntax', 'tabenter', 'tableave', 'termchanged',
98            'termresponse', 'th', 'thr', 'thro', 'throw', 'tr', 'try', 'unl',
99            'unle', 'unlet', 'unlo', 'unloc', 'unlock', 'unlockv',
100            'unlockva', 'unlockvar', 'user', 'usergettingbored',
101            'vimenter', 'vimleave', 'vimleavepre', 'vimresized', 'wh',
102            'whi', 'whil', 'while', 'winenter', 'winleave'
103            ),
104        2 => array(
105            '&lt;CR&gt;', '&lt;Esc&gt;', '&lt;F1&gt;', '&lt;F10&gt;',
106            '&lt;F11&gt;', '&lt;F12&gt;', '&lt;F2&gt;', '&lt;F3&gt;',
107            '&lt;F4&gt;', '&lt;F5&gt;', '&lt;F6&gt;', '&lt;F7&gt;',
108            '&lt;F8&gt;', '&lt;F9&gt;', '&lt;cr&gt;', '&lt;silent&gt;',
109            '-nargs', 'acd', 'ai', 'akm', 'al', 'aleph',
110            'allowrevins', 'altkeymap', 'ambiwidth', 'ambw',
111            'anti', 'antialias', 'ar', 'arab', 'arabic',
112            'arabicshape', 'ari', 'arshape', 'autochdir',
113            'autoindent', 'autoread', 'autowrite', 'autowriteall',
114            'aw', 'awa', 'background', 'backspace', 'backup',
115            'backupcopy', 'backupdir', 'backupext',
116            'backupskip', 'balloondelay', 'ballooneval', 'balloonexpr',
117            'bdir', 'bdlay', 'beval', 'bex', 'bexpr', 'bg',
118            'bh', 'bin', 'binary', 'biosk', 'bioskey',
119            'bk', 'bkc', 'bl', 'bomb', 'breakat', 'brk',
120            'bs', 'bsdir', 'bsk', 'bt', 'bufhidden',
121            'buftype', 'casemap', 'cb',
122            'ccv', 'cd', 'cdpath', 'cedit', 'cf', 'cfu', 'ch',
123            'charconvert', 'ci', 'cin', 'cink',
124            'cinkeys', 'cino', 'cinoptions', 'cinw', 'cinwords',
125            'clipboard', 'cmdheight', 'cmdwinheight',
126            'cmp', 'cms', 'co', 'columns', 'com',
127            'comc', 'comcl', 'comcle', 'comclea', 'comclear', 'comm',
128            'comma', 'comman', 'command', 'comments', 'commentstring',
129            'compatible', 'completefunc', 'completeopt',
130            'consk', 'conskey', 'copyindent',
131            'cot', 'cp', 'cpo', 'cpoptions', 'cpt',
132            'cscopepathcomp', 'cscopeprg', 'cscopequickfix', 'cscopetag',
133            'cscopetagorder', 'cscopeverbose',
134            'cspc', 'csprg', 'csqf', 'cst', 'csto', 'csverb', 'cuc',
135            'cul', 'cursorcolumn', 'cursorline', 'cwh', 'debug',
136            'deco', 'def', 'define', 'delc', 'delco', 'delcom',
137            'delcombine', 'delcomm', 'delcomman', 'delcommand', 'dex',
138            'dg', 'dict', 'dictionary', 'diff', 'diffexpr',
139            'diffopt', 'digraph', 'dip', 'dir', 'directory', 'display',
140            'dlcomma', 'dy', 'ea', 'ead', 'eadirection',
141            'eb', 'ed', 'edcompatible', 'ef', 'efm',
142            'ei', 'ek', 'enc', 'encoding', 'endfun', 'endofline',
143            'eol', 'ep', 'equalalways', 'equalprg', 'errorbells',
144            'errorfile', 'errorformat', 'esckeys', 'et',
145            'eventignore', 'ex', 'expandtab', 'exrc', 'fcl',
146            'fcs', 'fdc', 'fde', 'fdi', 'fdl', 'fdls', 'fdm',
147            'fdn', 'fdo', 'fdt', 'fen', 'fenc', 'fencs', 'fex',
148            'ff', 'ffs', 'fileencoding', 'fileencodings', 'fileformat',
149            'fileformats', /*'filetype',*/ 'fillchars', 'fk',
150            'fkmap', 'flp', 'fml', 'fmr', 'fo', 'foldclose',
151            'foldcolumn', 'foldenable', 'foldexpr', 'foldignore',
152            'foldlevelstart', 'foldmarker', 'foldmethod', 'foldminlines',
153            'foldnestmax', 'foldopen', 'formatexpr', 'formatlistpat',
154            'formatoptions', 'formatprg', 'fp', 'fs', 'fsync', 'ft',
155            'gcr', 'gd', 'gdefault', 'gfm', 'gfn', 'gfs', 'gfw',
156            'ghr', 'go', 'gp', 'grepformat', 'grepprg', 'gtl',
157            'gtt', 'guicursor', 'guifont', 'guifontset',
158            'guifontwide', 'guiheadroom', 'guioptions', 'guipty',
159            'guitablabel', 'guitabtooltip', 'helpfile',
160            'helpheight', 'helplang', 'hf', 'hh', 'hid', 'hidden',
161            'history', 'hk', 'hkmap', 'hkmapp', 'hkp', 'hl',
162            'hlg', 'hls', 'hlsearch', 'ic', 'icon', 'iconstring',
163            'ignorecase', 'im', 'imactivatekey', 'imak', 'imc',
164            'imcmdline', 'imd', 'imdisable', 'imi', 'iminsert', 'ims',
165            'imsearch', 'inc', 'include', 'includeexpr',
166            'incsearch', 'inde', 'indentexpr', 'indentkeys',
167            'indk', 'inex', 'inf', 'infercase', 'insertmode', 'is', 'isf',
168            'isfname', 'isi', 'isident', 'isk', 'iskeyword',
169            'isp', 'isprint', 'joinspaces', 'js', 'key',
170            'keymap', 'keymodel', 'keywordprg', 'km', 'kmp', 'kp',
171            'langmap', 'langmenu', 'laststatus', 'lazyredraw', 'lbr',
172            'lcs', 'linebreak', 'lines', 'linespace', 'lisp',
173            'lispwords', 'list', 'listchars', 'lm', 'lmap',
174            'loadplugins', 'lpl', 'ls', 'lsp', 'lw', 'lz', 'ma',
175            'macatsui', 'magic', 'makeef', 'makeprg', 'mat',
176            'matchpairs', 'matchtime', 'maxcombine', 'maxfuncdepth',
177            'maxmapdepth', 'maxmem', 'maxmempattern',
178            'maxmemtot', 'mco', 'mef', 'menuitems', 'mfd', 'mh',
179            'mis', 'mkspellmem', 'ml', 'mls', 'mm', 'mmd', 'mmp',
180            'mmt', 'mod', 'modeline', 'modelines', 'modifiable',
181            'modified', 'more', 'mouse', 'mousef', 'mousefocus',
182            'mousehide', 'mousem', 'mousemodel', 'mouses',
183            'mouseshape', 'mouset', 'mousetime', 'mp', 'mps', 'msm',
184            'mzq', 'mzquantum', 'nf', 'noacd', 'noai', 'noakm',
185            'noallowrevins', 'noaltkeymap', 'noanti', 'noantialias',
186            'noar', 'noarab', 'noarabic', 'noarabicshape', 'noari',
187            'noarshape', 'noautochdir', 'noautoindent', 'noautoread',
188            'noautowrite', 'noautowriteall', 'noaw', 'noawa', 'nobackup',
189            'noballooneval', 'nobeval', 'nobin', 'nobinary', 'nobiosk',
190            'nobioskey', 'nobk', 'nobl', 'nobomb', 'nobuflisted', 'nocf',
191            'noci', 'nocin', 'nocindent', 'nocompatible', 'noconfirm',
192            'noconsk', 'noconskey', 'nocopyindent', 'nocp', 'nocscopetag',
193            'nocscopeverbose', 'nocst', 'nocsverb', 'nocuc', 'nocul',
194            'nocursorcolumn', 'nocursorline', 'nodeco', 'nodelcombine',
195            'nodg', 'nodiff', 'nodigraph', 'nodisable', 'noea', 'noeb',
196            'noed', 'noedcompatible', 'noek', 'noendofline', 'noeol',
197            'noequalalways', 'noerrorbells', 'noesckeys', 'noet',
198            'noex', 'noexpandtab', 'noexrc', 'nofen', 'nofk', 'nofkmap',
199            'nofoldenable', 'nogd', 'nogdefault', 'noguipty', 'nohid',
200            'nohidden', 'nohk', 'nohkmap', 'nohkmapp', 'nohkp', 'nohls',
201            'nohlsearch', 'noic', 'noicon', 'noignorecase', 'noim',
202            'noimc', 'noimcmdline', 'noimd', 'noincsearch', 'noinf',
203            'noinfercase', 'noinsertmode', 'nois', 'nojoinspaces',
204            'nojs', 'nolazyredraw', 'nolbr', 'nolinebreak', 'nolisp',
205            'nolist', 'noloadplugins', 'nolpl', 'nolz', 'noma',
206            'nomacatsui', 'nomagic', 'nomh', 'noml', 'nomod',
207            'nomodeline', 'nomodifiable', 'nomodified', 'nomore',
208            'nomousef', 'nomousefocus', 'nomousehide', 'nonu',
209            'nonumber', 'noodev', 'noopendevice', 'nopaste', 'nopi',
210            'nopreserveindent', 'nopreviewwindow', 'noprompt', 'nopvw',
211            'noreadonly', 'noremap', 'norestorescreen', 'norevins',
212            'nori', 'norightleft', 'norightleftcmd', 'norl', 'norlc',
213            'noro', 'nors', 'noru', 'noruler', 'nosb', 'nosc', 'noscb',
214            'noscrollbind', 'noscs', 'nosecure', 'nosft', 'noshellslash',
215            'noshelltemp', 'noshiftround', 'noshortname', 'noshowcmd',
216            'noshowfulltag', 'noshowmatch', 'noshowmode', 'nosi', 'nosm',
217            'nosmartcase', 'nosmartindent', 'nosmarttab', 'nosmd',
218            'nosn', 'nosol', 'nospell', 'nosplitbelow', 'nosplitright',
219            'nospr', 'nosr', 'nossl', 'nosta', 'nostartofline',
220            'nostmp', 'noswapfile', 'noswf', 'nota', 'notagbsearch',
221            'notagrelative', 'notagstack', 'notbi', 'notbidi', 'notbs',
222            'notermbidi', 'noterse', 'notextauto', 'notextmode',
223            'notf', 'notgst', 'notildeop', 'notimeout', 'notitle',
224            'noto', 'notop', 'notr', 'nottimeout', 'nottybuiltin',
225            'nottyfast', 'notx', 'novb', 'novisualbell', 'nowa',
226            'nowarn', 'nowb', 'noweirdinvert', 'nowfh', 'nowfw',
227            'nowildmenu', 'nowinfixheight', 'nowinfixwidth', 'nowiv',
228            'nowmnu', 'nowrap', 'nowrapscan', 'nowrite', 'nowriteany',
229            'nowritebackup', 'nows', 'nrformats', 'nu', 'number',
230            'numberwidth', 'nuw', 'odev', 'oft', 'ofu',
231            'omnifunc', 'opendevice', 'operatorfunc', 'opfunc',
232            'osfiletype', 'pa', 'para', 'paragraphs',
233            'paste', 'pastetoggle', 'patchexpr',
234            'patchmode', 'path', 'pdev', 'penc', 'pex', 'pexpr',
235            'pfn', 'ph', 'pheader', 'pi', 'pm', 'pmbcs',
236            'pmbfn', 'popt', 'preserveindent', 'previewheight',
237            'previewwindow', 'printdevice', 'printencoding', 'printexpr',
238            'printfont', 'printheader', 'printmbcharset',
239            'printmbfont', 'printoptions', 'prompt', 'pt', 'pumheight',
240            'pvh', 'pvw', 'qe', 'quoteescape', 'rdt',
241            'readonly', 'redrawtime', 'remap', 'report',
242            'restorescreen', 'revins', 'ri', 'rightleft', 'rightleftcmd',
243            'rl', 'rlc', 'ro', 'rs', 'rtp', 'ru',
244            'ruf', 'ruler', 'rulerformat', 'runtimepath', 'sb', 'sbo',
245            'sbr', 'sc', 'scb', 'scr', 'scroll', 'scrollbind',
246            'scrolljump', 'scrolloff', 'scrollopt',
247            'scs', 'sect', 'sections', 'secure', 'sel',
248            'selection', 'selectmode', 'sessionoptions', 'sft',
249            'sh', 'shcf', 'shell', 'shellcmdflag', 'shellpipe',
250            'shellquote', 'shellredir', 'shellslash',
251            'shelltemp', 'shelltype', 'shellxquote', 'shiftround',
252            'shiftwidth', 'shm', 'shortmess', 'shortname',
253            'showbreak', 'showcmd', 'showfulltag', 'showmatch',
254            'showmode', 'showtabline', 'shq', 'si', 'sidescroll',
255            'sidescrolloff', 'siso', 'sj', 'slm', 'sm', 'smartcase',
256            'smartindent', 'smarttab', 'smc', 'smd', 'sn',
257            'so', 'softtabstop', 'sol', 'sp', 'spc', 'spell',
258            'spellcapcheck', 'spellfile', 'spelllang',
259            'spf', 'spl', 'splitbelow', 'splitright', 'spr',
260            'sps', 'sr', 'srr', 'ss', 'ssl', 'ssop', 'st', 'sta',
261            'stal', 'startofline', 'statusline', 'stl', 'stmp',
262            'sts', 'su', 'sua', 'suffixes', 'suffixesadd', 'sw',
263            'swapfile', 'swapsync', 'swb', 'swf', 'switchbuf',
264            'sws', 'sxq', 'syn', 'synmaxcol', 'ta',
265            'tabline', 'tabpagemax', 'tabstop', 'tag',
266            'tagbsearch', 'taglength', 'tagrelative', 'tags', 'tagstack',
267            'tal', 'tb', 'tbi', 'tbidi', 'tbis', 'tbs',
268            'tenc', 'term', 'termbidi', 'termencoding', 'terse',
269            'textauto', 'textmode', 'textwidth', 'tf', 'tgst',
270            'thesaurus', 'tildeop', 'timeout', 'timeoutlen',
271            'title', 'titlelen', 'titleold', 'titlestring',
272            'tl', 'tm', 'to', 'toolbar', 'toolbariconsize', 'top',
273            'tpm', 'ts', 'tsl', 'tsr', 'ttimeout',
274            'ttimeoutlen', 'ttm', 'tty', 'ttybuiltin', 'ttyfast', 'ttym',
275            'ttymouse', 'ttyscroll', 'ttytype', 'tw', 'tx', 'uc',
276            'ul', 'undolevels', 'updatecount', 'updatetime', 'ut',
277            'vb', 'vbs', 'vdir', 've', 'verbose', 'verbosefile',
278            'vfile', 'vi', 'viewdir', 'viewoptions', 'viminfo',
279            'virtualedit', 'visualbell', 'vop', 'wa', 'wak',
280            'warn', 'wb', 'wc', 'wcm', 'wd', 'weirdinvert', 'wfh',
281            'wfw', /*'wh',*/ 'whichwrap', 'wi', 'wig', 'wildchar',
282            'wildcharm', 'wildignore', 'wildmenu',
283            'wildmode', 'wildoptions', 'wim', 'winaltkeys', 'window',
284            'winfixheight', 'winfixwidth', 'winheight',
285            'winminheight', 'winminwidth', 'winwidth', 'wiv',
286            'wiw', 'wm', 'wmh', 'wmnu', 'wmw', 'wop', 'wrap',
287            'wrapmargin', 'wrapscan', 'write', 'writeany',
288            'writebackup', 'writedelay', 'ws', 'ww'
289            ),
290        3 => array(
291            'BufAdd', 'BufCreate', 'BufDelete', 'BufEnter', 'BufFilePost',
292            'BufFilePre', 'BufHidden', 'BufLeave', 'BufNew', 'BufNewFile',
293            'BufRead', 'BufReadCmd', 'BufReadPost', 'BufReadPre',
294            'BufUnload', 'BufWinEnter', 'BufWinLeave', 'BufWipeout',
295            'BufWrite', 'BufWriteCmd', 'BufWritePost', 'BufWritePre',
296            'Cmd-event', 'CmdwinEnter', 'CmdwinLeave', 'ColorScheme',
297            'CursorHold', 'CursorHoldI', 'CursorMoved', 'CursorMovedI',
298            'EncodingChanged', 'FileAppendCmd', 'FileAppendPost',
299            'FileAppendPre', 'FileChangedRO', 'FileChangedShell',
300            'FileChangedShellPost', 'FileEncoding', 'FileReadCmd',
301            'FileReadPost', 'FileReadPre', 'FileType',
302            'FileWriteCmd', 'FileWritePost', 'FileWritePre',
303            'FilterReadPost', 'FilterReadPre', 'FilterWritePost',
304            'FilterWritePre', 'FocusGained', 'FocusLost', 'FuncUndefined',
305            'GUIEnter', 'GUIFailed', 'InsertChange', 'InsertEnter',
306            'InsertLeave', 'MenuPopup', 'QuickFixCmdPost',
307            'QuickFixCmdPre', 'RemoteReply', 'SessionLoadPost',
308            'ShellCmdPost', 'ShellFilterPost', 'SourceCmd',
309            'SourcePre', 'SpellFileMissing', 'StdinReadPost',
310            'StdinReadPre', 'SwapExists', 'Syntax', 'TabEnter',
311            'TabLeave', 'TermChanged', 'TermResponse', 'User',
312            'UserGettingBored', 'VimEnter', 'VimLeave', 'VimLeavePre',
313            'VimResized', 'WinEnter', 'WinLeave', 'abs', 'add', 'append',
314            'argc', 'argidx', 'argv', 'atan', 'browse', 'browsedir',
315            'bufexists', 'buflisted', 'bufloaded', 'bufname', 'bufnr',
316            'bufwinnr', 'byte2line', 'byteidx', 'ceil', 'changenr',
317            'char2nr', 'cindent', 'clearmatches', 'col', 'complete',
318            'complete_add', 'complete_check', 'copy',
319            'cos', 'count', 'cscope_connection', 'cursor', 'deepcopy',
320            'delete', 'did_filetype', 'diff_filler', 'diff_hlID',
321            'empty', 'escape', 'eval', 'eventhandler', 'executable',
322            'exists', 'expand', 'extend', 'feedkeys', 'filereadable',
323            'filewritable', 'filter', 'finddir', 'findfile', 'float2nr',
324            'floor', 'fnameescape', 'fnamemodify', 'foldclosed',
325            'foldclosedend', 'foldlevel', 'foldtext', 'foldtextresult',
326            'foreground', 'garbagecollect', 'get', 'getbufline',
327            'getbufvar', 'getchar', 'getcharmod', 'getcmdline',
328            'getcmdpos', 'getcmdtype', 'getcwd', 'getfontname',
329            'getfperm', 'getfsize', 'getftime', 'getftype', 'getline',
330            'getloclist', 'getmatches', 'getpid', 'getpos', 'getqflist',
331            'getreg', 'getregtype', 'gettabwinvar', 'getwinposx',
332            'getwinposy', 'getwinvar', 'glob', 'globpath', 'has',
333            'has_key', 'haslocaldir', 'hasmapto', 'histadd', 'histdel',
334            'histget', 'histnr', 'hlID', 'hlexists', 'hostname', 'iconv',
335            'indent', 'index', 'input', 'inputdialog', 'inputlist',
336            'inputrestore', 'inputsave', 'inputsecret', 'insert',
337            'isdirectory', 'islocked', 'items', 'join', 'keys', 'len',
338            'libcall', 'libcallnr', 'line', 'line2byte', 'lispindent',
339            'localtime', 'log10', 'maparg', 'mapcheck', 'matchadd',
340            'matcharg', 'matchdelete', 'matchend', 'matchlist',
341            'matchstr', 'max', 'min', 'mkdir', 'mode', 'nextnonblank',
342            'nr2char', 'off', 'on', 'pathshorten', 'plugin', 'pow',
343            'prevnonblank', 'printf', 'pumvisible', 'range', 'readfile',
344            'reltime', 'reltimestr', 'remote_expr', 'remote_foreground',
345            'remote_peek', 'remote_read', 'remote_send', 'remove',
346            'rename', 'repeat', 'resolve', 'reverse', 'round', 'search',
347            'searchdecl', 'searchpair', 'searchpairpos', 'searchpos',
348            'server2client', 'serverlist', 'setbufvar', 'setcmdpos',
349            'setline', 'setloclist', 'setmatches', 'setpos', 'setqflist',
350            'setreg', 'settabwinvar', 'setwinvar', 'shellescape',
351            'simplify', 'sin', 'sort', 'soundfold', 'spellbadword',
352            'spellsuggest', 'split', 'sqrt', 'str2float', 'str2nr',
353            'strftime', 'stridx', 'string', 'strlen', 'strpart',
354            'strridx', 'strtrans', 'submatch', 'substitute',
355            'synID', 'synIDattr', 'synIDtrans', 'synstack', 'system',
356            'tabpagebuflist', 'tabpagenr', 'tabpagewinnr', 'tagfiles',
357            'taglist', 'tempname', 'tolower', 'toupper', 'trunc',
358            'type', 'values', 'virtcol', 'visualmode', 'winbufnr',
359            'wincol', 'winline', 'winnr', 'winrestcmd',
360            'winrestview', 'winsaveview', 'writefile'
361            )
362        ),
363    'SYMBOLS' => array(
364        '(', ')', '[', ']', '{', '}', '!', '%', '&', '*', '|', '/', '<', '>',
365        '^', '-', '+', '~', '?', ':', '$', '@', '.'
366        ),
367    'CASE_SENSITIVE' => array(
368        GESHI_COMMENTS => false,
369        1 => true,
370        2 => true,
371        3 => true
372        ),
373    'STYLES' => array(
374        'BRACKETS' => array(
375            0 => 'color: #000000;'
376            ),
377        'COMMENTS' => array(
378            1 => 'color: #adadad; font-style: italic;',
379//            2 => 'color: #009966; font-style: italic;'
380            ),
381        'ESCAPE_CHAR' => array(
382            0 => ''
383            ),
384        'KEYWORDS' => array(
385            1 => 'color: #804040;',
386            2 => 'color: #668080;',
387            3 => 'color: #25BB4D;'
388            ),
389        'METHODS' => array(
390            0 => 'color: #000000;',
391            ),
392        'NUMBERS' => array(
393            0 => 'color: #000000; font-weight:bold;'
394            ),
395        'REGEXPS' => array(
396            ),
397        'SCRIPT' => array(
398            ),
399        'STRINGS' => array(
400            0 => 'color: #C5A22D;'
401            ),
402        'SYMBOLS' => array(
403            0 => 'color: #000000;'
404            )
405        ),
406    'URLS' => array(
407        1 => '',
408        2 => '',
409        3 => ''
410        ),
411    'OOLANG' => false, //Save some time as OO identifiers aren't used
412    'OBJECT_SPLITTERS' => array(),
413    'REGEXPS' => array(
414        ),
415    'STRICT_MODE_APPLIES' => GESHI_NEVER,
416    'SCRIPT_DELIMITERS' => array(),
417    'HIGHLIGHT_STRICT_BLOCK' => array()
418);
419