mirror of
https://github.com/martinvonz/jj.git
synced 2025-01-15 08:53:16 +00:00
5cf2b6615a
Let's use `crossterm` to make `ColorFormatter` a little more readable, and maybe also more portable. This uses the `SetForegroundColor()` function, which uses the escapes for 256-color support (code 38) instead of the 8-color escapes (codes 30-37) combined with bold/bright (code 1) we were using before. IIUC, most terminals support the 16 base colors when using the 256-color escape even if they don't support all the 256 colors. It seems like an improvement to use actual color codes for the bright colors too, instead of assuming that terminals render bold as bright (even though most terminals do). Before this commit, we relied on ANSI escape 1 - which is specified to make the font bold - to make the color brighter. That's why we call the colors "bright blue" etc. When we switch from using code 30-37 to using 38 to let our color config just control the color (not using escape1), we therefore lose the bold font on many terminals (at least in iTerm2 and in the terminal application on my Debian work computer). As a workaround, I made us still use escape 1 when the bright colors are used. I'll make boldness a separately configurable attribute soon. Then we'll be able to remove this hack. With the switch to `crossterm`, we also reset just the foreground color (code 39) instead of resetting all attributes (code 0). That also seems like an improvement, probably making it easier for us to later support different background colors, underlining, etc. |
||
---|---|---|
.. | ||
common | ||
test_abandon_command.rs | ||
test_alias.rs | ||
test_branch_command.rs | ||
test_checkout.rs | ||
test_commit_command.rs | ||
test_commit_template.rs | ||
test_concurrent_operations.rs | ||
test_config_command.rs | ||
test_debug_command.rs | ||
test_describe_command.rs | ||
test_diff_command.rs | ||
test_diffedit_command.rs | ||
test_edit_command.rs | ||
test_git_clone.rs | ||
test_git_colocated.rs | ||
test_git_export.rs | ||
test_git_push.rs | ||
test_git_remotes.rs | ||
test_gitignores.rs | ||
test_global_opts.rs | ||
test_init_command.rs | ||
test_interdiff_command.rs | ||
test_log_command.rs | ||
test_move_command.rs | ||
test_new_command.rs | ||
test_obslog_command.rs | ||
test_operations.rs | ||
test_print_command.rs | ||
test_rebase_command.rs | ||
test_resolve_command.rs | ||
test_restore_command.rs | ||
test_revset_output.rs | ||
test_show_command.rs | ||
test_sparse_command.rs | ||
test_split_command.rs | ||
test_squash_command.rs | ||
test_status_command.rs | ||
test_templater.rs | ||
test_undo.rs | ||
test_unsquash_command.rs | ||
test_untrack_command.rs | ||
test_workspaces.rs |