module Byebug::FrameFunctions

def get_frame_call(prefix, pos, context)

def get_frame_call(prefix, pos, context)
  id = context.frame_method(pos)
  klass = context.frame_class(pos)
  call_str = ""
  if id
    args = context.frame_args(pos)
    locals = context.frame_locals(pos)
    if Command.settings[:callstyle] != :short && klass
      if Command.settings[:callstyle] == :tracked
        arg_info = context.frame_args_info(pos)
      end
      call_str << "#{klass}."
    end
    call_str << id.id2name
    if args.any?
      call_str << "("
      args.each_with_index do |name, i|
        case Command.settings[:callstyle]
        when :short
          call_str += "%s, " % [name]
        when :last
          klass = locals[name].class
          if klass.inspect.size > 20+3
            klass = klass.inspect[0..20]+"..."
          end
          call_str += "%s#%s, " % [name, klass]
        when :tracked
          if arg_info && arg_info.size > i
            call_str += "#{name}: #{arg_info[i].inspect}, "
          else
            call_str += "%s, " % name
          end
        end
        if call_str.size > self.class.settings[:width] - prefix.size
          # Strip off trailing ', ' if any but add stuff for later trunc
          call_str[-2..-1] = ",...XX"
          break
        end
      end
      call_str[-2..-1] = ")" # Strip off trailing ', ' if any
    end
  end
  return call_str
end