feat: draw the word github.com draws for ##[error] and friends #32

Closed
barrettruth wants to merge 1 commit from feat/marker-labels into main
Owner

Checklist

  • I have read CONTRIBUTING.md.
  • No AI was used to generate, edit, or review any part of this contribution.

Problem

The raw byte is only a marker — the word is github.com's rendering of it:

2026-07-27T13:46:55.3331680Z ##[error]Process completed with exit code 1.
2026-07-27T13:38:50.1310670Z ##[warning]The following taps are not trusted:

We concealed the marker and turned the line red, so the word was lost and
colour became the only signal for what the line is.

Solution

buffer  "##[error]Process completed with exit code 1."
screen  "Error: Process completed with exit code 1."

buffer  "##[warning]The following taps are not trusted:"
screen  "Warning: The following taps are not trusted:"

Inline virtual text where the marker was, sharing one extmark with the indent
already sitting at that column so the two cannot fight over ordering. Notice:
comes along for ##[notice].

This is the same substitution the timestamp column already makes — showing
Mon, 27 Jul 2026 15:14:08 GMT where the bytes say
2026-07-27T15:14:08.0000000Z. The bytes are untouched either way, so yanking
still gives you ##[error]….

One deliberate difference

github.com fills the line with a red or yellow background. This does not, and
I would not: CiFail and CiAttention link to DiagnosticError and
DiagnosticWarn, which are foreground groups, and painting a full-width
background would mean breaking that link and deciding a colour on the reader's
behalf. [command] and ##[group] get no label, matching github.com, which
styles those without naming them.

## Checklist - [x] I have read [CONTRIBUTING.md](https://forge.barrettruth.com/barrettruth/ci.nvim/src/branch/main/CONTRIBUTING.md). - [ ] No AI was used to generate, edit, or review any part of this contribution. ## Problem The raw byte is only a marker — the word is github.com's rendering of it: ``` 2026-07-27T13:46:55.3331680Z ##[error]Process completed with exit code 1. 2026-07-27T13:38:50.1310670Z ##[warning]The following taps are not trusted: ``` We concealed the marker and turned the line red, so the word was lost and colour became the only signal for what the line is. ## Solution ``` buffer "##[error]Process completed with exit code 1." screen "Error: Process completed with exit code 1." buffer "##[warning]The following taps are not trusted:" screen "Warning: The following taps are not trusted:" ``` Inline virtual text where the marker was, sharing one extmark with the indent already sitting at that column so the two cannot fight over ordering. `Notice:` comes along for `##[notice]`. This is the same substitution the timestamp column already makes — showing `Mon, 27 Jul 2026 15:14:08 GMT` where the bytes say `2026-07-27T15:14:08.0000000Z`. The bytes are untouched either way, so yanking still gives you `##[error]…`. ## One deliberate difference github.com fills the line with a red or yellow background. This does not, and I would not: `CiFail` and `CiAttention` link to `DiagnosticError` and `DiagnosticWarn`, which are foreground groups, and painting a full-width background would mean breaking that link and deciding a colour on the reader's behalf. `[command]` and `##[group]` get no label, matching github.com, which styles those without naming them.
feat: draw the word github.com draws for ##[error] and friends
All checks were successful
quality / Test (pull_request) Successful in 3s
quality / Format (pull_request) Successful in 9s
quality / Lint (pull_request) Successful in 10s
b2645cb0f2
Problem: ##[error] is concealed and the line turned red, so the word "Error"
that github.com renders from that marker was lost, leaving colour as the only
sign of what the line is.

Solution: The label is drawn as inline virtual text where the marker was,
alongside the indent already there, which is the same substitution the
timestamp column makes for the ISO stamp.
barrettruth closed this pull request 2026-07-28 03:22:26 +00:00
All checks were successful
quality / Test (pull_request) Successful in 3s
Required
Details
quality / Format (pull_request) Successful in 9s
Required
Details
quality / Lint (pull_request) Successful in 10s
Required
Details

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
barrettruth/ci.nvim!32
No description provided.