From 6cb1b892a73c007a77c406e01a9d8f76ddce1023 Mon Sep 17 00:00:00 2001
From: Atte Peltomaki <atte.peltomaki@iki.fi>
Date: Mon, 1 Jun 2015 15:27:45 +0300
Subject: [PATCH] Add language definition for vim config files

Original source:
https://github.com/dahu/SohiVila/blob/master/vim.lang
---
 src/lang.map |   1 +
 src/vim.lang | 827 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 828 insertions(+)
 create mode 100644 src/vim.lang

diff --git a/src/lang.map b/src/lang.map
index e84ded8..d056e49 100644
--- a/src/lang.map
+++ b/src/lang.map
@@ -169,3 +169,4 @@ ly = lilypond.lang
 groovy = groovy.lang
 json = json.lang
 feature = feature.lang
+vim = vim.lang
diff --git a/src/vim.lang b/src/vim.lang
new file mode 100644
index 0000000..a4536e7
--- /dev/null
+++ b/src/vim.lang
@@ -0,0 +1,827 @@
+# Vim Language file for GNU source-highlighter
+# Barry Arthur 2013-04-21
+
+comment start '(?<=[")])\s*"'
+comment start '^\s*"'
+
+symbol = '(?<=\s)is|is#|is\?|isnot|isnot#|isnot\?'
+
+predef_var = '[abglst]:\w+'
+predef_var = 'v:\w+'
+
+keyword = "DiffOrig",
+  "Man",
+  "N",
+  "N|Ne|Nex|Next",
+  "P",
+  "P|Pr|Pri|Prin|Print",
+  "Ren",
+  "TOhtml",
+  "XMLent",
+  "XMLns",
+  "a",
+  "ab|abb|abbr|abbre|abbrev|abbrevi|abbrevia|abbreviat|abbreviate",
+  "abc|abcl|abcle|abclea|abclear",
+  "abo|abov|above|abovel|abovele|abovelef|aboveleft",
+  "al|all",
+  "ar|arg|args",
+  "arga|argad|argadd",
+  "argd|argde|argdel|argdele|argdelet|argdelete",
+  "argdo",
+  "arge|arged|argedi|argedit",
+  "argg|arggl|argglo|argglob|arggloba|argglobal",
+  "argl|arglo|argloc|argloca|arglocal",
+  "argu|argum|argume|argumen|argument",
+  "as|asc|asci|ascii",
+  "au|aut|auto|autoc|autocm|autocmd",
+  "b|bu|buf|buff|buffe|buffer",
+  "bN|bNe|bNex|bNext",
+  "ba|bal|ball",
+  "bad|badd",
+  "bar",
+  "bd|bde|bdel|bdele|bdelet|bdelete",
+  "bel|belo|below|belowr|belowri|belowrig|belowrigh|belowright",
+  "bf|bfi|bfir|bfirs|bfirst",
+  "bl|bla|blas|blast",
+  "bm|bmo|bmod|bmodi|bmodif|bmodifi|bmodifie|bmodified",
+  "bn|bne|bnex|bnext",
+  "bn|bne|bnex|bnext",
+  "bo|bot|botr|botri|botrig|botrigh|botright",
+  "bp|bpr|bpre|bprev|bprevi|bprevio|bpreviou|bprevious",
+  "br|bre|brew|brewi|brewin|brewind",
+  "brea|break",
+  "breaka|breakad|breakadd",
+  "breakd|breakde|breakdel",
+  "breakl|breakli|breaklis|breaklist",
+  "bro|brow|brows|browse",
+  "browseset",
+  "bufdo",
+  "buffers",
+  "bun|bunl|bunlo|bunloa|bunload",
+  "bw|bwi|bwip|bwipe|bwipeo|bwipeou|bwipeout",
+  "c|ch|cha|chan|chang|change",
+  "cN|cNe|cNex|cNext",
+  "cNf|cNfi|cNfil|cNfile",
+  "cabc|cabcl|cabcle|cabclea|cabclear",
+  "cad|cadd|cadde|caddex|caddexp|caddexpr",
+  "caddb|caddbu|caddbuf|caddbuff|caddbuffe|caddbuffer",
+  "caddf|caddfi|caddfil|caddfile",
+  "cal|call",
+  "cat|catc|catch",
+  "cb|cbu|cbuf|cbuff|cbuffe|cbuffer",
+  "cc",
+  "ccl|cclo|cclos|cclose",
+  "cd",
+  "ce|cen|cent|cente|center",
+  "cex|cexp|cexpr",
+  "cf|cfi|cfil|cfile",
+  "cfir|cfirs|cfirst",
+  "cg|cge|cget|cgetf|cgetfi|cgetfil|cgetfile",
+  "cgetb|cgetbu|cgetbuf|cgetbuff|cgetbuffe|cgetbuffer",
+  "cgete|cgetex|cgetexp|cgetexpr",
+  "changes",
+  "chd|chdi|chdir",
+  "che|chec|check|checkp|checkpa|checkpat|checkpath",
+  "checkt|checkti|checktim|checktime",
+  "cl|cli|clis|clist",
+  "cla|clas|clast",
+  "clo|clos|close",
+  "cmapc|cmapcl|cmapcle|cmapclea|cmapclear",
+  "cmdname",
+  "cn|cne|cnex|cnext",
+  "cn|cne|cnex|cnext",
+  "cnew|cnewe|cnewer",
+  "cnf|cnfi|cnfil|cnfile",
+  "cnf|cnfi|cnfil|cnfile",
+  "co|cop|copy",
+  "col|cold|colde|colder",
+  "colo|color|colors|colorsc|colorsch|colorsche|colorschem|colorscheme",
+  "com|comm|comma|comman|command",
+  "comc|comcl|comcle|comclea|comclear",
+  "comment",
+  "comp|compi|compil|compile|compiler",
+  "con|cont|conti|contin|continu|continue",
+  "conf|confi|confir|confirm",
+  "cope|copen",
+  "count",
+  "cp|cpr|cpre|cprev|cprevi|cprevio|cpreviou|cprevious",
+  "cpf|cpfi|cpfil|cpfile",
+  "cq|cqu|cqui|cquit",
+  "cr|cre|crew|crewi|crewin|crewind",
+  "cs|csc|csco|cscop|cscope",
+  "cstag",
+  "cuna|cunab|cunabb|cunabbr|cunabbre|cunabbrev",
+  "cw|cwi|cwin|cwind|cwindo|cwindow",
+  "d|de|del|dele|delet|delete",
+  "debug",
+  "debugg|debuggr|debuggre|debuggree|debuggreed|debuggreedy",
+  "delc|delco|delcom|delcomm|delcomma|delcomman|delcommand",
+  "delf|delfu|delfun|delfunc|delfunct|delfuncti|delfunctio|delfunction",
+  "delm|delma|delmar|delmark|delmarks",
+  "di|dis|disp|displ|displa|display",
+  "diffg|diffge|diffget",
+  "diffo|diffof|diffoff",
+  "diffp|diffpa|diffpat|diffpatc|diffpatch",
+  "diffpu|diffput",
+  "diffs|diffsp|diffspl|diffspli|diffsplit",
+  "difft|diffth|diffthi|diffthis",
+  "diffu|diffup|diffupd|diffupda|diffupdat|diffupdate",
+  "dig|digr|digra|digrap|digraph|digraphs",
+  "dj|dju|djum|djump",
+  "dl|dli|dlis|dlist",
+  "do|doa|doau|doaut|doauto|doautoc|doautocm|doautocmd",
+  "dr|dro|drop",
+  "ds|dse|dsea|dsear|dsearc|dsearch",
+  "dsp|dspl|dspli|dsplit",
+  "e|ed|edi|edit",
+  "ea|ear|earl|earli|earlie|earlier",
+  "ec|ech|echo",
+  "echoe|echoer|echoerr",
+  "echoh|echohl",
+  "echom|echoms|echomsg",
+  "echon",
+  "el|els|else",
+  "elsei|elseif",
+  "em|eme|emen|emenu",
+  "en|end|endi|endif",
+  "endf|endfu|endfun|endfunc|endfunct|endfuncti|endfunctio|endfunction",
+  "endfo|endfor",
+  "endt|endtr|endtry",
+  "endw|endwh|endwhi|endwhil|endwhile",
+  "ene|enew",
+  "ex|exi|exit",
+  "exu|exus|exusa|exusag|exusage",
+  "f|fi|fil|file",
+  "file|filen|filena|filenam|filename",
+  "files",
+  "filet|filety|filetyp|filetype",
+  "fin|find",
+  "fina|final|finall|finally",
+  "fini|finis|finish",
+  "fir|firs|first",
+  "fix|fixd|fixde|fixdel",
+  "fo|fol|fold",
+  "foldc|foldcl|foldclo|foldclos|foldclose",
+  "foldd|folddo|folddoo|folddoop|folddoope|folddoopen",
+  "folddoc|folddocl|folddoclo|folddoclos|folddoclose|folddoclosed",
+  "foldo|foldop|foldope|foldopen",
+  "for",
+  "fu|fun|func|funct|functi|functio|function",
+  "g|gl|glo|glob|globa|global",
+  "go|got|goto",
+  "gr|gre|grep",
+  "grepa|grepad|grepadd",
+  "gui",
+  "gvim",
+  "h|he|hel|help",
+  "ha|har|hard|hardc|hardco|hardcop|hardcopy",
+  "helpf|helpfi|helpfin|helpfind",
+  "helpg|helpgr|helpgre|helpgrep",
+  "helpt|helpta|helptag|helptags",
+  "hi|hid|hide",
+  "his|hist|histo|histor|history",
+  "i|in|ins|inse|inser|insert",
+  "ia|iab|iabb|iabbr|iabbre|iabbrev",
+  "iabc|iabcl|iabcle|iabclea|iabclear",
+  "if",
+  "ij|iju|ijum|ijump",
+  "il|ili|ilis|ilist",
+  "imapc|imapcl|imapcle|imapclea|imapclear",
+  "intro",
+  "is|ise|isea|isear|isearc|isearch",
+  "isp|ispl|ispli|isplit",
+  "iuna|iunab|iunabb|iunabbr|iunabbre|iunabbrev",
+  "j|jo|joi|join",
+  "ju|jum|jump|jumps",
+  "k",
+  "kee|keep|keepm|keepma|keepmar|keepmark|keepmarks",
+  "keepa|keepal|keepalt",
+  "keepj|keepju|keepjum|keepjump|keepjumps",
+  "l|li|lis|list",
+  "lN",
+  "lN|lNe|lNex|lNext",
+  "lNf",
+  "lNf|lNfi|lNfil|lNfile",
+  "la",
+  "la|las|last",
+  "lad|ladd|ladde|laddex|laddexp|laddexpr",
+  "laddb|laddbu|laddbuf|laddbuff|laddbuffe|laddbuffer",
+  "laddf|laddfi|laddfil|laddfile",
+  "lan|lang|langu|langua|languag|language",
+  "lat|late|later",
+  "lb|lbu|lbuf|lbuff|lbuffe|lbuffer",
+  "lc|lcd",
+  "lch|lchd|lchdi|lchdir",
+  "lcl|lclo|lclos|lclose",
+  "lcs|lcsc|lcsco|lcscop|lcscope",
+  "le|lef|left",
+  "lefta|leftab|leftabo|leftabov|leftabove",
+  "let",
+  "lex|lexp|lexpr",
+  "lf|lfi|lfil|lfile",
+  "lfir|lfirs|lfirst",
+  "lg|lge|lget|lgetf|lgetfi|lgetfil|lgetfile",
+  "lgetb|lgetbu|lgetbuf|lgetbuff|lgetbuffe|lgetbuffer",
+  "lgete|lgetex|lgetexp|lgetexpr",
+  "lgr|lgre|lgrep",
+  "lgrepa|lgrepad|lgrepadd",
+  "lh|lhe|lhel|lhelp|lhelpg|lhelpgr|lhelpgre|lhelpgrep",
+  "ll",
+  "lla|llas|llast",
+  "lli|llis|llist",
+  "lmak|lmake",
+  "lmapc|lmapcl|lmapcle|lmapclea|lmapclear",
+  "lne|lnex|lnext",
+  "lnew|lnewe|lnewer",
+  "lnf|lnfi|lnfil|lnfile",
+  "lo|loa|load|loadv|loadvi|loadvie|loadview",
+  "loadk",
+  "loadkeymap",
+  "loc|lock|lockm|lockma|lockmar|lockmark|lockmarks",
+  "locale",
+  "lockv|lockva|lockvar",
+  "lol|lold|lolde|lolder",
+  "lop|lope|lopen",
+  "lp|lpr|lpre|lprev|lprevi|lprevio|lpreviou|lprevious",
+  "lpf|lpfi|lpfil|lpfile",
+  "lr|lre|lrew|lrewi|lrewin|lrewind",
+  "ls",
+  "lt|lta|ltag",
+  "lua",
+  "luado",
+  "luafile",
+  "lv|lvi|lvim|lvimg|lvimgr|lvimgre|lvimgrep",
+  "lvimgrepa|lvimgrepad|lvimgrepadd",
+  "lw|lwi|lwin|lwind|lwindo|lwindow",
+  "m|mo|mov|move",
+  "ma",
+  "ma|mar|mark",
+  "mak|make",
+  "marks",
+  "mat|matc|match",
+  "menut|menutr|menutra|menutran|menutrans|menutransl|menutransla|menutranslat|menutranslate",
+  "mes|mess|messa|messag|message|messages",
+  "mk|mke|mkex|mkexr|mkexrc",
+  "mkdir",
+  "mks|mkse|mkses|mksess|mksessi|mksessio|mksession",
+  "mksp|mkspe|mkspel|mkspell",
+  "mkv|mkvi|mkvim|mkvimr|mkvimrc",
+  "mkvie|mkview",
+  "mo|mov|move",
+  "mod|mode",
+  "mz|mzs|mzsc|mzsch|mzsche|mzschem|mzscheme",
+  "mzf|mzfi|mzfil|mzfile",
+  "n|ne|nex|next",
+  "nb|nbk|nbke|nbkey",
+  "nbc|nbcl|nbclo|nbclos|nbclose",
+  "nbs|nbst|nbsta|nbstar|nbstart",
+  "ne|nex|next",
+  "new",
+  "nkf",
+  "nmapc|nmapcl|nmapcle|nmapclea|nmapclear",
+  "noa|noau|noaut|noauto|noautoc|noautocm|noautocmd",
+  "noh|nohl|nohls|nohlse|nohlsea|nohlsear|nohlsearc|nohlsearch",
+  "nu|num|numb|numbe|number",
+  "o|op|ope|open",
+  "ol|old|oldf|oldfi|oldfil|oldfile|oldfiles",
+  "omapc|omapcl|omapcle|omapclea|omapclear",
+  "on|onl|only",
+  "opt|opti|optio|option|options",
+  "ownsyntax",
+  "p|pr|pri|prin|print",
+  "pc|pcl|pclo|pclos|pclose",
+  "pe|per|perl",
+  "ped|pedi|pedit",
+  "perld|perldo",
+  "po|pop",
+  "popu",
+  "popu|popup",
+  "pp|ppo|ppop",
+  "pre|pres|prese|preser|preserv|preserve",
+  "prev|previ|previo|previou|previous",
+  "pro|promptf|promptfi|promptfin|promptfind",
+  "prof|profi|profil|profile",
+  "profd|profde|profdel",
+  "promptr|promptre|promptrep|promptrepl",
+  "ps|pse|psea|psear|psearc|psearch",
+  "ptN|ptNe|ptNex|ptNext",
+  "pta|ptag",
+  "ptf|ptfi|ptfir|ptfirs|ptfirst",
+  "ptj|ptju|ptjum|ptjump",
+  "ptl|ptla|ptlas|ptlast",
+  "ptn|ptne|ptnex|ptnext",
+  "ptp|ptpr|ptpre|ptprev|ptprevi|ptprevio|ptpreviou|ptprevious",
+  "ptr|ptre|ptrew|ptrewi|ptrewin|ptrewind",
+  "pts|ptse|ptsel|ptsele|ptselec|ptselect",
+  "pu|put",
+  "pw|pwd",
+  "py|pyt|pyth|pytho|python",
+  "py3",
+  "py3f|py3fi|py3fil|py3file",
+  "pyf|pyfi|pyfil|pyfile",
+  "python3",
+  "q|qu|qui|quit",
+  "qa|qal|qall",
+  "quita|quital|quitall",
+  "quote",
+  "r|re|rea|read",
+  "rec|reco|recov|recove|recover",
+  "red|redo",
+  "redi|redir",
+  "redr|redra|redraw",
+  "redraws|redrawst|redrawsta|redrawstat|redrawstatu|redrawstatus",
+  "reg|regi|regis|regist|registe|register|registers",
+  "res|resi|resiz|resize",
+  "ret|reta|retab",
+  "retu|retur|return",
+  "rew|rewi|rewin|rewind",
+  "ri|rig|righ|right",
+  "rightb|rightbe|rightbel|rightbelo|rightbelow",
+  "ru|run|runt|runti|runtim|runtime",
+  "rub|ruby",
+  "rubyd|rubydo",
+  "rubyf|rubyfi|rubyfil|rubyfile",
+  "rundo",
+  "rv|rvi|rvim|rvimi|rvimin|rviminf|rviminfo",
+  "sN|sNe|sNex|sNext",
+  "sa|sar|sarg|sargu|sargum|sargume|sargumen|sargument",
+  "sal|sall",
+  "san|sand|sandb|sandbo|sandbox",
+  "sav|save|savea|saveas",
+  "sb|sbu|sbuf|sbuff|sbuffe|sbuffer",
+  "sbN|sbNe|sbNex|sbNext",
+  "sba|sbal|sball",
+  "sbf|sbfi|sbfir|sbfirs|sbfirst",
+  "sbl|sbla|sblas|sblast",
+  "sbm|sbmo|sbmod|sbmodi|sbmodif|sbmodifi|sbmodifie|sbmodified",
+  "sbn|sbne|sbnex|sbnext",
+  "sbp|sbpr|sbpre|sbprev|sbprevi|sbprevio|sbpreviou|sbprevious",
+  "sbr|sbre|sbrew|sbrewi|sbrewin|sbrewind",
+  "scrip|script|scriptn|scriptna|scriptnam|scriptname|scriptnames",
+  "scripte|scripten|scriptenc|scriptenco|scriptencod|scriptencodi|scriptencodin|scriptencoding",
+  "scs|scsc|scsco|scscop|scscope",
+  "se|set",
+  "setf|setfi|setfil|setfile|setfilet|setfilety|setfiletyp|setfiletype",
+  "setg|setgl|setglo|setglob|setgloba|setglobal",
+  "setl|setlo|setloc|setloca|setlocal",
+  "sf|sfi|sfin|sfind",
+  "sfir|sfirs|sfirst",
+  "sh|she|shel|shell",
+  "sig|sign",
+  "sil|sile|silen|silent",
+  "sim|sima|simal|simalt",
+  "sl|sle|slee|sleep",
+  "sla|slas|slast",
+  "sm|sma|smag|smagi|smagic",
+  "smap",
+  "sme",
+  "smenu",
+  "sn|sne|snex|snext",
+  "sni|snif|sniff",
+  "sno|snom|snoma|snomag|snomagi|snomagic",
+  "snoreme||snoremen|snoremenu",
+  "so|sou|sour|sourc|source",
+  "sor|sort",
+  "sp|spl|spli|split",
+  "spe|spel|spell|spellg|spellgo|spellgoo|spellgood",
+  "spelld|spelldu|spelldum|spelldump",
+  "spelli|spellin|spellinf|spellinfo",
+  "spellr|spellre|spellrep|spellrepa|spellrepal|spellrepall",
+  "spellu|spellun|spellund|spellundo",
+  "spellw|spellwr|spellwro|spellwron|spellwrong",
+  "spr|spre|sprev|sprevi|sprevio|spreviou|sprevious",
+  "sre|srew|srewi|srewin|srewind",
+  "st|sto|stop",
+  "sta|stag",
+  "star|start|starti|startin|startins|startinse|startinser|startinsert",
+  "startg|startgr|startgre|startgrep|startgrepl|startgrepla|startgreplac|startgreplace",
+  "startr|startre|startrep|startrepl|startrepla|startreplac|startreplace",
+  "stj|stju|stjum|stjump",
+  "stopi|stopin|stopins|stopinse|stopinser|stopinsert",
+  "sts|stse|stsel|stsele|stselec|stselect",
+  "sun|sunh|sunhi|sunhid|sunhide",
+  "sunme|sunmen|sunmenu",
+  "sus|susp|suspe|suspen|suspend",
+  "sv|svi|svie|sview",
+  "sw|swa|swap|swapn|swapna|swapnam|swapname",
+  "sy|syn|synt|synta|syntax",
+  "sync|syncb|syncbi|syncbin|syncbind",
+  "t",
+  "tN",
+  "tN|tNe|tNex|tNext",
+  "ta|tag",
+  "tab",
+  "tabN",
+  "tabN|tabNe|tabNex|tabNext",
+  "tabc|tabcl|tabclo|tabclos|tabclose",
+  "tabd|tabdo",
+  "tabe|tabed|tabedi|tabedit",
+  "tabf|tabfi|tabfin|tabfind",
+  "tabfir|tabfirs|tabfirst",
+  "tabl|tabla|tablas|tablast",
+  "tabm|tabmo|tabmov|tabmove",
+  "tabn|tabne|tabnex|tabnext",
+  "tabnew",
+  "tabo|tabon|tabonl|tabonly",
+  "tabp|tabpr|tabpre|tabprev|tabprevi|tabprevio|tabpreviou|tabprevious",
+  "tabr|tabre|tabrew|tabrewi|tabrewin|tabrewind",
+  "tabs",
+  "tags",
+  "tc|tcl",
+  "tcld|tcldo",
+  "tclf|tclfi|tclfil|tclfile",
+  "te|tea|tear|tearo|tearof|tearoff",
+  "tf|tfi|tfir|tfirs|tfirst",
+  "th|thr|thro|throw",
+  "tj|tju|tjum|tjump",
+  "tl|tla|tlas|tlast",
+  "tm|tme|tmen|tmenu",
+  "tn|tne|tnex|tnext",
+  "to|top|topl|tople|toplef|topleft",
+  "tp|tpr|tpre|tprev|tprevi|tprevio|tpreviou|tprevious",
+  "tr|tre|trew|trewi|trewin|trewind",
+  "try",
+  "ts|tse|tsel|tsele|tselec|tselect",
+  "tu|tun|tunm|tunme|tunmen|tunmenu",
+  "u|un|und|undo",
+  "una|unab|unabb|unabbr|unabbre|unabbrev|unabbrevi|unabbrevia|unabbreviat|unabbreviate",
+  "undoj|undojo|undojoi|undojoin",
+  "undol|undoli|undolis|undolist",
+  "unh|unhi|unhid|unhide",
+  "unl|unle|unlet",
+  "unlo|unloc|unlock|unlockv|unlockva|unlockvar",
+  "uns|unsi|unsil|unsile|unsilen|unsilent",
+  "up|upd|upda|updat|update",
+  "v|vg|vgl|vglo|vglob|vgloba|vglobal",
+  "ve|ver|vers|versi|versio|version",
+  "verb|verbo|verbos|verbose",
+  "vert|verti|vertic|vertica|vertical",
+  "vi|vis|visu|visua|visual",
+  "vie|view",
+  "vim|vimg|vimgr|vimgre|vimgrep",
+  "vimgrepa|vimgrepad|vimgrepadd",
+  "viu|vius|viusa|viusag|viusage",
+  "vmapc|vmapcl|vmapcle|vmapclea|vmapclear",
+  "vne|vnew",
+  "vs|vsp|vspl|vspli|vsplit",
+  "w|wr|wri|writ|write",
+  "wN|wNe|wNex|wNext",
+  "wa|wal|wall",
+  "wh|whi|whil|while",
+  "win|wins|winsi|winsiz|winsize",
+  "winc|wincm|wincmd",
+  "windo",
+  "winp|winpo|winpos",
+  "wn|wne|wnex|wnext",
+  "wp|wpr|wpre|wprev|wprevi|wprevio|wpreviou|wprevious",
+  "wq",
+  "wqa|wqal|wqall",
+  "ws|wsv|wsve|wsver|wsverb",
+  "wundo",
+  "wv|wvi|wvim|wvimi|wvimin|wviminf|wviminfo",
+  "x|xi|xit",
+  "xa|xal|xall",
+  "xmapc|xmapcl|xmapcle|xmapclea|xmapclear",
+  "xme|xmen|xmenu",
+  "xnoreme|xnoremen|xnoremenu",
+  "xunme|xunmen|xunmenu",
+  "xwininfo",
+  "y|ya|yan|yank"
+
+# Vim options
+type = "t_#2|t_#4|t_%1|t_%i|t_&8",
+  "t_*7|t_@7|t_k;|acd|ai",
+  "akm|al|aleph|allowrevins|altkeymap",
+  "ambiwidth|ambw|anti|antialias|ar",
+  "arab|arabic|arabicshape|ari|arshape",
+  "autochdir|autoindent|autoread|autowrite|autowriteall",
+  "aw|awa|background|backspace|backup",
+  "backupcopy|backupdir|backupext|backupskip|balloondelay",
+  "ballooneval|balloonexpr|bdir|bdlay|beval",
+  "bex|bexpr|bg|bh|bin",
+  "binary|biosk|bioskey|bk|bkc",
+  "bl|bomb|breakat|brk|browsedir",
+  "bs|bsdir|bsk|bt|bufhidden",
+  "buflisted|buftype|casemap|cb|cc",
+  "ccv|cd|cdpath|cedit|cf",
+  "cfu|ch|charconvert|ci|cin",
+  "cindent|cink|cinkeys|cino|cinoptions",
+  "cinw|cinwords|clipboard|cmdheight|cmdwinheight",
+  "cmp|cms|co|cocu|cole",
+  "colorcolumn|columns|com|comments|commentstring",
+  "compatible|complete|completefunc|completeopt|concealcursor",
+  "conceallevel|confirm|consk|conskey|copyindent",
+  "cot|cp|cpo|cpoptions|cpt",
+  "crb|cryptmethod|cscopepathcomp|cscopeprg|cscopequickfix",
+  "cscoperelative|cscopetag|cscopetagorder|cscopeverbose|cspc",
+  "csprg|csqf|csre|cst|csto",
+  "csverb|cuc|cul|cursorbind|cursorcolumn",
+  "cursorline|cwh|debug|deco|def",
+  "define|delcombine|dex|dg|dict",
+  "dictionary|diff|diffexpr|diffopt|digraph",
+  "dip|dir|directory|display|dy",
+  "ea|ead|eadirection|eb|ed",
+  "edcompatible|ef|efm|ei|ek",
+  "enc|encoding|endofline|eol|ep",
+  "equalalways|equalprg|errorbells|errorfile|errorformat",
+  "esckeys|et|eventignore|ex|expandtab",
+  "exrc|fcl|fcs|fdc|fde",
+  "fdi|fdl|fdls|fdm|fdn",
+  "fdo|fdt|fen|fenc|fencs",
+  "fex|ff|ffs|fileencoding|fileencodings",
+  "fileformat|fileformats|filetype|fillchars|fk",
+  "fkmap|flp|fml|fmr|fo",
+  "foldclose|foldcolumn|foldenable|foldexpr|foldignore",
+  "foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines",
+  "foldnestmax|foldopen|foldtext|formatexpr|formatlistpat",
+  "formatoptions|formatprg|fp|fs|fsync",
+  "ft|gcr|gd|gdefault|gfm",
+  "gfn|gfs|gfw|ghr|go",
+  "gp|grepformat|grepprg|gtl|gtt",
+  "guicursor|guifont|guifontset|guifontwide|guiheadroom",
+  "guioptions|guipty|guitablabel|guitabtooltip|helpfile",
+  "helpheight|helplang|hf|hh|hi",
+  "hid|hidden|highlight|history|hk",
+  "hkmap|hkmapp|hkp|hl|hlg",
+  "hls|hlsearch|ic|icon|iconstring",
+  "ignorecase|im|imactivatekey|imak|imc",
+  "imcmdline|imd|imdisable|imi|iminsert",
+  "ims|imsearch|inc|include|includeexpr",
+  "incsearch|inde|indentexpr|indentkeys|indk",
+  "inex|inf|infercase|insertmode|invacd",
+  "invai|invakm|invallowrevins|invaltkeymap|invanti",
+  "invantialias|invar|invarab|invarabic|invarabicshape",
+  "invari|invarshape|invautochdir|invautoindent|invautoread",
+  "invautowrite|invautowriteall|invaw|invawa|invbackup",
+  "invballooneval|invbeval|invbin|invbinary|invbiosk",
+  "invbioskey|invbk|invbl|invbomb|invbuflisted",
+  "invcf|invci|invcin|invcindent|invcompatible",
+  "invconfirm|invconsk|invconskey|invcopyindent|invcp",
+  "invcrb|invcscopetag|invcscopeverbose|invcst|invcsverb",
+  "invcuc|invcul|invcursorbind|invcursorcolumn|invcursorline",
+  "invdeco|invdelcombine|invdg|invdiff|invdigraph",
+  "invea|inveb|inved|invedcompatible|invek",
+  "invendofline|inveol|invequalalways|inverrorbells|invesckeys",
+  "invet|invex|invexpandtab|invexrc|invfen",
+  "invfk|invfkmap|invfoldenable|invgd|invgdefault",
+  "invguipty|invhid|invhidden|invhk|invhkmap",
+  "invhkmapp|invhkp|invhls|invhlsearch|invic",
+  "invicon|invignorecase|invim|invimc|invimcmdline",
+  "invimd|invimdisable|invincsearch|invinf|invinfercase",
+  "invinsertmode|invis|invjoinspaces|invjs|invlazyredraw",
+  "invlbr|invlinebreak|invlisp|invlist|invloadplugins",
+  "invlpl|invlz|invma|invmacatsui|invmagic",
+  "invmh|invml|invmod|invmodeline|invmodifiable",
+  "invmodified|invmore|invmousef|invmousefocus|invmousehide",
+  "invnu|invnumber|invodev|invopendevice|invpaste",
+  "invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw",
+  "invreadonly|invrelativenumber|invremap|invrestorescreen|invrevins",
+  "invri|invrightleft|invrl|invrnu|invro",
+  "invrs|invru|invruler|invsb|invsc",
+  "invscb|invscrollbind|invscs|invsecure|invsft",
+  "invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd",
+  "invshowfulltag|invshowmatch|invshowmode|invsi|invsm",
+  "invsmartcase|invsmartindent|invsmarttab|invsmd|invsn",
+  "invsol|invspell|invsplitbelow|invsplitright|invspr",
+  "invsr|invssl|invsta|invstartofline|invstmp",
+  "invswapfile|invswf|invta|invtagbsearch|invtagrelative",
+  "invtagstack|invtbi|invtbidi|invtbs|invtermbidi",
+  "invterse|invtextauto|invtextmode|invtf|invtgst",
+  "invtildeop|invtimeout|invtitle|invto|invtop",
+  "invtr|invttimeout|invttybuiltin|invttyfast|invtx",
+  "invvb|invvisualbell|invwa|invwarn|invwb",
+  "invweirdinvert|invwfh|invwfw|invwildignorecase*|invwildmenu",
+  "invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap",
+  "invwrapscan|invwrite|invwriteany|invwritebackup|invws",
+  "is|isf|isfname|isi|isident",
+  "isk|iskeyword|isp|isprint|joinspaces",
+  "js|key|keymap|keymodel|keywordprg",
+  "km|kmp|kp|langmap|langmenu",
+  "laststatus|lazyredraw|lbr|lcs|linebreak",
+  "lines|linespace|lisp|lispwords|list",
+  "listchars|lm|lmap|loadplugins|lpl",
+  "ls|lsp|lw|lz|ma",
+  "macatsui|magic|makeef|makeprg|mat",
+  "matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth",
+  "maxmem|maxmempattern|maxmemtot|mco|mef",
+  "menuitems|mfd|mh|mis|mkspellmem",
+  "ml|mls|mm|mmd|mmp",
+  "mmt|mod|modeline|modelines|modifiable",
+  "modified|more|mouse|mousef|mousefocus",
+  "mousehide|mousem|mousemodel|mouses|mouseshape",
+  "mouset|mousetime|mp|mps|msm",
+  "mzq|mzquantum|nf|noacd|noai",
+  "noakm|noallowrevins|noaltkeymap|noanti|noantialias",
+  "noar|noarab|noarabic|noarabicshape|noari",
+  "noarshape|noautochdir|noautoindent|noautoread|noautowrite",
+  "noautowriteall|noaw|noawa|nobackup|noballooneval",
+  "nobeval|nobin|nobinary|nobiosk|nobioskey",
+  "nobk|nobl|nobomb|nobuflisted|nocf",
+  "noci|nocin|nocindent|nocompatible|noconfirm",
+  "noconsk|noconskey|nocopyindent|nocp|nocrb",
+  "nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc",
+  "nocul|nocursorbind|nocursorcolumn|nocursorline|nodeco",
+  "nodelcombine|nodg|nodiff|nodigraph|noea",
+  "noeb|noed|noedcompatible|noek|noendofline",
+  "noeol|noequalalways|noerrorbells|noesckeys|noet",
+  "noex|noexpandtab|noexrc|nofen|nofk",
+  "nofkmap|nofoldenable|nogd|nogdefault|noguipty",
+  "nohid|nohidden|nohk|nohkmap|nohkmapp",
+  "nohkp|nohls|nohlsearch|noic|noicon",
+  "noignorecase|noim|noimc|noimcmdline|noimd",
+  "noimdisable|noincsearch|noinf|noinfercase|noinsertmode",
+  "nois|nojoinspaces|nojs|nolazyredraw|nolbr",
+  "nolinebreak|nolisp|nolist|noloadplugins|nolpl",
+  "nolz|noma|nomacatsui|nomagic|nomh",
+  "noml|nomod|nomodeline|nomodifiable|nomodified",
+  "nomore|nomousef|nomousefocus|nomousehide|nonu",
+  "nonumber|noodev|noopendevice|nopaste|nopi",
+  "nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly",
+  "norelativenumber|noremap|norestorescreen|norevins|nori",
+  "norightleft|norl|nornu|noro|nors",
+  "noru|noruler|nosb|nosc|noscb",
+  "noscrollbind|noscs|nosecure|nosft|noshellslash",
+  "noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag",
+  "noshowmatch|noshowmode|nosi|nosm|nosmartcase",
+  "nosmartindent|nosmarttab|nosmd|nosn|nosol",
+  "nospell|nosplitbelow|nosplitright|nospr|nosr",
+  "nossl|nosta|nostartofline|nostmp|noswapfile",
+  "noswf|nota|notagbsearch|notagrelative|notagstack",
+  "notbi|notbidi|notbs|notermbidi|noterse",
+  "notextauto|notextmode|notf|notgst|notildeop",
+  "notimeout|notitle|noto|notop|notr",
+  "nottimeout|nottybuiltin|nottyfast|notx|novb",
+  "novisualbell|nowa|nowarn|nowb|noweirdinvert",
+  "nowfh|nowfw|nowildignorecase*|nowildmenu|nowinfixheight",
+  "nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan",
+  "nowrite|nowriteany|nowritebackup|nows|nrformats",
+  "nu|number|numberwidth|nuw|odev",
+  "oft|ofu|omnifunc|opendevice|operatorfunc",
+  "opfunc|osfiletype|pa|para|paragraphs",
+  "paste|pastetoggle|patchexpr|patchmode|path",
+  "pdev|penc|pex|pexpr|pfn",
+  "ph|pheader|pi|pm|pmbcs",
+  "pmbfn|popt|preserveindent|previewheight|previewwindow",
+  "printdevice|printencoding|printexpr|printfont|printheader",
+  "printmbcharset|printmbfont|printoptions|prompt|pt",
+  "pumheight|pvh|pvw|qe|quoteescape",
+  "rdt|readonly|redrawtime|relativenumber|remap",
+  "report|restorescreen|revins|ri|rightleft",
+  "rightleftcmd|rl|rlc|rnu|ro",
+  "rs|rtp|ru|ruf|ruler",
+  "rulerformat|runtimepath|sb|sbo|sbr",
+  "sc|scb|scr|scroll|scrollbind",
+  "scrolljump|scrolloff|scrollopt|scs|sect",
+  "sections|secure|sel|selection|selectmode",
+  "sessionoptions|sft|sh|shcf|shell",
+  "shellcmdflag|shellpipe|shellquote|shellredir|shellslash",
+  "shelltemp|shelltype|shellxescape|shellxquote|shiftround",
+  "shiftwidth|shm|shortmess|shortname|showbreak",
+  "showcmd|showfulltag|showmatch|showmode|showtabline",
+  "shq|si|sidescroll|sidescrolloff|siso",
+  "sj|slm|sm|smartcase|smartindent",
+  "smarttab|smc|smd|sn|so",
+  "softtabstop|sol|sp|spc|spell",
+  "spellcapcheck|spellfile|spelllang|spellsuggest|spf",
+  "spl|splitbelow|splitright|spr|sps",
+  "sr|srr|ss|ssl|ssop",
+  "st|sta|stal|startofline|statusline",
+  "stl|stmp|sts|su|sua",
+  "suffixes|suffixesadd|sw|swapfile|swapsync",
+  "swb|swf|switchbuf|sws|sxe",
+  "sxq|syn|synmaxcol|syntax|t_AB",
+  "t_AF|t_AL|t_CS|t_CV|t_Ce",
+  "t_Co|t_Cs|t_DL|t_EI|t_F1",
+  "t_F2|t_F3|t_F4|t_F5|t_F6",
+  "t_F7|t_F8|t_F9|t_IE|t_IS",
+  "t_K1|t_K3|t_K4|t_K5|t_K6",
+  "t_K7|t_K8|t_K9|t_KA|t_KB",
+  "t_KC|t_KD|t_KE|t_KF|t_KG",
+  "t_KH|t_KI|t_KJ|t_KK|t_KL",
+  "t_RI|t_RV|t_SI|t_Sb|t_Sf",
+  "t_WP|t_WS|t_ZH|t_ZR|t_al",
+  "t_bc|t_cd|t_ce|t_cl|t_cm",
+  "t_cs|t_da|t_db|t_dl|t_fs",
+  "t_k1|t_k2|t_k3|t_k4|t_k5",
+  "t_k6|t_k7|t_k8|t_k9|t_kB",
+  "t_kD|t_kI|t_kN|t_kP|t_kb",
+  "t_kd|t_ke|t_kh|t_kl|t_kr",
+  "t_ks|t_ku|t_le|t_mb|t_md",
+  "t_me|t_mr|t_ms|t_nd|t_op",
+  "t_se|t_so|t_sr|t_te|t_ti",
+  "t_ts|t_ue|t_us|t_ut|t_vb",
+  "t_ve|t_vi|t_vs|t_xs|ta",
+  "tabline|tabpagemax|tabstop|tag|tagbsearch",
+  "taglength|tagrelative|tags|tagstack|tal",
+  "tb|tbi|tbidi|tbis|tbs",
+  "tenc|term|termbidi|termencoding|terse",
+  "textauto|textmode|textwidth|tf|tgst",
+  "thesaurus|tildeop|timeout|timeoutlen|title",
+  "titlelen|titleold|titlestring|tl|tm",
+  "to|toolbar|toolbariconsize|top|tpm",
+  "tr|ts|tsl|tsr|ttimeout",
+  "ttimeoutlen|ttm|tty|ttybuiltin|ttyfast",
+  "ttym|ttymouse|ttyscroll|ttytype|tw",
+  "tx|uc|udf|udir|ul",
+  "undodir|undofile|undolevels|undoreload|updatecount",
+  "updatetime|ur|ut|vb|vbs",
+  "vdir|ve|verbose|verbosefile|vfile",
+  "vi|viewdir|viewoptions|viminfo|virtualedit",
+  "visualbell|vop|wa|wak|warn",
+  "wb|wc|wcm|wd|weirdinvert",
+  "wfh|wfw|wh|whichwrap|wi",
+  "wic|wig|wildchar|wildcharm|wildignore",
+  "wildignorecase|wildmenu|wildmode|wildoptions|wim",
+  "winaltkeys|window|winfixheight|winfixwidth|winheight",
+  "winminheight|winminwidth|winwidth|wiv|wiw",
+  "wm|wmh|wmnu|wmw|wop",
+  "wrap|wrapmargin|wrapscan|write|writeany",
+  "writebackup|writedelay|ws|ww"
+
+# Vim Events
+classname = "BufAdd|BufCreate|BufDelete|BufEnter|BufFilePost",
+  "BufFilePre|BufHidden|BufLeave|BufNew|BufNewFile",
+  "BufRead|BufReadCmd|BufReadPost|BufReadPre|BufUnload",
+  "BufWinEnter|BufWinLeave|BufWipeout|BufWrite|BufWriteCmd",
+  "BufWritePost|BufWritePre|Cmd-event|CmdwinEnter|CmdwinLeave",
+  "ColorScheme|CursorHold|CursorHoldI|CursorMoved|CursorMovedI",
+  "EncodingChanged|FileAppendCmd|FileAppendPost|FileAppendPre|FileChangedRO",
+  "FileChangedShell|FileChangedShellPost|FileEncoding|FileReadCmd|FileReadPost",
+  "FileReadPre|FileType|FileWriteCmd|FileWritePost|FileWritePre",
+  "FilterReadPost|FilterReadPre|FilterWritePost|FilterWritePre|FocusGained",
+  "FocusLost|FuncUndefined|GUIEnter|GUIFailed|InsertChange",
+  "InsertCharPre|InsertEnter|InsertLeave|MenuPopup|QuickFixCmdPost",
+  "QuickFixCmdPre|RemoteReply|SessionLoadPost|ShellCmdPost|ShellFilterPost",
+  "SourceCmd|SourcePre|SpellFileMissing|StdinReadPost|StdinReadPre",
+  "SwapExists|Syntax|TabEnter|TabLeave|TermChanged",
+  "TermResponse|User|UserGettingBored|VimEnter|VimLeave",
+  "VimLeavePre|VimResized|WinEnter"
+
+predef_func = "abs|acos|add|and|append",
+  "argc|argidx|argv|asin|atan",
+  "atan2|browse|browsedir|bufexists|buflisted",
+  "bufloaded|bufname|bufnr|bufwinnr|byte2line",
+  "byteidx|call|ceil|changenr|char2nr",
+  "cindent|clearmatches|col|complete|complete_add",
+  "complete_check|confirm|copy|cos|cosh",
+  "count|cscope_connection|cursor|deepcopy|delete",
+  "did_filetype|diff_filler|diff_hlID|empty|escape",
+  "eval|eventhandler|executable|exists|exp",
+  "expand|extend|feedkeys|filereadable|filewritable",
+  "filter|finddir|findfile|float2nr|floor",
+  "fmod|fnameescape|fnamemodify|foldclosed|foldclosedend",
+  "foldlevel|foldtext|foldtextresult|foreground|function",
+  "garbagecollect|get|getbufline|getbufvar|getchar",
+  "getcharmod|getcmdline|getcmdpos|getcmdtype|getcwd",
+  "getfontname|getfperm|getfsize|getftime|getftype",
+  "getline|getloclist|getmatches|getpid|getpos",
+  "getqflist|getreg|getregtype|gettabvar|gettabwinvar",
+  "getwinposx|getwinposy|getwinvar|glob|globpath",
+  "has|has_key|haslocaldir|hasmapto|histadd",
+  "histdel|histget|histnr|hlID|hlexists",
+  "hostname|iconv|indent|index|input",
+  "inputdialog|inputlist|inputrestore|inputsave|inputsecret",
+  "insert|invert|isdirectory|islocked|items",
+  "join|keys|len|libcall|libcallnr",
+  "line|line2byte|lispindent|localtime|log",
+  "log10|luaeval|map|maparg|mapcheck",
+  "match|matchadd|matcharg|matchdelete|matchend",
+  "matchlist|matchstr|max|min|mkdir",
+  "mode|mzeval|nextnonblank|nr2char|or",
+  "pathshorten|pow|prevnonblank|printf|pumvisible",
+  "py3eval|pyeval|range|readfile|reltime",
+  "reltimestr|remote_expr|remote_foreground|remote_peek|remote_read",
+  "remote_send|remove|rename|repeat|resolve",
+  "reverse|round|search|searchdecl|searchpair",
+  "searchpairpos|searchpos|server2client|serverlist|setbufvar",
+  "setcmdpos|setline|setloclist|setmatches|setpos",
+  "setqflist|setreg|settabvar|settabwinvar|setwinvar",
+  "shellescape|shiftwidth|simplify|sin|sinh",
+  "sort|soundfold|spellbadword|spellsuggest|split",
+  "sqrt|str2float|str2nr|strchars|strdisplaywidth",
+  "strftime|stridx|string|strlen|strpart",
+  "strridx|strtrans|strwidth|submatch|substitute",
+  "synID|synIDattr|synIDtrans|synconcealed|synstack",
+  "system|tabpagebuflist|tabpagenr|tabpagewinnr|tagfiles",
+  "taglist|tan|tanh|tempname|tolower",
+  "toupper|tr|trunc|type|undofile",
+  "undotree|values|virtcol|visualmode|winbufnr",
+  "wincol|winheight|winline|winnr|winrestcmd",
+  "winrestview|winsaveview|winwidth|writefile"
+
+# For things like <leader>, <c-r> and <cr>
+atom = '<[[:word:]]+>'
+
+regexp = `([^[:alpha:]])[[:word:]]*\1[[:word:]]*\1`
+
+symbol = "==|==#|==?|!=|!=#|!=?",
+  ">=|>=#|>=?|<=|<=#|<=?",
+  "=~|=~#|=~?|!~|!~#|!~?",
+  ">|>#|>?|<|<#|<?",
+  "=|\|\||&&|+|-|.",
+  "(|)|[|]|{|}"
+
+function = '(?=function!?[[:blank:]]*)[[:word:]]*'
+
+include "number.lang"
+include "c_string.lang"
-- 
2.3.3

