Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 24 additions & 3 deletions lib/rouge/lexers/lua.rb
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,26 @@ def builtins
rule %r/\)/, Punctuation, :pop!
rule %r/[(,]/, Punctuation
rule %r/\s+/, Text
rule %r/"/, Str::Regex, :regex
rule %r/'/, Str::Regex, :regex_sq
rule %r/"/, Str::Regex, :regex_dq
end

state :regex_sq do
rule %r(') do
token Str::Regex
goto :regex_end
end

mixin :regex
end

state :regex_dq do
rule %r(") do
token Str::Regex
goto :regex_end
end

mixin :regex
end

state :regex do
Expand Down Expand Up @@ -151,13 +170,15 @@ def builtins
end

state :sqs do
rule %r(\\'), Str::Escape
rule %r('), Str::Single, :pop!
rule %r([^']+), Str::Single
rule %r([^'\\]+), Str::Single
end

state :dqs do
rule %r(\\"), Str::Escape
rule %r("), Str::Double, :pop!
rule %r([^"]+), Str::Double
rule %r([^"\\]+), Str::Double
end
end
end
Expand Down
2 changes: 2 additions & 0 deletions spec/visual/samples/lua
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,8 @@ end
acc = Account.create(1000)
acc:withdraw(100)

-- gsub examples
if
url = url:gsub("^['\"]", ""):gsub("['\"]$", "")
local pattern = attr_name .. '=[\'"]' .. attr_value:gsub('([%.%+%-%*%?%[%]%^%$%(%)%%])', '%%%1') .. '[\'"]'
end