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 :
Relevant settings with TypeScript :
- format on save
-strict type checking
-format using **Black**
-order imports on save
-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.
You should always use a formatter.
Additional configuration for the formatter can be added to the [`pyproject.toml`](./pyproject.toml) file,
although the default settings are already pretty good.
The formatter is configured in the [`.prettierrc.js`](./.prettierrc.js) file.
## 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).
It is the fastest python linter available, which is nice when you want reactive linting during typing.
[ESLint](https://eslint.org/) is a popular javascript linter, which is strict and configurable.
Using a linter will help you write cleaner code, and avoid common mistakes.
You should always use a linter.
Additional configuration for the formatter can be added to the [`pyproject.toml`](./pyproject.toml) file,
although the default settings are already pretty good.
The linter is configured in the [`.eslintrc.js`](./.eslintrc.js) file.