byebug
byebug copied to clipboard
Add ignore_empty_commands setting.
Add ignore_empty_commands
boolean setting. It defaults to false, which causes an empty command to repeat the last command (the current behavior). If true, an empty command is a no-op.
My implementation differs from what I suggested in issue #700 because it seemed more self-documenting as a boolean setting. Also if I used an enum setting instead, I doubt a third value would ever be added, so the flexibility of an enum would provide no benefit. But I am happy to switch it back to the enum setting that I initially proposed if that is what you prefer!
Fixes #700
Demo
When the setting is false
$ cat ~/.byebugrc
set histfile /home/gabrielx/byebug.history
#set ignore_empty_commands true
$
$ bundle exec ./test.rb
[3, 12] in /home/gabrielx/projects/byebug/test.rb
3:
4: require 'byebug'
5:
6: debugger
7:
=> 8: sleep 2.1
9: debugger
10:
11: sleep 2.2
12: debugger
(byebug) c
[3, 12] in /home/gabrielx/projects/byebug/test.rb
3:
4: require 'byebug'
5:
6: debugger
7:
8: sleep 2.1
9: debugger
10:
=> 11: sleep 2.2
12: debugger
(byebug)
[21, 30] in /home/gabrielx/.rvm/gems/ruby-2.5.3/gems/bundler-2.2.0.rc.2/lib/bundler/cli.rb
21: }.freeze
22:
23: def self.start(*)
24: super
25: ensure
=> 26: Bundler::SharedHelpers.print_major_deprecations!
27: end
28:
29: def self.dispatch(*)
30: super do |i|
(byebug)
$
When the setting is true
$ cat ~/.byebugrc
set histfile /home/gabrielx/byebug.history
set ignore_empty_commands true
$
$ bundle exec ./test.rb
[3, 12] in /home/gabrielx/projects/byebug/test.rb
3:
4: require 'byebug'
5:
6: debugger
7:
=> 8: sleep 2.1
9: debugger
10:
11: sleep 2.2
12: debugger
(byebug) c
[3, 12] in /home/gabrielx/projects/byebug/test.rb
3:
4: require 'byebug'
5:
6: debugger
7:
8: sleep 2.1
9: debugger
10:
=> 11: sleep 2.2
12: debugger
(byebug)
(byebug)
(byebug) c
[21, 30] in /home/gabrielx/.rvm/gems/ruby-2.5.3/gems/bundler-2.2.0.rc.2/lib/bundler/cli.rb
21: }.freeze
22:
23: def self.start(*)
24: super
25: ensure
=> 26: Bundler::SharedHelpers.print_major_deprecations!
27: end
28:
29: def self.dispatch(*)
30: super do |i|
(byebug)
(byebug)
(byebug) c
$