projectx-codehagen/Badget

Replace Prettier/ESLint with BiomeJS

Closed this issue · 4 comments

Type of feature

💡 Feature

Current behavior

Currently we use Prettier to format and ESLint to lint. These are industry-standard tools but there are faster tools out there with superior VS Code extensions. Since we are not an enterprise project, I think we should explore and support these new open-source projects.

Suggested solution

I'd like to use a new rust-based tool that aims to replace Prettier and ESLint together called BiomeJS. It won the bounty from the creator of Prettier (and matched by the CEO of Vercel).

This was already suggested by someone in the Discord and a PR was also put up, but nothing came of it. I want to revive the effort.

Benefits:

  1. Simplifies config files. .eslintrc, .eslintignore, .prettierrc, .prettierignore can all be replaced by a singular biome.json file.
  2. Simplifies tooling. The Prettier extension and ESLint extension can be replaced by a singular BiomeJS extension.
  3. There is no import sorting in the project currently. Biome ships with an import sorter. This is the main reason I want to do this!
  4. The tool is written in Rust, so it's fast.
  5. The default config is really good. ESLint requires a lot of config to make work.

Along with this change, I can also update the getting started documentation and add instructions to download the extension.

Additional context

No response

One PR would go up for adding the tool, and another for formatting all the files that currently exist.

.take

Thanks for taking this issue! Let us know if you have any questions!

Just a few things to consider:

  1. Simplifies config files. .eslintrc, .eslintignore, .prettierrc, .prettierignore can all be replaced by a singular biome.json file.

    Right now the config is as simple as a few lines in the package.json. No config files

  2. Simplifies tooling. The Prettier extension and ESLint extension can be replaced by a singular BiomeJS extension.

    Recommended extensions are already configured in the .vscode/extensions.json

  3. There is no import sorting in the project currently. Biome ships with an import sorter. This is the main reason I want to do this!

    Import sorting is already in place.

  4. The tool is written in Rust, so it's fast.

    Cool! But if I remember correctly the tool is not 100% prettier/eslint compatible yet.

  5. The default config is really good. ESLint requires a lot of config to make work

    Completly agree eslint and prettier require a lot of setup, but it is already done! So my question would be. Do we know what we are removing? Is it worth it or should we first focus on delivering some concrete functionality?