Feat/Bug: Set the value of `_` (underscore) to the value of the last ruby expression
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 42/100
Hướng nghiên cứu
Start with the irb_integration.rb entry point named in the trace and reproduce the supplied IRB session while comparing normal and debug modes. Done means _ continues to hold the last Ruby expression's value after entering debug mode, without debug commands or errors replacing it.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Your proposal
Pry and IRB have a feature in which _ is always set the the value of the last expression. While I realize it may not make sense to do this with debug commands, it would be nice if the feature was there at least for Ruby expressions. The current behavior seems to be setting _ to the last error, but seemingly only for debug commands like ls. This is kind of a bug in the irb_console since IRB has this feature normally but it stops working after entering debug mode.
Additional context
Shell session:
irb(#<Foobar:0x000000011efeb9f0>):001> 3+3
=> 6
irb(#<Foobar:0x000000011efeb9f0>):002> puts _
6
=> nil
irb(#<Foobar:0x000000011efeb9f0>):003> 4+4
=> 8
irb(#<Foobar:0x000000011efeb9f0>):004> info
(rdbg:irb) info
%self = #<Foobar:0x000000011efeb9f0 @foo="bar">
@foo = "bar"
irb:rdbg(#<Foobar:0x000000011efeb9f0>):002> puts _
nil
irb:rdbg(#<Foobar:0x000000011efeb9f0>):003> 4+4
8
irb:rdbg(#<Foobar:0x000000011efeb9f0>):004> puts _
nil
irb:rdbg(#<Foobar:0x000000011efeb9f0>):005> 4+4
8
irb:rdbg(#<Foobar:0x000000011efeb9f0>):006> info
%self = #<Foobar:0x000000011efeb9f0 @foo="bar">
_ = nil
@foo = "bar"
irb:rdbg(#<Foobar:0x000000011efeb9f0>):007> ls Bar
Traceback (most recent call last):
24: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:212:in `block in activate'
23: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:254:in `session_server_main'
22: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:365:in `process_event'
21: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:403:in `wait_command_loop'
20: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:403:in `loop'
19: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:404:in `block in wait_command_loop'
18: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:444:in `wait_command'
15: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:1981:in `intercept_trap_sigint'
4: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/irb_integration.rb:9:in `evaluate'
(irb):7:in `set_foo': uninitialized constant Foobar::Bar (NameError)`
irb:rdbg(#<Foobar:0x000000011efeb9f0>):008> puts _
uninitialized constant Foobar::Bar
nil
irb:rdbg(#<Foobar:0x000000011efeb9f0>):009> ls Bar
Traceback (most recent call last):
24: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:212:in `block in activate'
23: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:254:in `session_server_main'
22: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:365:in `process_event'
21: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:403:in `wait_command_loop'
20: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:403:in `loop'
19: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:404:in `block in wait_command_loop'
18: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:444:in `wait_command'
15: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:1981:in `intercept_trap_sigint'
4: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/irb_integration.rb:9:in `evaluate'
(irb):9:in `set_foo': uninitialized constant Foobar::Bar (NameError)`
irb:rdbg(#<Foobar:0x000000011efeb9f0>):010> info
%self = #<Foobar:0x000000011efeb9f0 @foo="bar">
_ = #<NameError: uninitialized constant Foobar::Bar>
@foo = "bar"
irb:rdbg(#<Foobar:0x000000011efeb9f0>):011> Bar.methods
eval error: uninitialized constant Foobar::Bar
(rdbg)/scratch.rb:1:in `set_foo'`
nil
irb:rdbg(#<Foobar:0x000000011efeb9f0>):012> info
%self = #<Foobar:0x000000011efeb9f0 @foo="bar">
_ = nil
@foo = "bar"
irb:rdbg(#<Foobar:0x000000011efeb9f0>):013> Bar.methods
eval error: uninitialized constant Foobar::Bar
(rdbg)/scratch.rb:1:in `set_foo'`
nil
irb:rdbg(#<Foobar:0x000000011efeb9f0>):014> puts _
nil
- Ngôn ngữ chính
- Ruby
- Star
- 1.3k
- Fork
- 146
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của ruby/debug
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
-
Support exceptionOptions in setExceptionBreakpoints to catch arbitrary exception classes via DAP Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
notch8/utk_knapsack#148 ·
-
feature
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
betagouv/acces-cible#722 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
foobara/empty-ruby-project-generator#10 · 2 bình luận ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100