Skip to content

fix: enhance error diagnostics for multi-line expressions#36

Merged
WipeAir merged 1 commit intomainfrom
fix/multi-line-diagnostics
Mar 18, 2026
Merged

fix: enhance error diagnostics for multi-line expressions#36
WipeAir merged 1 commit intomainfrom
fix/multi-line-diagnostics

Conversation

@WipeAir
Copy link
Copy Markdown
Member

@WipeAir WipeAir commented Mar 18, 2026

No description provided.

Copilot AI review requested due to automatic review settings March 18, 2026 20:47
@WipeAir WipeAir enabled auto-merge (squash) March 18, 2026 20:47
@WipeAir WipeAir merged commit 7237078 into main Mar 18, 2026
11 checks passed
@WipeAir WipeAir deleted the fix/multi-line-diagnostics branch March 18, 2026 20:49
Copy link
Copy Markdown

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

Enhances sel-checker diagnostics so caret-based error locations from cel-js can be converted into absolute offsets within multi-line SEL expressions, improving editor highlighting and error reporting for multi-line inputs.

Changes:

  • Extend caret-position parsing to account for reported line numbers and compute document-absolute {from,to} offsets.
  • Update diagnostics extraction to pass the original expression into position parsing.
  • Add unit tests covering multi-line offsets and fallback behavior.

Reviewed changes

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

File Description
packages/sel-checker/src/checker/diagnostics.ts Compute absolute offsets using parsed `> N
packages/sel-checker/src/checker/diagnostics.spec.ts Add tests for multi-line absolute offset computation and out-of-range fallback.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

const lineMatch = codeLine.match(/^>\s+(\d+)\s*\|/);
const lineNumber = lineMatch ? Number(lineMatch[1]) : 1;

// Compute the byte offset where this line starts in the expression
* positions relative to the error line; we need document-absolute offsets.
*/
const lineMatch = codeLine.match(/^>\s+(\d+)\s*\|/);
const lineNumber = lineMatch ? Number(lineMatch[1]) : 1;
@abi-releaser abi-releaser bot mentioned this pull request Mar 18, 2026
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