Three Things You Should Know About Visual Studio Code
Tags: python, datascience, vscode, jupyter
Published: 2019-07-16 17:49:42

## Supercharge your editing experience 🎉

[Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=pybay-blog-ninaz) is a free, cross-platform, open source code editor from Microsoft. You might have also heard it called VS Code, or sometimes, just Code.

It's the editor I use and enjoy daily. You may already know that it's an excellent option for Python developers -- it supports linting, debugging, features AI-assisted code auto completion, and more.

With just a little configuration Code can also be so much more!

Learn about three exciting features in Code below.

## 1: Extensions 🔗

Code starts out as a lightweight editor that's extensible via extensions. That allows you to only install the tools and plugins that are useful to _you_.

When you first download and install Code, you'll have a pretty bare bones editor. It comes with simple support for languages like JavaScript, TypeScript, CSS, and HTML, but support for other languages can be [downloaded as extensions](https://marketplace.visualstudio.com/search?target=vscode&category=All%20categories&sortBy=Downloads&WT.mc_id=pybay-blog-ninaz).

The extension ecosystem isn't just for languages. You can also find useful plugins, lightweight tools, themes, customizations, key maps to use keyboard shortcuts from other editors, and much more.

Some of my favorite extensions are:

- [Python Extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=pybay-blog-ninaz)
    - Rich feature support for the Python language. Awesome features like [AI-powered IntelliSense](https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode&WT.mc_id=pybay-blog-ninaz), Jupyter notebook support, a test explorer, and more!
- [autoDocstring](https://marketplace.visualstudio.com/items?itemName=njpwerner.autodocstring&WT.mc_id=pybay-blog-ninaz)
    - Quickly generate docstrings for Python functions.
- [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens&WT.mc_id=pybay-blog-ninaz)
    - Supercharge git by with at-a-glance git blame annotations, navigation of git repositories, powerful comparison commands, and more.
- [Night Owl theme](https://marketplace.visualstudio.com/items?itemName=sdras.night-owl&WT.mc_id=pybay-blog-ninaz)
    - A Visual Studio Code theme for the night owls out there. Fine-tuned for low-light situations, for those who like to code late into the night.
- [Peacock](https://marketplace.visualstudio.com/items?itemName=johnpapa.vscode-peacock&WT.mc_id=pybay-blog-ninaz)
    - Allows you to change the color of each new window, allowing quick visual identification when working on multiple projects.
- [TODO Highlight](https://marketplace.visualstudio.com/items?itemName=wayou.vscode-todo-highlight&WT.mc_id=pybay-blog-ninaz)
    - Really make your `TODO`s and `FIXME`s pop!

**Note: Do you have a favorite theme or extension? Please share it in the comments!**

---

{% twitter 997238414390022144 %}

---

If you think you won't be using a plugin for a while, you don't have to go through the effort of completely uninstalling it. Instead, you can [temporarily disable it](https://code.visualstudio.com/docs/editor/extension-gallery?WT.mc_id=pybay-blog-ninaz#_disable-an-extension).

Configure your settings for both Code and Extensions via [settings](https://code.visualstudio.com/docs/getstarted/settings?WT.mc_id=pybay-blog-ninaz).

## 2: Jupyter Cell Debugging 🐞

The Python extension has many great features that allow you to [work with Jupyter notebooks](https://code.visualstudio.com/docs/python/jupyter-support?WT.mc_id=pybay-blog-ninaz) with ease -- in a full-fledged IDE environment.

If you use Jupyter notebooks, you know how hard debugging can be. The annoyance of having to switch between your browser, your terminal, your notebook, and your editor can be a real drag.

To help your workflow, the latest Jupyter feature -- Cell Debugging -- is coming soon to the [Python Extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python&WT.mc_id=pybay-blog-ninaz) for Code!

---

{% twitter 1149062343231455238 %}

---

As you can tell from the tweets, it's a highly anticipated feature!

Soon, support for debugging Jupyter cells will be available inline.

It's a feature that will save you tons of time, and that's cause to celebrate! 🎉

## 3: Live Share 👥

I work remotely from Portland, OR. As a remote developer, being able to collaborate with others is a top priority.

Collaborating remotely on software has long been a struggle. Thankfully, Visual Studio Code has a plugin that makes the process simple and pain free -- [Live Share](https://code.visualstudio.com/blogs/2017/11/15/live-share?WT.mc_id=pybay-blog-ninaz).

Before you were likely stuck using tools like tmux with text-based editors, or dealing with spotty network connections, blurry screens, and fading audio on video calls.

The [Live Share extension](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare-pack&WT.mc_id=pybay-blog-ninaz) improves the process of remote collaboration by leaps and bounds.

To get started, you and the developer you'd like to work with will both need to install Code, then [download the Live Share extension pack](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare-pack&WT.mc_id=pybay-blog-ninaz). Now, one of you will need to [*start* a shared session](https://marketplace.visualstudio.com/items?itemName=ms-vsliveshare.vsliveshare&WT.mc_id=pybay-blog-ninaz#quickstart-sharing), and the other person will need to [*join* the session](https://marketplace.visualstudio.com/items?itemName=ms-vsliveshare.vsliveshare&WT.mc_id=pybay-blog-ninaz#quickstart-joining).

![](https://d33wubrfki0l68.cloudfront.net/81ae9eee56ac3a60826ce02890b13ef5437b3e21/1642a/2019/vs-code-ls-session.png)

Once you do, you'll be able to collaborate easily. Your teammate will be able to see your code in their editor, without having to clone a repo, or even install dependencies from your codebase.

You'll see the other person's cursor, but you can also navigate independently in your own Code instance. That means your themes, keyboard shortcuts, extensions, and custom settings are available to you.  As a bonus, you can even chat or talk over audio with your coding partner.

This feature is particularly useful for Code Reviews. Let's say you'd like to talk through some comments you made on someone's pull request. Just start a live share session, checkout the PR branch (use the [GitHub Pull Requests](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github&WT.mc_id=pybay-blog-ninaz) extension to make it even easier), and that's it. Sometimes it's easier to talk through a miscommunication than leave endless back-and-forth comments.

That's genuinely the best possible scenario for collaboration.

### Wrapping Up

Many other features of Code deserve mention -- [remote development](https://code.visualstudio.com/docs/remote/remote-overview?WT.mc_id=pybay-blog-ninaz) over SSH, Containers, or Windows Subsystem for Linux, [snippets](https://code.visualstudio.com/docs/editor/userdefinedsnippets?WT.mc_id=pybay-blog-ninaz), and more.

That's the benefit -- you don't have to dive in all at once. You can explore the features of Code at your own pace. So if you haven't given it a try yet, there's no time like the present. [Download Visual Studio Code](https://code.visualstudio.com/download?WT.mc_id=pybay-blog-ninaz), read the getting started with [Python guide](https://code.visualstudio.com/docs/python/python-tutorial?WT.mc_id=pybay-blog-ninaz), and share your thoughts in the comments below.