diff --git a/changelog_unreleased/api/17178.md b/changelog_unreleased/api/17178.md new file mode 100644 index 000000000..7dd5fe243 --- /dev/null +++ b/changelog_unreleased/api/17178.md @@ -0,0 +1,18 @@ +#### Stop interpret `*.frag` files as JavaScript files (#17178 by @fisker) + +`*.frag` was interpreted as JavaScript files, but `.frag` is also used in GLSL([OpenGL Shading Language](https://en.wikipedia.org/wiki/OpenGL_Shading_Language)). It causes error when Prettier try to format them as JavaScript files. + +Since Prettier main, `*.frag` files except `*.start.frag`, `*.end.frag`, `start.frag`, and `end.frag` no longer treat as JavaScript files. + +If you have JavaScript files with `.frag` not match patterns mentioned above, you can config with `overrides`. + +```js +export default { + overrides: { + files: "**/*.frag", + options: { + parser: "babel", + }, + }, +}; +``` diff --git a/src/language-js/languages.evaluate.js b/src/language-js/languages.evaluate.js index 8b32bb0cd..123c44c1d 100644 --- a/src/language-js/languages.evaluate.js +++ b/src/language-js/languages.evaluate.js @@ -20,11 +20,22 @@ const languages = [ "zx", ], extensions: [ - ...data.extensions.filter((extension) => extension !== ".jsx"), + ...data.extensions.filter( + (extension) => extension !== ".jsx" && extension !== ".frag", + ), + // https://github.com/github-linguist/linguist/issues/7232#issuecomment-2646876469 + ".start.frag", + ".end.frag", // WeiXin Script (Weixin Mini Programs) // https://developers.weixin.qq.com/miniprogram/en/dev/framework/view/wxs/ ".wxs", ], + filenames: [ + ...data.filenames, + // https://github.com/github-linguist/linguist/issues/7232#issuecomment-2646876469 + "start.frag", + "end.frag", + ], })), createLanguage(linguistLanguages.JavaScript, () => ({ name: "Flow", diff --git a/tests/integration/__tests__/__snapshots__/support-info.js.snap b/tests/integration/__tests__/__snapshots__/support-info.js.snap index 3f2d96709..932f2ea47 100644 --- a/tests/integration/__tests__/__snapshots__/support-info.js.snap +++ b/tests/integration/__tests__/__snapshots__/support-info.js.snap @@ -415,7 +415,6 @@ exports[`CLI --support-info (stdout) 1`] = ` ".cjs", ".es", ".es6", - ".frag", ".gs", ".jake", ".javascript", @@ -433,9 +432,11 @@ exports[`CLI --support-info (stdout) 1`] = ` ".ssjs", ".xsjs", ".xsjslib", + ".start.frag", + ".end.frag", ".wxs" ], - "filenames": ["Jakefile"], + "filenames": ["Jakefile", "start.frag", "end.frag"], "interpreters": [ "chakra", "d8",