rouge-ruby/rouge · error · InvalidKeywordSet

#{@context}: Invalid keyword set: Keys must be an instance o

Error message

#{@context}: Invalid keyword set: Keys must be an instance of Set.

What it means

Error "#{@context}: Invalid keyword set: Keys must be an instance of Set." thrown in rouge-ruby/rouge.

Source

Thrown at lib/rouge/regex_lexer.rb:174

          @covering_regex = covering_regex
          @transform = nil
          @default = nil
          @group = 0
          @sets = []
          instance_eval(&defn)
        end

        def transform(&b)
          @mapper = b
        end

        def group(g)
          @group = g
        end

        def rule(keyword_set, *args, &action)
          unless keyword_set.is_a?(Set) || keyword_set.is_a?(Symbol)
            raise InvalidKeywordSet.new(@lexer_class)
          end

          raise InvalidRule if action && args.any?
          action ||= Rule.make_action(@covering_regex, *args)

          @sets << [keyword_set, action]
        end

        def default(*args, &block)
          @default = block || Rule.make_action(@covering_regex, *args)
        end

        def to_proc
          mapper = @mapper
          sets = @sets
          default = @default
          group = @group

View on GitHub (pinned to bd7dad7b09)

When it happens

Trigger: Thrown at lib/rouge/regex_lexer.rb:174 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of rouge-ruby/rouge@bd7dad7b09 (2026-08-23). Data as JSON: /api/errors/1ed6bb79e81616c0. Report an issue: GitHub.