Module: Debugger::ShowFunctions

Defined in:
lib/ruby-debug/commands/show.rb

Overview

Mix-in module to showing settings

Instance Method Summary collapse

Instance Method Details

#show_setting(setting_name) ⇒ Object

:nodoc:



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/ruby-debug/commands/show.rb', line 4

def show_setting(setting_name)
  case setting_name
  when /^annotate$/
    Debugger.annotate ||= 0
    return pr("show.messages.annotation", level: Debugger.annotate)
  when /^args$/
    if Command.settings[:argv] and Command.settings[:argv].size > 0
      if defined?(Debugger::RDEBUG_SCRIPT)
        # rdebug was called initially. 1st arg is script name.
        args = Command.settings[:argv][1..-1].join(' ')
      else
        # rdebug wasn't called initially. 1st arg is not script name.
        args = Command.settings[:argv].join(' ')
      end
    else
      args = ''
    end
    return pr("show.messages.args", args: args)
  when /^autolist$/
    on_off = Command.settings[:autolist] > 0
    return pr("show.messages.general", setting: "autolist", status: show_onoff(on_off))
  when /^autoeval$/
    on_off = Command.settings[:autoeval]
    return pr("show.messages.general", setting: "autoeval", status: show_onoff(on_off))
  when /^autoreload$/
    on_off = Command.settings[:reload_source_on_change]
    return pr("show.messages.general", setting: "autoreload", status: show_onoff(on_off))
  when /^autoirb$/
    on_off = Command.settings[:autoirb] > 0
    return pr("show.messages.general", setting: "autoirb", status: show_onoff(on_off))
  when /^basename$/
    on_off = Command.settings[:basename]
    return pr("show.messages.general", setting: "basename", status: show_onoff(on_off))
  when /^callstyle$/
    style = Command.settings[:callstyle]
    return pr("show.messages.call_style", style: style)
  when /^commands(:?\s+(\d+))?$/
    if @state.interface.readline_support?
      s = '';
      args = @match[1].split
      if args[1]
        first_line = args[1].to_i - 4
        last_line  = first_line + 10 - 1
        if first_line > Readline::HISTORY.length
          first_line = last_line = Readline::HISTORY.length
        elsif first_line <= 0
          first_line = 1
        end
        if last_line > Readline::HISTORY.length
          last_line = Readline::HISTORY.length
        end
        i = first_line
        commands = Readline::HISTORY.to_a[first_line..last_line]
      else
        if Readline::HISTORY.length > 10
          commands = Readline::HISTORY.to_a[-10..-1]
          i = Readline::HISTORY.length - 10
        else
          commands = Readline::HISTORY.to_a
          i = 1
        end
      end
      commands.each do |cmd|
        s += ("%5d  %s\n" % [i, cmd])
        i += 1
      end
    else
      s = pr("show.errors.no_readline")
    end
    return s
  when /^debuggertesting$/
    on_off = Command.settings[:debuggertesting]
    return pr("show.messages.debuggertesting", status: show_onoff(on_off))
  when /^forcestep$/
    on_off = self.class.settings[:force_stepping]
    return pr("show.messages.general", setting: "force-stepping", status: show_onoff(on_off))
  when /^fullpath$/
    on_off = Command.settings[:full_path]
    return pr("show.messages.fullpath", status: show_onoff(on_off))
  when /^history(:?\s+(filename|save|size))?$/
    args = @match[1].split
    interface = @state.interface
    if args[1] 
      show_save = show_size = show_filename = false
      prefix = false
      if args[1] == "save"
        show_save = true
      elsif args[1] == "size"
        show_size = true
      elsif args[1] == "filename"
        show_filename = true
      end
    else
      show_save = show_size = show_filename = true
      prefix = true
    end
    s = []
    if show_filename
      s << pr("show.messages.history.filename", prefix: ("filename: " if prefix), filename: interface.histfile)
    end
    if show_save
      s << pr("show.messages.history.save", prefix: ("save: " if prefix), status: show_onoff(interface.history_save))
    end
    if show_size
      s << pr("show.messages.history.size", prefix: ("size: " if prefix), size: interface.history_length)
    end
    return s.join("")
  when /^linetrace$/
    on_off = Debugger.tracing
    return pr("show.messages.general", setting: "line tracing", status: show_onoff(on_off))
  when /^linetrace\+$/
    on_off = Command.settings[:tracing_plus]
    return pr("show.messages.tracing_plus.#{on_off ? "on" : "off"}")
  when /^listsize$/
    listlines = Command.settings[:listsize]
    return pr("show.messages.listsize", size: listlines)
  when /^port$/
    return pr("show.messages.port", port: Debugger::PORT)
  when /^trace$/
    on_off = Command.settings[:stack_trace_on_error]
    return pr("show.messages.general", setting: "Displaying stack trace", status: show_onoff(on_off))
  when /^version$/
    return pr("show.messages.version", version: Debugger::VERSION)
  when /^width$/
    return pr("show.messages.general", setting: "width", status: self.class.settings[:width])
  else
    return pr("show.errors.unknown_subcommand", name: setting_name)
  end
end