1 | 5 | simandl | <?php |
2 | | | |
3 | | | /************************************************************************************* |
4 | | | * vim.php |
5 | | | * ---------------- |
6 | | | * Author: Swaroop C H (swaroop@swaroopch.com) |
7 | | | * Copyright: (c) 2008 Swaroop C H (http://www.swaroopch.com) |
8 | | | * Release Version: 1.0.8.3 |
9 | | | * Date Started: 2008/10/19 |
10 | | | * |
11 | | | * Vim scripting language file for GeSHi. |
12 | | | * |
13 | | | * Reference: http://qbnz.com/highlighter/geshi-doc.html#language-files |
14 | | | * All keywords scraped from `:help expression-commands`. |
15 | | | * All method names scraped from `:help function-list`. |
16 | | | * |
17 | | | * CHANGES |
18 | | | * ------- |
19 | | | * 2008/10/19 (1.0.8.2) |
20 | | | * - Started. |
21 | | | * |
22 | | | * TODO (updated 2008/10/19) |
23 | | | * ------------------------- |
24 | | | * - Fill out list of zillion commands |
25 | | | * |
26 | | | ************************************************************************************* |
27 | | | * |
28 | | | * This file is part of GeSHi. |
29 | | | * |
30 | | | * GeSHi is free software; you can redistribute it and/or modify |
31 | | | * it under the terms of the GNU General Public License as published by |
32 | | | * the Free Software Foundation; either version 2 of the License, or |
33 | | | * (at your option) any later version. |
34 | | | * |
35 | | | * GeSHi is distributed in the hope that it will be useful, |
36 | | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
37 | | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
38 | | | * GNU General Public License for more details. |
39 | | | * |
40 | | | * You should have received a copy of the GNU General Public License |
41 | | | * along with GeSHi; if not, write to the Free Software |
42 | | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
43 | | | * |
44 | | | ************************************************************************************/ |
45 | | | |
46 | | | $language_data = array( |
47 | | | 'LANG_NAME' => 'Vim Script', |
48 | | | 'COMMENT_SINGLE' => array(), |
49 | | | 'COMMENT_REGEXP' => array( |
50 | | | 1 => "/^\".*$/m" |
51 | | | ), |
52 | | | 'COMMENT_MULTI' => array(), |
53 | | | 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, |
54 | | | 'QUOTEMARKS' => array("'", '"'), |
55 | | | 'ESCAPE_CHAR' => '\\', |
56 | | | 'KEYWORDS' => array( |
57 | | | 1 => array( |
58 | | | 'brea', 'break', 'call', 'cat', 'catc', |
59 | | | 'catch', 'con', 'cont', 'conti', |
60 | | | 'contin', 'continu', 'continue', 'ec', 'echo', |
61 | | | 'echoe', 'echoer', 'echoerr', 'echoh', |
62 | | | 'echohl', 'echom', 'echoms', 'echomsg', 'echon', |
63 | | | 'el', 'els', 'else', 'elsei', 'elseif', |
64 | | | 'en', 'end', 'endi', 'endif', 'endfo', |
65 | | | 'endfor', 'endt', 'endtr', 'endtry', 'endw', |
66 | | | 'endwh', 'endwhi', 'endwhil', 'endwhile', 'exe', 'exec', 'execu', |
67 | | | 'execut', 'execute', 'fina', 'final', 'finall', 'finally', 'for', |
68 | | | 'fun', 'func', 'funct', 'functi', 'functio', 'function', 'if', 'in', |
69 | | | 'let', 'lockv', 'lockva', 'lockvar', 'retu', 'retur', 'return', 'th', |
70 | | | 'thr', 'thro', 'throw', 'try', 'unl', 'unle', 'unlet', 'unlo', 'unloc', |
71 | | | 'unlock', 'unlockv', 'unlockva', 'unlockvar', 'wh', 'whi', 'whil', |
72 | | | 'while' |
73 | | | ), |
74 | | | 2 => array( |
75 | | | 'autocmd', 'com', 'comm', 'comma', 'comman', 'command', 'comc', |
76 | | | 'comcl', 'comcle', 'comclea', 'comclear', 'delc', 'delco', |
77 | | | 'delcom', 'delcomm', 'delcomma', 'delcomman', 'delcommand', |
78 | | | '-nargs' # TODO There are zillions of commands to be added here from http://vimdoc.sourceforge.net/htmldoc/usr_toc.html |
79 | | | ), |
80 | | | 3 => array( |
81 | | | 'abs', 'add', 'append', 'argc', 'argidx', 'argv', 'atan', |
82 | | | 'browse', 'browsedir', 'bufexists', 'buflisted', 'bufloaded', |
83 | | | 'bufname', 'bufnr', 'bufwinnr', 'byte2line', 'byteidx', |
84 | | | 'ceil', 'changenr', 'char2nr', 'cindent', 'clearmatches', |
85 | | | 'col', 'complete', 'complete_add', 'complete_check', 'confirm', |
86 | | | 'copy', 'cos', 'count', 'cscope_connection', 'cursor', |
87 | | | 'deepcopy', 'delete', 'did_filetype', 'diff_filler', |
88 | | | 'diff_hlID', 'empty', 'escape', 'eval', 'eventhandler', |
89 | | | 'executable', 'exists', 'extend', 'expand', 'feedkeys', |
90 | | | 'filereadable', 'filewritable', 'filter', 'finddir', |
91 | | | 'findfile', 'float2nr', 'floor', 'fnameescape', 'fnamemodify', |
92 | | | 'foldclosed', 'foldclosedend', 'foldlevel', 'foldtext', |
93 | | | 'foldtextresult', 'foreground', 'garbagecollect', |
94 | | | 'get', 'getbufline', 'getbufvar', 'getchar', 'getcharmod', |
95 | | | 'getcmdline', 'getcmdpos', 'getcmdtype', 'getcwd', 'getfperm', |
96 | | | 'getfsize', 'getfontname', 'getftime', 'getftype', 'getline', |
97 | | | 'getloclist', 'getmatches', 'getpid', 'getpos', 'getqflist', |
98 | | | 'getreg', 'getregtype', 'gettabwinvar', 'getwinposx', |
99 | | | 'getwinposy', 'getwinvar', 'glob', 'globpath', 'has', |
100 | | | 'has_key', 'haslocaldir', 'hasmapto', 'histadd', 'histdel', |
101 | | | 'histget', 'histnr', 'hlexists', 'hlID', 'hostname', 'iconv', |
102 | | | 'indent', 'index', 'input', 'inputdialog', 'inputlist', |
103 | | | 'inputrestore', 'inputsave', 'inputsecret', 'insert', |
104 | | | 'isdirectory', 'islocked', 'items', 'join', 'keys', 'len', |
105 | | | 'libcall', 'libcallnr', 'line', 'line2byte', 'lispindent', |
106 | | | 'localtime', 'log10', 'map', 'maparg', 'mapcheck', 'match', |
107 | | | 'matchadd', 'matcharg', 'matchdelete', 'matchend', 'matchlist', |
108 | | | 'matchstr', 'max', 'min', 'mkdir', 'mode', 'nextnonblank', |
109 | | | 'nr2char', 'pathshorten', 'pow', 'prevnonblank', 'printf', |
110 | | | 'pumvisible', 'range', 'readfile', 'reltime', 'reltimestr', |
111 | | | 'remote_expr', 'remote_foreground', 'remote_peek', |
112 | | | 'remote_read', 'remote_send', 'remove', 'rename', 'repeat', |
113 | | | 'resolve', 'reverse', 'round', 'search', 'searchdecl', |
114 | | | 'searchpair', 'searchpairpos', 'searchpos', 'server2client', |
115 | | | 'serverlist', 'setbufvar', 'setcmdpos', 'setline', |
116 | | | 'setloclist', 'setmatches', 'setpos', 'setqflist', 'setreg', |
117 | | | 'settabwinvar', 'setwinvar', 'shellescape', 'simplify', 'sin', |
118 | | | 'sort', 'soundfold', 'spellbadword', 'spellsuggest', 'split', |
119 | | | 'sqrt', 'str2float', 'str2nr', 'strftime', 'stridx', 'string', |
120 | | | 'strlen', 'strpart', 'strridx', 'strtrans', 'submatch', |
121 | | | 'substitute', 'synID', 'synIDattr', 'synIDtrans', 'synstack', |
122 | | | 'system', 'tabpagebuflist', 'tabpagenr', 'tabpagewinnr', |
123 | | | 'taglist', 'tagfiles', 'tempname', 'tolower', 'toupper', 'tr', |
124 | | | 'trunc', 'type', 'values', 'virtcol', 'visualmode', 'winbufnr', |
125 | | | 'wincol', 'winheight', 'winline', 'winnr', 'winrestcmd', |
126 | | | 'winrestview', 'winsaveview', 'winwidth', 'writefile' |
127 | | | ) |
128 | | | ), |
129 | | | 'SYMBOLS' => array( |
130 | | | '(', ')', '[', ']', '{', '}', '!', '%', '&', '*', '|', '/', '<', '>', |
131 | | | '^', '-', '+', '~', '?', ':', '$', '@', '.' |
132 | | | ), |
133 | | | 'CASE_SENSITIVE' => array( |
134 | | | GESHI_COMMENTS => false, |
135 | | | 1 => true, |
136 | | | 2 => true, |
137 | | | 3 => true |
138 | | | ), |
139 | | | 'STYLES' => array( |
140 | | | 'BRACKETS' => array( |
141 | | | |
142 | | | ), |
143 | | | 'COMMENTS' => array( |
144 | | | 1 => 'color: #adadad; font-style: italic;' |
145 | | | ), |
146 | | | 'ESCAPE_CHAR' => array( |
147 | | | |
148 | | | ), |
149 | | | 'KEYWORDS' => array( |
150 | | | 1 => 'color: #804040;', |
151 | | | 2 => 'color: #668080;', |
152 | | | 3 => 'color: #25BB4D;' |
153 | | | ), |
154 | | | 'METHODS' => array( |
155 | | | |
156 | | | ), |
157 | | | 'NUMBERS' => array( |
158 | | | |
159 | | | ), |
160 | | | 'REGEXPS' => array( |
161 | | | ), |
162 | | | 'SCRIPT' => array( |
163 | | | ), |
164 | | | 'STRINGS' => array( |
165 | | | |
166 | | | ), |
167 | | | 'SYMBOLS' => array( |
168 | | | |
169 | | | ) |
170 | | | ), |
171 | | | 'URLS' => array( |
172 | | | 1 => '', |
173 | | | 2 => '', |
174 | | | 3 => '' |
175 | | | ), |
176 | | | 'OOLANG' => false, //Save some time as OO identifiers aren't used |
177 | | | 'OBJECT_SPLITTERS' => array(), |
178 | | | 'REGEXPS' => array( |
179 | | | ), |
180 | | | 'STRICT_MODE_APPLIES' => GESHI_NEVER, |
181 | | | 'SCRIPT_DELIMITERS' => array(), |
182 | | | 'HIGHLIGHT_STRICT_BLOCK' => array() |
183 | | | ); |
184 | | | |
185 | | | ?> |