1 <?php 2 3 /************************************************************************************* 4 * vim.php 5 * ---------------- 6 * Author: Swaroop C H (swaroop (at) 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 0 => 'color: #000000;' 142 ), 143 'COMMENTS' => array( 144 1 => 'color: #adadad; font-style: italic;' 145 ), 146 'ESCAPE_CHAR' => array( 147 0 => '' 148 ), 149 'KEYWORDS' => array( 150 1 => 'color: #804040;', 151 2 => 'color: #668080;', 152 3 => 'color: #25BB4D;' 153 ), 154 'METHODS' => array( 155 0 => 'color: #000000;', 156 ), 157 'NUMBERS' => array( 158 0 => 'color: #000000; font-weight:bold;' 159 ), 160 'REGEXPS' => array( 161 ), 162 'SCRIPT' => array( 163 ), 164 'STRINGS' => array( 165 0 => 'color: #C5A22D;' 166 ), 167 'SYMBOLS' => array( 168 0 => 'color: #000000;' 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 ?> 186