pyright servers type checking, completion, and ruff servers linting and diagnostics (ruff can also format Python files, but it is slightly different from black)