VSCode#
The Visual Studio Code editor has become a very popular IDE. Its main features include
open-source and cross-platform
sweet spot between lightweight editor and powerful IDE
customizable via settings and extensions
syntax highlighting and auto-completion of many programming languages
code launcher, debugger (breakpoints, variable inspection) and tasks runner
integration with terminal, version control, GitHub and remote development
preview rendering of markdown
command-line tool
code
See also
There are of course many alternatives to VSCode. From command-line editors like Vim with python-mode, over spyder, to the commercial PyCharm (for which ETH students can receive a free pro license.
Customization#
Extensions#
Thousands of extensions provide additional features, key mappings and themes.
Settings#
The looks and behaviour of VSCode are heavily customizable. The settings can be made globally for all projects, but also defined and overridden for each workspace. The workspace-specific preferences are stored inside the project’s .vscode/settings.json
. This JSON file can be edited directly or via the GUI. If you include it in your version control, all collaborators can share the same configuration.
The following snippet shows a selection of noteworthy settings.
{
"editor.bracketPairColorization.enabled": true,
"files.insertFinalNewline": true,
"files.trimTrailingWhitespace": true,
"files.exclude": {
"**/__pycache__": true,
"**/.venv": true,
},
"jupyter.askForKernelRestart": false,
"[python]": {
"editor.defaultFormatter": "ms-python.python",
"editor.formatOnSave": true,
},
"python.formatting.provider": "black",
"python.formatting.blackArgs": ["--line-length=100"],
"python.linting.flake8Enabled": true,
"python.linting.flake8Args": ["--max-line-length=100"],
"python.defaultInterpreterPath": ".venv/bin/python3",
"telemetry.telemetryLevel": "off",
}
Tip
By default, VSCode collects telemetry data, including crash reports and usage data. For privacy reasons you should consider disabling this automatic data reporting by setting the telemetry.telemetryLevel
user setting to off
.
Python and Jupyter#
The Python extension is indispensable for Python development and includes the closed-source Pylance language server as dependency. There is also the Jupyter extension. The official documentation and tutorials offer plenty of resources to explore Python and Jupyter in VSCode.
Integrate linters and formatters
And last, but not least, our favorite interactive evaluation of Python scripts