//======================================================================= //================ Lex class support ==================================== //======================================================================= // lexClass: // name = c_CPPString // parent = c_CPP // parent:dyn = c_CPP // parent:file = <*.c|*.cpp|*.h|*.inl|*.tli|*.tlh|*.rc|*.rc2> // // children = 0 // children = class1, class2, ... // // previous:class = // previous:tag = // previous:tag:separators = // // start:class = // start:Tag = '"' // // skip:Tag = '\"' // // end:class = // // end:Tag = '"' // end:separators = ' ' // // Token:tag = 'if', 'for', 'while', 'do' // Token:start:separators = // Token:end:separators = //----------------------------------------------------------------------- //---------------- Attributes ------------------------------------------- //----------------------------------------------------------------------- // txt:colorFG = 0xffc0c0 // color value in hex format. default: black // txt:colorBK = 0xffc0c0 // color value in hex format. default: white // // txt:colorSelFG = 0xffc0c0 // color value in hex format. default: white // txt:colorSelBK = 0xffc0c0 // color value in hex format. default: black // // txt:Bold = 1 // {1,0} default: 0 // txt:Italic = 1 // {1,0} default: 0 // txt:Underline = 1 // {1,0} default: 0 // // caseSensitive = 1 // {1,0} default: 0 // // Collapsable = 1 // {1,0} default: 0 // CollapsedText = '/*...*/' // quoted string value. default: '[..]' // // ParseOnScreen = 1 // {1,0} default: 0 // //----------------------------------------------------------------------- //* Global attributes *************************************************** //----------------------------------------------------------------------- // global:FirstParseInSeparateThread = 1 // {0,1} default=1 // global:EditReparceInSeparateThread = 1 // {0,1} default=1 // global:ConfigChangedReparceInSeparateThread= 1 // {0,1} default=1 // global:EditReparceTimeout_ms = 500 // default= 500 ms; time out for start reparse after last key was pressed. // global:MaxBackParseOffset = 100 // default= 100 chars; maximum back buffer size. Some times parser look back for the text from current position. // global:OnScreenSchCacheLifeTime_sec = 180 // default= 180 sec; -1 and 0 means infinite; time out for on screen parsed pices of text. for memory using optimization. // global:ParserThreadIdleLifeTime_sec = 60 // default=60 sec; -1 and 0 means infinite; time out for existing of parser thread when parser idle (no parse requests). ///////////////////////////////////////////////////////////////////////// //======================================================================= //================ Variables support ==================================== //======================================================================= // NON operation - example: @alpha:not // // @alpha = a-z, A-Z // @digit = 0-9 // @HexDdigit = 0-9, a-f, A-F // @specs = "~`!@#$%^&*()_-+=\\|{}[];:'\",.<>/?" // @EOL = End Of Line //--------------------------------------------- // special tags: '\\', '\'', '\t', '\r', '\n' ///////////////////////////////////////////////////////////////////////// lexClass: name = c_LUA parent:file = <*.lua> caseSensitive = 1 //global:FirstParseInSeparateThread = 0 global:EditReparceInSeparateThread = 1 //global:EditReparceTimeout_ms = 250 //global:MaxBackParseOffset = 100 //global:OnScreenSchCacheLifeTime_sec = 60 //global:ParserThreadIdleLifeTime_sec = -1 lexClass: name = c_LUACodeBlock parent:dyn = c_LUA, c_LUACodeBlock start:Tag = '{' end:tag = '}' // start:Tag = 'do', 'for', 'function', 'if', 'while' // end:tag = 'end' Collapsable = 1 CollapsedText = '{ ... }' DisplayName = 'Curly Braces' lexClass: name = c_URL ParseOnScreen = 0 parent:dyn = c_LUA, c_LUACodeBlock caseSensitive = 0 children = 0 previous:tag = @specs, ' ', '\t', @eol start:Tag = 'http://' end:separators = ' ', '\t', @eol DisplayName = 'URL' lexClass: name = c_String parent:dyn = c_LUA, c_LUACodeBlock children = c_URL start:Tag = '"' skip:Tag = '\\"', '\\\r\n', '\\\n\r', '\\\n', '\\\r' end:Tag = '"', @eol txt:colorFG = 0x009090 //txt:colorFG = 0xA31515 DisplayName = 'String (Double Quotes)' lexClass: name = c_String_char parent:dyn = c_LUA, c_LUACodeBlock children = 0 start:Tag = '\'' //skip:Tag = '\\"', '\\\r\n', '\\\n\r', '\\\n', '\\\r' end:Tag = '\'', @eol txt:colorFG = 0x009090 //txt:colorFG = 0xA31515 DisplayName = 'String (Single Quotes)' lexClass: name = c_LUACommentML_Start parent = c_LUA, c_LUACodeBlock children = c_URL start:Tag = '--[[' end:Separators = @eol txt:colorFG = 0x00A000 lexClass: name = c_LUACommentML_End parent = c_LUA, c_LUACodeBlock, c_LUACommentML children = c_URL start:Tag = '--]]' end:Separators = @eol txt:colorFG = 0x00A000 lexClass: name = c_LUACommentML parent = c_LUA, c_LUACodeBlock children = c_LUACommentML_End start:CLASS = c_LUACommentML_Start end:CLASS = c_LUACommentML_End Collapsable = 1 txt:colorFG = 0x00A000 DisplayName = 'Comment (Multi-Line)' lexClass: name = c_LUACommentSL parent = c_LUA, c_LUACodeBlock children = c_URL start:tag ='--' skip:Tag = '\\\r\n', '\\\n\r', '\\\n', '\\\r' end:tag = @eol txt:colorFG = 0x00A000 DisplayName = 'Comment (Single-Line)' lexClass: name = c_LUAKeywords ParseOnScreen = 0 parent:Dyn = c_LUA, c_LUACodeBlock children = 0 DisplayName = 'Keyword' token:tag = 'and' token:tag = 'break' token:tag = 'do' token:tag = 'else' token:tag = 'elseif' token:tag = 'end' token:tag = 'false' token:tag = 'for' token:tag = 'function' token:tag = 'global' token:tag = 'if' token:tag = 'in' token:tag = 'local' token:tag = 'nil' token:tag = 'not' token:tag = 'or' token:tag = 'repeat' token:tag = 'return' token:tag = 'then' token:tag = 'true' token:tag = 'until' token:tag = 'while' token:start:separators = @specs, ' ', '\t', @eol token:end:separators = @specs, ' ', '\t', @eol txt:colorFG = 0x000080 txt:bold = 1 lexClass: name = c_LUAFunctions ParseOnScreen = 0 parent:Dyn = c_LUA, c_LUACodeBlock children = 0 DisplayName = 'LUA Function' token:tag = '_G' token:tag = '_VERSION' token:tag = 'assert' token:tag = 'collectgarbage' token:tag = 'dofile' token:tag = 'error' token:tag = 'getfenv' token:tag = 'getmetatable' token:tag = 'ipairs' token:tag = 'load' token:tag = 'loadfile' token:tag = 'loadstring' token:tag = 'module' token:tag = 'next' token:tag = 'pairs' token:tag = 'pcall' token:tag = 'print' token:tag = 'rawequal' token:tag = 'rawget' token:tag = 'rawset' token:tag = 'require' token:tag = 'select' token:tag = 'setfenv' token:tag = 'setmetatable' token:tag = 'tonumber' token:tag = 'tostring' token:tag = 'type' token:tag = 'unpack' token:tag = 'xpcall' //token:tag = 'coroutine.create' //token:tag = 'coroutine.resume' //token:tag = 'coroutine.running' //token:tag = 'coroutine.status' //token:tag = 'coroutine.wrap' //token:tag = 'coroutine.yield' //token:tag = 'debug.debug' //token:tag = 'debug.getfenv' //token:tag = 'debug.gethook' //token:tag = 'debug.getinfo' //token:tag = 'debug.getlocal' //token:tag = 'debug.getmetatable' //token:tag = 'debug.getregistry' //token:tag = 'debug.getupvalue' //token:tag = 'debug.setfenv' //token:tag = 'debug.sethook' //token:tag = 'debug.setlocal' //token:tag = 'debug.setmetatable' //token:tag = 'debug.setupvalue' //token:tag = 'debug.traceback' //token:tag = 'file:close' //token:tag = 'file:flush' //token:tag = 'file:lines' //token:tag = 'file:read' //token:tag = 'file:seek' //token:tag = 'file:setvbuf' //token:tag = 'file:write' //token:tag = 'io.close' //token:tag = 'io.flush' //token:tag = 'io.input' //token:tag = 'io.lines' //token:tag = 'io.open' //token:tag = 'io.output' //token:tag = 'io.popen' //token:tag = 'io.read' //token:tag = 'io.tmpfile' //token:tag = 'io.type' //token:tag = 'io.write' //token:tag = 'math.abs' //token:tag = 'math.acos' //token:tag = 'math.asin' //token:tag = 'math.atan2' //token:tag = 'math.atan' //token:tag = 'math.ceil' //token:tag = 'math.cosh' //token:tag = 'math.cos' //token:tag = 'math.deg' //token:tag = 'math.exp' //token:tag = 'math.floor' //token:tag = 'math.fmod' //token:tag = 'math.frexp' //token:tag = 'math.huge' //token:tag = 'math.ldexp' //token:tag = 'math.log10' //token:tag = 'math.log' //token:tag = 'math.max' //token:tag = 'math.min' //token:tag = 'math.modf' //token:tag = 'math.pi' //token:tag = 'math.pow' //token:tag = 'math.rad' //token:tag = 'math.random' //token:tag = 'math.randomseed' //token:tag = 'math.sinh' //token:tag = 'math.sin' //token:tag = 'math.sqrt' //token:tag = 'math.tanh' //token:tag = 'math.tan' //token:tag = 'os.clock' //token:tag = 'os.date' //token:tag = 'os.difftime' //token:tag = 'os.execute' //token:tag = 'os.exit' //token:tag = 'os.getenv' //token:tag = 'os.remove' //token:tag = 'os.rename' //token:tag = 'os.setlocale' //token:tag = 'os.time' //token:tag = 'os.tmpname' //token:tag = 'package.cpath' //token:tag = 'package.loaded' //token:tag = 'package.loadlib' //token:tag = 'package.path' //token:tag = 'package.preload' //token:tag = 'package.seeall' //token:tag = 'string.byte' //token:tag = 'string.char' //token:tag = 'string.dump' //token:tag = 'string.find' //token:tag = 'string.format' //token:tag = 'string.gmatch' //token:tag = 'string.gsub' //token:tag = 'string.len' //token:tag = 'string.lower' //token:tag = 'string.match' //token:tag = 'string.rep' //token:tag = 'string.reverse' //token:tag = 'string.sub' //token:tag = 'string.upper' //token:tag = 'table.concat' //token:tag = 'table.insert' //token:tag = 'table.maxn' //token:tag = 'table.remove' //token:tag = 'table.sort' token:start:separators = @specs, ' ', '\t', @eol token:end:separators = @specs, ' ', '\t', @eol txt:colorFG = 0x900090 txt:bold = 0