Git Product home page Git Product logo

Comments (3)

BPScott avatar BPScott commented on June 19, 2024

I'm strongly opposed to adding new features that allow users to do customizations that diverge from the standard "configure prettier using the .prettierrc / .prettierignore file" behaviour. I would strongly advise against implementing this.

The aim is that you should get identical output if you format a file through prettier's CLI or through eslint with eslint-plugin-prettier. Adding options or additional behaviour to eslint-plugin-prettier is a vector for allowing divergences to happen, which moves us away from that goal, and increases our support burden as there is potential for suprising behaviour that is not what eslint or prettier themselves do.

This proposal introduces plugin-specific behaviour and the critical tenant of "eslint CLI and prettier CLI must produce the same output" breaks.


In cases where a .eslintignore file is present then for files mentioned in that file the prettier/prettier rule (any any other rule) will never be invoked in the first place. If a file is mentioned in the eslintignore then the code that runs prettier would never be invoked in the first place. Can you give an example of when setting this would have an effect?

from eslint-plugin-prettier.

JounQin avatar JounQin commented on June 19, 2024

@BPScott prettier will respect .gitignore + .prettierignore by default at the same time on prettier v3.

Tip! Prettier will follow rules specified in .gitignore if it exists in the same directory from which it is run. You can also base your .prettierignore on .eslintignore (if you have one).

See also: https://prettier.io/docs/en/install and

https://github.com/prettier/prettier/blob/f3fff2ef13d11b7952feef4e7180e658fd4809a0/src/cli/cli-options.evaluate.js#L199C27-L199C36

https://github.com/prettier/prettier/blob/f3fff2ef13d11b7952feef4e7180e658fd4809a0/src/index.d.ts#L781

If a file is mentioned in the eslintignore then the code that runs prettier would never be invoked in the first place. Can you give an example of when setting this would have an effect?

That's a good point. ESLint runs different from prettier itself on virtual files.

For instance, I have a plugin extracting JavaScript codes from .txt files, prettier does not support .txt files natively, so it would be passed as .txt/0_xxx.js to prettier.format, and mostly there will be no *.txt/*.js in .prettierignore, but there could be *.txt/*.js in .eslintignore.

So my proposed change would be changing the following

ignorePath: '.prettierignore',

- ignorePath: '.prettierignore',
+ ignorePath: ['.gitignore', '.prettierignore', '.eslintignore'],

from eslint-plugin-prettier.

JounQin avatar JounQin commented on June 19, 2024

Friendly ping @BPScott

from eslint-plugin-prettier.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.