Files
oxc/apps/oxfmt/conformance/snapshots/prettier.snap.md
T
Yuji Sugiura 60efdd3d0a test(oxfmt): unified prettier conformance (#28529)
Up until now, conformance with Prettier was handled separately by each
formatter crate and oxfmt. This was because the individual formatters
were unable to handle embedded formatting.

While that approach worked fine for languages like JSON and CSS, I
realized it would become inconvenient as we moved forward with
supporting languages like Vue.
2026-10-30 22:15:35 +09:00

22 KiB

javascript

1225/1307 (93.73%)

Failed

Spec path Failed or Passed Match ratio
js/arrays/numbers-with-holes.js 💥 92.86%
js/arrows/arrow-chain-with-trailing-comments.js 💥💥 93.75%
js/arrows/issue-17421.js 💥💥 88.70%
js/assignment-comments/string.js 💥 96.59%
js/babel-plugins/v8intrinsic.js 💥 95.83%
js/binary-expressions/mutiple-comments/17192.js 💥✨ 95.83%
js/call/no-argument/no-arguments.js 💥 79.49%
js/class-comment/misc.js 💥 66.67%
js/class-comment/superclass.js 💥 70.33%
js/comments-closure-typecast/iife.js 💥 76.92%
js/comments/array-and-object.js 💥💥 62.50%
js/comments/assignment/variable-declarator.js 💥 84.00%
js/comments/between-head-and-body/between-head-and-body.js 💥 90.85%
js/comments/between-head-and-body/empty-statement.js 💥 86.05%
js/comments/empty-statements.js 💥💥 90.91%
js/comments/first-argument/first-argument.js 💥 92.98%
js/comments/function-declaration.js 💥💥 92.80%
js/comments/function/18146.js 💥 51.80%
js/comments/function/between-parentheses-and-function-body.js 💥 47.62%
js/comments/in-list/dangling-comment-in-list.js 💥 95.91%
js/comments/return-statement-2.js 💥💥 87.32%
js/comments/return-statement.js 💥💥 97.25%
js/comments/tagged-template-literal.js 💥💥 89.66%
js/comments/try.js 💥💥 66.67%
js/comments/variable-declarator.js 💥💥 82.35%
js/embeded/indention/19518.js 💥 92.31%
js/explicit-resource-management/valid-await-using-comments.js 💥 88.24%
js/export-default/class_instance.js 💥 0.00%
js/export-default/function_tostring.js 💥 0.00%
js/export-default/parentheses/snippet: #11 💥 0.00%
js/export-default/parentheses/snippet: #12 💥 0.00%
js/export-default/parentheses/snippet: #9 💥 0.00%
js/for-of/comments.js 💥 44.83%
js/for/9812-2.js 💥 88.89%
js/for/continue-and-break-comment-without-blocks.js 💥 67.59%
js/function/iife.js 💥 14.43%
js/function/issue-12967.js 💥 0.00%
js/identifier/parentheses/let.js 💥💥 92.73%
js/if/condition-break/boolean-expression.js 💥 97.01%
js/if/condition-break/unary-expression.js 💥 61.38%
js/if/expr_and_same_line_comments.js 💥 81.93%
js/if/issue-15168.js 💥 91.43%
js/if/non-block.js 💥 82.35%
js/ignore/issue-10661.js 💥 75.47%
js/ignore/issue-11077.js 💥 93.33%
js/ignore/semi/class-expression-decorator.js 💥💥 25.00%
js/ignore/semi/directive.js 💥✨ 88.89%
js/label/comment.js 💥 58.82%
js/last-argument-expansion/dangling-comment-in-arrow-function.js 💥 0.00%
js/last-argument-expansion/edge_case.js 💥 74.07%
js/logical-expressions/in-unary-expression.js 💥 79.49%
js/multiparser-css/styled-components.js 💥 98.49%
js/multiparser-markdown/codeblock.js 💥 77.78%
js/sequence-expression/parenthesized-trailing-comment-unstable.js 💥 66.67%
js/sequence-expression/parenthesized.js 💥 85.71%
js/switch/comments.js 💥 94.74%
js/template-literals/expressions.js 💥 97.64%
js/ternaries/indent-after-paren.js 💥💥💥💥 99.14%
js/test-declarations/jest-each.js 💥💥 95.71%
js/trailing-comma/trailing_whitespace.js 💥💥💥 96.55%
js/try/try.js 💥 44.44%
jsx/deprecated-jsx-bracket-same-line-option/jsx.js 💥💥✨✨ 92.11%
misc/embedded-language-formatting/in-javascript/test.js 💥✨ 98.00%

Not idempotent

  • js/comments/first-argument/first-argument.js
  • js/comments/return-statement.js
  • js/for/continue-and-break-comment-without-blocks.js
  • js/function/issue-12967.js
  • js/ignore/semi/class-expression-decorator.js
  • js/ignore/semi/head-ignored.js
  • jsx/comments/in-attributes.js

Input variants differ

  • js/comments/trailing_space.js (BOM)
  • js/shebang/shebang-newline.js (BOM)
  • js/shebang/shebang.js (BOM)
  • js/shebang/snippet: Empty file with shebang (BOM)

jsx

39/39 (100.00%)

typescript

632/681 (92.80%)

Failed

Spec path Failed or Passed Match ratio
typescript/as/as-const/as-const.ts 💥 66.67%
typescript/as/as.ts 💥 97.74%
typescript/as/break-after-keyword/18148.ts 💥 93.33%
typescript/as/comments/17407.ts 💥 47.06%
typescript/as/comments/18160.ts 💥 54.21%
typescript/as/export_default_as.ts 💥 0.00%
typescript/call/callee-comments.ts 💥 64.10%
typescript/cast/18406.ts 💥 84.21%
typescript/class-comment/class-implements.ts 💥 93.33%
typescript/class-comment/declare.ts 💥 72.00%
typescript/comments/first-argument/first-argument.ts 💥 81.16%
typescript/comments/method_types.ts 💥 82.05%
typescript/comments/type-literals.ts 💥 89.66%
typescript/conformance/types/union/unionTypeCallSignatures.ts 💥 85.25%
typescript/conformance/types/union/unionTypeConstructSignatures.ts 💥 91.62%
typescript/conformance/types/union/unionTypeIndexSignature.ts 💥 83.64%
typescript/export-default/function_as.ts 💥 0.00%
typescript/interface/comments-generic.ts 💥💥 91.80%
typescript/interface2/comments-declare.ts 💥 60.00%
typescript/interface2/comments.ts 💥 65.79%
typescript/intersection/consistent-with-flow/intersection-parens.ts 💥 97.67%
typescript/intersection/consistent-with-flow/single-member.ts 💥 88.24%
typescript/intersection/intersection-parens.ts 💥💥✨ 99.29%
typescript/prettier-ignore/mapped-types.ts 💥 92.19%
typescript/property-signature/consistent-with-flow/comments.ts 💥 80.00%
typescript/property-signature/consistent-with-flow/union.ts 💥 80.00%
typescript/satisfies-operators/comments-unstable.ts 💥💥 61.54%
typescript/satisfies-operators/export-default-as.ts 💥💥 0.00%
typescript/template-literals/member-expression.ts 💥 65.12%
typescript/tsx/comma/snippet: test.unknown 💥 0.00%
typescript/tsx/comma/snippet: unnamed 💥 0.00%
typescript/type-parameters-arguments/18041.ts 💥 91.43%
typescript/type-parameters-arguments/18604.ts 💥 60.00%
typescript/type-parameters-arguments/19505.ts 💥 81.48%
typescript/type-parameters-arguments/constraints-and-default.ts 💥 91.67%
typescript/union/5849.ts 💥 95.38%
typescript/union/comments/18106.ts 💥 86.36%
typescript/union/comments/18379.ts 💥 92.31%
typescript/union/consistent-with-flow/81-characters.ts 💥 53.85%
typescript/union/consistent-with-flow/comment.ts 💥 87.50%
typescript/union/consistent-with-flow/conditional.ts 💥 54.55%
typescript/union/consistent-with-flow/leading-comments.ts 💥 90.14%
typescript/union/consistent-with-flow/prettier-ignore.ts 💥 88.00%
typescript/union/consistent-with-flow/single-type.ts 💥 97.50%
typescript/union/union-parens.ts 💥 97.67%

Not idempotent

  • typescript/as/comments/17407.ts
  • typescript/method-chain/object/issue-17239.ts
  • typescript/prettier-ignore/issue-14238.ts
  • typescript/prettier-ignore/mapped-types.ts

tsx

20/20 (100.00%)

json

367/367 (100.00%)

json5

193/193 (100.00%)

jsonc

169/169 (100.00%)

css

137/161 (85.09%)

Failed

Spec path Failed or Passed Match ratio
css/comments/declaration.css 💥 98.88%
css/fill-value/fill.css 💥 93.33%
css/parens/empty-lines.css 💥 31.58%
css/parens/parens.css 💥 93.13%
css/postcss-8-improment/test.css 💥 88.24%
css/postcss-plugins/postcss-nesting.css 💥 97.66%
css/stylefmt-repo/at-media/at-media.css 💥 95.24%
css/stylefmt-repo/cssnext-example/cssnext-example.css 💥 98.31%
css/stylefmt-repo/media-queries-ranges/media-queries-ranges.css 💥 90.91%

Error

  • css/atrule/charset.css: Syntax error: expect token <string>, but found <ident>
  • css/atrule/import.css: Syntax error: expect token <ident>, but found (
  • css/atrule/supports.css: Syntax error: expect token ), but found <
  • css/attribute/quotes.css: Syntax error: expect token ], but found (
  • css/combinator/combinator.css: Syntax error: expect token {, but found /
  • css/comments/selectors.css: Syntax error: simple selector is expected
  • css/custom-properties/emoji.css: Syntax error: declaration at top level is disallowed
  • css/no-semicolon/url.css: Syntax error: URL is expected
  • css/postcss-plugins/postcss-mixins.css: Syntax error: expect token {, but found <unknown>
  • css/postcss-plugins/postcss-simple-vars.css: Syntax error: declaration at top level is disallowed
  • css/quotes/quotes.css: Syntax error: expect token {, but found <string>
  • css/selector-list/selectors.css: Syntax error: simple selector is expected
  • css/selector-string/string.css: Syntax error: simple selector is expected

scss

112/143 (78.32%)

Failed

Spec path Failed or Passed Match ratio
css/font/font.css 💥 94.12%
scss/comments/4594.scss 💥 83.78%
scss/comments/4878.scss 💥 89.39%
scss/comments/lists.scss 💥 76.92%
scss/comments/maps.scss 💥 66.67%
scss/comments/variable-declaration.scss 💥 81.25%
scss/function/arbitrary-arguments-comment.scss 💥💥 72.73%
scss/map/15193.scss 💥✨ 92.86%
scss/map/comment.scss 💥💥 73.91%
scss/map/function-argument/functional-argument.scss 💥 96.00%
scss/parens/2.scss 💥 75.00%
scss/parens/issue-16594.scss 💥 71.43%
scss/trailing-comma/comments.scss 💥💥 87.18%
scss/trailing-comma/issue-6920.scss 💥💥 66.67%
scss/trailing-comma/list.scss 💥💥 95.56%
scss/trailing-comma/variable.scss 💥💥 50.00%
scss/variables/postcss-8-improment.scss 💥 88.24%

Error

  • css/custom-properties/emoji.css: Syntax error: declaration at top level is disallowed
  • scss/atrule/for.scss: Syntax error: Sass keyword to is expected
  • scss/case/case.scss: Syntax error: expect token <string>, but found <ident>
  • scss/comments/CRLF.scss: Syntax error: component value is expected
  • scss/math/3945.scss: Syntax error: declaration at top level is disallowed
  • scss/no-semicolon/url.scss: Syntax error: expect token <string>, but found <ident>
  • scss/parens/parens.scss: Syntax error: component value is expected

less

222/245 (90.61%)

Failed

Spec path Failed or Passed Match ratio
less/comments/value-lists.less 💥 76.92%
less/less-test-suite/snippet: tests-config/globalVars/extended.less 💥 78.26%
less/less-test-suite/snippet: tests-config/namespacing/namespacing-functions.less 💥 97.30%
less/less-test-suite/snippet: tests-config/namespacing/namespacing-media.less 💥 96.15%
less/less-test-suite/snippet: tests-unit/color-functions/rgba.less 💥 82.93%
less/less-test-suite/snippet: tests-unit/comments/comments2.less 💥 87.50%
less/less-test-suite/snippet: tests-unit/extend-chaining/extend-chaining.less 💥 98.25%
less/less-test-suite/snippet: tests-unit/extend-selector/extend-selector.less 💥 98.67%
less/less-test-suite/snippet: tests-unit/javascript/javascript.less 💥 81.01%
less/less-test-suite/snippet: tests-unit/mixins-guards-default-func/mixins-guards-default-func.less 💥 99.21%
less/less-test-suite/snippet: tests-unit/mixins-guards/mixins-guards.less 💥 99.48%
less/less-test-suite/snippet: tests-unit/namespace-targeted/namespace-targeted.less 💥 96.88%
less/less-test-suite/snippet: tests-unit/property-name-interp/property-name-interp.less 💥 98.28%
less/less-test-suite/snippet: tests-unit/strings/strings.less 💥 98.68%
less/less-test-suite/snippet: tests-unit/variables/variables.less 💥 98.95%
less/postcss-8-improment/test.less 💥 88.24%

Error

  • less/case/case.less: Syntax error: expect token (, but found <ident>
  • less/comments/in-value.less: Syntax error: expect token ;, but found {
  • less/interpolation/interpolation.less: Syntax error: expect token <ident>, but found @{
  • less/less/less.less: Syntax error: expect one of <ident> or @{, but found (
  • less/lookup/lookup-1.less: Syntax error: expect token ;, but found <ident>
  • less/no-semicolon/url.less: Syntax error: expect token (, but found <ident>
  • less/parens/parens.less: Syntax error: expect token ;, but found {

graphql

105/105 (100.00%)

yaml

1520/1619 (93.89%)

Failed

Spec path Failed or Passed Match ratio
yaml/block-folded/block-folded-strip.yml 💥💥 80.00%
yaml/block-value/snippet: "foo: >-\n x\n \n" 💥 80.00%
yaml/block-value/snippet: "foo: >-\n x\n \n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >-\n x\n \n\n" 💥 80.00%
yaml/block-value/snippet: "foo: >-\n x\n \n\n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >-\n x\n \n\n\n" 💥 80.00%
yaml/block-value/snippet: "foo: >-\n x\n \n\n\n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >-\n x\n \n\n\n\n" 💥 80.00%
yaml/block-value/snippet: "foo: >-\n x\n \n\n\n\n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >-\n x\n \t\n" 💥 80.00%
yaml/block-value/snippet: "foo: >-\n x\n \t\n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >-\n x\n \t\n\n" 💥 80.00%
yaml/block-value/snippet: "foo: >-\n x\n \t\n\n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >-\n x\n \t\n\n\n" 💥 80.00%
yaml/block-value/snippet: "foo: >-\n x\n \t\n\n\n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >-\n x\n \t\n\n\n\n" 💥 80.00%
yaml/block-value/snippet: "foo: >-\n x\n \t\n\n\n\n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >\n x\n \n" 💥 80.00%
yaml/block-value/snippet: "foo: >\n x\n \n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >\n x\n \n\n" 💥 80.00%
yaml/block-value/snippet: "foo: >\n x\n \n\n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >\n x\n \n\n\n" 💥 80.00%
yaml/block-value/snippet: "foo: >\n x\n \n\n\n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >\n x\n \n\n\n\n" 💥 80.00%
yaml/block-value/snippet: "foo: >\n x\n \n\n\n\n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >\n x\n \t\n" 💥 80.00%
yaml/block-value/snippet: "foo: >\n x\n \t\n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >\n x\n \t\n\n" 💥 80.00%
yaml/block-value/snippet: "foo: >\n x\n \t\n\n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >\n x\n \t\n\n\n" 💥 80.00%
yaml/block-value/snippet: "foo: >\n x\n \t\n\n\n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >\n x\n \t\n\n\n\n" 💥 80.00%
yaml/block-value/snippet: "foo: >\n x\n \t\n\n\n\n\n..." 💥 85.71%
yaml/block-value/snippet: "foo: >+\n" 💥💥💥 0.00%
yaml/block-value/snippet: "foo: -\n x\n \n" 💥
yaml/block-value/snippet: "foo: -\n x\n \n\n..." 💥
yaml/block-value/snippet: "foo: -\n x\n \n\n" 💥
yaml/block-value/snippet: "foo: -\n x\n \n\n\n..." 💥
yaml/block-value/snippet: "foo: -\n x\n \n\n\n" 💥
yaml/block-value/snippet: "foo: -\n x\n \n\n\n\n..." 💥
yaml/block-value/snippet: "foo: -\n x\n \n\n\n\n" 💥
yaml/block-value/snippet: "foo: -\n x\n \n\n\n\n\n..." 💥
yaml/block-value/snippet: "foo: -\n x\n \t\n" 💥
yaml/block-value/snippet: "foo: -\n x\n \t\n\n..." 💥
yaml/block-value/snippet: "foo: -\n x\n \t\n\n" 💥
yaml/block-value/snippet: "foo: -\n x\n \t\n\n\n..." 💥
yaml/block-value/snippet: "foo: -\n x\n \t\n\n\n" 💥
yaml/block-value/snippet: "foo: -\n x\n \t\n\n\n\n..." 💥
yaml/block-value/snippet: "foo: -\n x\n \t\n\n\n\n" 💥
yaml/block-value/snippet: "foo: -\n x\n \t\n\n\n\n\n..." 💥
yaml/block-value/snippet: "foo: \n x\n \n" 💥
yaml/block-value/snippet: "foo: \n x\n \n\n..." 💥
yaml/block-value/snippet: "foo: \n x\n \n\n" 💥
yaml/block-value/snippet: "foo: \n x\n \n\n\n..." 💥
yaml/block-value/snippet: "foo: \n x\n \n\n\n" 💥
yaml/block-value/snippet: "foo: \n x\n \n\n\n\n..." 💥
yaml/block-value/snippet: "foo: \n x\n \n\n\n\n" 💥
yaml/block-value/snippet: "foo: \n x\n \n\n\n\n\n..." 💥
yaml/block-value/snippet: "foo: \n x\n \t\n" 💥
yaml/block-value/snippet: "foo: \n x\n \t\n\n..." 💥
yaml/block-value/snippet: "foo: \n x\n \t\n\n" 💥
yaml/block-value/snippet: "foo: \n x\n \t\n\n\n..." 💥
yaml/block-value/snippet: "foo: \n x\n \t\n\n\n" 💥
yaml/block-value/snippet: "foo: \n x\n \t\n\n\n\n..." 💥
yaml/block-value/snippet: "foo: \n x\n \t\n\n\n\n" 💥
yaml/block-value/snippet: "foo: \n x\n \t\n\n\n\n\n..." 💥
yaml/block-value/snippet: "foo: +\n" 💥💥💥
yaml/flow-mapping/comments/key.yml 💥 43.75%
yaml/mapping/duplicated-keys/flow-mapping.yml 💥 85.71%
yaml/spec/anchors-and-tags.yml 💥💥 75.00%
yaml/spec/node-anchor-and-tag-on-seperate-lines.yml 💥💥 50.00%
yaml/spec/spec-example-6-1-indentation-spaces.yml 💥💥 84.62%
yaml/spec/spec-example-7-20-single-pair-explicit-entry.yml 💥✨ 62.50%
yaml/spec/spec-example-9-4-explicit-documents.yml 💥✨ 83.33%
yaml/spec/various-combinations-of-tags-and-anchors.yml 💥💥 75.00%
yaml/yaml-test-suite/snippet: 2G84-4.yaml - Literal modifers 💥 50.00%
yaml/yaml-test-suite/snippet: 6HB6.yaml - Spec Example 6.1. Indentation Spaces 💥 84.62%
yaml/yaml-test-suite/snippet: 9KAX.yaml - Various combinations of tags and anchors 💥 75.00%
yaml/yaml-test-suite/snippet: 9SA2.yaml - Multiline double quoted flow mapping key 💥 50.00%
yaml/yaml-test-suite/snippet: BU8L.yaml - Node Anchor and Tag on Seperate Lines 💥 50.00%
yaml/yaml-test-suite/snippet: CT4Q.yaml - Spec Example 7.20. Single Pair Explicit Entry 💥 25.00%
yaml/yaml-test-suite/snippet: F2C7.yaml - Anchors and Tags 💥 75.00%
yaml/yaml-test-suite/snippet: HWV9.yaml - Document-end marker 💥 66.67%
yaml/yaml-test-suite/snippet: JEF9-3.yaml - Trailing whitespace in streams 💥 66.67%
yaml/yaml-test-suite/snippet: K3WX.yaml - Colon and adjacent value after comment on next line 💥 25.00%
yaml/yaml-test-suite/snippet: L24T-2.yaml - Trailing line of spaces 💥 80.00%
yaml/yaml-test-suite/snippet: L24T.yaml - Trailing line of spaces 💥 80.00%
yaml/yaml-test-suite/snippet: NJ66.yaml - Multiline plain flow mapping key 💥 50.00%
yaml/yaml-test-suite/snippet: UT92.yaml - Spec Example 9.4. Explicit Documents 💥 66.67%
yaml/yaml-test-suite/snippet: Y79Y-2.yaml - Tabs in various contexts 💥 66.67%

markdown

1529/1548 (98.77%)

Failed

Spec path Failed or Passed Match ratio
markdown/blockquote/ignore-code.md 💥✨✨ 99.67%
markdown/blockquote/notext-end.md 💥💥✨ 94.07%
markdown/code/lwc/lwc.md 💥✨ 90.00%
markdown/commonmark-test-suite/snippet: example-11.md (Tabs) 💥 0.00%
markdown/commonmark-test-suite/snippet: example-2.md (Tabs) 💥 0.00%
markdown/commonmark-test-suite/snippet: example-412.md (Emphasis and strong emphasis) 💥 0.00%
markdown/commonmark-test-suite/snippet: example-50.md (Thematic breaks) 💥 0.00%
markdown/commonmark-test-suite/snippet: example-51.md (Thematic breaks) 💥 0.00%
markdown/commonmark-test-suite/snippet: example-52.md (Thematic breaks) 💥 0.00%
markdown/commonmark-test-suite/snippet: example-53.md (Thematic breaks) 💥 0.00%
markdown/commonmark-test-suite/snippet: example-54.md (Thematic breaks) 💥 0.00%
markdown/link/encodedLink.md 💥 86.67%
markdown/markdown/real-world-case.md 💥💥 99.81%
markdown/paragraph/cjk.md 💥💥✨ 93.33%
markdown/splitCjkText/symbolSpaceNewLine.md 💥 20.25%
markdown/thematicBreak/simple.md 💥 0.00%

html

221/229 (96.51%)

Failed

Spec path Failed or Passed Match ratio
html/basics/broken-html.html 💥 88.89%
html/basics/with-colon.html 💥 98.37%
html/prettier_ignore/unclosed2.html 💥 80.00%
html/tags/tags.html 💥✨✨✨ 99.82%
html/tags/tags2.html 💥💥✨✨ 97.17%
misc/filename-matters/html-doctype/snippet: #0 💥 0.00%

Error

  • misc/filename-matters/html-doctype/xhtml-doctype.xhtml: Syntax error: missing end tag of raw text element at 16..74