class Byebug::SkipCommand
long as it is different from the current one
Allows the user to continue execution until the next breakpoint, as
def self.description
def self.description <<-DESCRIPTION sk[ip] #{short_description} DESCRIPTION end
def self.regexp
def self.regexp /^\s* sk(?:ip)? \s*$/x end
def self.short_description
def self.short_description "Runs until the next breakpoint as long as it is different from the current one" end
def auto_run
def auto_run return false unless self.class.always_run == 2 keep_execution ? processor.proceed! : reset_attributes true end
def execute
def execute return if auto_run initialize_attributes processor.proceed! Byebug.stop if Byebug.stoppable? end
def file_line
def file_line @file_line ||= 0 end
def file_path
def file_path @file_path ||= "" end
def initialize_attributes
def initialize_attributes self.class.always_run = 2 self.class.setup_autolist(0) self.class.file_path = frame.file self.class.file_line = frame.line end
def keep_execution
def keep_execution [self.class.file_path, self.class.file_line] == [frame.file, frame.line] end
def reset_attributes
def reset_attributes self.class.always_run = 0 ListCommand.new(processor).execute if self.class.previous_autolist == 1 self.class.restore_autolist end
def restore_autolist
def restore_autolist ListCommand.always_run = @previous_autolist @previous_autolist = nil end
def setup_autolist(value)
def setup_autolist(value) @previous_autolist = ListCommand.always_run ListCommand.always_run = value end