lots more sequences

This commit is contained in:
Mitchell Hashimoto
2022-07-14 21:30:06 -07:00
parent 50ddb7a37d
commit a2760bd758
5 changed files with 66 additions and 1 deletions

View File

@ -17,7 +17,7 @@ Status meanings:
in the face of it (probably in some broken state). in the face of it (probably in some broken state).
* 💥 - Ghostty crashes if this control sequence is sent. * 💥 - Ghostty crashes if this control sequence is sent.
| Seq | ASCII | Name | Status | | ID | ASCII | Name | Status |
|:---:|:-----:|:-----|:------:| |:---:|:-----:|:-----|:------:|
| `ENQ` | `0x05` | [Enquiry](sequences/enq.md) | ✅ | | `ENQ` | `0x05` | [Enquiry](sequences/enq.md) | ✅ |
| `BEL` | `0x07` | [Bell](sequences/bel.md) | ❌ | | `BEL` | `0x07` | [Bell](sequences/bel.md) | ❌ |
@ -31,3 +31,12 @@ Status meanings:
| `SI` | `0x0F` | [Shift In](#) | ❌ | | `SI` | `0x0F` | [Shift In](#) | ❌ |
| `CAN` | `0x18` | [Cancel Parsing](sequences/can.md) | ✅ | | `CAN` | `0x18` | [Cancel Parsing](sequences/can.md) | ✅ |
| `SUB` | `0x1A` | [Cancel Parsing (Alias)](sequences/can.md) | ✅ | | `SUB` | `0x1A` | [Cancel Parsing (Alias)](sequences/can.md) | ✅ |
| `IND` | `ESC D` | [Index](sequences/ind.md) | ✅ |
| `NEL` | `ESC E` | [Next Line](sequences/nel.md) | ✅ |
| `HTS` | `ESC H` | [Horizontal Tab Set](sequences/hts.md) | ✅ |
| `HTS` | `ESC H` | [Horizontal Tab Set](sequences/hts.md) | ✅ |
| `RI` | `ESC M` | [Reverse Index](sequences/ri.md) | ⚠️ |
| `SS2` | `ESC N` | [Single Shift 2](#) | ❌ |
| `SS3` | `ESC O` | [Single Shift 3](#) | ❌ |
| `SPA` | `ESC V` | [Start Protected Area](#) | ❌ |
| `EPA` | `ESC W` | [End Protected Area](#) | ❌ |

8
docs/sequences/hts.md Normal file
View File

@ -0,0 +1,8 @@
# Horizontal Tab Set
| | |
| --- | --- |
| Text | `ESC H` |
| Hex | `0x18 0x48` |
Mark the current cursor colum as a tab stop.

19
docs/sequences/ind.md Normal file
View File

@ -0,0 +1,19 @@
# Index
| | |
| --- | --- |
| Text | `ESC D` |
| Hex | `0x18 0x44` |
Move the cursor to the next line in the scrolling region, scrolling
if necessary. This always unsets the pending wrap state.
If the cursor is currently outside the scrolling region:
* move the cursor down one line if it is not on bottom line of the screen.
If the cursor is inside the scrolling region:
* If the cursor is on the bottom-most line of the screen: invoke
[scroll up](su.md) with the value `1`.
* Else: move the cursor one line down.

8
docs/sequences/nel.md Normal file
View File

@ -0,0 +1,8 @@
# Index
| | |
| --- | --- |
| Text | `ESC E` |
| Hex | `0x18 0x45` |
Invoke [carriage return](cr.md) and then [index](ind.md).

21
docs/sequences/ri.md Normal file
View File

@ -0,0 +1,21 @@
# Reverse Index
| | |
| --- | --- |
| Text | `ESC M` |
| Hex | `0x18 0x4D` |
Reverse [index](ind.md). This unsets the pending wrap state.
If the cursor is outside of the scrolling region:
* move the cursor one line up unless it is the top-most line of the screen.
If the cursor is inside the scrolling region:
* If the cursor is on the top-most line: invoke [scroll down](#) with value `1`
* Else: move the cursor one line up.
## TODO
* Scroll region edge cases