In order to ensure that everyone uses the same linting and formatting settings,
we duplicate the relevant settings in [`.vscode/settings.json`](.vscode/settings.json).
Relevant settings with python :
- format on save
- format on save
-strict type checking
-order imports on save
-format using **Black**
-update imports when moving files around
## Formatter - Black
## Formatter - Prettier
[Black](https://github.com/psf/black) is a popular python formatter which is strict and opinionated.
[Prettier](https://prettier.io/) is a popular javascript formatter which is strict and opinionated. It also handles html, css and json files (the whole web dev stack).
Using a formatter ensures that the code you and your team write is consistent.
Using a formatter ensures that the code you and your team write is consistent.
You should always use a formatter.
You should always use a formatter.
Additional configuration for the formatter can be added to the [`pyproject.toml`](./pyproject.toml) file,
The formatter is configured in the [`.prettierrc.js`](./.prettierrc.js) file.
although the default settings are already pretty good.
## Linter - Ruff
## Linter - ESLint
[Ruff](https://github.com/astral-sh/ruff) is a good python linter, in the sense that it is strict enough, and coded in rust (blazingly fast).
[ESLint](https://eslint.org/) is a popular javascript linter, which is strict and configurable.
It is the fastest python linter available, which is nice when you want reactive linting during typing.
Using a linter will help you write cleaner code, and avoid common mistakes.
Using a linter will help you write cleaner code, and avoid common mistakes.
You should always use a linter.
You should always use a linter.
Additional configuration for the formatter can be added to the [`pyproject.toml`](./pyproject.toml) file,
The linter is configured in the [`.eslintrc.js`](./.eslintrc.js) file.
although the default settings are already pretty good.