From 04314f5e0578826f25bb58121dd2b55d464fa4cf Mon Sep 17 00:00:00 2001 From: Demian Caldelas Date: Fri, 11 Feb 2022 17:24:11 -0300 Subject: [PATCH] Fix prettier importOrderSeparation not working (#1796) * Fix prettier importOrderSeparation not working * Solves prettier plugin conflict Co-authored-by: Peer Richelsen Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: zomars --- .prettierrc.js | 2 +- merged-prettier-plugin.js | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 merged-prettier-plugin.js diff --git a/.prettierrc.js b/.prettierrc.js index a24db20059..26ec750baa 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -9,5 +9,5 @@ module.exports = { arrowParens: "always", importOrder: ["^@ee/(.*)$", "^@lib/(.*)$", "^@components/(.*)$", "^@(server|trpc)/(.*)$", "^[./]"], importOrderSeparation: true, - plugins: [require("prettier-plugin-tailwindcss")], + plugins: [require("./merged-prettier-plugin")], }; diff --git a/merged-prettier-plugin.js b/merged-prettier-plugin.js new file mode 100644 index 0000000000..cc77502db5 --- /dev/null +++ b/merged-prettier-plugin.js @@ -0,0 +1,21 @@ +/* @see https://github.com/tailwindlabs/prettier-plugin-tailwindcss/issues/31#issuecomment-1024722576 */ +const tailwind = require("prettier-plugin-tailwindcss"); +const sortImports = require("@trivago/prettier-plugin-sort-imports"); + +const combinedFormatter = { + ...tailwind, + parsers: { + ...tailwind.parsers, + ...Object.keys(sortImports.parsers).reduce((acc, key) => { + acc[key] = { + ...tailwind.parsers[key], + preprocess(code, options) { + return sortImports.parsers[key].preprocess(code, options); + }, + }; + return acc; + }, {}), + }, +}; + +module.exports = combinedFormatter;