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