ruby_jard 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +3 -0
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  5. data/.github/workflows/documentation.yml +65 -0
  6. data/.github/workflows/rspec.yml +96 -0
  7. data/.gitignore +1 -0
  8. data/.rubocop.yml +90 -2
  9. data/CHANGELOG.md +112 -0
  10. data/Gemfile +14 -4
  11. data/README.md +95 -3
  12. data/benchmark/path_filter_bench.rb +58 -0
  13. data/bin/console +1 -2
  14. data/lib/ruby_jard.rb +68 -32
  15. data/lib/ruby_jard/box_drawer.rb +175 -0
  16. data/lib/ruby_jard/color_scheme.rb +28 -0
  17. data/lib/ruby_jard/color_schemes.rb +54 -0
  18. data/lib/ruby_jard/color_schemes/256_color_scheme.rb +50 -0
  19. data/lib/ruby_jard/color_schemes/256_light_color_scheme.rb +50 -0
  20. data/lib/ruby_jard/color_schemes/deep_space_color_scheme.rb +49 -0
  21. data/lib/ruby_jard/color_schemes/gruvbox_color_scheme.rb +48 -0
  22. data/lib/ruby_jard/color_schemes/one_half_dark_color_scheme.rb +47 -0
  23. data/lib/ruby_jard/color_schemes/one_half_light_color_scheme.rb +49 -0
  24. data/lib/ruby_jard/column.rb +26 -0
  25. data/lib/ruby_jard/commands/color_helpers.rb +32 -0
  26. data/lib/ruby_jard/commands/continue_command.rb +4 -9
  27. data/lib/ruby_jard/commands/down_command.rb +9 -8
  28. data/lib/ruby_jard/commands/exit_command.rb +27 -0
  29. data/lib/ruby_jard/commands/frame_command.rb +13 -11
  30. data/lib/ruby_jard/commands/jard/color_scheme_command.rb +74 -0
  31. data/lib/ruby_jard/commands/jard/filter_command.rb +136 -0
  32. data/lib/ruby_jard/commands/jard/hide_command.rb +40 -0
  33. data/lib/ruby_jard/commands/jard/output_command.rb +36 -0
  34. data/lib/ruby_jard/commands/jard/show_command.rb +41 -0
  35. data/lib/ruby_jard/commands/jard_command.rb +52 -0
  36. data/lib/ruby_jard/commands/list_command.rb +31 -0
  37. data/lib/ruby_jard/commands/next_command.rb +11 -8
  38. data/lib/ruby_jard/commands/step_command.rb +11 -8
  39. data/lib/ruby_jard/commands/step_out_command.rb +34 -0
  40. data/lib/ruby_jard/commands/up_command.rb +10 -8
  41. data/lib/ruby_jard/commands/validation_helpers.rb +50 -0
  42. data/lib/ruby_jard/config.rb +61 -0
  43. data/lib/ruby_jard/console.rb +158 -0
  44. data/lib/ruby_jard/control_flow.rb +73 -0
  45. data/lib/ruby_jard/decorators/array_decorator.rb +79 -0
  46. data/lib/ruby_jard/decorators/attributes_decorator.rb +172 -0
  47. data/lib/ruby_jard/decorators/color_decorator.rb +80 -0
  48. data/lib/ruby_jard/decorators/hash_decorator.rb +74 -0
  49. data/lib/ruby_jard/decorators/inspection_decorator.rb +109 -0
  50. data/lib/ruby_jard/decorators/loc_decorator.rb +108 -119
  51. data/lib/ruby_jard/decorators/object_decorator.rb +122 -0
  52. data/lib/ruby_jard/decorators/path_decorator.rb +56 -60
  53. data/lib/ruby_jard/decorators/rails_decorator.rb +194 -0
  54. data/lib/ruby_jard/decorators/source_decorator.rb +3 -1
  55. data/lib/ruby_jard/decorators/string_decorator.rb +41 -0
  56. data/lib/ruby_jard/decorators/struct_decorator.rb +79 -0
  57. data/lib/ruby_jard/frame.rb +68 -0
  58. data/lib/ruby_jard/key_binding.rb +14 -0
  59. data/lib/ruby_jard/key_bindings.rb +96 -0
  60. data/lib/ruby_jard/keys.rb +48 -0
  61. data/lib/ruby_jard/layout.rb +17 -88
  62. data/lib/ruby_jard/layout_calculator.rb +168 -0
  63. data/lib/ruby_jard/layout_picker.rb +34 -0
  64. data/lib/ruby_jard/layouts.rb +52 -0
  65. data/lib/ruby_jard/layouts/narrow_horizontal_layout.rb +32 -0
  66. data/lib/ruby_jard/layouts/narrow_vertical_layout.rb +32 -0
  67. data/lib/ruby_jard/layouts/tiny_layout.rb +29 -0
  68. data/lib/ruby_jard/layouts/wide_layout.rb +50 -0
  69. data/lib/ruby_jard/pager.rb +112 -0
  70. data/lib/ruby_jard/path_classifier.rb +133 -0
  71. data/lib/ruby_jard/path_filter.rb +125 -0
  72. data/lib/ruby_jard/reflection.rb +97 -0
  73. data/lib/ruby_jard/repl_processor.rb +151 -89
  74. data/lib/ruby_jard/repl_proxy.rb +337 -0
  75. data/lib/ruby_jard/row.rb +31 -0
  76. data/lib/ruby_jard/row_renderer.rb +119 -0
  77. data/lib/ruby_jard/screen.rb +14 -41
  78. data/lib/ruby_jard/screen_adjuster.rb +104 -0
  79. data/lib/ruby_jard/screen_drawer.rb +25 -0
  80. data/lib/ruby_jard/screen_manager.rb +167 -82
  81. data/lib/ruby_jard/screen_renderer.rb +152 -0
  82. data/lib/ruby_jard/screens.rb +31 -12
  83. data/lib/ruby_jard/screens/backtrace_screen.rb +118 -116
  84. data/lib/ruby_jard/screens/menu_screen.rb +73 -45
  85. data/lib/ruby_jard/screens/source_screen.rb +86 -106
  86. data/lib/ruby_jard/screens/threads_screen.rb +103 -78
  87. data/lib/ruby_jard/screens/variables_screen.rb +224 -142
  88. data/lib/ruby_jard/session.rb +151 -16
  89. data/lib/ruby_jard/span.rb +23 -0
  90. data/lib/ruby_jard/templates/layout_template.rb +35 -0
  91. data/lib/ruby_jard/templates/screen_template.rb +34 -0
  92. data/lib/ruby_jard/thread_info.rb +69 -0
  93. data/lib/ruby_jard/version.rb +1 -1
  94. data/ruby_jard.gemspec +7 -8
  95. metadata +84 -50
  96. data/.travis.yml +0 -6
  97. data/lib/ruby_jard/commands/finish_command.rb +0 -31
  98. data/lib/ruby_jard/decorators/text_decorator.rb +0 -61
  99. data/lib/ruby_jard/layout_template.rb +0 -101
  100. data/lib/ruby_jard/screens/breakpoints_screen.rb +0 -23
  101. data/lib/ruby_jard/screens/empty_screen.rb +0 -13
  102. data/lib/ruby_jard/screens/expressions_sreen.rb +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4eaeb2003b2133100d1723d4fc5b3de3ea0ce6c1fd9f5e754a69ac7a489198d4
4
- data.tar.gz: a1389c55f973eacda0e4fa6fdbf4b4f6f23feb6cf1ab38050f7fd3f8a1d689ed
3
+ metadata.gz: e5a458f6dbabbed48b8cb322d6ac9a3c52e664309b1a1bfde1e90f91921092b6
4
+ data.tar.gz: e54b2ddcebc06c72fd78b4cc34dc99aba60eb1ba7d20d6815e0c4d88c39d2076
5
5
  SHA512:
6
- metadata.gz: 04f8ca93a51eef68e3139fa58a5d7acb5ece7f79023dcff53bde4796628518f7fdc86a40903df1d680f4e13c86542a9b48fdc228a899c15674bb9a18e33d8419
7
- data.tar.gz: 73608c00fe978926adaf05361e7d1467a6c9da325e6cdeba71ed25ddb00e8d027b788ca9154c2c74c13f4b36dbe4502b2e9f12fb9c82ba815b0967c7fa84765e
6
+ metadata.gz: '079110d831bc4729fe3c5ac9a33726d396cd4df50b889890f5b7e602d7e8d6717cf6e48b6038c4e653e2de2ae2ae4d44da6a0790d6f63be67e573475d59a0980'
7
+ data.tar.gz: fe4711967e8d0f3a81962038b1d7d40b319934f323ed6d942bde0f918125971e76bc49a73c603347c4e6be07618bf3950236ef0e868b07c587a2d1583cf7cbe6
@@ -0,0 +1,3 @@
1
+ # These are supported funding model platforms
2
+
3
+ ko_fi: nguyenquangminh0711
@@ -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,65 @@
1
+ name: documentation
2
+
3
+ on:
4
+ pull_request:
5
+ branches: [master]
6
+ push:
7
+ branches: [master]
8
+
9
+ jobs:
10
+ checks:
11
+ if: github.event_name != 'push'
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v1
15
+ - uses: actions/setup-node@v1
16
+ with:
17
+ node-version: '12.x'
18
+ - name: Test Build
19
+ run: |
20
+ cd website
21
+ if [ -e yarn.lock ]; then
22
+ yarn install --frozen-lockfile
23
+ elif [ -e package-lock.json ]; then
24
+ npm ci
25
+ else
26
+ npm i
27
+ fi
28
+ npm run build
29
+ gh-release:
30
+ if: github.event_name != 'pull_request'
31
+ runs-on: ubuntu-latest
32
+ steps:
33
+ - uses: actions/checkout@v1
34
+ - uses: actions/setup-node@v1
35
+ with:
36
+ node-version: '12.x'
37
+ - name: Add key to allow access to repository
38
+ env:
39
+ SSH_AUTH_SOCK: /tmp/ssh_agent.sock
40
+ run: |
41
+ mkdir -p ~/.ssh
42
+ ssh-keyscan github.com >> ~/.ssh/known_hosts
43
+ echo "${{ secrets.GH_PAGES_DEPLOY }}" > ~/.ssh/id_rsa
44
+ chmod 600 ~/.ssh/id_rsa
45
+ cat <<EOT >> ~/.ssh/config
46
+ Host github.com
47
+ HostName github.com
48
+ IdentityFile ~/.ssh/id_rsa
49
+ EOT
50
+ - name: Release to GitHub Pages
51
+ env:
52
+ USE_SSH: true
53
+ GIT_USER: git
54
+ run: |
55
+ git config --global user.email "actions@gihub.com"
56
+ git config --global user.name "gh-actions"
57
+ cd website
58
+ if [ -e yarn.lock ]; then
59
+ yarn install --frozen-lockfile
60
+ elif [ -e package-lock.json ]; then
61
+ npm ci
62
+ else
63
+ npm i
64
+ fi
65
+ npx docusaurus deploy
@@ -0,0 +1,96 @@
1
+ name: Rspec
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 dependencies
20
+ run: bundle install
21
+ - name: Checking offenses
22
+ run: bundle exec rubocop
23
+ test-ubuntu:
24
+ strategy:
25
+ fail-fast: false
26
+ matrix:
27
+ ruby: [2.5, 2.6, 2.7.1, head]
28
+ runs-on: ubuntu-latest
29
+ steps:
30
+ - uses: actions/checkout@v2
31
+ - name: Set up Ruby
32
+ uses: ruby/setup-ruby@v1
33
+ with:
34
+ ruby-version: ${{ matrix.ruby }}
35
+ - name: Install tmux
36
+ run: sudo apt install -y tmux
37
+ - name: Start tmux
38
+ run: tmux start-server
39
+ - name: Start dummy tmux session
40
+ run: tmux new-session -t dummy -d
41
+ - name: Wait for tmux
42
+ run: ruby spec/wait_for_tmux.rb
43
+ - name: Install dependencies
44
+ run: bundle install
45
+ - name: Run tests
46
+ run: bundle exec parallel_rspec spec/
47
+ test-macos:
48
+ strategy:
49
+ fail-fast: false
50
+ matrix:
51
+ ruby: [2.5, 2.6, 2.7.1, head]
52
+ runs-on: macos-latest
53
+ steps:
54
+ - uses: actions/checkout@v2
55
+ - name: Set up Ruby
56
+ uses: ruby/setup-ruby@v1
57
+ with:
58
+ ruby-version: ${{ matrix.ruby }}
59
+ - name: Install tmux
60
+ run: brew install tmux
61
+ - name: Start tmux
62
+ run: tmux start-server
63
+ - name: start dummy tmux session
64
+ run: tmux new-session -t dummy -d
65
+ - name: Wait for tmux
66
+ run: ruby spec/wait_for_tmux.rb
67
+ - name: Install dependencies
68
+ run: bundle install
69
+ - name: Run tests
70
+ run: bundle exec parallel_rspec -n 2 spec/
71
+ test-byebug:
72
+ runs-on: ubuntu-latest
73
+ strategy:
74
+ fail-fast: false
75
+ matrix:
76
+ byebug: [9.1.0, 10.0.2]
77
+ env:
78
+ BUNDLE_GEMFILE: "./spec/gemfiles/Gemfile-byebug-${{ matrix.byebug }}"
79
+ steps:
80
+ - uses: actions/checkout@v2
81
+ - name: Set up Ruby
82
+ uses: ruby/setup-ruby@v1
83
+ with:
84
+ ruby-version: 2.5
85
+ - name: Install tmux
86
+ run: sudo apt install -y tmux
87
+ - name: Start tmux
88
+ run: tmux start-server
89
+ - name: start dummy tmux session
90
+ run: tmux new-session -t dummy -d
91
+ - name: Wait for tmux
92
+ run: ruby spec/wait_for_tmux.rb
93
+ - name: Install dependencies
94
+ run: bundle install
95
+ - name: Run tests
96
+ run: bundle exec parallel_rspec spec/
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,13 +1,101 @@
1
+ require: rubocop-rspec
2
+
3
+ Metrics/BlockLength:
4
+ Exclude:
5
+ - 'spec/**/*.rb'
6
+ Lint/NonLocalExitFromIterator:
7
+ Enabled: false
8
+ Naming/MethodParameterName:
9
+ Enabled: false
1
10
  Style/SymbolArray:
2
11
  Enabled: false
12
+ Style/GuardClause:
13
+ Enabled: false
14
+ Style/NumericPredicate:
15
+ Enabled: false
16
+ Style/IfUnlessModifier:
17
+ Enabled: false
3
18
  Metrics/MethodLength:
4
- Max: 20
19
+ Max: 30
5
20
  Metrics/PerceivedComplexity:
6
21
  Max: 15
22
+ Metrics/CyclomaticComplexity:
23
+ Max: 15
24
+ Metrics/AbcSize:
25
+ Enabled: false
7
26
  Metrics/ParameterLists:
8
27
  Enabled: false
9
28
  Metrics/ClassLength:
10
29
  Enabled: false
30
+ Layout/HashAlignment:
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
+ Style/NilComparison:
83
+ Enabled: false
84
+ Style/NonNilCheck:
85
+ Enabled: false
86
+
87
+ RSpec/MultipleExpectations:
88
+ Enabled: false
89
+ RSpec/ExampleLength:
90
+ Enabled: false
91
+ RSpec/DescribeClass:
92
+ Enabled: false
93
+ RSpec/NestedGroups:
94
+ Max: 4
95
+ RSpec/MultipleMemoizedHelpers:
96
+ Enabled: false
97
+
11
98
  AllCops:
12
99
  TargetRubyVersion: 2.5
13
-
100
+ Exclude:
101
+ - '**/*_example.rb'
@@ -0,0 +1,112 @@
1
+ # Changelog
2
+
3
+ ## [0.3.0 - Beta 1]
4
+ - Filter feature
5
+ - New variable screen look and feel
6
+ - Improve website and documentation page.
7
+ - Improve color-scheme command
8
+ - Use Thread sequential label instead of Thread's object id
9
+ - Complete testing infrastructure.
10
+ - Fix multiple performance issues.
11
+
12
+ ### Bug fixes
13
+ - Solve program output performance degrade ([#21](https://github.com/nguyenquangminh0711/ruby_jard/pull/21))
14
+
15
+ ## [0.2.3 - Final Alpha]
16
+
17
+ ### UX/UI
18
+ - Add `gruvbox`, `256-light`, `one-half-dark`, and `one-half-light` color scheme
19
+ - Add `jard output` command
20
+ - Add `jard hide` command
21
+ - Add `jard show` command
22
+ - Add `alias_to_debugger`, `enabled_screens` option
23
+ - Add responsive layouts to fit into different screen sizes
24
+ - Auto-adjust screens to utilize spaces on the screen
25
+ - Move variable screen to the right again (sorry :pray:)
26
+ - Small colorless friendly adjustment to variable and thread marks
27
+
28
+ ### Bug fixes
29
+ - Jard doesn't work when place at the end of a method, or a block.
30
+ - Box title overflow
31
+ - Source screen doesn't work well with anonymous evaluation, or `ruby -e`
32
+ - Auto-completion with tab of pry (actually readline) is broken
33
+ - Could not exit when starting Jard inside irb
34
+ - Repl is broken if the keyboard repeat rate is too high.
35
+ - Fix broken frame command
36
+
37
+ ### Internal & Refactoring
38
+ - Add tests for critical sections
39
+ - Use PTY to feed output from pry to actual STDOUT
40
+ - Use a custom pager to allow internal customization
41
+ - Improve performance of Jard when working with process with plenty of threads
42
+ - Handle key-binding spamming well
43
+ - Lazily load screen data
44
+ - Support byebug >= 9.1.0
45
+
46
+ ## [0.2.2 - Alpha 4]
47
+
48
+ ### UX/UI
49
+ - Add `wehereami` as an alias for `list` command
50
+ - Add `theme` command to switch theme at runtime
51
+ - Load configuration file when Jard starts
52
+
53
+ ### Bug fixes
54
+ - Backward compatible issue: Array#filter is available in ruby 2.5.x and above.
55
+ - Fix Jard is bypassed when writting something to stdout while debugging (https://github.com/nguyenquangminh0711/ruby_jard/pull/5)
56
+
57
+ ## [0.2.1 - Alpha 3] - Render mechanism and theme system
58
+ ### UX/UI
59
+ - New color scheme: 256, as the default color scheme. It works well with all 256-color terminal emulators.
60
+ - New color scheme: deep-space. It's a 24-bit color scheme.
61
+ - UX change: swap positions of default panels:
62
+ ```
63
+ Source | Backtrace
64
+ Variables | Threads
65
+ ```
66
+ - New narrow layout, which consists of source and variables only. Useful when running tests.
67
+ - Add aliases to common commands
68
+ ### Bug fixes
69
+ - https://github.com/nguyenquangminh0711/ruby_jard/issues/2
70
+ - Fix display bug that some rows are out of screen if above rows have word wraps.
71
+ ### Internal Refactoring
72
+ - New rendering mechanism, that supports data windowing, selection locating, and cursor.
73
+ - Improve compatibility, and add fallbacks in case io/console, or tput are not available.
74
+
75
+ ## [0.2.0 - Alpha 2] - UI completeness
76
+
77
+ ### UX/UI
78
+ - Improve box drawing.
79
+ - Isolate jard-related UI in an alternative termnial, just like Vim or Less.
80
+ - Restore printed information from STDOUT and STDERR after jard exits.
81
+ - Support keyboard shortcut.
82
+ - Support erb, haml highlighting.
83
+ - Increase contrast and enhance color scheme.
84
+ - Remove `finish` command.
85
+ - Add `frame` command.
86
+ - Add `step-out` command.
87
+ - Remove useless inline variables.
88
+ - Indicate types and inline variables in variable screen.
89
+
90
+ ### Bug fixes
91
+ - Fix line number and loc mismatching if the current source viewport is at the start of the file.
92
+ - Multiple layout broken, overlapping text glitches.
93
+
94
+ ### Internal & Refactoring
95
+ - Refactor screen's data flow.
96
+ - Standardize control flow.
97
+ - Replace `tty-cursor`, `tty-screen` by native Ruby alternative.
98
+ - Replace `tty-box` by home-growing solution.
99
+ - Remove text decorator.
100
+ - Implement color decorator
101
+ - Implement keybinding register and matching mechanism.
102
+ - Implement ReplProxy to wrap around Pry instance.
103
+ - Utility to debug and benchmark.
104
+
105
+ ## [0.1.0 - Alpha 1] - Alpha initial version
106
+ **Release date**: July 1st 2020
107
+
108
+ - Default Terminal UI, in which the layout and display are responsive to support different screen size.
109
+ - Highlighted source code screen.
110
+ - Stacktrace visulization and navigation.
111
+ - Auto explore and display variables in the current context.
112
+ - Multi-thread exploration and debugging.