Skip to content

Preserve attached tokens in Svelte class concatenations - #483

Open
MikeeI wants to merge 1 commit into
tailwindlabs:mainfrom
MikeeI:fix/issue-006-preserve-svelte-class-fragments
Open

MikeeI wants to merge 1 commit into
tailwindlabs:mainfrom
MikeeI:fix/issue-006-preserve-svelte-class-fragments

Conversation

@MikeeI

@MikeeI MikeeI commented Oct 21, 2026

Copy link
Copy Markdown

Summary

Disabling whitespace collapse does not prevent sorting from moving an externally attached class token.
In "inline-" + "underline flex block", the prefix can become attached to block instead of underline.
Accumulate concatenation edges through the complete Svelte expression path.
Protect attached first and last tokens in both string literals and template quasis.
Independent middle classes remain sortable.

Related work: #475
This targets token attachment, not that PR's whitespace-collapse and source-offset changes.
Existing whitespace, deduplication, and source-length policies remain unchanged.

Verification

  • Added a built-plugin regression with outer concatenations, nested conditionals, and both literal kinds.
  • Existing Svelte plugin-compatibility coverage passed after correcting unsafe historical expectations.
  • pnpm run format --check, pnpm run lint, and pnpm run build passed.
  • pnpm run test --run: 112 passed, four existing skips.

Tested with Node.js 26.12.0, pnpm 10.28.2, and lockfile-pinned Prettier 3.9.6.
The src/config.ts change is only repository-formatter normalization of an existing signature.

Disclosure

Investigated thoroughly with openai-codex/gpt-6.1-sol (medium reasoning effort), using Oh My Pi as the agent framework.
I thoroughly reviewed this contribution with openai-codex/gpt-6.1-sol (medium reasoning effort).

This report is not generic or unreviewed AI-generated output.
Its claims were checked against the cited evidence, and it includes the relevant detail intended to help maintainers resolve the issue.

If reports like this are not useful to the project, please let me know and I will refrain from submitting similar ones.
My intent is to help without wasting maintainer time or energy or discouraging their work.

Thank you for your work.

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.

1 participant