class PryNav::Tracer

def run

def run
  # For performance, disable any tracers while in the console.
  stop
  return_value = nil
  command = catch(:breakout_nav) do      # Coordinates with PryNav::Commands
    return_value = yield
    {}    # Nothing thrown == no navigational command
  end
  # Adjust tracer based on command
  if process_command(command)
    start
  else
    if @pry_start_options[:pry_remote] && PryNav.current_remote_server
      PryNav.current_remote_server.teardown
    end
  end
  return_value
end