# File lib/pry/default_commands/introspection.rb, line 185
        def process_remote_edit
          if opts.present?(:ex)
            if _pry_.last_exception.nil?
              raise CommandError, "No exception found."
            end

            ex = _pry_.last_exception
            bt_index = opts[:ex].to_i

            ex_file, ex_line = ex.bt_source_location_for(bt_index)
            if ex_file && RbxPath.is_core_path?(ex_file)
              file_name = RbxPath.convert_path_to_full(ex_file)
            else
              file_name = ex_file
            end

            line = ex_line

            if file_name.nil?
              raise CommandError, "Exception has no associated file."
            end

            if Pry.eval_path == file_name
              raise CommandError, "Cannot edit exceptions raised in REPL."
            end
          elsif opts.present?(:current)
            file_name = target.eval("__FILE__")
            line = target.eval("__LINE__")
          else

            # break up into file:line
            file_name = File.expand_path(args.first)
            line = file_name.sub!(/:(\d+)$/, "") ? $1.to_i : 1
          end

          if not_a_real_file?(file_name)
            raise CommandError, "#{file_name} is not a valid file name, cannot edit!"
          end

          line = opts[:l].to_i if opts.present?(:line)

          invoke_editor(file_name, line)
          set_file_and_dir_locals(file_name)

          if opts.present?(:reload) || ((opts.present?(:ex) || file_name.end_with?(".rb")) && !opts.present?('no-reload''no-reload')) && !Pry.config.disable_auto_reload
            silence_warnings do
              TOPLEVEL_BINDING.eval(File.read(file_name), file_name)
            end
          end
        end