ruby_jard 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  4. data/.github/workflows/ruby.yml +85 -0
  5. data/.gitignore +1 -0
  6. data/.rubocop.yml +70 -1
  7. data/CHANGELOG.md +31 -0
  8. data/Gemfile +6 -3
  9. data/README.md +122 -8
  10. data/bin/console +1 -2
  11. data/docs/color_schemes/256-light.png +0 -0
  12. data/docs/color_schemes/gruvbox.png +0 -0
  13. data/docs/color_schemes/one-half-dark.png +0 -0
  14. data/docs/color_schemes/one-half-light.png +0 -0
  15. data/lib/ruby_jard.rb +5 -5
  16. data/lib/ruby_jard/box_drawer.rb +4 -1
  17. data/lib/ruby_jard/color_schemes.rb +31 -15
  18. data/lib/ruby_jard/color_schemes/256_color_scheme.rb +37 -37
  19. data/lib/ruby_jard/color_schemes/256_light_color_scheme.rb +62 -0
  20. data/lib/ruby_jard/color_schemes/deep_space_color_scheme.rb +36 -36
  21. data/lib/ruby_jard/color_schemes/gruvbox_color_scheme.rb +62 -0
  22. data/lib/ruby_jard/color_schemes/one_half_dark_color_scheme.rb +61 -0
  23. data/lib/ruby_jard/color_schemes/one_half_light_color_scheme.rb +62 -0
  24. data/lib/ruby_jard/column.rb +3 -1
  25. data/lib/ruby_jard/commands/continue_command.rb +2 -3
  26. data/lib/ruby_jard/commands/down_command.rb +9 -5
  27. data/lib/ruby_jard/commands/exit_command.rb +27 -0
  28. data/lib/ruby_jard/commands/frame_command.rb +11 -10
  29. data/lib/ruby_jard/commands/jard/color_scheme_command.rb +52 -0
  30. data/lib/ruby_jard/commands/jard/hide_command.rb +40 -0
  31. data/lib/ruby_jard/commands/jard/output_command.rb +28 -0
  32. data/lib/ruby_jard/commands/jard/show_command.rb +41 -0
  33. data/lib/ruby_jard/commands/jard_command.rb +50 -0
  34. data/lib/ruby_jard/commands/list_command.rb +5 -4
  35. data/lib/ruby_jard/commands/next_command.rb +10 -5
  36. data/lib/ruby_jard/commands/step_command.rb +10 -5
  37. data/lib/ruby_jard/commands/step_out_command.rb +10 -5
  38. data/lib/ruby_jard/commands/up_command.rb +10 -5
  39. data/lib/ruby_jard/commands/validation_helpers.rb +50 -0
  40. data/lib/ruby_jard/config.rb +7 -3
  41. data/lib/ruby_jard/console.rb +10 -22
  42. data/lib/ruby_jard/control_flow.rb +3 -3
  43. data/lib/ruby_jard/decorators/color_decorator.rb +11 -5
  44. data/lib/ruby_jard/decorators/loc_decorator.rb +1 -1
  45. data/lib/ruby_jard/decorators/path_decorator.rb +20 -7
  46. data/lib/ruby_jard/decorators/source_decorator.rb +2 -0
  47. data/lib/ruby_jard/frame.rb +55 -0
  48. data/lib/ruby_jard/keys.rb +0 -3
  49. data/lib/ruby_jard/layout.rb +9 -2
  50. data/lib/ruby_jard/layout_calculator.rb +29 -12
  51. data/lib/ruby_jard/layout_picker.rb +34 -0
  52. data/lib/ruby_jard/layouts.rb +52 -0
  53. data/lib/ruby_jard/layouts/narrow_horizontal_layout.rb +28 -0
  54. data/lib/ruby_jard/layouts/narrow_vertical_layout.rb +32 -0
  55. data/lib/ruby_jard/layouts/tiny_layout.rb +25 -0
  56. data/lib/ruby_jard/layouts/wide_layout.rb +13 -15
  57. data/lib/ruby_jard/pager.rb +96 -0
  58. data/lib/ruby_jard/repl_processor.rb +61 -31
  59. data/lib/ruby_jard/repl_proxy.rb +193 -89
  60. data/lib/ruby_jard/row.rb +16 -1
  61. data/lib/ruby_jard/row_renderer.rb +51 -42
  62. data/lib/ruby_jard/screen.rb +2 -12
  63. data/lib/ruby_jard/screen_adjuster.rb +104 -0
  64. data/lib/ruby_jard/screen_drawer.rb +3 -0
  65. data/lib/ruby_jard/screen_manager.rb +32 -54
  66. data/lib/ruby_jard/screen_renderer.rb +30 -16
  67. data/lib/ruby_jard/screens.rb +31 -12
  68. data/lib/ruby_jard/screens/backtrace_screen.rb +23 -26
  69. data/lib/ruby_jard/screens/menu_screen.rb +53 -22
  70. data/lib/ruby_jard/screens/source_screen.rb +65 -37
  71. data/lib/ruby_jard/screens/threads_screen.rb +14 -14
  72. data/lib/ruby_jard/screens/variables_screen.rb +59 -34
  73. data/lib/ruby_jard/session.rb +19 -10
  74. data/lib/ruby_jard/span.rb +3 -0
  75. data/lib/ruby_jard/templates/layout_template.rb +1 -1
  76. data/lib/ruby_jard/templates/screen_template.rb +3 -4
  77. data/lib/ruby_jard/version.rb +1 -1
  78. data/ruby_jard.gemspec +1 -1
  79. metadata +38 -9
  80. data/lib/ruby_jard/commands/color_scheme_command.rb +0 -42
  81. data/lib/ruby_jard/layouts/narrow_layout.rb +0 -41
  82. data/lib/ruby_jard/screens/empty_screen.rb +0 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9fb53f5406279a5047c3f73ec387bcb889e98e31ed7352393a459d8bc2611e08
4
- data.tar.gz: f136e3adb604ce7b469d3528fdf5af617776e25feeeb303f45a94189a94803b2
3
+ metadata.gz: 61f5671a65db3b0ee5292d98b0310ca43668a52582bc88db04a377d26715bfff
4
+ data.tar.gz: 60c444c9870f556569077b9022e145602c693178f1b0c1ec02a6783a75a99796
5
5
  SHA512:
6
- metadata.gz: f44eebc7ef5d413fb8b6ac44b5575a4ac31b71ad419a7800be68884d1c32564738c2d84276d471704c22bdad4cc36173f30bcfe8111f1081a002d7d343fcd400
7
- data.tar.gz: 353d35eabfc1a3eb33e32a2c193bb3261b68e794c9a2293f335245f57b23fdf45405b70c6fb9071d10867c56a1051ac4f987c20199931fd5224af0d1d92a545e
6
+ metadata.gz: c149e4a6482b4792279a956a2f51287c6af95361213b13a63d69101925f71bf7719b04bae4a9ee9cb4526ab1a86bba9c546a290241acd1d9baee0fe2a218108e
7
+ data.tar.gz: 4825219c8b45ba878d31fe2159e45d0e89a73ae44d2f3acabee15e58b16901bb37adf14aeb6d833d2dafab9b8cbf3a7115ad334d07c22f0ebd8586644bd5f5f1
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: "[BUG]"
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Screenshots**
24
+ If applicable, add screenshots to help explain your problem.
25
+
26
+ **Environment (please complete the following information):**
27
+ - OS: [e.g. Ubuntu 20, MacOS Big Suck, FreeBSD]
28
+ - Terminal Emulator [e.g Alacritty, Terminal.app (Mac's default one), GNOME Terminal (Ubuntu's default one), etc.]
29
+ - Output when you run `tput colors` in your terminal
30
+ - Output when you run `echo $TERM` in your terminal
31
+ - Output when you run `stty`
32
+ - Do you use tmux/screen or similar tty multiplexer?
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: enhancement
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,85 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ types: [opened, synchronize, reopened]
9
+
10
+ jobs:
11
+ rubocop:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v2
15
+ - name: Set up Ruby
16
+ uses: ruby/setup-ruby@v1
17
+ with:
18
+ ruby-version: 2.5
19
+ - name: Install tmux
20
+ run: sudo apt install -y tmux
21
+ - name: Start tmux
22
+ run: tmux start-server
23
+ - name: Install dependencies
24
+ run: bundle install
25
+ - name: Checking offenses
26
+ run: bundle exec rubocop
27
+ test-ubuntu:
28
+ strategy:
29
+ matrix:
30
+ ruby: [2.5, 2.6, 2.7.1]
31
+ runs-on: ubuntu-latest
32
+ steps:
33
+ - uses: actions/checkout@v2
34
+ - name: Set up Ruby
35
+ uses: ruby/setup-ruby@v1
36
+ with:
37
+ ruby-version: ${{ matrix.ruby }}
38
+ - name: Install tmux
39
+ run: sudo apt install -y tmux
40
+ - name: Start tmux
41
+ run: tmux start-server
42
+ - name: Install dependencies
43
+ run: bundle install
44
+ - name: Run tests
45
+ run: bundle exec rspec
46
+ test-macos:
47
+ strategy:
48
+ matrix:
49
+ ruby: [2.5, 2.6, 2.7.1]
50
+ runs-on: macos-latest
51
+ steps:
52
+ - uses: actions/checkout@v2
53
+ - name: Set up Ruby
54
+ uses: ruby/setup-ruby@v1
55
+ with:
56
+ ruby-version: ${{ matrix.ruby }}
57
+ - name: Install tmux
58
+ run: brew install tmux
59
+ - name: Start tmux
60
+ run: tmux start-server
61
+ - name: Install dependencies
62
+ run: bundle install
63
+ - name: Run tests
64
+ run: bundle exec rspec
65
+ test-previous-byebug:
66
+ runs-on: ubuntu-latest
67
+ strategy:
68
+ matrix:
69
+ byebug: [9.1.0, 10.0.2]
70
+ env:
71
+ BUNDLE_GEMFILE: "./spec/gemfiles/Gemfile-byebug-${{ matrix.byebug }}"
72
+ steps:
73
+ - uses: actions/checkout@v2
74
+ - name: Set up Ruby
75
+ uses: ruby/setup-ruby@v1
76
+ with:
77
+ ruby-version: 2.5
78
+ - name: Install tmux
79
+ run: sudo apt install -y tmux
80
+ - name: Start tmux
81
+ run: tmux start-server
82
+ - name: Install dependencies
83
+ run: bundle install
84
+ - name: Run tests
85
+ run: bundle exec rspec
data/.gitignore CHANGED
@@ -9,4 +9,5 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+ .ruby-version
12
13
  Gemfile.lock
@@ -1,3 +1,8 @@
1
+ require: rubocop-rspec
2
+
3
+ Metrics/BlockLength:
4
+ Exclude:
5
+ - 'spec/**/*.rb'
1
6
  Lint/NonLocalExitFromIterator:
2
7
  Enabled: false
3
8
  Naming/MethodParameterName:
@@ -11,9 +16,11 @@ Style/NumericPredicate:
11
16
  Style/IfUnlessModifier:
12
17
  Enabled: false
13
18
  Metrics/MethodLength:
14
- Max: 20
19
+ Max: 30
15
20
  Metrics/PerceivedComplexity:
16
21
  Max: 15
22
+ Metrics/CyclomaticComplexity:
23
+ Max: 15
17
24
  Metrics/AbcSize:
18
25
  Enabled: false
19
26
  Metrics/ParameterLists:
@@ -22,5 +29,67 @@ Metrics/ClassLength:
22
29
  Enabled: false
23
30
  Layout/HashAlignment:
24
31
  Enabled: false
32
+ Layout/EmptyLinesAroundAttributeAccessor:
33
+ Enabled: true
34
+ Layout/SpaceAroundMethodCallOperator:
35
+ Enabled: true
36
+ Lint/DeprecatedOpenSSLConstant:
37
+ Enabled: true
38
+ Lint/DuplicateElsifCondition:
39
+ Enabled: true
40
+ Lint/MixedRegexpCaptureTypes:
41
+ Enabled: true
42
+ Lint/RaiseException:
43
+ Enabled: true
44
+ Lint/StructNewOverride:
45
+ Enabled: true
46
+ Style/AccessorGrouping:
47
+ Enabled: true
48
+ Style/ArrayCoercion:
49
+ Enabled: true
50
+ Style/BisectedAttrAccessor:
51
+ Enabled: true
52
+ Style/CaseLikeIf:
53
+ Enabled: true
54
+ Style/ExponentialNotation:
55
+ Enabled: true
56
+ Style/HashAsLastArrayItem:
57
+ Enabled: true
58
+ Style/HashEachMethods:
59
+ Enabled: true
60
+ Style/HashLikeCase:
61
+ Enabled: true
62
+ Style/HashTransformKeys:
63
+ Enabled: true
64
+ Style/HashTransformValues:
65
+ Enabled: true
66
+ Style/RedundantAssignment:
67
+ Enabled: true
68
+ Style/RedundantFetchBlock:
69
+ Enabled: true
70
+ Style/RedundantFileExtensionInRequire:
71
+ Enabled: true
72
+ Style/RedundantRegexpCharacterClass:
73
+ Enabled: true
74
+ Style/RedundantRegexpEscape:
75
+ Enabled: true
76
+ Style/SlicingWithRange:
77
+ Enabled: true
78
+ Style/Alias:
79
+ EnforcedStyle: prefer_alias_method
80
+ Style/EvalWithLocation:
81
+ Enabled: false
82
+
83
+ RSpec/MultipleExpectations:
84
+ Enabled: false
85
+ RSpec/ExampleLength:
86
+ Enabled: false
87
+ RSpec/DescribeClass:
88
+ Enabled: false
89
+ RSpec/NestedGroups:
90
+ Max: 4
91
+
25
92
  AllCops:
26
93
  TargetRubyVersion: 2.5
94
+ Exclude:
95
+ - '**/*_example.rb'
@@ -1,5 +1,36 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.3 - Alpha 4]
4
+
5
+ ### UX/UI
6
+ - Add `gruvbox`, `256-light`, `one-half-dark`, and `one-half-light` color scheme
7
+ - Add `jard output` command
8
+ - Add `jard hide` command
9
+ - Add `jard show` command
10
+ - Add `alias_to_debugger`, `enabled_screens` option
11
+ - Add responsive layouts to fit into different screen sizes
12
+ - Auto-adjust screens to utilize spaces on the screen
13
+ - Move variable screen to the right again (sorry :pray:)
14
+ - Small colorless friendly adjustment to variable and thread marks
15
+
16
+ ### Bug fixes
17
+ - Jard doesn't work when place at the end of a method, or a block.
18
+ - Box title overflow
19
+ - Source screen doesn't work well with anonymous evaluation, or `ruby -e`
20
+ - Auto-completion with tab of pry (actually readline) is broken
21
+ - Could not exit when starting Jard inside irb
22
+ - Repl is broken if the keyboard repeat rate is too high.
23
+ - Fix broken frame command
24
+
25
+ ### Internal & Refactoring
26
+ - Add tests for critical sections
27
+ - Use PTY to feed output from pry to actual STDOUT
28
+ - Use a custom pager to allow internal customization
29
+ - Improve performance of Jard when working with process with plenty of threads
30
+ - Handle key-binding spamming well
31
+ - Lazily load screen data
32
+ - Support byebug >= 9.1.0
33
+
3
34
  ## [0.2.2 - Alpha 3]
4
35
 
5
36
  ### UX/UI
data/Gemfile CHANGED
@@ -4,9 +4,12 @@ source 'http://rubygems.org'
4
4
 
5
5
  gemspec
6
6
 
7
- gem 'aruba', '~> 1.0.2'
8
7
  gem 'byebug', '~> 11.1.0'
9
- gem 'pry', '~> 0.13.0'
10
8
  gem 'rake', '~> 12.0'
11
9
  gem 'rspec', '~> 3.0'
12
- gem 'rubocop', '~> 0.86'
10
+ gem 'rubocop', '~> 0.88'
11
+ gem 'rubocop-rspec', require: false
12
+
13
+ group :test do
14
+ gem 'rspec-retry'
15
+ end
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ![Ruby Jard](./docs/logo.jpg)
2
2
 
3
- Jard stands for Just Another Ruby Debugger, aims to provide a better experience while debugging Ruby. Ruby Jard provides modular visual interfaces to show relevant information about your debugging program. Those interfaces are optimized for usability, and highly friendly to developers, especially new comers. They help you reduce the commands you need to type, the mental efforts wasted trying to navigate and grab the information you need. As a result, you can now focus more on the debug flow.
3
+ Jard stands for Just Another Ruby Debugger, aims to provide a better experience while debugging Ruby. Ruby Jard provides modular visual interfaces to show relevant information about your debugging program. Those interfaces are optimized for usability, and highly friendly to developers, especially new comers. They help you reduce the commands you need to type, the mental efforts wasted trying to navigate and grab the information you need. As a result, you can now focus more on the debug flow.
4
4
 
5
5
  [![Ruby Jard Demo](./docs/demo.png)](https://asciinema.org/a/350233)
6
6
 
@@ -94,7 +94,7 @@ Show all the threads running at the moment. This panel is useful when you are wo
94
94
 
95
95
  An interactive Repl for you to interact with your program, inspect values, update values, or control the debug flow as you want. The heart of Jard's repl is [Pry](https://github.com/pry/pry), a masterpiece gem. When you type a command, Jard parses, and does corresponding actions if what you type matches supported command. Otherwise, they are evaluated as Ruby code.
96
96
 
97
- ## Commands
97
+ ## Flow Commands
98
98
 
99
99
  ### List
100
100
 
@@ -114,6 +114,13 @@ Refresh the whole terminal UI. This command doesn't move you to other steps, nor
114
114
 
115
115
  **Alias**: `s`
116
116
 
117
+ **Examples:**
118
+
119
+ ```
120
+ step # Step once
121
+ step 3 # Step 3 times
122
+ ```
123
+
117
124
  Detect and step into a method call or block in the current line. If there isn't anything to step in, the program continues to next line. In case there are multiple methods on the same line, Jard hornors Ruby's execution order.
118
125
 
119
126
  ### Step out
@@ -124,7 +131,14 @@ Detect and step into a method call or block in the current line. If there isn't
124
131
 
125
132
  **Alias**: `so`
126
133
 
127
- The opposite of step out. This command is used to finish the execution of current frame, and jump to the next line of upper frame. In other words, this command is equivalent to the sequence `up` and `next`. If the neighbor frame already finishes, it continues with even higher frame.
134
+ **Examples:**
135
+
136
+ ```
137
+ step-out # Step out once
138
+ step-out 3 # Step out 3 times
139
+ ```
140
+
141
+ The opposite of step. This command is used to finish the execution of current frame, and jump to the next line of upper frame. In other words, this command is equivalent to the sequence `up` and `next`. If the neighbor frame already finishes, it continues with even higher frame.
128
142
 
129
143
  This command is useful when you loose your interest in frame, and want to quickly go up again. One example is that you accidentally step into a longgggg loop with nothing useful. Another example is that you step into the library source code and don't really care what it does underlying.
130
144
 
@@ -136,6 +150,13 @@ This command is useful when you loose your interest in frame, and want to quickl
136
150
 
137
151
  **Alias**: `n`
138
152
 
153
+ **Examples:**
154
+
155
+ ```
156
+ next # Next instruction
157
+ next 3 # Next 3 next instructions
158
+ ```
159
+
139
160
  Continue to the next line in the current frame, by pass any steppable method call or blocks in the mid way unless they contains dynamic breakpoint or any `jard` attachment command. If the current frame already reaches the end, it continues to the next line of upper frame and so on.
140
161
 
141
162
  ### Continue
@@ -154,6 +175,13 @@ Continue the execution of your program to the end, or stop at the first dynamic
154
175
 
155
176
  **Key binding**: F6
156
177
 
178
+ **Examples:**
179
+
180
+ ```
181
+ up # Move to upper frame
182
+ up 3 # Move to upper 3 frames
183
+ ```
184
+
157
185
  Explore the upper frame. When you use this command, all associated displaying screens will be updated accordingly, but your program current position is still at the latest frame. This command is mostly used to explore, and view the trace, input parameters, or how your program stops at the current position. When use this command, you should have a glance at Variable panel, and Source panel to see the variables at destination frame.
158
186
 
159
187
  You can combine with `next` or `step` to perform powerful execution redirection at the destination frame. Let's look at an example. You are debugging a chain of 10 rack middlewares, you go deep into the #9 middleware, found something, then want to go back to #5 middleware. It's pretty boring and frustrated to just use `next` or `step-out` and hope it eventually goes back. Now use `up` for some times (or `frame`, described below) to go to your desired frame, and use `next` there. Tada, it's magical, just like teleport.
@@ -166,24 +194,108 @@ One note is that you cannot explore a frame in c.
166
194
 
167
195
  **Key binding**: Shift+F6
168
196
 
197
+ **Examples:**
198
+
199
+ ```
200
+ down # Move to lower frame
201
+ down 3 # Move to lower 3 frames
202
+ ```
203
+
169
204
  Explore the lower frame. See `up` command for more information.
170
205
 
171
206
  ### Frame
172
207
 
173
- **Repl command**: `frame <frame_id>`
208
+ **Repl command**: `frame [-h] [frame_id]`
174
209
 
175
210
  **Key binding:** None
176
211
 
177
- **Examples**:`frame 10`
212
+ **Examples:**
213
+
214
+ ```
215
+ frame 0 # Jump to frame 0
216
+ frame 7 # Jump to frame 7
217
+ ```
178
218
 
179
219
  Explore a particular frame with id `<frame_id>`. It's faster than `up` and `down`. See `up` command for more information.
180
220
 
221
+ ## Control commands
222
+
223
+ All control commands start with`jard` namespaces. This class of commands are used to control the visual interfaces, configuration, or specific operations provided by Jard.
224
+
225
+ ### Color scheme
226
+
227
+ **Repl command**: `jard color-scheme [-l|-h] [frame_id]`
228
+
229
+ **Key binding:** None
230
+
231
+ **Examples:**
232
+
233
+ ```
234
+ jard color-scheme -l # List all available color schemes
235
+ # Output:
236
+ # jard >>
237
+ # 256
238
+ # deep-space
239
+ # gruvbox
240
+ jard color-scheme deep-space # Switch to color scheme deep-space
241
+ ```
242
+
243
+ List all available color schemes, or switch to a particular color scheme at runtime.
244
+
245
+ ### Show
246
+
247
+ **Repl command**: `jard show [screen]`
248
+
249
+ **Key binding:** None
250
+
251
+ **Examples:**
252
+
253
+ ```
254
+ jard show variables
255
+ jard show threads
256
+ ```
257
+
258
+ Show a particular screen on the current interface.
259
+
260
+ ### Hide
261
+
262
+ **Repl command**: `jard hide [screen]`
263
+
264
+ **Key binding:** None
265
+
266
+ **Examples:**
267
+
268
+ ```
269
+ jard hide variables
270
+ jard hide threads
271
+ ```
272
+
273
+ Hide a particular screen from the current interface.
274
+
275
+ ### Output
276
+
277
+ **Repl command**: `jard output`
278
+
279
+ **Key binding:** None
280
+
281
+ **Examples:**
282
+
283
+ ```
284
+ jard output
285
+ ```
286
+
287
+ Show all the program output in a pager, allowing navigation, searching (powered by GNU Less). Note that the output are only captured only after Jard already started. All the previous output could not be captured.
288
+
181
289
  ## Color schemes
182
290
 
183
291
  | Name | Screenshots |
184
292
  | ------------------------------------------------------------ | ------------------------------------------------------------ |
185
293
  | `256` <br />Default theme, 256 basic colors, supported by all terminals | <img src="./docs/color_schemes/256.png" style="max-width: 400px;" /> |
294
+ | `256-light` | <img src="./docs/color_schemes/256-light.png" style="max-width: 400px;" /> |
186
295
  | `deep-space` | <img src="./docs/color_schemes/deep-space.png" style="max-width: 400px;" /> |
296
+ | `gruvbox` | <img src="./docs/color_schemes/gruvbox.png" style="max-width: 400px;" /> |
297
+ | `one-half-dark` | <img src="./docs/color_schemes/one-half-dark.png" style="max-width: 400px;" /> |
298
+ | `one-half-light` | <img src="./docs/color_schemes/one-half-light.png" style="max-width: 400px;" /> |
187
299
 
188
300
 
189
301
 
@@ -196,14 +308,16 @@ Ruby Jard supports customization via pre-loaded configuration files. You can con
196
308
 
197
309
  There are some supported configurations:
198
310
 
199
- | Name | Description | Default |
200
- | -------------- | ------------------------------------------------------------ | ------- |
201
- | `color_scheme` | Choose your favorite color scheme. The list of color schemes can be looke up in [Color schemes session](#color-schemes), or from `color-scheme -l` command in REPL. | `256` |
311
+ | Name | Description | Default |
312
+ | ------------------- | ------------------------------------------------------------ | ------- |
313
+ | `color_scheme` | Choose your favorite color scheme. The list of color schemes can be looke up in [Color schemes session](#color-schemes), or from `jard color-scheme -l` command in REPL. | `256` |
314
+ | `alias_to_debugger` | Use `debugger` instead of `jard` when debugging. | `false` |
202
315
 
203
316
  This is a complete example of a configuration file:
204
317
 
205
318
  ```ruby
206
319
  config.color_scheme = "deep-space"
320
+ config.alias_to_debugger = true
207
321
  ```
208
322
 
209
323
  ## Roadmap