Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Output highlighting #90

Merged
merged 9 commits into from
Apr 5, 2021
Merged

Output highlighting #90

merged 9 commits into from
Apr 5, 2021

Conversation

tiffany352
Copy link
Owner

@tiffany352 tiffany352 commented Apr 3, 2021

Creates a new representation for Rink's output in the form of a token tree. The tokens are arbitrary text that's tagged with a hint for their usage, such as numbers, units, etc.

This is then used in rink-cli to provide colored output, instead of the Display implementation that has been use until now.

Adds new config options for whether colors should be enabled (disabled by default), creating custom color themes, and enabling long-form output mode.

Long output is made possible by the ListBegin and ListSep token types. They indicate that something should be rendered as a list. The CLI can then use this to render lists using a Unicode bullet character, this is disabled by default.

Remaining tasks:

  • Add unit tests for this new output mode.
  • Validate the color scheme on various different terminals to make sure the default color scheme is widely readable.
  • Add coloring for error messages.
  • Make sure it addresses @mkroman's usecase for IRC coloring mentioned in IRC and Matrix reference implementations #75.

Syntax highlighting for actual input as you type it in will be significantly more complicated, because the parser has to pass through span information and be made infallible. That should get done in a followup PR.

Switches to rustyline away from linefeed, for these reasons:

  • Supports colors in tab completion results.
  • Supports highlighting input text, although I don't use this yet.
  • More active maintenance, widely used.

Colors and long output mode both enabled, also a custom prompt set.
image

@tiffany352 tiffany352 changed the title Syntax highlighting Output highlighting Apr 5, 2021
@tiffany352 tiffany352 merged commit 709b5d0 into master Apr 5, 2021
@tiffany352 tiffany352 deleted the token-colors branch April 5, 2021 23:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant