rouge-ruby/rouge · error · Guesser::Ambiguous

Ambiguous guess: can't decide between #{alternatives.map(&:t

Error message

Ambiguous guess: can't decide between #{alternatives.map(&:tag).inspect}

What it means

Error "Ambiguous guess: can't decide between #{alternatives.map(&:tag).inspect}" thrown in rouge-ruby/rouge.

Source

Thrown at lib/rouge/lexer.rb:188

      #   The source itself, which, if guessing by mimetype or filename
      #   fails, will be searched for shebangs, <!DOCTYPE ...> tags, and
      #   other hints.
      # @param [Proc] fallback called if multiple lexers are detected.
      #   If omitted, Guesser::Ambiguous is raised.
      #
      # @see Lexer.detect?
      # @see Lexer.guesses
      # @return [Class<Rouge::Lexer>]
      def guess(info={}, &fallback)
        lexers = guesses(info)

        return Lexers::PlainText if lexers.empty?
        return lexers[0] if lexers.size == 1

        if fallback
          yield(lexers)
        else
          raise Guesser::Ambiguous.new(lexers)
        end
      end

      def guess_by_mimetype(mt)
        guess :mimetype => mt
      end

      def guess_by_filename(fname)
        guess :filename => fname
      end

      def guess_by_source(source)
        guess :source => source
      end

      def enable_debug!
        @debug_enabled = true
      end

View on GitHub (pinned to bd7dad7b09)

When it happens

Trigger: Thrown at lib/rouge/lexer.rb:188 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/da72822fe776d6c0. Report an issue: GitHub.