Helpful VS Code extensions for Python development
In this article I list some useful VS Code (Visual Studio Code) extensions I use while developing Python.
Extensions
Python
IntelliSense (Pylance), Linting, Debugging (multi-threaded, remote), Jupyter Notebooks, code formatting, refactoring, unit tests, and more.
Overall the most extensive Python extension. Simple features like code highlighting goes a long way.
AutoDocstring - Python Docstring Generator
Generates python docstrings automatically
Generates a nice boiletplate for docstrings. Please use type hints.
Jupyter
Jupyter notebook support, interactive programming and computing that supports Intellisense, debugging and more.
I love debugging and writing examples with Jupyter Notebooks and this extension offers good support for them in VS Code. Notebooks are helpful especially for scientists.
Git Graph
View a Git Graph of your repository, and perform Git actions from the graph.
I like the visual representation of the Git graph. However, I still do most of the actions in command line.
Remote SSH
Open any folder on a remote machine using SSH and take advantage of VS Code’s full feature set.
Helpful if I have to SSH to a remote machine and inspect or code something remotely. Game changer for me.
Code Spell Checker
A basic spell checker that works well with code and documents.
I notice spelling mistakes rather easily and that can be irritating if a text is filled with them. This extension can catch some of the mistakes early on. I would also suggest to add a spelling checker to your project’s CI.
Markdown All in One
All you need to write Markdown (keyboard shortcuts, table of contents, auto preview and more)
As documenting the code or generally writing something in Markdown, this extension is helpful - especially the preview feature and syntax highligting. Especially as posts in this blog is written in Markdown.
reStructuredTest
reStructuredText language support (RST/ReST linter, preview, IntelliSense and more)
Code documentation helper, especially when working with Sphinx.
Conclusion
Normal Python development does not need that many extensions (individual preference).
I have not tested any of the AI assisted extensions, which is something I should do in the future.
Of course when developing with multiple programming languages, the extension list will grow.