typedef enum { FUNCTION = 0, ENDFUNCTION = 1, FOR = 2, ENDFOR = 3, WHILE = 4, ENDWHILE = 5, IF = 6, ELSEIF = 7, ELSE = 8, ENDIF = 9, TRY = 10, CATCH = 11, CNEXT = 12, CPREVIOUS = 13, CNNEXT = 14, FINALLY = 15, ENDTRY = 16, CONST = 17, NORMAL = 18, RETURN = 19, PERL = 20, LUA = 21, RUBY = 22, PYTHON = 23, THROW = 24, EXECUTE = 25, AUTOCMD = 26, SILENT = 27, ECHO = 28, ECHON = 29, ECHOHL = 30, ECHOMSG = 31, ECHOERR = 32, MAP = 33, NMAP = 34, VMAP = 35, XMAP = 36, SMAP = 37, OMAP = 38, IMAP = 39, LMAP = 40, CMAP = 41, TMAP = 42, NOREMAP = 43, NNOREMAP = 44, VNOREMAP = 45, XNOREMAP = 46, SNOREMAP = 47, ONOREMAP = 48, INOREMAP = 49, LNOREMAP = 50, CNOREMAP = 51, TNOREMAP = 52, AUGROUP = 53, HIGHLIGHT = 54, DEFAULT = 55, SYNTAX = 56, SET = 57, SETLOCAL = 58, SETFILETYPE = 59, BROWSE = 60, OPTIONS = 61, STARTINSERT = 62, STOPINSERT = 63, SCRIPTENCODING = 64, SOURCE = 65, GLOBAL = 66, COLORSCHEME = 67, COMMAND = 68, COMCLEAR = 69, DELCOMMAND = 70, RUNTIME = 71, WINCMD = 72, SIGN = 73, FILETYPE = 74, LET = 75, UNLET = 76, CALL = 77, BREAK = 78, CONTINUE = 79, TAB = 80, VERTICAL = 81, LEFTABOVE = 82, ABOVELEFT = 83, RIGHTBELOWS = 84, BELOWRIGHT = 85, TOPLEFT = 86, BOTRIGHT = 87, EDIT = 88, ENEW = 89, FIND = 90, EX = 91, VISUAL = 92, VIEW = 93, EVAL = 94, SUBSTITUTE = 95, UNKNOWN_COMMAND } kwid; keyword keywords[] = { [FUNCTION] = { .mandat = "fu", .opt = "nction", .ignore_comments_after = false }, [ENDFUNCTION] = { .mandat = "endf", .opt = "unction", .ignore_comments_after = false }, [FOR] = { .mandat = "for", .opt = "", .ignore_comments_after = false }, [ENDFOR] = { .mandat = "endfo", .opt = "r", .ignore_comments_after = false }, [WHILE] = { .mandat = "wh", .opt = "ile", .ignore_comments_after = false }, [ENDWHILE] = { .mandat = "endw", .opt = "hile", .ignore_comments_after = false }, [IF] = { .mandat = "if", .opt = "", .ignore_comments_after = false }, [ELSEIF] = { .mandat = "elsei", .opt = "f", .ignore_comments_after = false }, [ELSE] = { .mandat = "el", .opt = "se", .ignore_comments_after = false }, [ENDIF] = { .mandat = "en", .opt = "dif", .ignore_comments_after = false }, [TRY] = { .mandat = "try", .opt = "", .ignore_comments_after = false }, [CATCH] = { .mandat = "cat", .opt = "ch", .ignore_comments_after = false }, [CNEXT] = { .mandat = "cn", .opt = "ext", .ignore_comments_after = false }, [CPREVIOUS] = { .mandat = "cp", .opt = "revious", .ignore_comments_after = false }, [CNNEXT] = { .mandat = "cN", .opt = "ext", .ignore_comments_after = false }, [FINALLY] = { .mandat = "fina", .opt = "lly", .ignore_comments_after = false }, [ENDTRY] = { .mandat = "endt", .opt = "ry", .ignore_comments_after = false }, [CONST] = { .mandat = "cons", .opt = "t", .ignore_comments_after = false }, [NORMAL] = { .mandat = "norm", .opt = "al", .ignore_comments_after = false }, [RETURN] = { .mandat = "retu", .opt = "rn", .ignore_comments_after = false }, [PERL] = { .mandat = "perl", .opt = "", .ignore_comments_after = false }, [LUA] = { .mandat = "lua", .opt = "", .ignore_comments_after = false }, [RUBY] = { .mandat = "rub", .opt = "y", .ignore_comments_after = false }, [PYTHON] = { .mandat = "py", .opt = "thon", .ignore_comments_after = false }, [THROW] = { .mandat = "th", .opt = "row", .ignore_comments_after = false }, [EXECUTE] = { .mandat = "exe", .opt = "cute", .ignore_comments_after = false }, [AUTOCMD] = { .mandat = "au", .opt = "tocmd", .ignore_comments_after = false }, [SILENT] = { .mandat = "sil", .opt = "ent", .ignore_comments_after = false }, [ECHO] = { .mandat = "ec", .opt = "ho", .ignore_comments_after = true }, [ECHON] = { .mandat = "echon", .opt = "", .ignore_comments_after = true }, [ECHOHL] = { .mandat = "echoh", .opt = "l", .ignore_comments_after = false }, [ECHOMSG] = { .mandat = "echom", .opt = "sg", .ignore_comments_after = true }, [ECHOERR] = { .mandat = "echoe", .opt = "rr", .ignore_comments_after = true }, [MAP] = { .mandat = "map", .opt = "", .ignore_comments_after = true }, [NMAP] = { .mandat = "nm", .opt = "ap", .ignore_comments_after = true }, [VMAP] = { .mandat = "vm", .opt = "ap", .ignore_comments_after = true }, [XMAP] = { .mandat = "xm", .opt = "ap", .ignore_comments_after = true }, [SMAP] = { .mandat = "smap", .opt = "", .ignore_comments_after = true }, [OMAP] = { .mandat = "om", .opt = "ap", .ignore_comments_after = true }, [IMAP] = { .mandat = "im", .opt = "ap", .ignore_comments_after = true }, [LMAP] = { .mandat = "lm", .opt = "ap", .ignore_comments_after = true }, [CMAP] = { .mandat = "cm", .opt = "ap", .ignore_comments_after = true }, [TMAP] = { .mandat = "tma", .opt = "p", .ignore_comments_after = true }, [NOREMAP] = { .mandat = "no", .opt = "remap", .ignore_comments_after = true }, [NNOREMAP] = { .mandat = "nn", .opt = "oremap", .ignore_comments_after = true }, [VNOREMAP] = { .mandat = "vn", .opt = "oremap", .ignore_comments_after = true }, [XNOREMAP] = { .mandat = "xn", .opt = "oremap", .ignore_comments_after = true }, [SNOREMAP] = { .mandat = "snor", .opt = "emap", .ignore_comments_after = true }, [ONOREMAP] = { .mandat = "ono", .opt = "remap", .ignore_comments_after = true }, [INOREMAP] = { .mandat = "ino", .opt = "remap", .ignore_comments_after = true }, [LNOREMAP] = { .mandat = "ln", .opt = "oremap", .ignore_comments_after = true }, [CNOREMAP] = { .mandat = "cno", .opt = "remap", .ignore_comments_after = true }, [TNOREMAP] = { .mandat = "tno", .opt = "remap", .ignore_comments_after = true }, [AUGROUP] = { .mandat = "aug", .opt = "roup", .ignore_comments_after = true }, [HIGHLIGHT] = { .mandat = "hi", .opt = "ghlight", .ignore_comments_after = false }, [DEFAULT] = { .mandat = "def", .opt = "ault", .ignore_comments_after = false }, [SYNTAX] = { .mandat = "sy", .opt = "ntax", .ignore_comments_after = false }, [SET] = { .mandat = "se", .opt = "t", .ignore_comments_after = false }, [SETLOCAL] = { .mandat = "setl", .opt = "ocal", .ignore_comments_after = false }, [SETFILETYPE] = { .mandat = "setf", .opt = "iletype", .ignore_comments_after = false }, [BROWSE] = { .mandat = "bro", .opt = "wse", .ignore_comments_after = false }, [OPTIONS] = { .mandat = "opt", .opt = "ions", .ignore_comments_after = false }, [STARTINSERT] = { .mandat = "star", .opt = "tinsert", .ignore_comments_after = false }, [STOPINSERT] = { .mandat = "stopi", .opt = "nsert", .ignore_comments_after = false }, [SCRIPTENCODING] = { .mandat = "scripte", .opt = "ncoding", .ignore_comments_after = false }, [SOURCE] = { .mandat = "so", .opt = "urce", .ignore_comments_after = false }, [GLOBAL] = { .mandat = "g", .opt = "lobal", .ignore_comments_after = false }, [COLORSCHEME] = { .mandat = "colo", .opt = "rscheme", .ignore_comments_after = false }, [COMMAND] = { .mandat = "com", .opt = "mand", .ignore_comments_after = false }, [COMCLEAR] = { .mandat = "comc", .opt = "lear", .ignore_comments_after = false }, [DELCOMMAND] = { .mandat = "delc", .opt = "ommand", .ignore_comments_after = false }, [RUNTIME] = { .mandat = "ru", .opt = "ntime", .ignore_comments_after = false }, [WINCMD] = { .mandat = "winc", .opt = "md", .ignore_comments_after = false }, [SIGN] = { .mandat = "sig", .opt = "n", .ignore_comments_after = false }, [FILETYPE] = { .mandat = "filet", .opt = "ype", .ignore_comments_after = false }, [LET] = { .mandat = "let", .opt = "", .ignore_comments_after = false }, [UNLET] = { .mandat = "unl", .opt = "et", .ignore_comments_after = false }, [CALL] = { .mandat = "cal", .opt = "l", .ignore_comments_after = false }, [BREAK] = { .mandat = "brea", .opt = "k", .ignore_comments_after = false }, [CONTINUE] = { .mandat = "con", .opt = "tinue", .ignore_comments_after = false }, [TAB] = { .mandat = "tab", .opt = "", .ignore_comments_after = false }, [VERTICAL] = { .mandat = "vert", .opt = "ical", .ignore_comments_after = false }, [LEFTABOVE] = { .mandat = "lefta", .opt = "bove", .ignore_comments_after = false }, [ABOVELEFT] = { .mandat = "abo", .opt = "veleft", .ignore_comments_after = false }, [RIGHTBELOWS] = { .mandat = "rightb", .opt = "elow", .ignore_comments_after = false }, [BELOWRIGHT] = { .mandat = "bel", .opt = "owright", .ignore_comments_after = false }, [TOPLEFT] = { .mandat = "to", .opt = "pleft", .ignore_comments_after = false }, [BOTRIGHT] = { .mandat = "bo", .opt = "tright", .ignore_comments_after = false }, [EDIT] = { .mandat = "e", .opt = "dit", .ignore_comments_after = false }, [ENEW] = { .mandat = "ene", .opt = "w", .ignore_comments_after = false }, [FIND] = { .mandat = "fin", .opt = "d", .ignore_comments_after = false }, [EX] = { .mandat = "ex", .opt = "", .ignore_comments_after = false }, [VISUAL] = { .mandat = "vi", .opt = "sual", .ignore_comments_after = false }, [VIEW] = { .mandat = "vie", .opt = "w", .ignore_comments_after = false }, [EVAL] = { .mandat = "ev", .opt = "al", .ignore_comments_after = false }, [SUBSTITUTE] = { .mandat = "s", .opt = "ubstitute", .ignore_comments_after = false }, };