Description="vimscript" Digits = [[ (?:[0-9])(?:0x|0X|0b)[0-9a-fA-F']+|#?\d*[\.]?\d+(?:[eE][\-\+]\d+)?[lLuU]* ]] Keywords={ { Id=1, List={ "call", "set", "let", "au", "if", "endif", "else", "has", "autocmd", "augroup", "end"}, }, { Id=2, List= { "filetype", "ft", "syntax", "colorscheme" } }, { Id=3, Regex=[[[nvxsoilc]n?o?remap|\&\w+]] }, { Id=4, Regex=[[\w*\((.+\))]], Group=1 } } Strings = { Delimiter=[[']], DelimiterPairs= { { Open=[["(?=.*")]], Close=[["]] } } } Comments = { { Block=false, Nested=false, Delimiter = { [[ ^"|"(?!.*")]] } } } IgnoreCase=true Operators=[[\(|\)|\[|\]|\{|\}|\,|\;|\.|\:|\&|<|>|\!|=|\/|\*|\%|\+|\-|\~|\||\^]] function OnStateChange(oldState, newState, token) if newState==HL_STRING then openDelim=token end if oldState==HL_STRING and token==openDelim then openDelim = nil return HL_STRING_END end return newState end