lib/rouge/lexers/janet.rb in rouge-3.23.0 vs lib/rouge/lexers/janet.rb in rouge-3.24.0
- old
+ new
@@ -112,11 +112,11 @@
else
Name::Function
end
end
- punctuation = %r/[_!@$%^&*+=~<>.?\/-]/o
+ punctuation = %r/[_!$%^&*+=~<>.?\/-]/o
symbol = %r/([[:alpha:]]|#{punctuation})([[:word:]]|#{punctuation}|:)*/o
state :root do
rule %r/#.*?$/, Comment::Single
rule %r/\s+/m, Text::Whitespace
@@ -141,24 +141,23 @@
rule %r/@?"/, Str::Double, :string
rule %r/@?(`+).*?\1/m, Str::Heredoc
rule %r/\(/, Punctuation, :function
- rule %r/(')([\(\[])/ do
+ rule %r/(')(@?[(\[{])/ do
groups Operator, Punctuation
push :quote
end
- rule %r/(~)([\(\[])/ do
+ rule %r/(~)(@?[(\[{])/ do
groups Operator, Punctuation
push :quasiquote
end
rule %r/[\#~,';\|]/, Operator
- rule %r/@?[({\[]/, Punctuation, :push
- rule %r/[)}\]]/, Punctuation, :pop!
+ rule %r/@?[(){}\[\]]/, Punctuation
rule symbol, Name
end
state :string do
@@ -167,10 +166,12 @@
rule %r/\\./, Str::Escape
rule %r/[^"\\]+/, Str::Double
end
state :function do
+ rule %r/[\)]/, Punctuation, :pop!
+
rule symbol do |m|
case m[0]
when "quote"
token Keyword
goto :quote
@@ -185,22 +186,22 @@
mixin :root
end
state :quote do
- rule %r/[\(\[]/, Punctuation, :push
- rule symbol, Str::Symbol
+ rule %r/[(\[{]/, Punctuation, :push
+ rule %r/[)\]}]/, Punctuation, :pop!
+ rule symbol, Str::Escape
mixin :root
end
state :quasiquote do
rule %r/(,)(\()/ do
groups Operator, Punctuation
push :function
end
rule %r/(\()(\s*)(unquote)(\s+)(\()/ do
groups Punctuation, Text, Keyword, Text, Punctuation
- push :root
push :function
end
rule %r/(,)(#{symbol})/ do
groups Operator, Name