lib/byebug/commands/display.rb in byebug-3.5.1 vs lib/byebug/commands/display.rb in byebug-4.0.0

- old
+ new

@@ -1,28 +1,9 @@ +require 'byebug/command' + module Byebug # - # Custom display utilities. - # - module DisplayFunctions - def display_expression(exp) - "#{exp} = #{bb_warning_eval(exp).inspect}" - end - - def active_display_expressions? - @state.display.select { |d| d[0] }.size > 0 - end - - def print_display_expressions - n = 1 - @state.display.each do |d| - puts "#{n}: #{display_expression(d[1])}" if d[0] - n += 1 - end - end - end - - # # Implements the functionality of adding custom expressions to be displayed # every time the debugger stops. # class AddDisplayCommand < Command self.allow_in_post_mortem = false @@ -32,24 +13,35 @@ end def execute exp = @match[1] @state.display.push [true, exp] - puts "#{@state.display.size}: #{display_expression(exp)}" + display_expression(exp) end class << self def names %w(display) end def description - %(disp[lay] <expression> + prettify <<-EOD + disp[lay] <expression> - Add <expression> into display expression list.) + Add <expression> into display expression list. + EOD end end + + private + + def display_expression(exp) + print pr('display.result', + n: @state.display.size, + exp: exp, + result: bb_warning_eval(exp).inspect) + end end # # Displays the value of enabled expressions. # @@ -72,10 +64,26 @@ def names %w(display) end def description - %(disp[lay] Display expression list.) + prettify <<-EOD + disp[lay] Display expression list. + EOD end + end + + private + + def print_display_expressions + result = prc('display.result', @state.display) do |item, index| + is_active, expression = item + if is_active + { n: index + 1, + exp: expression, + result: bb_warning_eval(expression).inspect } + end + end + print result end end end