riched 0.1.0__py3-none-any.whl
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.
- riched/__init__.py +2 -0
- riched/app.py +433 -0
- riched/bindings.yaml +76 -0
- riched/cli.py +24 -0
- riched/editor.py +96 -0
- riched/keybindings.py +123 -0
- riched/screens.py +284 -0
- riched/settings.py +47 -0
- riched/syntax.py +241 -0
- riched-0.1.0.dist-info/METADATA +72 -0
- riched-0.1.0.dist-info/RECORD +13 -0
- riched-0.1.0.dist-info/WHEEL +4 -0
- riched-0.1.0.dist-info/entry_points.txt +2 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: riched
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A Textual TUI editor
|
|
5
|
+
Requires-Python: >=3.14
|
|
6
|
+
Requires-Dist: pyyaml>=6.0.3
|
|
7
|
+
Requires-Dist: textual[syntax]>=8.2.4
|
|
8
|
+
Requires-Dist: tree-sitter-typescript>=0.23.2
|
|
9
|
+
Description-Content-Type: text/markdown
|
|
10
|
+
|
|
11
|
+
# Riched
|
|
12
|
+
|
|
13
|
+
`riched` is a TUI editor powered by the [Rich](https://github.com/Textualize/rich) package and the [Textual](https://github.com/Textualize/textual) framework, the name is a nod to Rich.
|
|
14
|
+
|
|
15
|
+
> [!NOTE]
|
|
16
|
+
> `riched` targets Ghostty on macOS. Some key bindings, especially shortcuts
|
|
17
|
+
> that use the Command key, may not work in other terminals or on other
|
|
18
|
+
> operating systems.
|
|
19
|
+
|
|
20
|
+
## Key Features
|
|
21
|
+
|
|
22
|
+
- Syntax highlighting
|
|
23
|
+
- Resizable project file tree
|
|
24
|
+
- VS Code-style text editing key bindings
|
|
25
|
+
|
|
26
|
+
## Usage
|
|
27
|
+
|
|
28
|
+
```sh
|
|
29
|
+
uv sync
|
|
30
|
+
uv run riched .
|
|
31
|
+
uv run python -m tests.runner
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Key Bindings
|
|
35
|
+
|
|
36
|
+
Key bindings are generated from the YAML in `src/riched/bindings.yaml`.
|
|
37
|
+
|
|
38
|
+
App shortcuts:
|
|
39
|
+
|
|
40
|
+
| Shortcut | Action |
|
|
41
|
+
| --- | --- |
|
|
42
|
+
| `Ctrl+S` | Save |
|
|
43
|
+
| `Ctrl+Q` | Quit |
|
|
44
|
+
| `Ctrl+W` | Close buffer |
|
|
45
|
+
| `F1` | Key bindings |
|
|
46
|
+
| `Cmd+B` / `Super+B` | Toggle file tree |
|
|
47
|
+
| `Cmd+P` / `Super+P` | Quick open |
|
|
48
|
+
|
|
49
|
+
Editor shortcuts:
|
|
50
|
+
|
|
51
|
+
| Shortcut | Action |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
| `Alt+Up` | Move line up |
|
|
54
|
+
| `Alt+Down` | Move line down |
|
|
55
|
+
| `Alt+Shift+Up` / `Shift+Alt+Up` | Copy line up |
|
|
56
|
+
| `Alt+Shift+Down` / `Shift+Alt+Down` | Copy line down |
|
|
57
|
+
| `Alt+Backspace` | Delete word left |
|
|
58
|
+
| `Alt+Shift+Left` / `Shift+Alt+Left` | Select word left |
|
|
59
|
+
| `Alt+Shift+Right` / `Shift+Alt+Right` | Select word right |
|
|
60
|
+
| `Super+L` / `Cmd+L` | Select line |
|
|
61
|
+
| `Shift+Super+Left` / `Super+Shift+Left` / `Shift+Cmd+Left` / `Cmd+Shift+Left` | Select to line start |
|
|
62
|
+
| `Shift+Super+Right` / `Super+Shift+Right` / `Shift+Cmd+Right` / `Cmd+Shift+Right` | Select to line end |
|
|
63
|
+
|
|
64
|
+
## Settings
|
|
65
|
+
|
|
66
|
+
`riched` persists the selected Textual theme in `settings.yaml` under the user
|
|
67
|
+
config directory: `~/Library/Application Support/riched/settings.yaml`
|
|
68
|
+
|
|
69
|
+
## Won't Implemented
|
|
70
|
+
|
|
71
|
+
`riched` will not implement key bindings that require users to modify the Ghostty terminal configuration, since terminal-specific configuration makes shortcuts harder to document, test, and support consistently across environments.
|
|
72
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
riched/__init__.py,sha256=jk3fTx0GnO-2rGEPy12S0_WheBEPY1RDmHZaZVMam14,23
|
|
2
|
+
riched/app.py,sha256=eTVejPG37qCYdxQ_lSWdhj2oDU-d1EzkjvZ4WDutGfg,13621
|
|
3
|
+
riched/bindings.yaml,sha256=6FwHfOhD6vNgorhjwXwwR29mh4D6EEZJex09JL1vQC8,1886
|
|
4
|
+
riched/cli.py,sha256=GaEvloGl-bTqiQtSCDAlE3ZxpKsZiD4JibE2DvDy2oQ,628
|
|
5
|
+
riched/editor.py,sha256=l3WPakgB-gvsRKAicLG6RXR60_vujL00axwJKHtp39M,3370
|
|
6
|
+
riched/keybindings.py,sha256=E8Vq2fO7GvlVr9BzZdbL1ggcsxp9czx5oDYdBkihTwI,3466
|
|
7
|
+
riched/screens.py,sha256=gYHkg_yKXFcmHtWf9fymsq4x6IKEr5W_BJGAjsCc0Og,8666
|
|
8
|
+
riched/settings.py,sha256=pdKSwNM27Sf6lqIbcQuZoKDwtvm0DrStwCqsS7mOXpQ,1166
|
|
9
|
+
riched/syntax.py,sha256=2C0rjEPC_IyBw672UqF3qvPkPT-7CBsSpovM-r7-qso,5624
|
|
10
|
+
riched-0.1.0.dist-info/METADATA,sha256=PrWc8y6_658cVKWZGh8sy4kpOTBoUWpoNfaR8R7LRCE,2192
|
|
11
|
+
riched-0.1.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
|
|
12
|
+
riched-0.1.0.dist-info/entry_points.txt,sha256=KxZC9FjAJp4BZJZSXRo34LvpIWEKzcyTY3d5u3qm2uc,43
|
|
13
|
+
riched-0.1.0.dist-info/RECORD,,
|