class DEBUGGER__::ThreadClient

def default_frame_formatter frame

def default_frame_formatter frame
  call_identifier_str =
    case frame.frame_type
    when :block
      level, block_loc = frame.block_identifier
      args = frame.parameters_info
      if !args.empty?
        args_str = " {|#{assemble_arguments(args)}|}"
      end
      "#{colorize_blue("block")}#{args_str} in #{colorize_blue(block_loc + level)}"
    when :method
      ci = frame.method_identifier
      args = frame.parameters_info
      if !args.empty?
        args_str = "(#{assemble_arguments(args)})"
      end
      "#{colorize_blue(ci)}#{args_str}"
    when :c
      colorize_blue(frame.c_identifier)
    when :other
      colorize_blue(frame.other_identifier)
    end
  location_str = colorize(frame.location_str, [:GREEN])
  result = "#{call_identifier_str} at #{location_str}"
  if return_str = frame.return_str
    result += " #=> #{colorize_magenta(return_str)}"
  end
  result
end