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.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- data/.github/workflows/ruby.yml +85 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +70 -1
- data/CHANGELOG.md +31 -0
- data/Gemfile +6 -3
- data/README.md +122 -8
- data/bin/console +1 -2
- data/docs/color_schemes/256-light.png +0 -0
- data/docs/color_schemes/gruvbox.png +0 -0
- data/docs/color_schemes/one-half-dark.png +0 -0
- data/docs/color_schemes/one-half-light.png +0 -0
- data/lib/ruby_jard.rb +5 -5
- data/lib/ruby_jard/box_drawer.rb +4 -1
- data/lib/ruby_jard/color_schemes.rb +31 -15
- data/lib/ruby_jard/color_schemes/256_color_scheme.rb +37 -37
- data/lib/ruby_jard/color_schemes/256_light_color_scheme.rb +62 -0
- data/lib/ruby_jard/color_schemes/deep_space_color_scheme.rb +36 -36
- data/lib/ruby_jard/color_schemes/gruvbox_color_scheme.rb +62 -0
- data/lib/ruby_jard/color_schemes/one_half_dark_color_scheme.rb +61 -0
- data/lib/ruby_jard/color_schemes/one_half_light_color_scheme.rb +62 -0
- data/lib/ruby_jard/column.rb +3 -1
- data/lib/ruby_jard/commands/continue_command.rb +2 -3
- data/lib/ruby_jard/commands/down_command.rb +9 -5
- data/lib/ruby_jard/commands/exit_command.rb +27 -0
- data/lib/ruby_jard/commands/frame_command.rb +11 -10
- data/lib/ruby_jard/commands/jard/color_scheme_command.rb +52 -0
- data/lib/ruby_jard/commands/jard/hide_command.rb +40 -0
- data/lib/ruby_jard/commands/jard/output_command.rb +28 -0
- data/lib/ruby_jard/commands/jard/show_command.rb +41 -0
- data/lib/ruby_jard/commands/jard_command.rb +50 -0
- data/lib/ruby_jard/commands/list_command.rb +5 -4
- data/lib/ruby_jard/commands/next_command.rb +10 -5
- data/lib/ruby_jard/commands/step_command.rb +10 -5
- data/lib/ruby_jard/commands/step_out_command.rb +10 -5
- data/lib/ruby_jard/commands/up_command.rb +10 -5
- data/lib/ruby_jard/commands/validation_helpers.rb +50 -0
- data/lib/ruby_jard/config.rb +7 -3
- data/lib/ruby_jard/console.rb +10 -22
- data/lib/ruby_jard/control_flow.rb +3 -3
- data/lib/ruby_jard/decorators/color_decorator.rb +11 -5
- data/lib/ruby_jard/decorators/loc_decorator.rb +1 -1
- data/lib/ruby_jard/decorators/path_decorator.rb +20 -7
- data/lib/ruby_jard/decorators/source_decorator.rb +2 -0
- data/lib/ruby_jard/frame.rb +55 -0
- data/lib/ruby_jard/keys.rb +0 -3
- data/lib/ruby_jard/layout.rb +9 -2
- data/lib/ruby_jard/layout_calculator.rb +29 -12
- data/lib/ruby_jard/layout_picker.rb +34 -0
- data/lib/ruby_jard/layouts.rb +52 -0
- data/lib/ruby_jard/layouts/narrow_horizontal_layout.rb +28 -0
- data/lib/ruby_jard/layouts/narrow_vertical_layout.rb +32 -0
- data/lib/ruby_jard/layouts/tiny_layout.rb +25 -0
- data/lib/ruby_jard/layouts/wide_layout.rb +13 -15
- data/lib/ruby_jard/pager.rb +96 -0
- data/lib/ruby_jard/repl_processor.rb +61 -31
- data/lib/ruby_jard/repl_proxy.rb +193 -89
- data/lib/ruby_jard/row.rb +16 -1
- data/lib/ruby_jard/row_renderer.rb +51 -42
- data/lib/ruby_jard/screen.rb +2 -12
- data/lib/ruby_jard/screen_adjuster.rb +104 -0
- data/lib/ruby_jard/screen_drawer.rb +3 -0
- data/lib/ruby_jard/screen_manager.rb +32 -54
- data/lib/ruby_jard/screen_renderer.rb +30 -16
- data/lib/ruby_jard/screens.rb +31 -12
- data/lib/ruby_jard/screens/backtrace_screen.rb +23 -26
- data/lib/ruby_jard/screens/menu_screen.rb +53 -22
- data/lib/ruby_jard/screens/source_screen.rb +65 -37
- data/lib/ruby_jard/screens/threads_screen.rb +14 -14
- data/lib/ruby_jard/screens/variables_screen.rb +59 -34
- data/lib/ruby_jard/session.rb +19 -10
- data/lib/ruby_jard/span.rb +3 -0
- data/lib/ruby_jard/templates/layout_template.rb +1 -1
- data/lib/ruby_jard/templates/screen_template.rb +3 -4
- data/lib/ruby_jard/version.rb +1 -1
- data/ruby_jard.gemspec +1 -1
- metadata +38 -9
- data/lib/ruby_jard/commands/color_scheme_command.rb +0 -42
- data/lib/ruby_jard/layouts/narrow_layout.rb +0 -41
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 61f5671a65db3b0ee5292d98b0310ca43668a52582bc88db04a377d26715bfff
|
4
|
+
data.tar.gz: 60c444c9870f556569077b9022e145602c693178f1b0c1ec02a6783a75a99796
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
data/.rubocop.yml
CHANGED
@@ -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:
|
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'
|
data/CHANGELOG.md
CHANGED
@@ -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.
|
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
|
-
|
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
|
208
|
+
**Repl command**: `frame [-h] [frame_id]`
|
174
209
|
|
175
210
|
**Key binding:** None
|
176
211
|
|
177
|
-
**Examples
|
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
|
200
|
-
|
|
201
|
-
| `color_scheme`
|
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
|