From f1e809294c78dc4f6c80dd14f5a696fa70c69d3b Mon Sep 17 00:00:00 2001 From: nightwing Date: Wed, 26 Jun 2013 20:23:58 +0400 Subject: [PATCH] fix #1490 Parsing Lua comments in the middle of line --- demo/kitchen-sink/docs/lua.lua | 2 ++ lib/ace/mode/_test/tokens_lua.json | 18 +++++++++++++----- lib/ace/mode/_test/tokens_luapage.json | 6 +++--- lib/ace/mode/lua_highlight_rules.js | 6 +++--- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/demo/kitchen-sink/docs/lua.lua b/demo/kitchen-sink/docs/lua.lua index 381b782c..6c927197 100644 --- a/demo/kitchen-sink/docs/lua.lua +++ b/demo/kitchen-sink/docs/lua.lua @@ -34,3 +34,5 @@ print([===[ table.maxn is deprecated, use # instead. --]=]-- print(table.maxn{1,2,[4]=4,[8]=8) -- outputs 8 instead of 2 + +print(5 --[[ blah ]]) \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_lua.json b/lib/ace/mode/_test/tokens_lua.json index cc2676ea..276b3ffc 100644 --- a/lib/ace/mode/_test/tokens_lua.json +++ b/lib/ace/mode/_test/tokens_lua.json @@ -1,11 +1,11 @@ [[ - ["bracketedComment",4,"start"], + ["bracketedComment",2,"start"], ["comment","--[[--"] ],[ - ["bracketedComment",4,"start"], + ["bracketedComment",2,"start"], ["comment","num_args takes in 5.1 byte code and extracts the number of arguments"] ],[ - ["bracketedComment",4,"start"], + ["bracketedComment",2,"start"], ["comment","from its function header."] ],[ "start", @@ -301,10 +301,10 @@ ],[ "start" ],[ - ["bracketedComment",5,"start"], + ["bracketedComment",3,"start"], ["comment","--[=[--"] ],[ - ["bracketedComment",5,"start"], + ["bracketedComment",3,"start"], ["comment","table.maxn is deprecated, use # instead."] ],[ "start", @@ -337,4 +337,12 @@ ["comment","-- outputs 8 instead of 2"] ],[ "start" +],[ + "start", + ["support.function","print"], + ["paren.lparen","("], + ["constant.numeric","5"], + ["text"," "], + ["comment","--[[ blah ]]"], + ["paren.rparen",")"] ]] \ No newline at end of file diff --git a/lib/ace/mode/_test/tokens_luapage.json b/lib/ace/mode/_test/tokens_luapage.json index d63f30e9..c9e51514 100644 --- a/lib/ace/mode/_test/tokens_luapage.json +++ b/lib/ace/mode/_test/tokens_luapage.json @@ -21,15 +21,15 @@ ["meta.tag.tag-name","html"], ["meta.tag.r",">"] ],[ - ["lua-bracketedComment",4,"lua-start"], + ["lua-bracketedComment",2,"lua-start"], ["keyword","<%"], ["text"," "], ["comment","--[[--"] ],[ - ["lua-bracketedComment",4,"lua-start"], + ["lua-bracketedComment",2,"lua-start"], ["comment"," index.lp from the Kepler Project's LuaDoc HTML doclet."] ],[ - ["lua-bracketedComment",4,"lua-start"], + ["lua-bracketedComment",2,"lua-start"], ["comment"," http://keplerproject.github.com/luadoc/"] ],[ "start", diff --git a/lib/ace/mode/lua_highlight_rules.js b/lib/ace/mode/lua_highlight_rules.js index e9768d6a..5eb969d3 100644 --- a/lib/ace/mode/lua_highlight_rules.js +++ b/lib/ace/mode/lua_highlight_rules.js @@ -99,7 +99,7 @@ var LuaHighlightRules = function() { "start" : [{ stateName: "bracketedComment", onMatch : function(value, currentState, stack){ - stack.unshift(this.next, value.length, currentState); + stack.unshift(this.next, value.length - 2, currentState); return "comment"; }, regex : /\-\-\[=*\[/, @@ -115,7 +115,7 @@ var LuaHighlightRules = function() { } return "comment"; }, - regex : /(?:[^\\]|\\.)*?\]=*\]/, + regex : /\]=*\]/, next : "start" }, { defaultToken : "comment" @@ -147,7 +147,7 @@ var LuaHighlightRules = function() { return "comment"; }, - regex : /(?:[^\\]|\\.)*?\]=*\]/, + regex : /\]=*\]/, next : "start" }, { defaultToken : "comment"