zkat / miette

Fancy extension for std::error::Error with pretty, detailed diagnostic printing.
https://docs.rs/miette
Apache License 2.0
1.98k stars 113 forks source link

rendering bug on small spans in large spans #316

Closed jdonszelmann closed 10 months ago

jdonszelmann commented 10 months ago

See #317. This contributes a test for #317 and then fixes the bug :)

Closes #317

The bad screenshot from #317

image

now becomes this with the proposed changes:

image

Note that there were actually two subtle bugs. One was the double arrow in the gutter problem, which also occurred when rendering without ansi escape codes. However, this line https://github.com/zkat/miette/blob/a8b4ae012aa0cf03b53a18f013c2b3f76c5040e7/src/handlers/graphical.rs#L611

Also did not work when the gutter contains ansi escape codes. It extends to the width variable, but when the string contains ansi codes it does not actually add any spaces since it thinks the escape codes have width as well. They of course do not, so the output doesn't look right. Unfortunately this is quite hard to make tests for.

zkat commented 10 months ago

Can you fix the conflicts here?

jdonszelmann commented 10 months ago

Yes! One sec

jdonszelmann commented 10 months ago

@zkat there ya go! Thanks for having started such an awesome project :sparkling_heart: