charmbracelet / charmbracelet/sequin
Add information about project scope and approach to resolve conflicting scenarios
- Dominant language
- Go
- Stars
- 812
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
Description
**Is your feature request related to a problem? Please describe.**
Escape sequences are (beyond ECMA-48 and physical terminals) undocumented and each emulator has its own approach, sometimes conflicting with others. I think it would be beneficial to decide on a well-defined approach early-on, i.e. what you would like this project to handle, and what is definitely beyond its scope.
**Describe the solution you'd like**
Escape sequences are a rather broad topic. Is the aim to support only a combination of common functionalities found in VT100-500 terminals and `xterm`-compatible emulators? Or stuff like less functionality implemented by only few emulators and/or physical terminals also acceptable? What about when sequences conflict with one another like SGR 21 having different behavior on different versions of Linux console (https://www.man7.org/linux/man-pages/man4/console_codes.4.html)?
**Describe alternatives you've considered**
Perfect scenario would be maintaining some kind of database on what terminal supports so user could choose a target emulator to interpret the sequences for, but at this point it would be essentially a separate project on its own (and perhaps an expansion of sorts to termcap/terminfo). Not mentioning it would be most likely too taxing to be maintained in a relatively up-to-date state.
**Additional context**
None.
Contributor guide
Assessment
This issue has not been assessed yet.