Description="CMake" Keywords={ { Id=1, List={ "if", "elseif", "else", "endif", "foreach", "endforeach", "and", "while", "endwhile", "macro", "endmacro", "function", "endfunction", "set", "unset" }, }, { Id=2, Regex=[[ [0-9A-Z_]{2,} ]], }, { Id=3, Regex=[[\$\{.+\$\{.+?\}.+?\}|\$\{.+?\} ]], }, { Id=3, Regex=[[ [A-Z_\>]+\:([\w/]+) ]], }, { Id=4, Regex=[[(\w+)\s*\(]], }, } Strings={ Delimiter=[["|']], DelimiterPairs= { { Open=[[ \[=*\[ ]], Close=[[ \]=*\] ]], Raw=true } }, AssertEqualLength=true } IgnoreCase=false Comments={ { Block=false, Delimiter= { [[ #(?!\[\[) ]] }, }, { Block=true, Nested=false, Delimiter= { [[ #\[\[ ]],[[ \]\] ]],} } } Operators=[[\(|\)|\{|\}|\[|\]|\,|\;|\.|\:|\&|<|>|\!|\=|\/|\*|\%|\+|\-|\~|\#|\\]] -- resolve issue with ]] close delimiter which ends comments and strings function OnStateChange(oldState, newState, token) if token=="]]" and oldState==HL_STRING and newState==HL_BLOCK_COMMENT_END then return HL_STRING_END end return newState end