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

feat: Add Renderer::cut_indicator #172

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

Conversation

BurntSushi
Copy link
Member

This adds a new API for overriding the use of ... to indicate a cut or
trimmed line. In the case of Ruff, we didn't want to use ... since
... is valid Python code. It could be rather confusing in some cases
where ... would be ambiguous between "line was cut here" and "this is
what the actual line read as." I think this can happen with any
indicator of course, but for Python specifically, it's pretty likely to
happen with ....

The new API here is somewhat sub-optimal in that it requires a
&'static str. I did this because of the constraints imposed by
a Renderer's const constructor.

@epage
Copy link
Contributor

epage commented Jan 9, 2025

It might be good for there to be an issue for exploring this before moving onto a PR as this might run counter to some other goals

  • Converging on a common set of best practices / being opinionted
  • Handling unicode vs ascii via a single flag rather than attempting to make the whole layout engine themable

This adds a new API for overriding the use of `...` to indicate a cut or
trimmed line. In the case of Ruff, we didn't want to use `...` since
`...` is valid Python code. It could be rather confusing in some cases
where `...` would be ambiguous between "line was cut here" and "this is
what the actual line read as." I think this can happen with _any_
indicator of course, but for Python specifically, it's pretty likely to
happen with `...`.

The new API here is somewhat sub-optimal in that it requires a
`&'static str`. I did this because of the constraints imposed by
a `Renderer`'s `const` constructor.
@BurntSushi
Copy link
Member Author

Aye, fair enough! I opened #174 for that.

BurntSushi added a commit to astral-sh/ruff that referenced this pull request Jan 9, 2025
We do this because `...` is valid Python, which makes it pretty likely
that some line trimming will lead to ambiguous output. So we add support
for overriding the cut indicator. This also requires changing some of
the alignment math, which was previously tightly coupled to `...`.

For Ruff, we go with `…` (`U+2026 HORIZONTAL ELLIPSIS`) for our cut
indicator.

For more details, see the patch sent to upstream:
rust-lang/annotate-snippets-rs#172
BurntSushi added a commit to astral-sh/ruff that referenced this pull request Jan 9, 2025
We do this because `...` is valid Python, which makes it pretty likely
that some line trimming will lead to ambiguous output. So we add support
for overriding the cut indicator. This also requires changing some of
the alignment math, which was previously tightly coupled to `...`.

For Ruff, we go with `…` (`U+2026 HORIZONTAL ELLIPSIS`) for our cut
indicator.

For more details, see the patch sent to upstream:
rust-lang/annotate-snippets-rs#172
BurntSushi added a commit to astral-sh/ruff that referenced this pull request Jan 10, 2025
We do this because `...` is valid Python, which makes it pretty likely
that some line trimming will lead to ambiguous output. So we add support
for overriding the cut indicator. This also requires changing some of
the alignment math, which was previously tightly coupled to `...`.

For Ruff, we go with `…` (`U+2026 HORIZONTAL ELLIPSIS`) for our cut
indicator.

For more details, see the patch sent to upstream:
rust-lang/annotate-snippets-rs#172
BurntSushi added a commit to astral-sh/ruff that referenced this pull request Jan 13, 2025
We do this because `...` is valid Python, which makes it pretty likely
that some line trimming will lead to ambiguous output. So we add support
for overriding the cut indicator. This also requires changing some of
the alignment math, which was previously tightly coupled to `...`.

For Ruff, we go with `…` (`U+2026 HORIZONTAL ELLIPSIS`) for our cut
indicator.

For more details, see the patch sent to upstream:
rust-lang/annotate-snippets-rs#172
BurntSushi added a commit to astral-sh/ruff that referenced this pull request Jan 14, 2025
We do this because `...` is valid Python, which makes it pretty likely
that some line trimming will lead to ambiguous output. So we add support
for overriding the cut indicator. This also requires changing some of
the alignment math, which was previously tightly coupled to `...`.

For Ruff, we go with `…` (`U+2026 HORIZONTAL ELLIPSIS`) for our cut
indicator.

For more details, see the patch sent to upstream:
rust-lang/annotate-snippets-rs#172
BurntSushi added a commit to astral-sh/ruff that referenced this pull request Jan 14, 2025
We do this because `...` is valid Python, which makes it pretty likely
that some line trimming will lead to ambiguous output. So we add support
for overriding the cut indicator. This also requires changing some of
the alignment math, which was previously tightly coupled to `...`.

For Ruff, we go with `…` (`U+2026 HORIZONTAL ELLIPSIS`) for our cut
indicator.

For more details, see the patch sent to upstream:
rust-lang/annotate-snippets-rs#172
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.

2 participants