module Pry::Helpers::BaseHelpers

def colorize_code(code)

def colorize_code(code)
  SyntaxHighlighter.highlight(code)
end

def find_command(name, set = Pry::Commands)

def find_command(name, set = Pry::Commands)
  command_match = set.find do |_, command|
    (listing = command.options[:listing]) == name && !listing.nil?
  end
  command_match.last if command_match
end

def heading(text)

formatting
def heading(text)
  text = "#{text}\n--"
  "\e[1m#{text}\e[0m"
end

def highlight(string, regexp, highlight_color = :bright_yellow)

def highlight(string, regexp, highlight_color = :bright_yellow)
  string.gsub(regexp) do |match|
    "<#{highlight_color}>#{match}</#{highlight_color}>"
  end
end

def not_a_real_file?(file)

def not_a_real_file?(file)
  file =~ /^(\(.*\))$|^<.*>$/ || file =~ /__unknown__/ || file == "" || file == "-e"
end

def safe_send(obj, method, *args, &block)

have overridden the `method` method.
This is required to introspect methods on objects like Net::HTTP::Get that
inheritance hierarchy.
Acts like send but ignores any methods defined below Object or Class in the
def safe_send(obj, method, *args, &block)
  (obj.is_a?(Module) ? Module : Object).instance_method(method)
    .bind(obj).call(*args, &block)
end

def silence_warnings

def silence_warnings
  old_verbose = $VERBOSE
  $VERBOSE = nil
  begin
    yield
  ensure
    $VERBOSE = old_verbose
  end
end

def stagger_output(text, _out = nil)

DEPRECATED.
enabled). Infers where to send the output if used as a mixin.
Send the given text through the best available pager (if Pry.config.pager is
def stagger_output(text, _out = nil)
  if defined?(pry_instance) && pry_instance
    pry_instance.pager.page text
  else
    Pry.new.pager.page text
  end
end

def use_ansi_codes?

def use_ansi_codes?
  Pry::Helpers::Platform.windows_ansi? ||
    ((term = Pry::Env['TERM']) && term != "dumb")
end