sveltejs / prettier-plugin-svelte

Format your svelte components using prettier.
MIT License
714 stars 95 forks source link

Intellij: Prettier fails to run against .svelte files, reports receiving invalid sort order every time #398

Open ackmanx opened 10 months ago

ackmanx commented 10 months ago

Every time I try to run prettier within Intellij, I get the error in the screenshot. It seems to receive scripts-styles-markup as the sort order every time, which is not a supported value. Really not sure how to debug this.

I invoke prettier using the built-in shortcut cmd + shift + p. This seems to be isolated to Intellij, as I can run prettier as a yarn script (using prettier --plugin prettier-plugin-svelte --write .) and it works correctly.

Versions

Prettier Config

// prettier.config.cjs
module.exports = {
  semi: false,
  tabWidth: 2,
  trailingComma: 'es5',
  singleQuote: true,
  printWidth: 100,
  plugins: ['prettier-plugin-svelte'],
  svelteSortOrder: 'options-scripts-styles-markup',
}
Screenshot 2023-08-17 at 22 19 30
dummdidumm commented 10 months ago

I have insufficient experience with Intellij, so can't really help here. My first instinct is that this is related to Intellij's handling of Prettier - maybe they ignore the config (do other setting formats work, like .prettierrc?), maybe they ignore the specific sort order setting. Maybe it's Intellij's Prettier support itself, maybe it's happening as part of the Svelte Plugin. Maybe @tomblachut knows more?

As a workaround you can go back to using Prettier version 2, that should still work.

ackmanx commented 10 months ago

Downgrading to Prettier v2 did indeed work for being able to format Svelte files within Intellij, so thanks for that suggestion.

tomblachut commented 10 months ago

@dummdidumm thanks for pinging me, those are all good leads.

If it works in the terminal it indeed feels like a problem in IDE.

@ackmanx could you open an issue at WebStorm's YouTrack I'm not maintaining Prettier integration so I'm not the best to help but our folks will process the issue properly.