pytorch
e5179e96 - Share VS Code settings/extensions nicely (#57671)

Commit
3 years ago
Share VS Code settings/extensions nicely (#57671) Summary: This is a second attempt at https://github.com/pytorch/pytorch/issues/51214. It should achieve the same goals with (as far as I can tell) no disadvantages, but the advantages are a bit less pronounced than in the more dictatorial approach that https://github.com/pytorch/pytorch/issues/51214 took: - Unfortunately, I was unable to figure out how to include [the `mypy` configuration given in the docstring of `tools.mypy_wrapper.main`](https://github.com/pytorch/pytorch/blob/7115a4b8707115b81417481fb6240617ae934806/tools/mypy_wrapper.py#L81-L89), because as walterddr pointed out, `"${env:HOME}/miniconda3/envs/pytorch/bin/python"` is not guaranteed to be correct on everyone's machine: ```json { "python.linting.enabled": true, "python.linting.mypyEnabled": true, "python.linting.mypyPath": "${env:HOME}/miniconda3/envs/pytorch/bin/python", "python.linting.mypyArgs": [ "${workspaceFolder}/tools/mypy_wrapper.py" ] } ``` Importantly, this does not work: ```json "python.linting.mypyPath": "${workspaceFolder}/tools/mypy_wrapper.py" ``` This is because VS Code does not run the given `mypy` command inside of the user's specified virtual environment, so for instance, on my system, setting the `mypy` command to directly call `tools/mypy_wrapper.py` results in using `mypy 0.782` instead of the correct `mypy 0.812`. Sadly, [this](https://code.visualstudio.com/docs/editor/variables-reference#_configuration-variables) does not work either, although I'm not sure why: ```json { "python.linting.mypyPath": "${config:python.pythonPath}", "python.linting.mypyArgs": [ "${workspaceFolder}/tools/mypy_wrapper.py" ] } ``` - As a result, `git clean -fdx; tools/vscode_settings.py` still results in some loss of useful configuration. One other thing to note: as `.vscode/settings_recommended.json` shows, there are some configuration sections that only take effect within the context of a `"[language]"`, so currently, if a dev already has one of those settings, it would be entirely overwritten by `tools/vscode_settings.py` rather than a graceful merge. This could probably be fixed by using a deep merge instead of the current shallow merge strategy. Pull Request resolved: https://github.com/pytorch/pytorch/pull/57671 Test Plan: If you want, you can typecheck the small script added by this PR (no output is expected): ```sh tools/mypy_wrapper.py $PWD/tools/vscode_settings.py ``` You can also try running it to update your own VS Code workspace settings: ```sh tools/vscode_settings.py ``` This should have minimal impact on your existing `tools/settings.json` file other than enabling the few explicitly recommended settings (e.g. it should not reorder or remove any of your existing settings). Reviewed By: malfet Differential Revision: D28230390 Pulled By: samestep fbshipit-source-id: 53a7907229e5807c77531cae4f9ab9d469fd7684
Author
Parents
Loading