charmbracelet / charmbracelet/sequin

Add information about project scope and approach to resolve conflicting scenarios

Open
#27 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.