lib/ruby-debug-ide/commands/enable.rb in ruby-debug-ide22-0.7.4 vs lib/ruby-debug-ide/commands/enable.rb in ruby-debug-ide22-0.7.5

- old
+ new

@@ -1,203 +1,203 @@ -module Debugger - # Mix-in module to assist in command parsing. - module EnableDisableFunctions # :nodoc: - def enable_disable_breakpoints(is_enable, args) - breakpoints = Debugger.breakpoints.sort_by{|b| b.id } - largest = breakpoints.inject(0) do |largest_so_far, b| - b.id if b.id > largest_so_far - end - if 0 == largest - errmsg "No breakpoints have been set.\n" - return - end - args.each do |pos| - pos = get_int(pos, "#{is_enable} breakpoints", 1, largest) - return nil unless pos - breakpoints.each do |b| - if b.id == pos - enabled = ("Enable" == is_enable) - if enabled - unless syntax_valid?(b.expr) - errmsg("Expression \"#{b.expr}\" syntactically incorrect; breakpoint remains disabled.\n") - break - end - end - b.enabled = enabled - enabled ? print_breakpoint_enabled(b) : print_breakpoint_disabled(b) - break - end - end - end - end - - def enable_disable_display(is_enable, args) - if 0 == @state.display.size - errmsg "No display expressions have been set.\n" - return - end - args.each do |pos| - pos = get_int(pos, "#{is_enable} display", 1, @state.display.size) - return nil unless pos - @state.display[pos-1][0] = ("Enable" == is_enable) - end - end - - end - - class EnableCommand < Command # :nodoc: - Subcommands = - [ - ['breakpoints', 2, "Enable specified breakpoints", -"Give breakpoint numbers (separated by spaces) as arguments. -This is used to cancel the effect of the \"disable\" command." - ], - ['display', 2, - "Enable some expressions to be displayed when program stops", -"Arguments are the code numbers of the expressions to resume displaying. -Do \"info display\" to see current list of code numbers."], - ].map do |name, min, short_help, long_help| - SubcmdStruct.new(name, min, short_help, long_help) - end unless defined?(Subcommands) - - def regexp - /^\s* en(?:able)? (?:\s+(.*))?$/ix - end - - def execute - if not @match[1] - errmsg "\"enable\" must be followed \"display\", \"breakpoints\"" + - " or breakpoint numbers.\n" - else - args = @match[1].split(/[ \t]+/) - param = args.shift - subcmd = find(Subcommands, param) - if subcmd - send("enable_#{subcmd.name}", args) - else - send("enable_breakpoints", args.unshift(param)) - end - end - end - - def enable_breakpoints(args) - enable_disable_breakpoints("Enable", args) - end - - def enable_display(args) - enable_disable_display("Enable", args) - end - - class << self - def help_command - 'enable' - end - - def help(args) - if args[1] - s = args[1] - subcmd = Subcommands.find do |try_subcmd| - (s.size >= try_subcmd.min) and - (try_subcmd.name[0..s.size-1] == s) - end - if subcmd - str = subcmd.short_help + '.' - str += "\n" + subcmd.long_help if subcmd.long_help - return str - else - return "Invalid 'enable' subcommand '#{args[1]}'." - end - end - s = %{ - Enable some things. - This is used to cancel the effect of the "disable" command. - -- - List of enable subcommands: - -- - } - for subcmd in Subcommands do - s += "enable #{subcmd.name} -- #{subcmd.short_help}\n" - end - return s - end - end - end - - class DisableCommand < Command # :nodoc: - Subcommands = - [ - ['breakpoints', 1, "Disable some breakpoints", -"Arguments are breakpoint numbers with spaces in between. -A disabled breakpoint is not forgotten, but has no effect until reenabled."], - ['display', 1, "Disable some display expressions when program stops", -"Arguments are the code numbers of the expressions to stop displaying. -Do \"info display\" to see current list of code numbers."], - ].map do |name, min, short_help, long_help| - SubcmdStruct.new(name, min, short_help, long_help) - end unless defined?(Subcommands) - - def regexp - /^\s* dis(?:able)? (?:\s+(.*))?$/ix - end - - def execute - if not @match[1] - errmsg "\"disable\" must be followed \"display\", \"breakpoints\"" + - " or breakpoint numbers.\n" - else - args = @match[1].split(/[ \t]+/) - param = args.shift - subcmd = find(Subcommands, param) - if subcmd - send("disable_#{subcmd.name}", args) - else - send("disable_breakpoints", args.unshift(param)) - end - end - end - - def disable_breakpoints(args) - enable_disable_breakpoints("Disable", args) - end - - def disable_display(args) - enable_disable_display("Disable", args) - end - - class << self - def help_command - 'disable' - end - - def help(args) - if args[1] - s = args[1] - subcmd = Subcommands.find do |try_subcmd| - (s.size >= try_subcmd.min) and - (try_subcmd.name[0..s.size-1] == s) - end - if subcmd - str = subcmd.short_help + '.' - str += "\n" + subcmd.long_help if subcmd.long_help - return str - else - return "Invalid 'disable' subcommand '#{args[1]}'." - end - end - s = %{ - Disable some things. - - A disabled item is not forgotten, but has no effect until reenabled. - Use the "enable" command to have it take effect again. - -- - List of disable subcommands: - -- - } - for subcmd in Subcommands do - s += "disable #{subcmd.name} -- #{subcmd.short_help}\n" - end - return s - end - end - end - -end # module Debugger +module Debugger + # Mix-in module to assist in command parsing. + module EnableDisableFunctions # :nodoc: + def enable_disable_breakpoints(is_enable, args) + breakpoints = Debugger.breakpoints.sort_by{|b| b.id } + largest = breakpoints.inject(0) do |largest_so_far, b| + b.id if b.id > largest_so_far + end + if 0 == largest + errmsg "No breakpoints have been set.\n" + return + end + args.each do |pos| + pos = get_int(pos, "#{is_enable} breakpoints", 1, largest) + return nil unless pos + breakpoints.each do |b| + if b.id == pos + enabled = ("Enable" == is_enable) + if enabled + unless syntax_valid?(b.expr) + errmsg("Expression \"#{b.expr}\" syntactically incorrect; breakpoint remains disabled.\n") + break + end + end + b.enabled = enabled + enabled ? print_breakpoint_enabled(b) : print_breakpoint_disabled(b) + break + end + end + end + end + + def enable_disable_display(is_enable, args) + if 0 == @state.display.size + errmsg "No display expressions have been set.\n" + return + end + args.each do |pos| + pos = get_int(pos, "#{is_enable} display", 1, @state.display.size) + return nil unless pos + @state.display[pos-1][0] = ("Enable" == is_enable) + end + end + + end + + class EnableCommand < Command # :nodoc: + Subcommands = + [ + ['breakpoints', 2, "Enable specified breakpoints", +"Give breakpoint numbers (separated by spaces) as arguments. +This is used to cancel the effect of the \"disable\" command." + ], + ['display', 2, + "Enable some expressions to be displayed when program stops", +"Arguments are the code numbers of the expressions to resume displaying. +Do \"info display\" to see current list of code numbers."], + ].map do |name, min, short_help, long_help| + SubcmdStruct.new(name, min, short_help, long_help) + end unless defined?(Subcommands) + + def regexp + /^\s* en(?:able)? (?:\s+(.*))?$/ix + end + + def execute + if not @match[1] + errmsg "\"enable\" must be followed \"display\", \"breakpoints\"" + + " or breakpoint numbers.\n" + else + args = @match[1].split(/[ \t]+/) + param = args.shift + subcmd = find(Subcommands, param) + if subcmd + send("enable_#{subcmd.name}", args) + else + send("enable_breakpoints", args.unshift(param)) + end + end + end + + def enable_breakpoints(args) + enable_disable_breakpoints("Enable", args) + end + + def enable_display(args) + enable_disable_display("Enable", args) + end + + class << self + def help_command + 'enable' + end + + def help(args) + if args[1] + s = args[1] + subcmd = Subcommands.find do |try_subcmd| + (s.size >= try_subcmd.min) and + (try_subcmd.name[0..s.size-1] == s) + end + if subcmd + str = subcmd.short_help + '.' + str += "\n" + subcmd.long_help if subcmd.long_help + return str + else + return "Invalid 'enable' subcommand '#{args[1]}'." + end + end + s = %{ + Enable some things. + This is used to cancel the effect of the "disable" command. + -- + List of enable subcommands: + -- + } + for subcmd in Subcommands do + s += "enable #{subcmd.name} -- #{subcmd.short_help}\n" + end + return s + end + end + end + + class DisableCommand < Command # :nodoc: + Subcommands = + [ + ['breakpoints', 1, "Disable some breakpoints", +"Arguments are breakpoint numbers with spaces in between. +A disabled breakpoint is not forgotten, but has no effect until reenabled."], + ['display', 1, "Disable some display expressions when program stops", +"Arguments are the code numbers of the expressions to stop displaying. +Do \"info display\" to see current list of code numbers."], + ].map do |name, min, short_help, long_help| + SubcmdStruct.new(name, min, short_help, long_help) + end unless defined?(Subcommands) + + def regexp + /^\s* dis(?:able)? (?:\s+(.*))?$/ix + end + + def execute + if not @match[1] + errmsg "\"disable\" must be followed \"display\", \"breakpoints\"" + + " or breakpoint numbers.\n" + else + args = @match[1].split(/[ \t]+/) + param = args.shift + subcmd = find(Subcommands, param) + if subcmd + send("disable_#{subcmd.name}", args) + else + send("disable_breakpoints", args.unshift(param)) + end + end + end + + def disable_breakpoints(args) + enable_disable_breakpoints("Disable", args) + end + + def disable_display(args) + enable_disable_display("Disable", args) + end + + class << self + def help_command + 'disable' + end + + def help(args) + if args[1] + s = args[1] + subcmd = Subcommands.find do |try_subcmd| + (s.size >= try_subcmd.min) and + (try_subcmd.name[0..s.size-1] == s) + end + if subcmd + str = subcmd.short_help + '.' + str += "\n" + subcmd.long_help if subcmd.long_help + return str + else + return "Invalid 'disable' subcommand '#{args[1]}'." + end + end + s = %{ + Disable some things. + + A disabled item is not forgotten, but has no effect until reenabled. + Use the "enable" command to have it take effect again. + -- + List of disable subcommands: + -- + } + for subcmd in Subcommands do + s += "disable #{subcmd.name} -- #{subcmd.short_help}\n" + end + return s + end + end + end + +end # module Debugger