X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=runtime%2Fsyntax%2Flua.yaml;h=e5dab4efd9071c0f7c9cd8dcc5d156c54855d894;hb=60eec0eccd0d1bd9b8aaebcd17b02d6bfbc7b20a;hp=0302b897ce39354c60f9aac9c3bbb21f5380168a;hpb=812b547679d803a233261c1e5f8a95dfebd9f41e;p=micro.git diff --git a/runtime/syntax/lua.yaml b/runtime/syntax/lua.yaml index 0302b897..e5dab4ef 100644 --- a/runtime/syntax/lua.yaml +++ b/runtime/syntax/lua.yaml @@ -18,11 +18,13 @@ rules: - identifier: "coroutine\\.\\b(create|isyieldable|resume|running|status|wrap|yield)\\b" - identifier: "debug\\.\\b(debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|getuservalue|setfenv|sethook|setlocal|setmetatable|setupvalue|setuservalue|traceback|upvalueid|upvaluejoin)\\b" - identifier: "bit32\\.\\b(arshift|band|bnot|bor|btest|bxor|extract|replace|lrotate|lshift|rrotate|rshift)\\b" - - identifier: "\\:\\b(close|flush|lines|read|seek|setvbuf|write)\\b" + - identifier: "\\:\\b(close|flush|lines|read|seek|setvbuf|write|byte|char|dump|find|format|gmatch|gsub|len|lower|match|pack|packsize|rep|reverse|sub|unpack|upper)\\b" + - identifier: "\\b(self|arg)\\b" - constant: "\\b(false|nil|true)\\b" - statement: "(\\b(dofile|require|include)|%q|%!|%Q|%r|%x)\\b" - constant.number: "\\b([0-9]+)\\b" - - symbol: "(\\(|\\)|\\[|\\]|\\{|\\}|\\*\\*|\\*|/|%|\\+|-|\\^|>|>=|<|<=|~=|=|\\.\\.|#)" + - symbol.brackets: "[(){}\\[\\]]" + - symbol: "(\\*|//|/|%|\\+|-|\\^|>|>=|<|<=|~=|=|[\\.]{2,3}|#)" - constant.string: start: "\"" @@ -44,15 +46,71 @@ rules: rules: - constant.specialChar: "\\\\." - - special: "\\\\[0-7][0-7][0-7]|\\\\x[0-9a-fA-F][0-9a-fA-F]|\\\\[abefnrs]|(\\\\c|\\\\C-|\\\\M-|\\\\M-\\\\C-)." +# support first few lengths of "long brackets" explicitly +# brackets longer than that will give false positives - - comment: - start: "\\-\\-" - end: "$" - rules: [] + - constant.string: + start: "\\[=\\[" + end: "\\]=\\]" + rules: + - constant.specialChar: "\\\\." - - comment: + - constant.string: + start: "\\[==\\[" + end: "\\]==\\]" + rules: + - constant.specialChar: "\\\\." + + - constant.string: + start: "\\[===\\[" + end: "\\]===\\]" + rules: + - constant.specialChar: "\\\\." + + - constant.string: + start: "\\[====+\\[" + end: "\\]====+\\]" + rules: + - constant.specialChar: "\\\\." + + - special: "\\\\[0-7][0-7][0-7]|\\\\x[0-9a-fA-F][0-9a-fA-F]|\\\\[abefnrs]|(\\\\c|\\\\C-|\\\\M-|\\\\M-\\\\C-)." + + - comment.block: start: "\\-\\-\\[\\[" end: "\\]\\]" - rules: [] + rules: + - todo: "(TODO|NOTE|FIXME):?" + +# support long brackets, same as with multiline strings + + - comment.block: + start: "\\-\\-\\[=\\[" + end: "\\]=\\]" + rules: + - todo: "(TODO|NOTE|FIXME):?" + + - comment.block: + start: "\\-\\-\\[==\\[" + end: "\\]==\\]" + rules: + - todo: "(TODO|NOTE|FIXME):?" + - comment.block: + start: "\\-\\-\\[===\\[" + end: "\\]===\\]" + rules: + - todo: "(TODO|NOTE|FIXME):?" + + - comment.block: + start: "\\-\\-\\[====+\\[" + end: "\\]====+\\]" + rules: + - todo: "(TODO|NOTE|FIXME):?" + +# this has to go after block comment or block comment does not work + + - comment: + start: "\\-\\-" + end: "$" + rules: + - todo: "(TODO|NOTE|FIXME):?"