Lending some color to Tokei Code Analyzer

Time for another open-source adventure! We’ll be joined by Max Jacobson as we visit the Rust cli-tool Tokei. Tokei generates statistics around your code and language usage. For example, chael.codes looks like:

Forem, the repo behind therelicans.com a…


This content originally appeared on DEV Community and was authored by Rachael Wright-Munn

Time for another open-source adventure! We’ll be joined by Max Jacobson as we visit the Rust cli-tool Tokei. Tokei generates statistics around your code and language usage. For example, chael.codes looks like: tokei code analysis

Forem, the repo behind therelicans.com and dev.to, looks like this: tokei code analysis of Forem

We’re going to pick up an issue with a lot of discussion that hasn’t been touched in 10 months that I personally like. Those screenshots before weren’t very engaging, right? Let’s add some lovely color to Tokei’s terminal output!

There are some requirements listed out in the issue above.

  • It must look good in light and dark mode terminals
  • A crate should manage colorizing the output
  • A color flag should manage color output --color (always|auto|never)
  • thick rows === should be bold and the thin rows — dimmed

I think it’d look nice to give all the languages a cyan color, and emphasize the subtotals.

First step is identifying how we’ll cover color output, and the issue points us to colored which is based on a Ruby gem of the same name. Usage is very straightforward. println!("Hello, {}!", "world".green().bold()) will use the terminal’s colors, and bold the text. the world in hello, world is green and bold

Note that “cyan” or “green” may not always be cyan or green, they’re just roles in your terminal color scheme.

Next, it’s time to think about how and where to output these colors. Tokei implements a printer interface in cli_utils.rs which is where I found the headers!

With some lovely colors and style implemented in Tokei, it’s time to think about those command line args and turning off color. Some people (like other computers) prefer not to have color. I think we handle this in cli.rs. ShouldColorize respects environment variables like NOCOLOR and CLICOLOR, but flags seem helpful too. We should document this regardless.

Add Color to Tokei #751

closes #419 Use the colored crate to add some additional color to Tokei. Colored will respect settings like CLICOLOR_FORCE and NO_COLOR. It will also use the configured terminal theme's blue.

Old New
old tokei tokei color
tokei bright no color Tokei color bright


This content originally appeared on DEV Community and was authored by Rachael Wright-Munn


Print Share Comment Cite Upload Translate Updates
APA

Rachael Wright-Munn | Sciencx (2021-05-15T21:52:32+00:00) Lending some color to Tokei Code Analyzer. Retrieved from https://www.scien.cx/2021/05/15/lending-some-color-to-tokei-code-analyzer/

MLA
" » Lending some color to Tokei Code Analyzer." Rachael Wright-Munn | Sciencx - Saturday May 15, 2021, https://www.scien.cx/2021/05/15/lending-some-color-to-tokei-code-analyzer/
HARVARD
Rachael Wright-Munn | Sciencx Saturday May 15, 2021 » Lending some color to Tokei Code Analyzer., viewed ,<https://www.scien.cx/2021/05/15/lending-some-color-to-tokei-code-analyzer/>
VANCOUVER
Rachael Wright-Munn | Sciencx - » Lending some color to Tokei Code Analyzer. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/05/15/lending-some-color-to-tokei-code-analyzer/
CHICAGO
" » Lending some color to Tokei Code Analyzer." Rachael Wright-Munn | Sciencx - Accessed . https://www.scien.cx/2021/05/15/lending-some-color-to-tokei-code-analyzer/
IEEE
" » Lending some color to Tokei Code Analyzer." Rachael Wright-Munn | Sciencx [Online]. Available: https://www.scien.cx/2021/05/15/lending-some-color-to-tokei-code-analyzer/. [Accessed: ]
rf:citation
» Lending some color to Tokei Code Analyzer | Rachael Wright-Munn | Sciencx | https://www.scien.cx/2021/05/15/lending-some-color-to-tokei-code-analyzer/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.