Skip to content

feat: bump oxfmt to v0.26.0#4

Merged
ntnyq merged 5 commits into
mainfrom
feat/oxfmt-v0.26
Jan 20, 2026
Merged

feat: bump oxfmt to v0.26.0#4
ntnyq merged 5 commits into
mainfrom
feat/oxfmt-v0.26

Conversation

@ntnyq

@ntnyq ntnyq commented Jan 20, 2026

Copy link
Copy Markdown
Owner
  • Support option experimentalSortImports.customGroups
  • Support option experimentalSortPackageJson.sortScripts
  • Support option htmlWhitespaceSensitivity
  • Support option proseWrap
  • Support option vueIndentScriptAndStyle
  • Support option overrides

Summary by CodeRabbit

  • New Features

    • Added htmlWhitespaceSensitivity, proseWrap, vueIndentScriptAndStyle, and many new formatting options plus per-file "overrides".
    • Enhanced experimental features: custom import groups, optional package.json script sorting, and Tailwind-related formatting options.
  • Documentation

    • Expanded README with option docs, examples, and overrides guidance.
  • Tests

    • Added coverage for overrides, import/package sorting, prose/Vue handling, objectWrap, and ignore patterns.
  • Chores

    • Bumped multiple dependencies and dev tooling versions.

✏️ Tip: You can customize this high-level summary in your review settings.

Copilot AI review requested due to automatic review settings January 20, 2026 01:27
@coderabbitai

coderabbitai Bot commented Jan 20, 2026

Copy link
Copy Markdown

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

📝 Walkthrough

Walkthrough

Adds a shared JSON schema and consolidates oxfmt options into a FormatConfig with per-file overrides; expands formatting options (HTML/Vue/prose, import/package.json/Tailwind sorting, objectWrap, ignorePatterns); updates type declarations, tests, README, and bumps several package/devDependency versions.

Changes

Cohort / File(s) Summary
Package manifest
package.json
Version bumps: packageManager pnpm 10.28.0 → 10.28.1; dependency updates (load-oxfmt-config, synckit); devDependency updates (@types/node, @typescript/native-preview, bumpp, oxfmt, prettier, tsdown, vitest) and addition of @types/json-schema.
Shared schema
src/schema.ts
New exported sharedSchema: JSONSchema4 centralizing formatter options and nested experimental features (experimentalSortImports, experimentalTailwindcss) with strict validation and detailed property defs.
Type declarations
dts/rule-options.d.ts
Expanded public types: adds overrides/FormatConfig and _OxfmtOxfmt_FormatConfig; new options htmlWhitespaceSensitivity, proseWrap, vueIndentScriptAndStyle; experimentalSortPackageJson becomes `boolean
Rule schema / implementation
src/rules/oxfmt.ts
Refactors rule meta.schema to import and reuse sharedSchema; replaces many flat properties with a FormatConfig definition and an overrides array (OxfmtOverrideConfig); validation shape changed, runtime behavior unchanged.
Tests
tests/rules/oxfmt.test.ts
Adds tests for experimentalSortImports, experimentalSortPackageJson, overrides behavior (per-glob trailingComma), prose/embed formatting, vueIndentScriptAndStyle, objectWrap, and ignorePatterns/override exclusions.
Documentation
README.md
Expanded docs and examples for new options: overrides, import/package.json/Tailwind sorting, Vue SFC handling, prose/HTML options, objectWrap, and ignorePatterns.

Sequence Diagram(s)

(Skipped — changes are schema/options and do not introduce a multi-component sequential flow.)

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Poem

🐇 I nibble lines and sort the stacks,

Overrides tucked into tidy tracks.
Imports dance and scripts align,
Tailwind petals trimmed by design.
Hoppity hops — schema looks fine.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: bumping oxfmt from v0.24.0 to v0.26.0, which is the primary version update across package.json, dependencies, and the entire changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
package.json (1)

59-62: peerDependencies oxfmt version should be bumped to match devDependencies.

The PR description indicates support for new v0.26.0 options (experimentalSortImports.customGroups, sortScripts, htmlWhitespaceSensitivity, proseWrap, vueIndentScriptAndStyle, overrides), but peerDependencies still requires ^0.24.0. Users installing this plugin with oxfmt v0.24.x may encounter runtime errors when using these new features.

Proposed fix
   "peerDependencies": {
     "eslint": "^9.5.0",
-    "oxfmt": "^0.24.0"
+    "oxfmt": "^0.26.0"
   },

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This pull request bumps the oxfmt formatter from v0.24.0 to v0.26.0 along with updating related dependencies. The PR description indicates intent to add support for six new configuration options, but these remain unimplemented.

Changes:

  • Update oxfmt from ^0.24.0 to ^0.26.0 in devDependencies
  • Update load-oxfmt-config from ^0.0.6 to ^0.0.7
  • Update synckit from ^0.11.11 to ^0.11.12
  • Update various other development dependencies (vitest, prettier, bumpp, @types/node, @typescript/native-preview)
  • Update package manager version from pnpm@10.28.0 to pnpm@10.28.1

Reviewed changes

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

File Description
package.json Updates oxfmt to v0.26.0 in devDependencies, updates load-oxfmt-config, synckit, and other dev dependencies; bumps package manager version
pnpm-lock.yaml Reflects all dependency version updates with corresponding lockfile changes including transitive dependencies
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 4 changed files in this pull request and generated 1 comment.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread src/rules/oxfmt.ts Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 5 changed files in this pull request and generated no new comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/rules/oxfmt.ts (1)

30-78: Implement override resolution logic before passing options to oxfmt.

oxfmt's API does not support overrides as a programmatic option—per-file formatting requires separate API calls with different FormatOptions per file. The rule exposes overrides in its schema but currently passes all options directly to the worker without resolving file-specific overrides. This will cause overrides to be silently ignored. The rule must match files against override glob patterns and invoke the worker multiple times with appropriate options per file, or remove overrides from the schema if not implemented.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 5 out of 7 changed files in this pull request and generated no new comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

@ntnyq ntnyq merged commit 1f897ba into main Jan 20, 2026
18 checks passed
@ntnyq ntnyq deleted the feat/oxfmt-v0.26 branch January 22, 2026 04:00
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