ratatui_ruby 1.2.2 → 1.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.
- checksums.yaml +4 -4
- data/.builds/ruby-3.2.yml +54 -0
- data/.builds/ruby-3.3.yml +54 -0
- data/.builds/ruby-3.4.yml +54 -0
- data/.builds/ruby-4.0.0.yml +54 -0
- data/.pre-commit-config.yaml +16 -0
- data/.rubocop.yml +10 -0
- data/AGENTS.md +147 -0
- data/CHANGELOG.md +771 -0
- data/README.md +187 -0
- data/README.rdoc +302 -0
- data/Rakefile +11 -0
- data/Steepfile +50 -0
- data/doc/concepts/application_architecture.md +321 -0
- data/doc/concepts/application_testing.md +193 -0
- data/doc/concepts/async.md +190 -0
- data/doc/concepts/custom_widgets.md +247 -0
- data/doc/concepts/debugging.md +401 -0
- data/doc/concepts/event_handling.md +162 -0
- data/doc/concepts/interactive_design.md +146 -0
- data/doc/contributors/auditing/parity.md +239 -0
- data/doc/contributors/design/ruby_frontend.md +448 -0
- data/doc/contributors/design/rust_backend.md +434 -0
- data/doc/contributors/design.md +11 -0
- data/doc/contributors/developing_examples.md +400 -0
- data/doc/contributors/documentation_style.md +121 -0
- data/doc/contributors/index.md +21 -0
- data/doc/contributors/releasing.md +215 -0
- data/doc/contributors/todo/align/api_completeness_audit-finished.md +381 -0
- data/doc/contributors/todo/align/api_completeness_audit-unfinished.md +200 -0
- data/doc/contributors/todo/align/term.md +351 -0
- data/doc/contributors/todo/align/terminal.md +647 -0
- data/doc/contributors/todo/future_work.md +169 -0
- data/doc/contributors/upstream_requests/paragraph_span_rects.md +259 -0
- data/doc/contributors/upstream_requests/tab_rects.md +173 -0
- data/doc/contributors/upstream_requests/title_rects.md +132 -0
- data/doc/custom.css +22 -0
- data/doc/getting_started/quickstart.md +291 -0
- data/doc/getting_started/why.md +93 -0
- data/doc/images/app_all_events.png +0 -0
- data/doc/images/app_cli_rich_moments.gif +0 -0
- data/doc/images/app_color_picker.png +0 -0
- data/doc/images/app_debugging_showcase.gif +0 -0
- data/doc/images/app_debugging_showcase.png +0 -0
- data/doc/images/app_external_editor.gif +0 -0
- data/doc/images/app_login_form.png +0 -0
- data/doc/images/app_stateful_interaction.png +0 -0
- data/doc/images/verify_quickstart_dsl.png +0 -0
- data/doc/images/verify_quickstart_layout.png +0 -0
- data/doc/images/verify_quickstart_lifecycle.png +0 -0
- data/doc/images/verify_readme_usage.png +0 -0
- data/doc/images/widget_barchart.png +0 -0
- data/doc/images/widget_block.png +0 -0
- data/doc/images/widget_box.png +0 -0
- data/doc/images/widget_calendar.png +0 -0
- data/doc/images/widget_canvas.png +0 -0
- data/doc/images/widget_cell.png +0 -0
- data/doc/images/widget_center.png +0 -0
- data/doc/images/widget_chart.png +0 -0
- data/doc/images/widget_gauge.png +0 -0
- data/doc/images/widget_layout_split.png +0 -0
- data/doc/images/widget_line_gauge.png +0 -0
- data/doc/images/widget_list.png +0 -0
- data/doc/images/widget_map.png +0 -0
- data/doc/images/widget_overlay.png +0 -0
- data/doc/images/widget_popup.png +0 -0
- data/doc/images/widget_ratatui_logo.png +0 -0
- data/doc/images/widget_ratatui_mascot.png +0 -0
- data/doc/images/widget_rect.png +0 -0
- data/doc/images/widget_render.png +0 -0
- data/doc/images/widget_rich_text.png +0 -0
- data/doc/images/widget_scroll_text.png +0 -0
- data/doc/images/widget_scrollbar.png +0 -0
- data/doc/images/widget_sparkline.png +0 -0
- data/doc/images/widget_style_colors.png +0 -0
- data/doc/images/widget_table.png +0 -0
- data/doc/images/widget_tabs.png +0 -0
- data/doc/images/widget_text_width.png +0 -0
- data/doc/index.md +34 -0
- data/doc/troubleshooting/async.md +4 -0
- data/doc/troubleshooting/terminal_limitations.md +131 -0
- data/doc/troubleshooting/tui_output.md +197 -0
- data/examples/app_all_events/README.md +114 -0
- data/examples/app_all_events/app.rb +98 -0
- data/examples/app_all_events/model/app_model.rb +159 -0
- data/examples/app_all_events/model/event_color_cycle.rb +43 -0
- data/examples/app_all_events/model/event_entry.rb +94 -0
- data/examples/app_all_events/model/msg.rb +39 -0
- data/examples/app_all_events/model/timestamp.rb +56 -0
- data/examples/app_all_events/update.rb +75 -0
- data/examples/app_all_events/view/app_view.rb +80 -0
- data/examples/app_all_events/view/controls_view.rb +54 -0
- data/examples/app_all_events/view/counts_view.rb +61 -0
- data/examples/app_all_events/view/live_view.rb +72 -0
- data/examples/app_all_events/view/log_view.rb +57 -0
- data/examples/app_all_events/view.rb +9 -0
- data/examples/app_cli_rich_moments/README.md +81 -0
- data/examples/app_cli_rich_moments/app.rb +189 -0
- data/examples/app_color_picker/README.md +156 -0
- data/examples/app_color_picker/app.rb +76 -0
- data/examples/app_color_picker/clipboard.rb +86 -0
- data/examples/app_color_picker/color.rb +193 -0
- data/examples/app_color_picker/controls.rb +92 -0
- data/examples/app_color_picker/copy_dialog.rb +168 -0
- data/examples/app_color_picker/export_pane.rb +128 -0
- data/examples/app_color_picker/harmony.rb +58 -0
- data/examples/app_color_picker/input.rb +176 -0
- data/examples/app_color_picker/main_container.rb +180 -0
- data/examples/app_color_picker/palette.rb +111 -0
- data/examples/app_debugging_showcase/README.md +119 -0
- data/examples/app_debugging_showcase/app.rb +318 -0
- data/examples/app_external_editor/README.md +62 -0
- data/examples/app_external_editor/app.rb +344 -0
- data/examples/app_login_form/README.md +58 -0
- data/examples/app_login_form/app.rb +109 -0
- data/examples/app_stateful_interaction/README.md +35 -0
- data/examples/app_stateful_interaction/app.rb +328 -0
- data/examples/timeout_demo.rb +45 -0
- data/examples/verify_quickstart_dsl/README.md +55 -0
- data/examples/verify_quickstart_dsl/app.rb +49 -0
- data/examples/verify_quickstart_layout/README.md +77 -0
- data/examples/verify_quickstart_layout/app.rb +73 -0
- data/examples/verify_quickstart_lifecycle/README.md +68 -0
- data/examples/verify_quickstart_lifecycle/app.rb +62 -0
- data/examples/verify_readme_usage/README.md +49 -0
- data/examples/verify_readme_usage/app.rb +42 -0
- data/examples/verify_website_managed/README.md +48 -0
- data/examples/verify_website_managed/app.rb +36 -0
- data/examples/verify_website_menu/README.md +60 -0
- data/examples/verify_website_menu/app.rb +84 -0
- data/examples/verify_website_spinner/README.md +44 -0
- data/examples/verify_website_spinner/app.rb +34 -0
- data/examples/widget_barchart/README.md +58 -0
- data/examples/widget_barchart/app.rb +240 -0
- data/examples/widget_block/README.md +44 -0
- data/examples/widget_block/app.rb +258 -0
- data/examples/widget_box/README.md +54 -0
- data/examples/widget_box/app.rb +255 -0
- data/examples/widget_calendar/README.md +48 -0
- data/examples/widget_calendar/app.rb +115 -0
- data/examples/widget_canvas/README.md +31 -0
- data/examples/widget_canvas/app.rb +130 -0
- data/examples/widget_cell/README.md +45 -0
- data/examples/widget_cell/app.rb +112 -0
- data/examples/widget_center/README.md +33 -0
- data/examples/widget_center/app.rb +118 -0
- data/examples/widget_chart/README.md +50 -0
- data/examples/widget_chart/app.rb +220 -0
- data/examples/widget_gauge/README.md +50 -0
- data/examples/widget_gauge/app.rb +229 -0
- data/examples/widget_layout_split/README.md +53 -0
- data/examples/widget_layout_split/app.rb +260 -0
- data/examples/widget_line_gauge/README.md +50 -0
- data/examples/widget_line_gauge/app.rb +219 -0
- data/examples/widget_list/README.md +58 -0
- data/examples/widget_list/app.rb +382 -0
- data/examples/widget_map/README.md +48 -0
- data/examples/widget_map/app.rb +95 -0
- data/examples/widget_overlay/README.md +45 -0
- data/examples/widget_overlay/app.rb +250 -0
- data/examples/widget_popup/README.md +45 -0
- data/examples/widget_popup/app.rb +106 -0
- data/examples/widget_ratatui_logo/README.md +43 -0
- data/examples/widget_ratatui_logo/app.rb +104 -0
- data/examples/widget_ratatui_mascot/README.md +43 -0
- data/examples/widget_ratatui_mascot/app.rb +95 -0
- data/examples/widget_rect/README.md +53 -0
- data/examples/widget_rect/app.rb +222 -0
- data/examples/widget_render/README.md +46 -0
- data/examples/widget_render/app.rb +186 -0
- data/examples/widget_render/app.rbs +41 -0
- data/examples/widget_rich_text/README.md +44 -0
- data/examples/widget_rich_text/app.rb +193 -0
- data/examples/widget_scroll_text/README.md +46 -0
- data/examples/widget_scroll_text/app.rb +109 -0
- data/examples/widget_scrollbar/README.md +46 -0
- data/examples/widget_scrollbar/app.rb +155 -0
- data/examples/widget_sparkline/README.md +51 -0
- data/examples/widget_sparkline/app.rb +277 -0
- data/examples/widget_style_colors/README.md +43 -0
- data/examples/widget_style_colors/app.rb +83 -0
- data/examples/widget_table/README.md +57 -0
- data/examples/widget_table/app.rb +285 -0
- data/examples/widget_tabs/README.md +50 -0
- data/examples/widget_tabs/app.rb +183 -0
- data/examples/widget_text_width/README.md +44 -0
- data/examples/widget_text_width/app.rb +117 -0
- data/ext/ratatui_ruby/Cargo.lock +1 -2
- data/ext/ratatui_ruby/Cargo.toml +1 -2
- data/ext/ratatui_ruby/src/events.rs +18 -157
- data/lib/ratatui_ruby/event/focus_gained.rb +50 -0
- data/lib/ratatui_ruby/event/focus_lost.rb +51 -0
- data/lib/ratatui_ruby/event/key/dwim.rb +301 -0
- data/lib/ratatui_ruby/event/key/modifier.rb +2 -0
- data/lib/ratatui_ruby/event/key.rb +9 -0
- data/lib/ratatui_ruby/event/mouse.rb +33 -0
- data/lib/ratatui_ruby/event/paste.rb +25 -0
- data/lib/ratatui_ruby/event/resize.rb +65 -0
- data/lib/ratatui_ruby/version.rb +1 -1
- data/migrate_to_buffer.rb +145 -0
- data/mise.toml +8 -0
- data/sig/ratatui_ruby/event.rbs +97 -0
- data/tasks/autodoc/examples.rb +87 -0
- data/tasks/autodoc/member.rb +58 -0
- data/tasks/autodoc/name.rb +21 -0
- data/tasks/autodoc.rake +21 -0
- data/tasks/bump/bump_workflow.rb +49 -0
- data/tasks/bump/cargo_lockfile.rb +21 -0
- data/tasks/bump/changelog.rb +104 -0
- data/tasks/bump/header.rb +32 -0
- data/tasks/bump/history.rb +32 -0
- data/tasks/bump/links.rb +69 -0
- data/tasks/bump/manifest.rb +33 -0
- data/tasks/bump/patch_release.rb +19 -0
- data/tasks/bump/release_branch.rb +17 -0
- data/tasks/bump/release_from_trunk.rb +49 -0
- data/tasks/bump/repository.rb +54 -0
- data/tasks/bump/ruby_gem.rb +29 -0
- data/tasks/bump/sem_ver.rb +44 -0
- data/tasks/bump/unreleased_section.rb +73 -0
- data/tasks/bump.rake +61 -0
- data/tasks/doc/documentation.rb +59 -0
- data/tasks/doc/link/file_url.rb +30 -0
- data/tasks/doc/link/relative_path.rb +61 -0
- data/tasks/doc/link/web_url.rb +55 -0
- data/tasks/doc/link.rb +52 -0
- data/tasks/doc/link_audit.rb +116 -0
- data/tasks/doc/problem.rb +40 -0
- data/tasks/doc/source_file.rb +93 -0
- data/tasks/doc.rake +905 -0
- data/tasks/example_viewer.html.erb +172 -0
- data/tasks/extension.rake +14 -0
- data/tasks/license/headers_md.rb +223 -0
- data/tasks/license/headers_rb.rb +210 -0
- data/tasks/license/license_utils.rb +130 -0
- data/tasks/license/snippets_md.rb +315 -0
- data/tasks/license/snippets_rdoc.rb +150 -0
- data/tasks/license.rake +91 -0
- data/tasks/lint.rake +170 -0
- data/tasks/rbs_predicates/predicate_catalog.rb +52 -0
- data/tasks/rbs_predicates/predicate_tests.rb +124 -0
- data/tasks/rbs_predicates/rbs_signature.rb +63 -0
- data/tasks/rbs_predicates.rake +31 -0
- data/tasks/rdoc_config.rb +29 -0
- data/tasks/resources/build.yml.erb +60 -0
- data/tasks/resources/index.html.erb +141 -0
- data/tasks/resources/rubies.yml +7 -0
- data/tasks/sourcehut.rake +122 -0
- data/tasks/steep.rake +11 -0
- data/tasks/terminal_preview/app_screenshot.rb +45 -0
- data/tasks/terminal_preview/crash_report.rb +54 -0
- data/tasks/terminal_preview/example_app.rb +27 -0
- data/tasks/terminal_preview/launcher_script.rb +48 -0
- data/tasks/terminal_preview/preview_collection.rb +60 -0
- data/tasks/terminal_preview/preview_timing.rb +24 -0
- data/tasks/terminal_preview/safety_confirmation.rb +58 -0
- data/tasks/terminal_preview/saved_screenshot.rb +56 -0
- data/tasks/terminal_preview/system_appearance.rb +13 -0
- data/tasks/terminal_preview/terminal_window.rb +138 -0
- data/tasks/terminal_preview/window_id.rb +16 -0
- data/tasks/terminal_preview.rake +30 -0
- data/tasks/test.rake +36 -0
- data/tasks/website/index_page.rb +30 -0
- data/tasks/website/version.rb +122 -0
- data/tasks/website/version_menu.rb +68 -0
- data/tasks/website/versioned_documentation.rb +83 -0
- data/tasks/website/website.rb +53 -0
- data/tasks/website.rake +28 -0
- metadata +256 -1
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
|
|
3
|
+
SPDX-License-Identifier: CC-BY-SA-4.0
|
|
4
|
+
-->
|
|
5
|
+
|
|
6
|
+
# Releasing
|
|
7
|
+
|
|
8
|
+
This guide documents RatatuiRuby's release workflow. We use
|
|
9
|
+
[trunk-based development](https://trunkbaseddevelopment.com/committing-straight-to-the-trunk/)
|
|
10
|
+
with [release branches](https://trunkbaseddevelopment.com/branch-for-release/).
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
|
|
14
|
+
- **`trunk`** — Active development. Features land here first.
|
|
15
|
+
- **`release/X.Y`** — Release series branches (e.g., `release/1.0`).
|
|
16
|
+
- **`stable`** — Always points to the latest stable release.
|
|
17
|
+
|
|
18
|
+
<!-- SPDX-SnippetBegin -->
|
|
19
|
+
<!--
|
|
20
|
+
SPDX-FileCopyrightText: 2026 Kerrick Long
|
|
21
|
+
SPDX-License-Identifier: MIT-0
|
|
22
|
+
-->
|
|
23
|
+
```
|
|
24
|
+
trunk ──●──●──●──●──●──●──●──●──●── (future work)
|
|
25
|
+
\ \
|
|
26
|
+
release/1.0 ───●──●──● \ (1.0.0, 1.0.1, ...)
|
|
27
|
+
\
|
|
28
|
+
release/1.1 ●──●──●── (1.1.0, 1.1.1, ...)
|
|
29
|
+
```
|
|
30
|
+
<!-- SPDX-SnippetEnd -->
|
|
31
|
+
|
|
32
|
+
## Versioning Philosophy
|
|
33
|
+
|
|
34
|
+
We follow strict SemVer without ceremony:
|
|
35
|
+
|
|
36
|
+
- **Breaking change?** → Bump major
|
|
37
|
+
- **New feature?** → Bump minor
|
|
38
|
+
- **Bug fix?** → Bump patch
|
|
39
|
+
|
|
40
|
+
Version numbers are technical artifacts, not marketing. If we end up at v50 by
|
|
41
|
+
year's end, so be it.
|
|
42
|
+
|
|
43
|
+
## Changelog Management
|
|
44
|
+
|
|
45
|
+
Trunk maintains the canonical project history. Each release branch maintains
|
|
46
|
+
its own changelog during development, then syncs back to trunk.
|
|
47
|
+
|
|
48
|
+
### During Beta/RC Cycles
|
|
49
|
+
|
|
50
|
+
The release branch (`release/1.0`) tracks granular changes:
|
|
51
|
+
|
|
52
|
+
<!-- SPDX-SnippetBegin -->
|
|
53
|
+
<!--
|
|
54
|
+
SPDX-FileCopyrightText: 2026 Kerrick Long
|
|
55
|
+
SPDX-License-Identifier: MIT-0
|
|
56
|
+
-->
|
|
57
|
+
```markdown
|
|
58
|
+
## [Unreleased]
|
|
59
|
+
|
|
60
|
+
## [1.0.0-beta.2] - 2026-01-20
|
|
61
|
+
### Fixed
|
|
62
|
+
- TableState row navigation methods
|
|
63
|
+
|
|
64
|
+
## [1.0.0-beta.1] - 2026-01-20
|
|
65
|
+
- Initial 1.0 beta release
|
|
66
|
+
```
|
|
67
|
+
<!-- SPDX-SnippetEnd -->
|
|
68
|
+
|
|
69
|
+
Trunk's `[Unreleased]` section accumulates features for the next minor:
|
|
70
|
+
|
|
71
|
+
<!-- SPDX-SnippetBegin -->
|
|
72
|
+
<!--
|
|
73
|
+
SPDX-FileCopyrightText: 2026 Kerrick Long
|
|
74
|
+
SPDX-License-Identifier: MIT-0
|
|
75
|
+
-->
|
|
76
|
+
```markdown
|
|
77
|
+
## [Unreleased]
|
|
78
|
+
### Added
|
|
79
|
+
- Terminal Capability Detection
|
|
80
|
+
|
|
81
|
+
### Fixed
|
|
82
|
+
- TableState row navigation methods
|
|
83
|
+
```
|
|
84
|
+
<!-- SPDX-SnippetEnd -->
|
|
85
|
+
|
|
86
|
+
The fix appears in both places. This is correct — both branches contain it.
|
|
87
|
+
|
|
88
|
+
### When Final Ships
|
|
89
|
+
|
|
90
|
+
When `1.0.0` final releases, **consolidate** all beta entries into one section
|
|
91
|
+
on both branches:
|
|
92
|
+
|
|
93
|
+
**release/1.0:**
|
|
94
|
+
<!-- SPDX-SnippetBegin -->
|
|
95
|
+
<!--
|
|
96
|
+
SPDX-FileCopyrightText: 2026 Kerrick Long
|
|
97
|
+
SPDX-License-Identifier: MIT-0
|
|
98
|
+
-->
|
|
99
|
+
```markdown
|
|
100
|
+
## [1.0.0] - 2026-xx-xx
|
|
101
|
+
### Fixed
|
|
102
|
+
- TableState row navigation methods
|
|
103
|
+
|
|
104
|
+
## [0.10.3] - 2026-01-16
|
|
105
|
+
...
|
|
106
|
+
```
|
|
107
|
+
<!-- SPDX-SnippetEnd -->
|
|
108
|
+
|
|
109
|
+
**trunk (synced):**
|
|
110
|
+
<!-- SPDX-SnippetBegin -->
|
|
111
|
+
<!--
|
|
112
|
+
SPDX-FileCopyrightText: 2026 Kerrick Long
|
|
113
|
+
SPDX-License-Identifier: MIT-0
|
|
114
|
+
-->
|
|
115
|
+
```markdown
|
|
116
|
+
## [Unreleased]
|
|
117
|
+
### Added
|
|
118
|
+
- Terminal Capability Detection
|
|
119
|
+
|
|
120
|
+
## [1.0.0] - 2026-xx-xx
|
|
121
|
+
### Fixed
|
|
122
|
+
- TableState row navigation methods
|
|
123
|
+
|
|
124
|
+
## [0.10.3] - 2026-01-16
|
|
125
|
+
...
|
|
126
|
+
```
|
|
127
|
+
<!-- SPDX-SnippetEnd -->
|
|
128
|
+
|
|
129
|
+
The beta granularity served its purpose during testing. Git tags preserve the
|
|
130
|
+
detailed history.
|
|
131
|
+
|
|
132
|
+
## Release Workflows
|
|
133
|
+
|
|
134
|
+
### Bugfix (Patch) Release
|
|
135
|
+
|
|
136
|
+
For bugs affecting a released version:
|
|
137
|
+
|
|
138
|
+
1. **Fix on trunk first** — All bugs get fixed on trunk.
|
|
139
|
+
2. **Cherry-pick to release branch** with provenance:
|
|
140
|
+
```bash
|
|
141
|
+
git checkout release/1.0
|
|
142
|
+
git cherry-pick -x <commit> # -x adds "cherry picked from" trailer
|
|
143
|
+
```
|
|
144
|
+
3. **Update the changelog** on the release branch.
|
|
145
|
+
4. **Bump and release:**
|
|
146
|
+
```bash
|
|
147
|
+
bundle exec rake bump:patch
|
|
148
|
+
bundle exec rake release
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### New Version (Major/Minor)
|
|
152
|
+
|
|
153
|
+
When trunk is ready for a new release series:
|
|
154
|
+
|
|
155
|
+
1. **Decide version** based on changes:
|
|
156
|
+
- Breaking changes → Major (2.0.0)
|
|
157
|
+
- New features only → Minor (1.1.0)
|
|
158
|
+
|
|
159
|
+
2. **Create release branch:**
|
|
160
|
+
```bash
|
|
161
|
+
git checkout trunk
|
|
162
|
+
git checkout -b release/1.1 # or release/2.0
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
3. **Release from the branch:**
|
|
166
|
+
```bash
|
|
167
|
+
bundle exec rake bump:exact[1.1.0-beta.1]
|
|
168
|
+
bundle exec rake release
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
4. **Bump trunk** to the next dev version if desired.
|
|
172
|
+
|
|
173
|
+
5. **Iterate** through betas/RCs as needed, then ship final.
|
|
174
|
+
|
|
175
|
+
6. **Sync changelog** — When final ships, add the consolidated section to trunk.
|
|
176
|
+
|
|
177
|
+
### Prerelease Notes
|
|
178
|
+
|
|
179
|
+
RubyGems normalizes prerelease versions. Our `rake release` task automatically:
|
|
180
|
+
|
|
181
|
+
1. Lets Bundler create the normalized tag (e.g., `v1.0.0.pre.beta.1`)
|
|
182
|
+
2. Deletes it locally and remotely
|
|
183
|
+
3. Creates the SemVer tag (e.g., `v1.0.0-beta.1`) and pushes it
|
|
184
|
+
|
|
185
|
+
This keeps our Git tags strictly SemVer-compliant.
|
|
186
|
+
|
|
187
|
+
## Commands Reference
|
|
188
|
+
|
|
189
|
+
<!-- SPDX-SnippetBegin -->
|
|
190
|
+
<!--
|
|
191
|
+
SPDX-FileCopyrightText: 2026 Kerrick Long
|
|
192
|
+
SPDX-License-Identifier: MIT-0
|
|
193
|
+
-->
|
|
194
|
+
```bash
|
|
195
|
+
# Bump version
|
|
196
|
+
bundle exec rake bump:patch # 1.0.0 → 1.0.1
|
|
197
|
+
bundle exec rake bump:minor # 1.0.0 → 1.1.0
|
|
198
|
+
bundle exec rake bump:major # 1.0.0 → 2.0.0
|
|
199
|
+
bundle exec rake bump:exact[1.0.0-beta.1]
|
|
200
|
+
|
|
201
|
+
# Release (builds, tags, pushes gem, updates stable branch)
|
|
202
|
+
bundle exec rake release
|
|
203
|
+
|
|
204
|
+
# Watch builds
|
|
205
|
+
bin/hbs # Wait for SourceHut builds
|
|
206
|
+
bin/hbs && bundle exec rake release # Release only if builds pass
|
|
207
|
+
```
|
|
208
|
+
<!-- SPDX-SnippetEnd -->
|
|
209
|
+
|
|
210
|
+
## Further Reading
|
|
211
|
+
|
|
212
|
+
- [Trunk-Based Development](https://trunkbaseddevelopment.com/)
|
|
213
|
+
- [Branch for Release](https://trunkbaseddevelopment.com/branch-for-release/)
|
|
214
|
+
- [SemVer Specification](https://semver.org/)
|
|
215
|
+
- [Keep a Changelog](https://keepachangelog.com/)
|
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
|
|
3
|
+
|
|
4
|
+
SPDX-License-Identifier: CC-BY-SA-4.0
|
|
5
|
+
-->
|
|
6
|
+
|
|
7
|
+
# Ratatui Features Audit - Complete Comprehensive Catalog
|
|
8
|
+
|
|
9
|
+
These documents catalog EVERY public feature, method, function, enum variant, and constructor in the Ratatui Rust library with precise file/line references. This has the finished items; [the other has the unfinished items](./api_completeness_audit-unfinished.md).
|
|
10
|
+
|
|
11
|
+
## Terminal & Initialization Features
|
|
12
|
+
|
|
13
|
+
| Feature Name | File/Line | Status |
|
|
14
|
+
|--------------|-----------|--------|
|
|
15
|
+
| run | ratatui/src/init.rs:251 | ✅ |
|
|
16
|
+
| init | ratatui/src/init.rs:298 | ✅ |
|
|
17
|
+
| init_with_options | ratatui/src/init.rs:382 | ✅ |
|
|
18
|
+
| restore | ratatui/src/init.rs:457 | ✅ |
|
|
19
|
+
| Viewport::Fullscreen | ratatui-core/src/terminal/viewport.rs:22 | ✅ |
|
|
20
|
+
| Viewport::Inline(u16) | ratatui-core/src/terminal/viewport.rs:28 | ✅ |
|
|
21
|
+
| Terminal::draw | ratatui-core/src/terminal/terminal.rs:373 | ✅ |
|
|
22
|
+
| Terminal::size | ratatui-core/src/terminal/terminal.rs:568 | ✅ |
|
|
23
|
+
| Terminal::insert_before | ratatui-core/src/terminal/terminal.rs:648 | ✅ |
|
|
24
|
+
| TerminalOptions struct | ratatui-core/src/terminal/terminal.rs:104 | ✅ |
|
|
25
|
+
| Frame struct | ratatui-core/src/terminal/frame.rs:17 | ✅ |
|
|
26
|
+
| Frame::render_widget | ratatui-core/src/terminal/frame.rs:93 | ✅ |
|
|
27
|
+
| Frame::render_stateful_widget | ratatui-core/src/terminal/frame.rs:124 | ✅ |
|
|
28
|
+
| Frame::set_cursor_position | ratatui-core/src/terminal/frame.rs:141 | ✅ |
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
## Layout Features
|
|
32
|
+
|
|
33
|
+
| Feature Name | File/Line | Status |
|
|
34
|
+
|--------------|-----------|--------|
|
|
35
|
+
| Layout struct | ratatui-core/src/layout/layout.rs:193 | ✅ |
|
|
36
|
+
| Layout::horizontal | ratatui-core/src/layout/layout.rs:285 | ✅ |
|
|
37
|
+
| Layout::vertical | ratatui-core/src/layout/layout.rs:265 | ✅ |
|
|
38
|
+
| Layout::constraints | ratatui-core/src/layout/layout.rs:377 | ✅ |
|
|
39
|
+
| Layout::spacing | ratatui-core/src/layout/layout.rs:521 | ✅ |
|
|
40
|
+
| Layout::split | ratatui-core/src/layout/layout.rs:663 | ✅ |
|
|
41
|
+
| Layout::split_with_spacers | ratatui-core/src/layout/layout.rs:713 | ✅ |
|
|
42
|
+
| Constraint::Min(u16) | ratatui-core/src/layout/constraint.rs:94 | ✅ |
|
|
43
|
+
| Constraint::Max(u16) | ratatui-core/src/layout/constraint.rs:117 | ✅ |
|
|
44
|
+
| Constraint::Length(u16) | ratatui-core/src/layout/constraint.rs:140 | ✅ |
|
|
45
|
+
| Constraint::Percentage(u16) | ratatui-core/src/layout/constraint.rs:168 | ✅ |
|
|
46
|
+
| Constraint::Ratio(u32, u32) | ratatui-core/src/layout/constraint.rs:192 | ✅ |
|
|
47
|
+
| Constraint::Fill(u16) | ratatui-core/src/layout/constraint.rs:218 | ✅ |
|
|
48
|
+
| Constraint::from_lengths | ratatui-core/src/layout/constraint.rs:230 | ✅ |
|
|
49
|
+
| Constraint::from_ratios | ratatui-core/src/layout/constraint.rs:254 | ✅ |
|
|
50
|
+
| Constraint::from_percentages | ratatui-core/src/layout/constraint.rs:277 | ✅ |
|
|
51
|
+
| Constraint::from_maxes | ratatui-core/src/layout/constraint.rs:300 | ✅ |
|
|
52
|
+
| Constraint::from_mins | ratatui-core/src/layout/constraint.rs:320 | ✅ |
|
|
53
|
+
| Constraint::from_fills | ratatui-core/src/layout/constraint.rs:341 | ✅ |
|
|
54
|
+
| Flex::Legacy | ratatui-core/src/layout/flex.rs:75 | ✅ |
|
|
55
|
+
| Flex::Start | ratatui-core/src/layout/flex.rs:98 | ✅ |
|
|
56
|
+
| Flex::End | ratatui-core/src/layout/flex.rs:120 | ✅ |
|
|
57
|
+
| Flex::Center | ratatui-core/src/layout/flex.rs:142 | ✅ |
|
|
58
|
+
| Flex::SpaceBetween | ratatui-core/src/layout/flex.rs:164 | ✅ |
|
|
59
|
+
| Flex::SpaceEvenly | ratatui-core/src/layout/flex.rs:187 | ✅ |
|
|
60
|
+
| Flex::SpaceAround | ratatui-core/src/layout/flex.rs:209 | ✅ |
|
|
61
|
+
| Direction::Horizontal | ratatui-core/src/layout/direction.rs:16 | ✅ |
|
|
62
|
+
| Direction::Vertical | ratatui-core/src/layout/direction.rs:20 | ✅ |
|
|
63
|
+
| Position struct | ratatui-core/src/layout/position.rs:57 | ✅ |
|
|
64
|
+
| Size struct | ratatui-core/src/layout/size.rs:46 | ✅ |
|
|
65
|
+
| HorizontalAlignment::Left | ratatui-core/src/layout/alignment.rs:25 | ✅ |
|
|
66
|
+
| HorizontalAlignment::Center | ratatui-core/src/layout/alignment.rs:26 | ✅ |
|
|
67
|
+
| HorizontalAlignment::Right | ratatui-core/src/layout/alignment.rs:27 | ✅ |
|
|
68
|
+
| VerticalAlignment::Top | ratatui-core/src/layout/alignment.rs:40 | ✅ |
|
|
69
|
+
| VerticalAlignment::Center | ratatui-core/src/layout/alignment.rs:41 | ✅ |
|
|
70
|
+
| VerticalAlignment::Bottom | ratatui-core/src/layout/alignment.rs:42 | ✅ |
|
|
71
|
+
| Rect struct | ratatui-core/src/layout/rect.rs:134 | ✅ |
|
|
72
|
+
| Rect::new | ratatui-core/src/layout/rect.rs:166 | ✅ |
|
|
73
|
+
| Rect::area | ratatui-core/src/layout/rect.rs:190 | ✅ |
|
|
74
|
+
| Rect::is_empty | ratatui-core/src/layout/rect.rs:195 | ✅ |
|
|
75
|
+
| Rect::left | ratatui-core/src/layout/rect.rs:200 | ✅ |
|
|
76
|
+
| Rect::right | ratatui-core/src/layout/rect.rs:205 | ✅ |
|
|
77
|
+
| Rect::top | ratatui-core/src/layout/rect.rs:214 | ✅ |
|
|
78
|
+
| Rect::bottom | ratatui-core/src/layout/rect.rs:219 | ✅ |
|
|
79
|
+
| Rect::inner | ratatui-core/src/layout/rect.rs:228 | ✅ |
|
|
80
|
+
| Rect::outer | ratatui-core/src/layout/rect.rs:248 | ✅ |
|
|
81
|
+
| Rect::offset | ratatui-core/src/layout/rect.rs:276 | ✅ |
|
|
82
|
+
| Rect::resize | ratatui-core/src/layout/rect.rs:289 | ✅ |
|
|
83
|
+
| Rect::union | ratatui-core/src/layout/rect.rs:305 | ✅ |
|
|
84
|
+
| Rect::intersection | ratatui-core/src/layout/rect.rs:322 | ✅ |
|
|
85
|
+
| Rect::clamp | ratatui-core/src/layout/rect.rs:387 | ✅ |
|
|
86
|
+
| Rect::rows | ratatui-core/src/layout/rect/iter.rs:4 | ✅ |
|
|
87
|
+
| Rect::columns | ratatui-core/src/layout/rect/iter.rs:66 | ✅ |
|
|
88
|
+
| Rect::positions | ratatui-core/src/layout/rect/iter.rs:130 | ✅ |
|
|
89
|
+
|
|
90
|
+
## Style Features
|
|
91
|
+
|
|
92
|
+
| Feature Name | File/Line | Status |
|
|
93
|
+
|--------------|-----------|--------|
|
|
94
|
+
| Color::Reset | ratatui-core/src/style/color.rs:30 | ✅ |
|
|
95
|
+
| Color::Black | ratatui-core/src/style/color.rs:32 | ✅ |
|
|
96
|
+
| Color::Red | ratatui-core/src/style/color.rs:34 | ✅ |
|
|
97
|
+
| Color::Green | ratatui-core/src/style/color.rs:36 | ✅ |
|
|
98
|
+
| Color::Yellow | ratatui-core/src/style/color.rs:38 | ✅ |
|
|
99
|
+
| Color::Blue | ratatui-core/src/style/color.rs:40 | ✅ |
|
|
100
|
+
| Color::Magenta | ratatui-core/src/style/color.rs:42 | ✅ |
|
|
101
|
+
| Color::Cyan | ratatui-core/src/style/color.rs:44 | ✅ |
|
|
102
|
+
| Color::Gray | ratatui-core/src/style/color.rs:46 | ✅ |
|
|
103
|
+
| Color::DarkGray | ratatui-core/src/style/color.rs:48 | ✅ |
|
|
104
|
+
| Color::LightRed | ratatui-core/src/style/color.rs:50 | ✅ |
|
|
105
|
+
| Color::LightGreen | ratatui-core/src/style/color.rs:52 | ✅ |
|
|
106
|
+
| Color::LightYellow | ratatui-core/src/style/color.rs:54 | ✅ |
|
|
107
|
+
| Color::LightBlue | ratatui-core/src/style/color.rs:56 | ✅ |
|
|
108
|
+
| Color::LightMagenta | ratatui-core/src/style/color.rs:58 | ✅ |
|
|
109
|
+
| Color::LightCyan | ratatui-core/src/style/color.rs:60 | ✅ |
|
|
110
|
+
| Color::White | ratatui-core/src/style/color.rs:62 | ✅ |
|
|
111
|
+
| Color::Rgb(u8, u8, u8) | ratatui-core/src/style/color.rs:64 | ✅ |
|
|
112
|
+
| Color::Indexed(u8) | ratatui-core/src/style/color.rs:66 | ✅ |
|
|
113
|
+
| Color::from_u32 | ratatui-core/src/style/color.rs:133 | ✅ |
|
|
114
|
+
| Color::from_hsl | ratatui-core/src/style/color.rs:416 | ✅ |
|
|
115
|
+
| Color::from_hsluv | ratatui-core/src/style/color.rs:469 | ✅ |
|
|
116
|
+
| Style struct | ratatui-core/src/style.rs:239 | ✅ |
|
|
117
|
+
| Style::fg | ratatui-core/src/style.rs:335 | ✅ |
|
|
118
|
+
| Style::bg | ratatui-core/src/style.rs:352 | ✅ |
|
|
119
|
+
| Style::underline_color | ratatui-core/src/style.rs:387 | ✅ |
|
|
120
|
+
| Style::add_modifier | ratatui-core/src/style.rs:408 | ✅ |
|
|
121
|
+
| Style::remove_modifier | ratatui-core/src/style.rs:430 | ✅ |
|
|
122
|
+
| Modifier::BOLD | ratatui-core/src/style.rs:105 | ✅ |
|
|
123
|
+
| Modifier::DIM | ratatui-core/src/style.rs:106 | ✅ |
|
|
124
|
+
| Modifier::ITALIC | ratatui-core/src/style.rs:107 | ✅ |
|
|
125
|
+
| Modifier::UNDERLINED | ratatui-core/src/style.rs:108 | ✅ |
|
|
126
|
+
| Modifier::SLOW_BLINK | ratatui-core/src/style.rs:109 | ✅ |
|
|
127
|
+
| Modifier::RAPID_BLINK | ratatui-core/src/style.rs:110 | ✅ |
|
|
128
|
+
| Modifier::REVERSED | ratatui-core/src/style.rs:111 | ✅ |
|
|
129
|
+
| Modifier::HIDDEN | ratatui-core/src/style.rs:112 | ✅ |
|
|
130
|
+
| Modifier::CROSSED_OUT | ratatui-core/src/style.rs:113 | ✅ |
|
|
131
|
+
|
|
132
|
+
## Text Features
|
|
133
|
+
|
|
134
|
+
| Feature Name | File/Line | Status |
|
|
135
|
+
|--------------|-----------| -------|
|
|
136
|
+
| Text struct | ratatui-core/src/text/text.rs:196 | ✅ |
|
|
137
|
+
| Span struct | ratatui-core/src/text/span.rs:99 | ✅ |
|
|
138
|
+
| Line struct | ratatui-core/src/text/line.rs:183 | ✅ |
|
|
139
|
+
|
|
140
|
+
## Symbol Sets
|
|
141
|
+
|
|
142
|
+
| Feature Name | File/Line | Status |
|
|
143
|
+
|--------------|-----------|--------|
|
|
144
|
+
| half_block::UPPER | ratatui-core/src/symbols/half_block.rs:1 | ✅ |
|
|
145
|
+
| half_block::LOWER | ratatui-core/src/symbols/half_block.rs:3 | ✅ |
|
|
146
|
+
| half_block::FULL | ratatui-core/src/symbols/half_block.rs:5 | ✅ |
|
|
147
|
+
| Marker::Dot | ratatui-core/src/symbols/marker.rs:11 | ✅ |
|
|
148
|
+
| Marker::Block | ratatui-core/src/symbols/marker.rs:13 | ✅ |
|
|
149
|
+
| Marker::Bar | ratatui-core/src/symbols/marker.rs:17 | ✅ |
|
|
150
|
+
| Marker::Braille | ratatui-core/src/symbols/marker.rs:21 | ✅ |
|
|
151
|
+
| Marker::HalfBlock | ratatui-core/src/symbols/marker.rs:25 | ✅ |
|
|
152
|
+
| bar::Set struct | ratatui-core/src/symbols/bar.rs:8 | ✅ |
|
|
153
|
+
| bar::THREE_LEVELS | ratatui-core/src/symbols/bar.rs:29 | ✅ |
|
|
154
|
+
| bar::NINE_LEVELS | ratatui-core/src/symbols/bar.rs:41 | ✅ |
|
|
155
|
+
| border::Set struct | ratatui-core/src/symbols/border.rs:12 | ✅ |
|
|
156
|
+
| border::PLAIN | ratatui-core/src/symbols/border.rs:43 | ✅ |
|
|
157
|
+
| border::ROUNDED | ratatui-core/src/symbols/border.rs:62 | ✅ |
|
|
158
|
+
| border::DOUBLE | ratatui-core/src/symbols/border.rs:81 | ✅ |
|
|
159
|
+
| border::THICK | ratatui-core/src/symbols/border.rs:100 | ✅ |
|
|
160
|
+
| border::QUADRANT_OUTSIDE | ratatui-core/src/symbols/border.rs:195 | ✅ |
|
|
161
|
+
| border::QUADRANT_INSIDE | ratatui-core/src/symbols/border.rs:214 | ✅ |
|
|
162
|
+
| line::Set struct | ratatui-core/src/symbols/line.rs:62 | ✅ |
|
|
163
|
+
| line::NORMAL | ratatui-core/src/symbols/line.rs:82 | ✅ |
|
|
164
|
+
| line::DOUBLE | ratatui-core/src/symbols/line.rs:104 | ✅ |
|
|
165
|
+
| line::THICK | ratatui-core/src/symbols/line.rs:118 | ✅ |
|
|
166
|
+
|
|
167
|
+
## Widgets
|
|
168
|
+
|
|
169
|
+
### Paragraph Widget
|
|
170
|
+
|
|
171
|
+
| Feature Name | File/Line | Status |
|
|
172
|
+
|--------------|-----------|--------|
|
|
173
|
+
| Paragraph struct | ratatui-widgets/src/paragraph.rs:80 | ✅ |
|
|
174
|
+
| Paragraph::block | ratatui-widgets/src/paragraph.rs:174 | ✅ |
|
|
175
|
+
| Paragraph::style | ratatui-widgets/src/paragraph.rs:198 | ✅ |
|
|
176
|
+
| Paragraph::wrap | ratatui-widgets/src/paragraph.rs:115 | ✅ |
|
|
177
|
+
| Paragraph::scroll | ratatui-widgets/src/paragraph.rs:161 | ✅ |
|
|
178
|
+
| Paragraph::alignment | ratatui-widgets/src/paragraph.rs:199 | ✅ |
|
|
179
|
+
| Wrap struct | ratatui-widgets/src/paragraph.rs:240 | ✅ |
|
|
180
|
+
| Wrap::trim | ratatui-widgets/src/paragraph.rs:242 | ✅ |
|
|
181
|
+
|
|
182
|
+
### Block Widget
|
|
183
|
+
|
|
184
|
+
| Feature Name | File/Line | Status |
|
|
185
|
+
|--------------|-----------|--------|
|
|
186
|
+
| Block struct | ratatui-widgets/src/block.rs:75 | ✅ |
|
|
187
|
+
| Block::borders | ratatui-widgets/src/block.rs:85 | ✅ |
|
|
188
|
+
| Block::border_style | ratatui-widgets/src/block.rs:89 | ✅ |
|
|
189
|
+
| Block::border_set | ratatui-widgets/src/block.rs:91 | ✅ |
|
|
190
|
+
| Block::padding | ratatui-widgets/src/block.rs:97 | ✅ |
|
|
191
|
+
| Padding struct | ratatui-widgets/src/block/padding.rs:27 | ✅ |
|
|
192
|
+
| Padding::ZERO | ratatui-widgets/src/block/padding.rs:40 | ✅ |
|
|
193
|
+
| Padding::new | ratatui-widgets/src/block/padding.rs:50 | ✅ |
|
|
194
|
+
| Padding::horizontal | ratatui-widgets/src/block/padding.rs:66 | ✅ |
|
|
195
|
+
| Padding::vertical | ratatui-widgets/src/block/padding.rs:76 | ✅ |
|
|
196
|
+
| Padding::uniform | ratatui-widgets/src/block/padding.rs:86 | ✅ |
|
|
197
|
+
| Padding::proportional | ratatui-widgets/src/block/padding.rs:99 | ✅ |
|
|
198
|
+
| Padding::symmetric | ratatui-widgets/src/block/padding.rs:112 | ✅ |
|
|
199
|
+
| Padding::left | ratatui-widgets/src/block/padding.rs:122 | ✅ |
|
|
200
|
+
| Padding::right | ratatui-widgets/src/block/padding.rs:132 | ✅ |
|
|
201
|
+
| Padding::top | ratatui-widgets/src/block/padding.rs:142 | ✅ |
|
|
202
|
+
| Padding::bottom | ratatui-widgets/src/block/padding.rs:152 | ✅ |
|
|
203
|
+
| Borders::TOP | ratatui-widgets/src/borders.rs:33 | ✅ |
|
|
204
|
+
| Borders::RIGHT | ratatui-widgets/src/borders.rs:35 | ✅ |
|
|
205
|
+
| Borders::BOTTOM | ratatui-widgets/src/borders.rs:37 | ✅ |
|
|
206
|
+
| Borders::LEFT | ratatui-widgets/src/borders.rs:39 | ✅ |
|
|
207
|
+
| Borders::ALL | ratatui-widgets/src/borders.rs:41 | ✅ |
|
|
208
|
+
| Borders::NONE | ratatui-widgets/src/borders.rs:43 | ✅ |
|
|
209
|
+
| BorderType::Plain | ratatui-widgets/src/borders.rs:64 | ✅ |
|
|
210
|
+
| BorderType::Rounded | ratatui-widgets/src/borders.rs:66 | ✅ |
|
|
211
|
+
| BorderType::Double | ratatui-widgets/src/borders.rs:71 | ✅ |
|
|
212
|
+
| BorderType::Thick | ratatui-widgets/src/borders.rs:81 | ✅ |
|
|
213
|
+
| BorderType::QuadrantInside | ratatui-widgets/src/borders.rs:139 | ✅ |
|
|
214
|
+
| BorderType::QuadrantOutside | ratatui-widgets/src/borders.rs:144 | ✅ |
|
|
215
|
+
| TitlePosition::Top | ratatui-widgets/src/block.rs:49 | ✅ |
|
|
216
|
+
| TitlePosition::Bottom | ratatui-widgets/src/block.rs:51 | ✅ |
|
|
217
|
+
|
|
218
|
+
### Table Widget
|
|
219
|
+
|
|
220
|
+
| Feature Name | File/Line | Status |
|
|
221
|
+
|--------------|-----------|--------|
|
|
222
|
+
| Table struct | ratatui-widgets/src/table.rs:233 | ✅ |
|
|
223
|
+
| Table::rows | ratatui-widgets/src/table.rs:235 | ✅ |
|
|
224
|
+
| Table::header | ratatui-widgets/src/table.rs:238 | ✅ |
|
|
225
|
+
| Table::footer | ratatui-widgets/src/table.rs:241 | ✅ |
|
|
226
|
+
| Table::widths | ratatui-widgets/src/table.rs:244 | ✅ |
|
|
227
|
+
| Table::column_spacing | ratatui-widgets/src/table.rs:247 | ✅ |
|
|
228
|
+
| Table::row_highlight_style | ratatui-widgets/src/table.rs:256 | ✅ |
|
|
229
|
+
| Table::column_highlight_style | ratatui-widgets/src/table.rs:259 | ✅ |
|
|
230
|
+
| Table::cell_highlight_style | ratatui-widgets/src/table.rs:262 | ✅ |
|
|
231
|
+
| Table::highlight_symbol | ratatui-widgets/src/table.rs:265 | ✅ |
|
|
232
|
+
| Table::highlight_spacing | ratatui-widgets/src/table.rs:268 | ✅ |
|
|
233
|
+
| Table::flex | ratatui-widgets/src/table.rs:271 | ✅ |
|
|
234
|
+
| Row struct | ratatui-widgets/src/table/row.rs:75 | ✅ |
|
|
235
|
+
| Cell struct | ratatui-widgets/src/table/cell.rs:51 | ✅ |
|
|
236
|
+
| HighlightSpacing::Always | ratatui-widgets/src/table/highlight_spacing.rs:10 | ✅ |
|
|
237
|
+
| HighlightSpacing::WhenSelected | ratatui-widgets/src/table/highlight_spacing.rs:14 | ✅ |
|
|
238
|
+
| HighlightSpacing::Never | ratatui-widgets/src/table/highlight_spacing.rs:18 | ✅ |
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
### List Widget
|
|
242
|
+
|
|
243
|
+
| Feature Name | File/Line | Status |
|
|
244
|
+
|--------------|-----------|--------|
|
|
245
|
+
| List struct | ratatui-widgets/src/list.rs:109 | ✅ |
|
|
246
|
+
| List::items | ratatui-widgets/src/list.rs:113 | ✅ |
|
|
247
|
+
| List::direction | ratatui-widgets/src/list.rs:117 | ✅ |
|
|
248
|
+
| List::highlight_style | ratatui-widgets/src/list.rs:119 | ✅ |
|
|
249
|
+
| List::highlight_symbol | ratatui-widgets/src/list.rs:121 | ✅ |
|
|
250
|
+
| List::repeat_highlight_symbol | ratatui-widgets/src/list.rs:123 | ✅ |
|
|
251
|
+
| List::highlight_spacing | ratatui-widgets/src/list.rs:125 | ✅ |
|
|
252
|
+
| List::scroll_padding | ratatui-widgets/src/list.rs:127 | ✅ |
|
|
253
|
+
| ListDirection::TopToBottom | ratatui-widgets/src/list.rs:140 | ✅ |
|
|
254
|
+
| ListDirection::BottomToTop | ratatui-widgets/src/list.rs:142 | ✅ |
|
|
255
|
+
| ListItem struct | ratatui-widgets/src/list/item.rs:73 | ✅ |
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
### BarChart Widget
|
|
259
|
+
|
|
260
|
+
| Feature Name | File/Line | Status |
|
|
261
|
+
|--------------|-----------|--------|
|
|
262
|
+
| BarChart struct | ratatui-widgets/src/barchart.rs:83 | ✅ |
|
|
263
|
+
| BarChart::bar_width | ratatui-widgets/src/barchart.rs:87 | ✅ |
|
|
264
|
+
| BarChart::bar_gap | ratatui-widgets/src/barchart.rs:89 | ✅ |
|
|
265
|
+
| BarChart::group_gap | ratatui-widgets/src/barchart.rs:91 | ✅ |
|
|
266
|
+
| BarChart::bar_set | ratatui-widgets/src/barchart.rs:93 | ✅ |
|
|
267
|
+
| BarChart::max | ratatui-widgets/src/barchart.rs:106 | ✅ |
|
|
268
|
+
| BarChart::direction | ratatui-widgets/src/barchart.rs:108 | ✅ |
|
|
269
|
+
| Bar struct | ratatui-widgets/src/barchart/bar.rs:34 | ✅ |
|
|
270
|
+
| BarGroup struct | ratatui-widgets/src/barchart/bar_group.rs:21 | ✅ |
|
|
271
|
+
|
|
272
|
+
### Chart Widget
|
|
273
|
+
|
|
274
|
+
| Feature Name | File/Line | Status |
|
|
275
|
+
|--------------|-----------|--------|
|
|
276
|
+
| Chart struct | ratatui-widgets/src/chart.rs:510 | ✅ |
|
|
277
|
+
| Axis struct | ratatui-widgets/src/chart.rs:40 | ✅ |
|
|
278
|
+
| Axis::bounds | ratatui-widgets/src/chart.rs:44 | ✅ |
|
|
279
|
+
| Axis::labels | ratatui-widgets/src/chart.rs:46 | ✅ |
|
|
280
|
+
| Axis::labels_alignment | ratatui-widgets/src/chart.rs:50 | ✅ |
|
|
281
|
+
| Dataset struct | ratatui-widgets/src/chart.rs:320 | ✅ |
|
|
282
|
+
| Dataset::marker | ratatui-widgets/src/chart.rs:326 | ✅ |
|
|
283
|
+
| Dataset::graph_type | ratatui-widgets/src/chart.rs:328 | ✅ |
|
|
284
|
+
| GraphType::Scatter | ratatui-widgets/src/chart.rs:161 | ✅ |
|
|
285
|
+
| GraphType::Line | ratatui-widgets/src/chart.rs:167 | ✅ |
|
|
286
|
+
| GraphType::Bar | ratatui-widgets/src/chart.rs:170 | ✅ |
|
|
287
|
+
| LegendPosition::TopLeft | ratatui-widgets/src/chart.rs:184 | ✅ |
|
|
288
|
+
| LegendPosition::Top | ratatui-widgets/src/chart.rs:179 | ✅ |
|
|
289
|
+
| LegendPosition::TopRight | ratatui-widgets/src/chart.rs:182 | ✅ |
|
|
290
|
+
| LegendPosition::Left | ratatui-widgets/src/chart.rs:186 | ✅ |
|
|
291
|
+
| LegendPosition::Right | ratatui-widgets/src/chart.rs:187 | ✅ |
|
|
292
|
+
| LegendPosition::BottomLeft | ratatui-widgets/src/chart.rs:194 | ✅ |
|
|
293
|
+
| LegendPosition::Bottom | ratatui-widgets/src/chart.rs:190 | ✅ |
|
|
294
|
+
| LegendPosition::BottomRight | ratatui-widgets/src/chart.rs:192 | ✅ |
|
|
295
|
+
|
|
296
|
+
### Gauge Widget
|
|
297
|
+
|
|
298
|
+
| Feature Name | File/Line | Status |
|
|
299
|
+
|--------------|-----------|--------|
|
|
300
|
+
| Gauge struct | ratatui-widgets/src/gauge.rs:45 | ✅ |
|
|
301
|
+
| Gauge::ratio | ratatui-widgets/src/gauge.rs:47 | ✅ |
|
|
302
|
+
| Gauge::label | ratatui-widgets/src/gauge.rs:48 | ✅ |
|
|
303
|
+
| Gauge::use_unicode | ratatui-widgets/src/gauge.rs:49 | ✅ |
|
|
304
|
+
| Gauge::gauge_style | ratatui-widgets/src/gauge.rs:51 | ✅ |
|
|
305
|
+
| LineGauge struct | ratatui-widgets/src/gauge.rs:269 | ✅ |
|
|
306
|
+
| LineGauge::filled_symbol | ratatui-widgets/src/gauge.rs:274 | ✅ |
|
|
307
|
+
| LineGauge::unfilled_symbol | ratatui-widgets/src/gauge.rs:275 | ✅ |
|
|
308
|
+
| LineGauge::filled_style | ratatui-widgets/src/gauge.rs:276 | ✅ |
|
|
309
|
+
| LineGauge::unfilled_style | ratatui-widgets/src/gauge.rs:277 | ✅ |
|
|
310
|
+
|
|
311
|
+
### Sparkline Widget
|
|
312
|
+
|
|
313
|
+
| Feature Name | File/Line | Status |
|
|
314
|
+
|--------------|-----------|--------|
|
|
315
|
+
| Sparkline struct | ratatui-widgets/src/sparkline.rs:66 | ✅ |
|
|
316
|
+
| RenderDirection::LeftToRight | ratatui-widgets/src/sparkline.rs:93 | ✅ |
|
|
317
|
+
| RenderDirection::RightToLeft | ratatui-widgets/src/sparkline.rs:96 | ✅ |
|
|
318
|
+
|
|
319
|
+
### Scrollbar Widget
|
|
320
|
+
|
|
321
|
+
| Feature Name | File/Line | Status |
|
|
322
|
+
|--------------|-----------|--------|
|
|
323
|
+
| Scrollbar struct | ratatui-widgets/src/scrollbar.rs:87 | ✅ |
|
|
324
|
+
| ScrollbarOrientation::VerticalRight | ratatui-widgets/src/scrollbar.rs:112 | ✅ |
|
|
325
|
+
| ScrollbarOrientation::VerticalLeft | ratatui-widgets/src/scrollbar.rs:115 | ✅ |
|
|
326
|
+
| ScrollbarOrientation::HorizontalBottom | ratatui-widgets/src/scrollbar.rs:118 | ✅ |
|
|
327
|
+
| ScrollbarOrientation::HorizontalTop | ratatui-widgets/src/scrollbar.rs:121 | ✅ |
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
### Calendar Widget
|
|
331
|
+
|
|
332
|
+
| Feature Name | File/Line | Status |
|
|
333
|
+
|--------------|-----------|--------|
|
|
334
|
+
| Monthly struct | ratatui-widgets/src/calendar.rs:26 | ✅ |
|
|
335
|
+
|
|
336
|
+
### Canvas Widget
|
|
337
|
+
|
|
338
|
+
| Feature Name | File/Line | Status |
|
|
339
|
+
|--------------|-----------|--------|
|
|
340
|
+
| Canvas struct | ratatui-widgets/src/canvas.rs:721 | ✅ |
|
|
341
|
+
| Line shape | ratatui-widgets/src/canvas/line.rs:8 | ✅ |
|
|
342
|
+
| Circle shape | ratatui-widgets/src/canvas/circle.rs:9 | ✅ |
|
|
343
|
+
| Rectangle shape | ratatui-widgets/src/canvas/rectangle.rs:10 | ✅ |
|
|
344
|
+
| Map struct | ratatui-widgets/src/canvas/map.rs:38 | ✅ |
|
|
345
|
+
| MapResolution::Low | ratatui-widgets/src/canvas/map.rs:13 | ✅ |
|
|
346
|
+
| MapResolution::High | ratatui-widgets/src/canvas/map.rs:16 | ✅ |
|
|
347
|
+
|
|
348
|
+
### Tabs Widget
|
|
349
|
+
|
|
350
|
+
| Feature Name | File/Line | Status |
|
|
351
|
+
|--------------|-----------|--------|
|
|
352
|
+
| Tabs struct | ratatui-widgets/src/tabs.rs:51 | ✅ |
|
|
353
|
+
|
|
354
|
+
### Other Widgets
|
|
355
|
+
|
|
356
|
+
| Feature Name | File/Line | Status |
|
|
357
|
+
|--------------|-----------|--------|
|
|
358
|
+
| Clear widget | ratatui-widgets/src/clear.rs:30 | ✅ |
|
|
359
|
+
| RatatuiLogo widget | ratatui-widgets/src/logo.rs:59 | ✅ |
|
|
360
|
+
| RatatuiLogo Size::Tiny | ratatui-widgets/src/logo.rs:68 | ✅ |
|
|
361
|
+
| RatatuiLogo Size::Small | ratatui-widgets/src/logo.rs:71 | ✅ |
|
|
362
|
+
| RatatuiLogo Size::Medium | ratatui-widgets/src/logo.rs:74 | ✅ |
|
|
363
|
+
| RatatuiLogo Size::Large | ratatui-widgets/src/logo.rs:77 | ✅ |
|
|
364
|
+
|
|
365
|
+
## Buffer Features
|
|
366
|
+
|
|
367
|
+
| Feature Name | File/Line | Status |
|
|
368
|
+
|--------------|-----------|--------|
|
|
369
|
+
| Buffer struct | ratatui-core/src/buffer/buffer.rs:66 | ✅ |
|
|
370
|
+
| Buffer::content | ratatui-core/src/buffer/buffer.rs:107 | ✅ |
|
|
371
|
+
| Buffer::get | ratatui-core/src/buffer/buffer.rs:130 | ✅ |
|
|
372
|
+
| Cell struct | ratatui-core/src/buffer/cell.rs:9 | ✅ |
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
## Backend Features
|
|
377
|
+
|
|
378
|
+
| Feature Name | File/Line | Status |
|
|
379
|
+
|--------------|-----------|--------|
|
|
380
|
+
| TestBackend | ratatui-core/src/backend/test.rs:* | ✅ |
|
|
381
|
+
| CrosstermBackend | ratatui-crossterm/src/lib.rs:* | ✅ |
|