Skip to content
New issue

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

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

Already on GitHub? # to your account

Control color output with C2_COLORS environment variable #178

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

chqrlie
Copy link
Contributor

@chqrlie chqrlie commented Mar 8, 2025

  • use style names instead of hard-coded color names
  • customize color output via environment variable C2_COLORS: eg: C2_COLORS=none, C2_COLORS="error:bright-blue, C2_COLORS="error:#d0d0d0
  • use cache to multiple calls to unix.isatty() and stdib.getenv()
  • simplify error formating in source_mgr.c2

@chqrlie chqrlie force-pushed the nocolor branch 3 times, most recently from ee5cef6 to bdbd6c8 Compare March 10, 2025 10:05
@bvdberg
Copy link
Member

bvdberg commented Mar 10, 2025

Please be Very careful with globals in combination with plugins. Since the plugins will have a different set of them. Please see the ast.setGlobals() function. It's a bit of a hack, but it's the only way to have access to the same globals atm..

@chqrlie
Copy link
Contributor Author

chqrlie commented Mar 10, 2025

Please be Very careful with globals in combination with plugins. Since the plugins will have a different set of them. Please see the ast.setGlobals() function. It's a bit of a hack, but it's the only way to have access to the same globals atm..

Yes, I am aware of this problem. As long as we call color.useColor() in both c2c and in all plugins, the global color variables should be initialized and cached with the same values.

Alternately, we could make these variables members of the diagnostics or globals or another appropriate structure to ensure encapsulation and dynamic sharing with the plugins.

The globals variable in ast/utils.c2 is definitely a hack.

@chqrlie chqrlie force-pushed the nocolor branch 4 times, most recently from 9242087 to a8f79c0 Compare March 17, 2025 19:16
@bvdberg
Copy link
Member

bvdberg commented Mar 18, 2025

To keep the plugins working, all AST globals need to be moved to the Globals struct)

* use style names instead of hard-coded color names
* customize color output via environment variable `C2_COLORS`:
  eg: `C2_COLORS=none`, `C2_COLORS="error:bright-blue`, `C2_COLORS="error:#d0d0d0`
* use cache to multiple calls to `unix.isatty()` and `stdib.getenv()`
* simplify error formating in **source_mgr.c2**
* add c2cat color customisation
@chqrlie chqrlie marked this pull request as draft March 23, 2025 19:17
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants