Skip to content

fix(linter): Fix syntax error reporting in some output formatters. #19590

Merged
graphite-app[bot] merged 1 commit intomainfrom
fix-colon-issue
Feb 21, 2026
Merged

fix(linter): Fix syntax error reporting in some output formatters. #19590
graphite-app[bot] merged 1 commit intomainfrom
fix-colon-issue

Conversation

@connorshea
Copy link
Member

Add snapshot tests for all the formatters with this case to make sure we don't regress on this for any of them in the future.

Basically, we were being overly aggressive in the stripping of the rule ID from the message, which caused messages with colons in them (e.g. parser errors like Expected ;but found:``) to be truncated to just the character after the first colon.

We don't actually need to do this anymore, as the diagnostic.to_string() method doesn't include the rule ID (if it ever did), so we can just use the full string as the message without any additional parsing.

Generated with Claude Code.

Fixes #19588.

Copilot AI review requested due to automatic review settings February 21, 2026 03:15
@connorshea connorshea requested a review from camc314 as a code owner February 21, 2026 03:15
@connorshea connorshea changed the title fix(linter): Fix syntax error reporting in unix output formatter. fix(linter): Fix syntax error reporting in some output formatters. Feb 21, 2026
@github-actions github-actions bot added A-linter Area - Linter A-cli Area - CLI C-bug Category - Bug labels Feb 21, 2026
@connorshea
Copy link
Member Author

Confirmed that this impacted the checkstyle, github, junit, and unix formatters at least. Not stylish or default, though.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes truncated diagnostics (notably parser errors containing :) by removing overly aggressive message parsing in the diagnostics reporter, and adds regression coverage to prevent formatter regressions.

Changes:

  • Remove colon-based message truncation from Info::new (use diagnostic.to_string() as-is).
  • Add a Unix reporter unit regression test for messages containing colons.
  • Add snapshot regression coverage using a parser-error fixture across multiple CLI output formatters.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

File Description
crates/oxc_diagnostics/src/reporter.rs Stops truncating diagnostic messages on : when building Info, preventing loss of parser error text.
apps/oxlint/src/output_formatter/unix.rs Adds a unit regression test ensuring Unix output preserves messages containing :.
apps/oxlint/src/output_formatter/mod.rs Adds a snapshot regression test running multiple output formatters against a parser-error fixture.
apps/oxlint/fixtures/output_formatter_diagnostic/parser-error.js Adds a fixture that triggers a parser error containing : in the message.

@codspeed-hq
Copy link

codspeed-hq bot commented Feb 21, 2026

Merging this PR will not alter performance

✅ 47 untouched benchmarks
⏩ 3 skipped benchmarks1


Comparing fix-colon-issue (09507d0) with main (024f51c)

Open in CodSpeed

Footnotes

  1. 3 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@connorshea
Copy link
Member Author

I am not sure what is causing the failure in the tests 🤔

@github-actions github-actions bot added the A-linter-plugins Area - Linter JS plugins label Feb 21, 2026
@camc314 camc314 added the 0-merge Merge with Graphite Merge Queue label Feb 21, 2026
@camc314 camc314 self-assigned this Feb 21, 2026
Copy link
Contributor

camc314 commented Feb 21, 2026

Merge activity

…19590)

Add snapshot tests for all the formatters with this case to make sure we don't regress on this for any of them in the future.

Basically, we were being overly aggressive in the stripping of the rule ID from the message, which caused messages with colons in them (e.g. parser errors like `Expected `;` but found `:``) to be truncated to just the character after the first colon.

We don't actually need to do this anymore, as the `diagnostic.to_string()` method doesn't include the rule ID (if it ever did), so we can just use the full string as the message without any additional parsing.

Generated with Claude Code.

Fixes #19588.
@graphite-app graphite-app bot merged commit 7958b56 into main Feb 21, 2026
21 checks passed
@graphite-app graphite-app bot deleted the fix-colon-issue branch February 21, 2026 12:20
@graphite-app graphite-app bot removed the 0-merge Merge with Graphite Merge Queue label Feb 21, 2026
camc314 pushed a commit that referenced this pull request Feb 23, 2026
### 🚀 Features

- e814049 oxc_data_structure/rope: Add `get_offset_from_line_and_column`
(#18133) (Sysix)

### 🐛 Bug Fixes

- 7958b56 linter: Fix syntax error reporting in some output formatters.
(#19590) (connorshea)
- e316694 codegen: Avoid sourcemap panic on `U+2028`/`U+2029` (#19548)
(camc314)
- 933ff72 semantic: Emit correct error code for reserved type name
(#19545) (camc314)

### ⚡ Performance

- b5fa195 codegen: Remove bounds check from `SourcemapBuilder` (#19578)
(overlookmotel)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
camc314 pushed a commit that referenced this pull request Feb 23, 2026
# Oxlint
### 🚀 Features

- 46177dd linter: Implement unicorn/prefer-module (#19603) (camc314)
- 42f78bb linter: Implement unicorn/prefer-ternary (#19605) (camc314)

### 🐛 Bug Fixes

- 43df857 react/exhaustive-deps: Normalize .current callback deps
(#19610) (camc314)
- 574f48f linter/no-throw-literal: Close warning block (#19612)
(camc314)
- 79fe3b4 linter/prefer-mock-return-shorthand: Avoid unsafe autofixes
for call-like returns (#19581) (camc314)
- 85045e8 linter: Check protected members in
explicit-module-boundary-types (#19594) (camc314)
- e38115e linter: Catch missing return type on exported arrow/function
expressions (#19587) (Peter Wagenet)
- 419d3fd linter: Fix false negatives in typescript/no-require-imports
(#19589) (Peter Wagenet)
- 7958b56 linter: Fix syntax error reporting in some output formatters.
(#19590) (connorshea)
- 024f51c linter: Add help text to more eslint diagnostics (#19591)
(Anthony Amaro)
- a8489a1 linter: Warning `eslint/no-throw-literal` rule to be
deprecated, better use `typescript/only-throw-error` (#19593) (Said
Atrahouch)
- 50fc70d linter/type-aware: Use correct span for disable directives
(#19576) (camc314)
- 421a99c linter: Add help guidance to eslint diagnostic messages
(#19562) (Anthony Amaro)
- e81364a linter: Add help text to eslint rule diagnostics (#19560)
(Anthony Amaro)
- 89b58d0 linter: Add help text to more eslint rule diagnostics (#19561)
(Anthony Amaro)
- 74f7833 linter/jest/prefer-mock-return-shorthand: Preserve typed arrow
returns (#19556) (camc314)
- bdd6f34 linter: Restrict prefer-import-in-mock to mock calls (#19555)
(camc314)

### 📚 Documentation

- a331993 linter: Improve docs for `eslint/radix` rule. (#19611)
(connorshea)

### 🛡️ Security

- c67f9dc linter: Update ajv version. (#19613) (connorshea)
# Oxfmt
### 🚀 Features

- 984dc07 oxfmt: Strip `"experimental"SortXxx` prefix (#19567)
(leaysgur)

### 🐛 Bug Fixes

- d7b63a4 oxfmt: Update API types for `sortPackageJsonOptions` (#19569)
(leaysgur)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-cli Area - CLI A-linter Area - Linter A-linter-plugins Area - Linter JS plugins C-bug Category - Bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

linter: unix format missing text for some errors

3 participants