Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rubygem-rouge for openSUSE:Factory 
checked in at 2022-10-12 18:25:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-rouge (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-rouge.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-rouge"

Wed Oct 12 18:25:22 2022 rev:20 rq:1010082 version:4.0.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-rouge/rubygem-rouge.changes      
2022-08-09 15:27:06.573412122 +0200
+++ /work/SRC/openSUSE:Factory/.rubygem-rouge.new.2275/rubygem-rouge.changes    
2022-10-12 18:27:10.982018939 +0200
@@ -1,0 +2,6 @@
+Mon Oct 10 13:18:55 UTC 2022 - Stephan Kulow <[email protected]>
+
+updated to version 4.0.0
+  no changelog found
+
+-------------------------------------------------------------------

Old:
----
  rouge-3.30.0.gem

New:
----
  rouge-4.0.0.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-rouge.spec ++++++
--- /var/tmp/diff_new_pack.wAlVnL/_old  2022-10-12 18:27:11.362019776 +0200
+++ /var/tmp/diff_new_pack.wAlVnL/_new  2022-10-12 18:27:11.366019784 +0200
@@ -24,12 +24,12 @@
 #
 
 Name:           rubygem-rouge
-Version:        3.30.0
+Version:        4.0.0
 Release:        0
 %define mod_name rouge
 %define mod_full_name %{mod_name}-%{version}
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-BuildRequires:  %{ruby >= 2.0}
+BuildRequires:  %{ruby >= 2.7}
 BuildRequires:  %{rubygem gem2rpm}
 BuildRequires:  ruby-macros >= 5
 BuildRequires:  update-alternatives

++++++ rouge-3.30.0.gem -> rouge-4.0.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Gemfile new/Gemfile
--- old/Gemfile 2022-07-30 06:58:28.000000000 +0200
+++ new/Gemfile 2022-09-07 01:51:26.000000000 +0200
@@ -10,17 +10,14 @@
 gem 'minitest-power_assert'
 gem 'power_assert', '~> 1.2'
 
-gem 'parallel', '~> 1.13.0' if RUBY_VERSION < '2.2.0'
 gem 'rubocop', '~> 1.0', '<= 1.11'
 gem 'rubocop-performance'
 
 # don't try to install redcarpet under jruby
-gem 'redcarpet', :platforms => :ruby
+gem 'redcarpet', platforms: :ruby
 
 # Profiling
-if RUBY_VERSION >= '2.3.0'
-  gem 'memory_profiler', :require => false
-end
+gem 'memory_profiler', require: false
 
 # Needed for a Rake task
 gem 'git'
@@ -33,11 +30,7 @@
   gem 'github-markup'
 
   # for visual tests
-  if RUBY_VERSION < '2.2.0'
-    gem 'sinatra', '~> 1.4.8'
-  else
-    gem 'sinatra'
-  end
+  gem 'sinatra'
 
   # Ruby 3 no longer ships with a web server
   gem 'puma' if RUBY_VERSION >= '3'
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rouge/demos/rml new/lib/rouge/demos/rml
--- old/lib/rouge/demos/rml     1970-01-01 01:00:00.000000000 +0100
+++ new/lib/rouge/demos/rml     2022-09-07 01:51:26.000000000 +0200
@@ -0,0 +1,33 @@
+// A system agnostic domain specific language for runtime monitoring and 
verification
+// Basic events
+
+insert(index,elem) matches 
{event:'func_pre',name:'my_insert',args:[index,elem]};
+
+relevant matches insert(_,_)|remove(_,_)|size(_)|get(_,_);
+
+insert_in_bounds(size) matches insert(index,_) with index >= 0 && index <= 
size;
+
+del_false matches del(_,false);
+not_add_true_del(el) not matches add(el,true) | del(el,_);
+
+Main = relevant >> (CheckIndex<0> /\ add_rm_get >> CheckElem)!;
+CheckIndex<size> =
+    get_size(size)* (insert_in_bounds(size) CheckIndex<size+1> \/ 
remove_in_bounds(size) CheckIndex<size-1>);
+
+Msg<inf,sup> = if(inf<=sup) msg(inf) Msg<inf+1,sup> else empty;
+Main=relevant>>Msg<1,4>*!;
+
+acquire(id) matches {event:'func_pre',name:'acquire',args:[_,id,...]};
+
+Main = relevant >> Resources;
+Resources =
+    {let id; acquire(id)
+        ((Resources | use(id)* release(id)) /\
+        acqRel(id) >> release(id) all)
+    }?;
+
+msg(ty) matches {event:'func_pre',name:'msg',args:[ty]};
+relevant matches msg(_);
+
+Msg<inf,sup> = if(inf<=sup) msg(inf) Msg<inf+1,sup> else empty;
+Main=relevant>>Msg<1,4>*!;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rouge/demos/solidity new/lib/rouge/demos/solidity
--- old/lib/rouge/demos/solidity        2022-07-30 06:58:28.000000000 +0200
+++ new/lib/rouge/demos/solidity        1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
-pragma solidity ~0.4.15;
-
-interface IMirror {
-    function reflect() external payable returns(bool /* ain't I pretty?.. */);
-}
-
-contract Mirror is IMirror {
-    event logMessage(address indexed sender, uint256 value, uint256 gas, bytes 
data);
-
-    function () { // no funny stuff
-       revert();
-    }
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rouge/lexers/diff.rb new/lib/rouge/lexers/diff.rb
--- old/lib/rouge/lexers/diff.rb        2022-07-30 06:58:28.000000000 +0200
+++ new/lib/rouge/lexers/diff.rb        2022-09-07 01:51:26.000000000 +0200
@@ -20,9 +20,19 @@
       state :root do
         rule(/^ .*$\n?/, Text)
         rule(/^---$\n?/, Punctuation)
-        rule(/^[+>]+.*$\n?/, Generic::Inserted)
-        rule(/^\+.*$\n?/, Generic::Inserted)
-        rule(/^[-<]+.*$\n?/, Generic::Deleted)
+
+        rule %r(
+          (^\++.*$\n?) |
+          (^>+[ \t]+.*$\n?) |
+          (^>+$\n?)
+        )x, Generic::Inserted
+
+        rule %r(
+          (^-+.*$\n?) |
+          (^<+[ \t]+.*$\n?) |
+          (^<+$\n?)
+        )x, Generic::Deleted
+
         rule(/^!.*$\n?/, Generic::Strong)
         rule(/^([Ii]ndex|diff).*$\n?/, Generic::Heading)
         rule(/^(@@[^@]*@@)([^\n]*\n)/) do
@@ -30,7 +40,7 @@
         end
         rule(/^\w.*$\n?/, Punctuation)
         rule(/^=.*$\n?/, Generic::Heading)
-        rule(/\s.*$\n?/, Text)
+        rule(/.+$\n?/, Text)
       end
     end
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rouge/lexers/haxe.rb new/lib/rouge/lexers/haxe.rb
--- old/lib/rouge/lexers/haxe.rb        2022-07-30 06:58:28.000000000 +0200
+++ new/lib/rouge/lexers/haxe.rb        2022-09-07 01:51:26.000000000 +0200
@@ -17,15 +17,15 @@
 
       def self.keywords
         @keywords ||= Set.new %w(
-          break case cast catch class continue default do else enum false for
-          function if import interface macro new null override package private
+          as break case cast catch class continue default do else enum false 
for
+          function if import in interface macro new null override package 
private
           public return switch this throw true try untyped while
         )
       end
 
       def self.imports
         @imports ||= Set.new %w(
-          import using
+          package import using
         )
       end
 
@@ -55,6 +55,7 @@
       end
 
       id = /[$a-zA-Z_][a-zA-Z0-9_]*/
+      dotted_id = /[$a-zA-Z_][a-zA-Z0-9_.]*/
 
       state :comments_and_whitespace do
         rule %r/\s+/, Text
@@ -77,6 +78,22 @@
         rule %r//, Text, :pop!
       end
 
+      state :namespace do
+        mixin :comments_and_whitespace
+
+        rule %r/
+           (#{dotted_id})
+           (\s+)(in|as)(\s+)
+           (#{id})
+         /x do
+          groups(Name::Namespace, Text::Whitespace, Keyword, Text::Whitespace, 
Name)
+        end
+
+        rule %r/#{dotted_id}/, Name::Namespace
+
+        rule(//) { pop! }
+      end
+
       state :regex do
         rule %r(/) do
           token Str::Regex
@@ -141,20 +158,22 @@
         end
 
         rule id do |m|
-          if self.class.keywords.include? m[0]
+          match = m[0]
+
+          if self.class.imports.include?(match)
+            token Keyword::Namespace
+            push :namespace
+          elsif self.class.keywords.include?(match)
             token Keyword
             push :expr_start
-          elsif self.class.imports.include? m[0]
-            token Keyword
-            push :namespace
-          elsif self.class.declarations.include? m[0]
+          elsif self.class.declarations.include?(match)
             token Keyword::Declaration
             push :expr_start
-          elsif self.class.reserved.include? m[0]
+          elsif self.class.reserved.include?(match)
             token Keyword::Reserved
-          elsif self.class.constants.include? m[0]
+          elsif self.class.constants.include?(match)
             token Keyword::Constant
-          elsif self.class.builtins.include? m[0]
+          elsif self.class.builtins.include?(match)
             token Name::Builtin
           else
             token Name::Other
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rouge/lexers/http.rb new/lib/rouge/lexers/http.rb
--- old/lib/rouge/lexers/http.rb        2022-07-30 06:58:28.000000000 +0200
+++ new/lib/rouge/lexers/http.rb        2022-09-07 01:51:26.000000000 +0200
@@ -46,7 +46,7 @@
 
         # response
         rule %r(
-          (HTTPS?)(/)(\d(?:\.\d))([ ]+)  # http version
+          (HTTPS?)(/)(\d(?:\.\d)?)([ ]+) # http version
           (\d{3})([ ]+)?                 # status
           ([^\r\n]*)?(\r?\n|$)           # status message
         )x do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rouge/lexers/make.rb new/lib/rouge/lexers/make.rb
--- old/lib/rouge/lexers/make.rb        2022-07-30 06:58:28.000000000 +0200
+++ new/lib/rouge/lexers/make.rb        2022-09-07 01:51:26.000000000 +0200
@@ -20,11 +20,6 @@
         )
       end
 
-      # TODO: Add support for special keywords
-      # bsd_special = %w(
-      #   include undef error warning if else elif endif for endfor
-      # )
-
       def initialize(opts={})
         super
         @shell = Shell.new(opts)
@@ -41,11 +36,11 @@
           groups Keyword, Literal::String::Other
         end
 
-        rule %r/(ifn?def|ifn?eq)([\t ]+)([^#\n]+)/ do
+        rule %r/((?:ifn?def|ifn?eq|unexport)\b)([\t ]+)([^#\n]+)/ do
           groups Keyword, Text, Name::Variable
         end
 
-        rule %r/(?:else|endif)[\t ]*(?=[#\n])/, Keyword
+        rule %r/(?:else|endif|endef|endfor)[\t ]*(?=[#\n])/, Keyword
 
         rule %r/(export)([\t ]+)(?=[\w\${}()\t -]+\n)/ do
           groups Keyword, Text
@@ -55,10 +50,8 @@
         rule %r/export[\t ]+/, Keyword
 
         # assignment
-        rule %r/([\w${}().-]+)([\t ]*)([!?:+]?=)/m do |m|
-          token Name::Variable, m[1]
-          token Text, m[2]
-          token Operator, m[3]
+        rule %r/(override\b)*([\t ]*)([\w${}().-]+)([\t ]*)([!?:+]?=)/m do |m|
+          groups Name::Builtin, Text, Name::Variable, Text, Operator
           push :shell_line
         end
 
@@ -68,10 +61,19 @@
           groups Name::Label, Operator, Text
           push :block_header
         end
+
+        rule %r/(override\b)*([\t ])*(define)([\t ]+)([^#\n]+)/ do
+          groups Name::Builtin, Text, Keyword, Text, Name::Variable
+        end
+
+        rule %r/(\$[({])([\t ]*)(#{Make.functions.join('|')})([\t ]+)/m do
+          groups Name::Function, Text, Name::Builtin, Text
+          push :shell_expr
+        end
       end
 
       state :export do
-        rule %r/[\w\${}()-]/, Name::Variable
+        rule %r/[\w[\$]{1,2}{}()-]/, Name::Variable
         rule %r/\n/, Text, :pop!
         rule %r/[\t ]+/, Text
       end
@@ -107,22 +109,29 @@
 
       state :shell do
         # macro interpolation
-        rule %r/\$[({][\t ]*\w[\w:=%.]*[\t ]*[)}]/i, Name::Variable
+        rule %r/[\$]{1,2}[({]/, Punctuation, :macro_expr
+
         # function invocation
         rule %r/(\$[({])([\t ]*)(#{Make.functions.join('|')})([\t ]+)/m do
-          groups Name::Function, Text, Name::Builtin, Text
+          groups Punctuation, Text, Name::Builtin, Text
           push :shell_expr
         end
 
         rule(/\\./m) { delegate @shell }
-        stop = /\$\(|\$\{|\(|\)|\}|\\|$/
+        stop = /[\$]{1,2}\(|[\$]{1,2}\{|\(|\)|\}|\\|$/
         rule(/.+?(?=#{stop})/m) { delegate @shell }
         rule(stop) { delegate @shell }
       end
 
+      state :macro_expr do
+        rule %r/[)}]/, Punctuation, :pop!
+        rule %r/\n/, Text, :pop!
+        mixin :shell
+      end
+
       state :shell_expr do
         rule(/[({]/) { delegate @shell; push }
-        rule %r/[)}]/, Name::Function, :pop!
+        rule %r/[)}]/, Punctuation, :pop!
         mixin :shell
       end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rouge/lexers/praat.rb 
new/lib/rouge/lexers/praat.rb
--- old/lib/rouge/lexers/praat.rb       2022-07-30 06:58:28.000000000 +0200
+++ new/lib/rouge/lexers/praat.rb       2022-09-07 01:51:26.000000000 +0200
@@ -58,6 +58,16 @@
         linear randomGauss randomInteger randomUniform zero
       )
 
+      functions_matrix = %w(
+        linear mul mul_fast mul_metal mul_nt mul_tn mul_tt outer peaks
+        randomGamma randomGauss randomInteger randomUniform softmaxPerRow
+        solve transpose zero
+      )
+
+      functions_string_vector = %w(
+        empty fileNames folderNames readLinesFromFile splitByWhitespace
+      )
+
       objects = %w(
         Activation AffineTransform AmplitudeTier Art Artword Autosegment
         BarkFilter BarkSpectrogram CCA Categories Cepstrogram Cepstrum
@@ -142,6 +152,7 @@
 
         mixin :variable_name
         mixin :number
+        mixin :vector_literal
 
         rule %r/"/, Literal::String, :string
 
@@ -196,6 +207,8 @@
       state :function_call do
         rule %r/\b(#{functions_string.join('|')})\$(?=\s*[:(])/, 
Name::Function, :function
         rule %r/\b(#{functions_array.join('|')})#(?=\s*[:(])/,   
Name::Function, :function
+        rule %r/\b(#{functions_matrix.join('|')})##(?=\s*[:(])/,   
Name::Function, :function
+        rule %r/\b(#{functions_string_vector.join('|')})\$#(?=\s*[:(])/,   
Name::Function, :function
         rule %r/\b(#{functions_numeric.join('|')})(?=\s*[:(])/,  
Name::Function, :function
       end
 
@@ -214,7 +227,7 @@
           groups Text, Punctuation
         end
 
-        rule %r/\s*[\])\n]/, Text, :pop!
+        rule %r/\s*[\]\})\n]/, Text, :pop!
 
         rule %r/\s+/, Text
         rule %r/"/,   Literal::String, :string
@@ -224,6 +237,7 @@
         mixin :variable_name
         mixin :operator
         mixin :number
+        mixin :vector_literal
 
         rule %r/[()]/, Text
         rule %r/,/, Punctuation
@@ -257,11 +271,15 @@
           push :object_reference
         end
 
-        rule %r/\.?[a-z][a-zA-Z0-9_.]*(\$|#)?/, Text
+        rule %r/\.?[a-z][a-zA-Z0-9_.]*(\$#|##|\$|#)?/, Text
         rule %r/[\[\]]/, Text, :comma_list
         mixin :string_interpolated
       end
 
+      state :vector_literal do
+        rule %r/(\{)/, Text, :comma_list
+      end
+
       state :object_reference do
         mixin :string_interpolated
         rule %r/([a-z][a-zA-Z0-9_]*|\d+)/, Name::Builtin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rouge/lexers/rml.rb new/lib/rouge/lexers/rml.rb
--- old/lib/rouge/lexers/rml.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/rouge/lexers/rml.rb 2022-09-07 01:51:26.000000000 +0200
@@ -0,0 +1,142 @@
+# -*- coding: utf-8 -*- #
+# frozen_string_literal: true
+
+module Rouge
+  module Lexers
+    class RML < RegexLexer
+      title "RML"
+      desc "A system agnostic domain-specific language for runtime monitoring 
and verification (https://rmlatdibris.github.io/)"
+      tag 'rml'
+      filenames '*.rml'
+
+      def self.keywords
+        @keywords ||= Set.new %w(
+          matches not with empty
+          all if else true false
+        )
+      end
+
+      def self.arithmetic_keywords
+        @arithmetic_keywords ||= Set.new %w(
+          abs sin cos tan min max
+        )
+      end
+
+      id_char = /[a-zA-Z0-9_]/
+      uppercase_id = /[A-Z]#{id_char}*/
+      lowercase_id = /[a-z]#{id_char}*/
+
+      ellipsis = /(\.){3}/
+      int = /[0-9]+/
+      float = /#{int}\.#{int}/
+      string = /'(\\'|[ a-zA-Z0-9_.])*'/
+
+      whitespace = /[ \t\r\n]+/
+      comment = /\/\/[^\r\n]*/
+
+      state :common_rules do
+        rule %r/#{whitespace}/, Text
+        rule %r/#{comment}/, Comment::Single
+        rule %r/#{string}/, Literal::String
+        rule %r/#{float}/, Num::Float
+        rule %r/#{int}/, Num::Integer
+      end
+
+      state :root do
+        mixin :common_rules
+        rule %r/(#{lowercase_id})(\()/ do
+          groups Name::Function, Operator
+          push :event_type_params
+        end
+        rule %r/#{lowercase_id}/ do |m|
+          if m[0] == 'with'
+            token Keyword
+            push :data_expression_with
+          elsif self.class.keywords.include? m[0]
+            token Keyword
+          else
+            token Name::Function
+          end
+        end
+        rule %r/\(|\{|\[/, Operator, :event_type_params
+        rule %r/[_\|]/, Operator
+        rule %r/#{uppercase_id}/, Name::Class, :equation_block_expression
+        rule %r/;/, Operator
+      end
+
+      state :event_type_params do
+        mixin :common_rules
+        rule %r/\(|\{|\[/, Operator, :push
+        rule %r/\)|\}|\]/, Operator, :pop!
+        rule %r/#{lowercase_id}(?=:)/, Name::Entity
+        rule %r/(#{lowercase_id})/ do |m|
+          if self.class.keywords.include? m[0]
+            token Keyword
+          else
+            token Literal::String::Regex
+          end
+        end
+        rule %r/#{ellipsis}/, Literal::String::Symbol
+        rule %r/[_\|;,:]/, Operator
+      end
+
+      state :equation_block_expression do
+        mixin :common_rules
+        rule %r/[<,>]/, Operator
+        rule %r/#{lowercase_id}/, Literal::String::Regex
+        rule %r/=/ do
+          token Operator
+          goto :exp
+        end
+        rule %r/;/, Operator, :pop!
+      end
+
+      state :exp do
+        mixin :common_rules
+        rule %r/(if)(\()/ do
+          groups Keyword, Operator
+          push :data_expression
+        end
+        rule %r/let|var/, Keyword, :equation_block_expression
+        rule %r/(#{lowercase_id})(\()/ do
+          groups Name::Function, Operator
+          push :event_type_params
+        end
+        rule %r/(#{lowercase_id})/ do |m|
+          if self.class.keywords.include? m[0]
+            token Keyword
+          else
+            token Name::Function
+          end
+        end
+        rule %r/#{uppercase_id}(?=<)/, Name::Class, :data_expression
+        rule %r/#{uppercase_id}/, Name::Class
+        rule %r/[=(){}*+\/\\\|!>?]/, Operator
+        rule %r/;/, Operator, :pop!
+      end
+
+      state :data_expression do
+        mixin :common_rules
+        rule %r/#{lowercase_id}/ do |m|
+          if (self.class.arithmetic_keywords | self.class.keywords).include? 
m[0]
+            token Keyword
+          else
+            token Literal::String::Regex
+          end
+        end
+        rule %r/\(/, Operator, :push
+        rule %r/\)/, Operator, :pop!
+        rule %r/(>)(?=[^A-Z;]+[A-Z;>])/, Operator, :pop!
+        rule %r/[*^?!%&\[\]<>\|+=:,.\/\\_-]/, Operator
+        rule %r/;/, Operator, :pop!
+      end
+
+      state :data_expression_with do
+        mixin :common_rules
+        rule %r/>/, Operator
+        mixin :data_expression
+
+      end
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rouge/lexers/solidity.rb 
new/lib/rouge/lexers/solidity.rb
--- old/lib/rouge/lexers/solidity.rb    2022-07-30 06:58:28.000000000 +0200
+++ new/lib/rouge/lexers/solidity.rb    1970-01-01 01:00:00.000000000 +0100
@@ -1,185 +0,0 @@
-# -*- coding: utf-8 -*- #
-
-module Rouge
-  module Lexers
-    class Solidity < RegexLexer
-      title "Solidity"
-      desc "Solidity, an Ethereum smart contract programming language"
-      tag 'solidity'
-      filenames '*.sol', '*.solidity'
-      mimetypes 'text/x-solidity'
-
-      # optional comment or whitespace
-      ws = %r((?:\s|//.*?\n|/[*].*?[*]/)+)
-      id = /[a-zA-Z$_][\w$_]*/
-
-      def self.detect?(text)
-        return true if text.start_with? 'pragma solidity'
-      end
-
-      # TODO: seperate by "type"
-      def self.keywords
-        @keywords ||= Set.new %w(
-          abstract anonymous as assembly break catch calldata constant
-          constructor continue contract do delete else emit enum event
-          external fallback for function hex if indexed interface
-          internal import is library mapping memory modifier new
-          override payable public pure pragma private receive return
-          returns storage struct throw try type using var view virtual
-          while
-        )
-      end
-
-      def self.builtins
-        return @builtins if @builtins
-
-        @builtins = Set.new %w(
-          now
-          false true
-          balance now selector super this
-          blockhash gasleft
-          assert require revert
-          selfdestruct suicide
-          call callcode delegatecall
-          send transfer
-          addmod ecrecover keccak256 mulmod sha256 sha3 ripemd160
-        )
-
-        # TODO: use (currently shadowed by catch-all in :statements)
-        abi = %w(decode encode encodePacked encodeWithSelector 
encodeWithSignature)
-        @builtins.merge( abi.map { |i| "abi.#{i}" } )
-        block = %w(coinbase difficulty gaslimit hash number timestamp)
-        @builtins.merge( block.map { |i| "block.#{i}" } )
-        msg = %w(data gas sender sig value)
-        @builtins.merge( msg.map { |i| "msg.#{i}" } )
-        tx = %w(gasprice origin)
-        @builtins.merge( tx.map { |i| "tx.#{i}" } )
-      end
-
-      def self.constants
-        @constants ||= Set.new %w(
-          wei finney szabo ether
-          seconds minutes hours days weeks years
-        )
-      end
-
-      def self.keywords_type
-        @keywords_type ||= Set.new %w(
-          address bool byte bytes int string uint
-        )
-      end
-
-      def self.reserved
-        @reserved ||= Set.new %w(
-          alias after apply auto case copyof default define final fixed
-          immutable implements in inline let macro match mutable null of
-          partial promise reference relocatable sealed sizeof static
-          supports switch typedef typeof ufixed unchecked
-        )
-      end
-
-      start { push :bol }
-
-      state :expr_bol do
-        mixin :inline_whitespace
-
-        rule(//) { pop! }
-      end
-
-      # :expr_bol is the same as :bol but without labels, since
-      # labels can only appear at the beginning of a statement.
-      state :bol do
-        mixin :expr_bol
-      end
-
-      # TODO: natspec in comments
-      state :inline_whitespace do
-        rule %r/[ \t\r]+/, Text
-        rule %r/\\\n/, Text # line continuation
-        rule %r(/\*), Comment::Multiline, :comment_multi
-      end
-
-      state :whitespace do
-        rule %r/\n+/m, Text, :bol
-        rule %r(//(\\.|.)*?\n), Comment::Single, :bol
-        mixin :inline_whitespace
-      end
-
-      state :expr_whitespace do
-        rule %r/\n+/m, Text, :expr_bol
-        mixin :whitespace
-      end
-
-      state :statements do
-        mixin :whitespace
-        rule %r/(hex)?\"/, Str, :string_double
-        rule %r/(hex)?\'/, Str, :string_single
-        rule %r('(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\'\n])')i, Str::Char
-        rule %r/\d\d*\.\d+([eE]\d+)?/i, Num::Float
-        rule %r/0x[0-9a-f]+/i, Num::Hex
-        rule %r/\d+([eE]\d+)?/i, Num::Integer
-        rule %r(\*/), Error
-        rule %r([~!%^&*+=\|?:<>/-]), Operator
-        rule %r/[()\[\],.]/, Punctuation
-        rule %r/u?fixed\d+x\d+/, Keyword::Reserved
-        rule %r/bytes\d+/, Keyword::Type
-        rule %r/u?int\d+/, Keyword::Type
-        rule id do |m|
-          name = m[0]
-
-          if self.class.keywords.include? name
-            token Keyword
-          elsif self.class.builtins.include? name
-            token Name::Builtin
-          elsif self.class.constants.include? name
-            token Keyword::Constant
-          elsif self.class.keywords_type.include? name
-            token Keyword::Type
-          elsif self.class.reserved.include? name
-            token Keyword::Reserved
-          else
-            token Name
-          end
-        end
-      end
-
-      state :root do
-        mixin :expr_whitespace
-        rule(//) { push :statement }
-        # TODO: function declarations
-      end
-
-      state :statement do
-        rule %r/;/, Punctuation, :pop!
-        mixin :expr_whitespace
-        mixin :statements
-        rule %r/[{}]/, Punctuation
-      end
-
-      state :string_common do
-        rule %r/\\(u[a-fA-F0-9]{4}|x..|[^x])/, Str::Escape
-        rule %r/[^\\\"\'\n]+/, Str
-        rule %r/\\\n/, Str # line continuation
-        rule %r/\\/, Str # stray backslash
-      end
-
-      state :string_double do
-        mixin :string_common
-        rule %r/\"/, Str, :pop!
-        rule %r/\'/, Str
-      end
-
-      state :string_single do
-        mixin :string_common
-        rule %r/\'/, Str, :pop!
-        rule %r/\"/, Str
-      end
-
-       state :comment_multi do
-         rule %r(\*/), Comment::Multiline, :pop!
-         rule %r([^*/]+), Comment::Multiline
-         rule %r([*/]), Comment::Multiline
-       end
-    end
-  end
-end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rouge/lexers/toml.rb new/lib/rouge/lexers/toml.rb
--- old/lib/rouge/lexers/toml.rb        2022-07-30 06:58:28.000000000 +0200
+++ new/lib/rouge/lexers/toml.rb        2022-09-07 01:51:26.000000000 +0200
@@ -5,10 +5,10 @@
   module Lexers
     class TOML < RegexLexer
       title "TOML"
-      desc 'the TOML configuration format (https://github.com/mojombo/toml)'
+      desc 'the TOML configuration format (https://github.com/toml-lang/toml)'
       tag 'toml'
 
-      filenames '*.toml', 'Pipfile'
+      filenames '*.toml', 'Pipfile', 'poetry.lock'
       mimetypes 'text/x-toml'
 
       # bare keys and quoted keys
@@ -24,8 +24,6 @@
           push :inline
         end
 
-        rule %r/(?<!=)\s*\[[\S]+\]/, Name::Namespace
-
         rule %r/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/, Literal::Date
 
         rule %r/[+-]?\d+(?:_\d+)*\.\d+(?:_\d+)*(?:[eE][+-]?\d+(?:_\d+)*)?/, 
Num::Float
@@ -41,6 +39,8 @@
       state :root do
         mixin :basic
 
+        rule %r/(?<!=)\s*\[.*?\]+/, Name::Namespace
+
         rule %r/(#{identifier})(\s*)(=)/ do
           groups Name::Property, Text, Punctuation
           push :value
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rouge/lexers/tsx.rb new/lib/rouge/lexers/tsx.rb
--- old/lib/rouge/lexers/tsx.rb 2022-07-30 06:58:28.000000000 +0200
+++ new/lib/rouge/lexers/tsx.rb 2022-09-07 01:51:26.000000000 +0200
@@ -20,6 +20,13 @@
           groups Name::Other, Punctuation
           pop! 3
         end
+
+        rule %r/</, Punctuation, :type
+      end
+
+      state :type do
+        mixin :object
+        rule %r/>/, Punctuation, :pop!
       end
     end
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rouge/lexers/typescript/common.rb 
new/lib/rouge/lexers/typescript/common.rb
--- old/lib/rouge/lexers/typescript/common.rb   2022-07-30 06:58:28.000000000 
+0200
+++ new/lib/rouge/lexers/typescript/common.rb   2022-09-07 01:51:26.000000000 
+0200
@@ -26,7 +26,10 @@
 
       def builtins
         @builtins ||= super + %w(
-          Pick Partial Readonly Record
+          Capitalize ConstructorParameters Exclude Extract InstanceType
+          Lowercase NonNullable Omit OmitThisParameter Parameters
+          Partial Pick Readonly Record Required
+          ReturnType ThisParameterType ThisType Uncapitalize Uppercase
         )
       end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rouge/version.rb new/lib/rouge/version.rb
--- old/lib/rouge/version.rb    2022-07-30 06:58:28.000000000 +0200
+++ new/lib/rouge/version.rb    2022-09-07 01:51:26.000000000 +0200
@@ -3,6 +3,6 @@
 
 module Rouge
   def self.version
-    "3.30.0"
+    "4.0.0"
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2022-07-30 06:58:28.000000000 +0200
+++ new/metadata        2022-09-07 01:51:26.000000000 +0200
@@ -1,14 +1,14 @@
 --- !ruby/object:Gem::Specification
 name: rouge
 version: !ruby/object:Gem::Version
-  version: 3.30.0
+  version: 4.0.0
 platform: ruby
 authors:
 - Jeanine Adkisson
 autorequire:
 bindir: bin
 cert_chain: []
-date: 2022-07-30 00:00:00.000000000 Z
+date: 2022-09-06 00:00:00.000000000 Z
 dependencies: []
 description: Rouge aims to a be a simple, easy-to-extend drop-in replacement 
for pygments.
 email:
@@ -185,6 +185,7 @@
 - lib/rouge/demos/reasonml
 - lib/rouge/demos/rego
 - lib/rouge/demos/rescript
+- lib/rouge/demos/rml
 - lib/rouge/demos/robot_framework
 - lib/rouge/demos/ruby
 - lib/rouge/demos/rust
@@ -201,7 +202,6 @@
 - lib/rouge/demos/smalltalk
 - lib/rouge/demos/smarty
 - lib/rouge/demos/sml
-- lib/rouge/demos/solidity
 - lib/rouge/demos/sparql
 - lib/rouge/demos/sqf
 - lib/rouge/demos/sql
@@ -435,6 +435,7 @@
 - lib/rouge/lexers/reasonml.rb
 - lib/rouge/lexers/rego.rb
 - lib/rouge/lexers/rescript.rb
+- lib/rouge/lexers/rml.rb
 - lib/rouge/lexers/robot_framework.rb
 - lib/rouge/lexers/ruby.rb
 - lib/rouge/lexers/rust.rb
@@ -452,7 +453,6 @@
 - lib/rouge/lexers/smalltalk.rb
 - lib/rouge/lexers/smarty.rb
 - lib/rouge/lexers/sml.rb
-- lib/rouge/lexers/solidity.rb
 - lib/rouge/lexers/sparql.rb
 - lib/rouge/lexers/sqf.rb
 - lib/rouge/lexers/sqf/keywords.rb
@@ -534,7 +534,7 @@
   requirements:
   - - ">="
     - !ruby/object:Gem::Version
-      version: '2.0'
+      version: '2.7'
 required_rubygems_version: !ruby/object:Gem::Requirement
   requirements:
   - - ">="
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rouge.gemspec new/rouge.gemspec
--- old/rouge.gemspec   2022-07-30 06:58:28.000000000 +0200
+++ new/rouge.gemspec   2022-09-07 01:51:26.000000000 +0200
@@ -16,7 +16,7 @@
   s.files = Dir['Gemfile', 'LICENSE', 'rouge.gemspec', 'lib/**/*.rb', 
'lib/**/*.yml', 'bin/rougify', 'lib/rouge/demos/*']
   s.executables = %w(rougify)
   s.licenses = ['MIT', 'BSD-2-Clause']
-  s.required_ruby_version = '>= 2.0'
+  s.required_ruby_version = '>= 2.7'
   s.metadata = {
     "bug_tracker_uri"   => "https://github.com/rouge-ruby/rouge/issues";,
     "changelog_uri"     => 
"https://github.com/rouge-ruby/rouge/blob/master/CHANGELOG.md";,

Reply via email to