Visual Studio Code ( VS Code )
Free. Open source. Runs everywhere.
Code focused development. Redefined.
Code, Build & Debug modern Web & Cloud applications.
VS Code combines the simplicity of a code editor with what developers need for the core code-build-debug cycle.
Code is Free and available on your favorite platform
It just opens in your browser or is very quick to install locally and packed full of features to allow you to work on your code anywhere. You can also use Extensions to add extra features.
VSCode for the Web is available at vscode.dev, github.dev or GitHub Codespaces.
The core editor is Monaco Editor packaged in the electron atom shell, formerly known as Atom Shell and made by GitHub.
The Monaco Editor is also widely used across Microsoft products like Visual Studio Team Services, TypeScript Playground, OneDrive, App Service Editor, IE11 F12 tools, plus many more places.
Microsoft evolution of VS Code began many years ago, todays product is one of the largest TypeScript code bases at more than 350k lines of TypeScript.
Both Monaco Editor & Visual Studio Code are Open Source available on GitHub.
The Integrated terminal is a great feature, really helpful.
Visual Studio Code 1.95 - Release
Yet again another excellent release by the VS Code team, packed with new features, now including:
- Copilot Edits - Iterate quickly on large changes across multiple files
- Copilot Chat in Secondary Side Bar - Keep Copilot Chat open and ready to-go while you work
- Multiple GitHub accounts - Log in to multiple GitHub accounts in VS Code simultaneously
- Copilot code reviews - Get a quick review pass or a deeper review of uncommitted changes
- Docstrings with Pylance - Generate docstring templates for classes or methods
- Preview settings indicator - View experimental and preview settings in the Settings editor
- Copilot extensibility - Showcasing Copilot extensibility in VS Code
VS Code now ships with TypeScript 5.6.3
You can also try the next TypeScript features today by installing the TypeScript Nightly extension.
Plus so much more, be sure to read the Release Notes, as there is always loads of great information within.
Documentation
Getting started with VS Code focusing on ways to make getting started with the editor easier.
A new "Learn to Code" landing page on the website with coding packs and new content geared towards folks who are new to coding.
Also new student-friendly videos and resources on the site at code.visualstudio.com/learn
TypeScript Editing and Refactoring in VS Code.
Remote Repositories Blog Post
New Remote Development resources - Check out the new video and Learn module.
- Remote Development tutorials - Learn to develop over SSH, inside Containers, and in WSL.
- Docker Compose - Microsoft Docker extension can help you add Docker Compose files to your projects to work easily with multiple Docker containers
- GitHub - With the expanded GitHub integration, there is a new Working with GitHub topic that shows how you can use GitHub from within VS Code.
- New Remote Container topics - Learn how to attach to a container and create a new dev container.
- Updated "Create a Dev Container" tutorial - Get started with Development Containers. - Learn how to attach to a container and create a new dev container.
- Create a development container using Visual Studio Code Remote Development
- VS Code on Raspberry Pi - New topic explaining how to install VS Code on Raspberry Pi devices.
- Data Science tutorials - Learn about Jupyter Notebooks, PyTorch, and more.
- Web extension authors guide - Learn how to update your extension for VS Code in the browser. More about GitHub.dev
- New C# in VS Code documentation - Learn about C# development with the C# Dev Kit extension. C# topics.
New Beginner's Series to: Dev Containers, a set of eight videos that show you how to get, create, and configure a container-based development environment using VS Code Remote - Containers
Find out more at Visual Studio Code Update or Download.
Remote Development
A preview release of the Remote Development extensions has been released.
A new set of extensions that enable you to open any folder in a container, on a remote machine, or in the Windows Subsystem for Linux (WSL) and take advantage of VS Code's full feature set.
These extensions let you work with VS Code over SSH on a remote machine or VM, in Windows Subsystem for Linux (WSL), or inside a Docker container. You can read the Remote Development with Visual Studio Code blog post to learn more.
Visual Studio Codespaces - Create and connect to cloud-based development environments formerly Visual Studio Online.
The Visual Studio Codespaces preview, announced at Ignite 2019, allows you to create development environments in the cloud and connect to them with Visual Studio Code, a browser-based editor, or Visual Studio IDE.
Visual Studio Codespaces extension
You can learn more at Developing with Visual Studio Codespaces and get started creating and customizing a development environment with the Visual Studio Codespaces Quickstarts.GitHub Codespaces
Codespaces are also available on GitHub. Take a read of the Codespaces feature page for more information on getting started with a full Visual Studio Code experience without leaving GitHub.
We have started to put together information and links on our Codespaces page.
Some of the key features from earlier releases are:
- Find in Explorer - Quickly find files in the Explorer view with the improved Find control.
- Source Control Graph - More filtering options and interactivity in the Source Control Graph.
- Python test coverage - Run Python tests with coverage and get rich results in the editor.
- ESM - Faster VS Code startup thanks to the migration to ESM.
- Account preference - Specify which account to use for an extension.
- Copilot in Native REPL - Get code completions and Inline Chat in the Native REPL.
- Improved chat context - Drag & drop files or use IntelliSense for more relevant chat context.
- Test environment setup - Get help with setting up a test framework for your workspace.
- Profiles editor - Switch and manage your profiles from a single place.
- Django unit test support - Discover and run Django unit tests from the Test Explorer.
- IntelliSense on vscode.dev - Boost your JS & TS coding in vscode.dev with IntelliSense.
- Notebook diff viewer - Efficiently review changes in notebooks by collapsing unchanged cells.
- Resize columns via the keyboard - Resizing table columns in VS Code more accessible via keyboard.
- Source Control Graph - Easily hide, collapse, or move the Source Control Graph.
- GitHub Copilot - Add context in Quick Chat, improved test generation and chat history.
- Experiment: Custom Copilot instructions - Define specific code-generation instructions for Copilot.
- Default browser - Configure which browser to use for opening links in VS Code.
- Revert PRs - Easily create a revert PR for a merged PR.
- Extension updates - More easily configure auto updating of extensions.
- Override profiles - Override an existing profile with the Profiles Editor.
- Paste files in CSS - Quickly add CSS file references with paste or drag and drop.
- Move Panel to top - Position the Panel section at the top of the workbench.
- Copilot uses GPT-4o - GitHub Copilot Chat upgraded to OpenAI's GPT-4o.
- Preview: Incoming/Outgoing changes graph - Visualize incoming and outgoing changes in the Source Control view.
- Python environments - Enhanced environment discovery with python-environment-tools.
- Smart Send in native REPL - Smoothly run code chunks in the native REPL.
- GitHub Copilot extensibility - Chat and Language Model APIs available in VS Code Stable.
- Preview: Profiles Editor - Manage your profiles in a single place.
- Custom tab labels - More variable options and support for multiple extensions.
- TypeScript 5.5 - Syntax checking for regular expressions and other language features.
- JavaScript Debugger - Inspect shadowed variables while debugging JavaScript.
- Editor tabs multi-select - Select and perform actions on multiple tabs simultaneously.
- Profiles - Open new windows with your preferred profile.
- Editor actions - Immediately access editor actions across editor groups.
- Copilot extensibility - Build AI into your extensions with the Chat and Language Model API.
- VS Code Speech - Automatically read out Copilot Chat responses with text-to-speech.
- Find in notebooks - Restrict search to selected cells in notebooks.
- Chat context - Quickly attach different types of context in chat.
- IntelliSense in chat responses - Better understand generated code with IntelliSense.
- Preview Markdown images & videos - Hover over a link to preview images & videos in Markdown.
- Enhanced branch switching - Restore open editors seamlessly when switching between branches.
- Middle-click paste support - Paste text quickly in the terminal using a mouse middle-click.
- WSL over Remote - SSH - Use WSL when connected to a remote machine via Remote - SSH.
- Accessible View - Navigate through comments, chat code blocks & terminal commands from the Accessible View.
- Keyboard shortcuts for UI actions - Customize keybindings for UI actions directly with a right-click.
- Quick Search - Search for text across your workspace with Quick Search.
- AI-powered rename suggestions - Get intelligent rename suggestions in the editor with Copilot.
- Copilot content exclusion - Exclude files from being used in the Copilot context.
- Local workspace extension - Include and install extensions directly in your workspace.
- Apply custom editor labels - Distinguish between editors with same file names.
- Locked scrolling - Compare editors side-by-side with synchronized scrolling.
- Extension update improvements - Restart extensions without reload & update extensions with VS Code releases.
- Test Coverage API - Native code coverage support in VS Code.
- Folding markers in minimap - Easily identify and navigate to code sections from minimap.
- Quick Search improvements - Sticky file path separators and separator buttons.
- Notebook Run cells in section - Quickly run all cells in a notebook section.
- Copilot improvements - Improved inline chat UI, commit messages, and used references.
- Python auto-detect improvements - Detect startup files for Flask & Django, discover Hatch environments.
- Preview: Terminal inline chat - Start a Copilot inline chat conversation directly from the terminal.
- Voice dictation in editor - Use your voice to dictate directly in the editor.
- Multi-cursor inline suggestions - Review and accept inline suggestions for multiple cursors.
- Copilot-powered rename suggestions - Get rename suggestions for symbols from Copilot.
- Side-by-side preview refactoring - Preview refactorings across files with multi diff editor.
- Smarter Python imports - Improvements for adding missing Python imports.
- Sticky scroll in editor - Sticky scroll is enabled by default in the editor.
- Multi-language support for speech - Multiple languages supported for speech recognition.
- Copilot suggestions for dev containers - Get template and feature suggestions for dev container configurations.
- Per-window zoom levels - Adjust the zoom level for each window independently.
- Hey Code voice command - Start a chat session with a voice command.
- Multi-file diff editor - Quickly review diffs across multiple files in the diff editor.
- Triggered breakpoints - Efficient debugging with breakpoint dependencies.
- Expanded Sticky Scroll support - Sticky Scroll in tree views and notebooks.
- Markdown paste options - Rich paste support for links, video, and audio elements.
- Flexible Auto Save options - Skip Auto Save on errors or save only for specific file types.
- Source Control input - Customize commit input and per-language editor settings.
- Extension notifications - Fine-grained control for disabling notifications per extension.
- GitHub Copilot updates - Improved default context, add file as context, AI fixes.
- Floating editor windows - Drag and drop editors onto your desktop.
- Accessible View workflow - Smoother transitions to and from the Accessible View.
- Finer extension update control - Choose which extensions to auto update.
- Source Control incoming and outgoing view - Easily review pending repository changes.
- JavaScript heap snapshots - Visualize heap snapshots including memory object graphs.
- TypeScript Go to Definition from inlay hints - Jump to definition from inlay hint hovers.
- Python type hierarchy display - Quickly review and navigate complex type relationships.
- GitHub Copilot updates - Inline chat improvements, Rust code explanation.
- Preview: expanded Sticky Scroll support - Sticky Scroll in tree views and the terminal.
- More audio cues - New audio cues to indicate clear, save, and format activity.
- Activity bar position - Move Activity bar to the top for compact display.
- Hide editor tabs - Show multiple, single, or no editor tabs.
- Maximize Editor Groups - Quickly expand the active Editor Group.
- Python improvements - Better run code in terminal, easier virtual environment creation.
- FastAPI tutorial - Learn about developing Python FastAPI apps with VS Code.
- Gradle for Java - Improved support for Java Gradle projects.
You can find earlier released key features on our key feature archive page.
VS Code also has some great documentation, some of the interesting topics covered are: https://github.com/Microsoft/vscode-recipes and Deploying Applications to Azure
GitHub Codespaces
Visual Studio Code in the Browser, plus so much more. We have started a page to collect information and links about Codespaces and GitHub.dev
VS Code for the Web is available at vscode.dev which supports Azure DevOps / Azure Repos.
Visual Studio Code Links
- Visual Studio Code
- Visual Studio Code Blog
- Visual Studio Code Blog (Old)
- Visual Studio Code - Keyboard Shortcuts
- marketplace.visualstudio.com/#VSCode
- Visual Studio Code and local web server
- Collection of helpful tips and tricks for VS Code.
- Visual Studio Code Can Do That?
- Visual Studio Code Can Do That? - Smashing Magazine
- A really good presentation by Alexandru Dima a Visual Studio Code team member covering the history behind Visual Studio Code's story on the steps from the start to todays shipping product. He also builds a snake game in @code as a live demo from jsDay 2016.
- The History of Visual Studio Code - Learn about how VS Code started and evolved until today from Erich Gamma at Build 2020.
- VS Code Day 2021 Videos
- VS Code Community Discussions
- VS Code Day 2023 Playlist
- Develop from anywhere with Visual Studio Code
References
- Monaco Editor the code editor that powers VS Code.
- Electron - Build cross platform desktop apps.
- TypeScript - JavaScript that scales.
- Typings - The TypeScript Definition Manager.
- Typings for NPM Packages
- DefinitelyTyped.org
- Why TypeScript is Hot Now, and Looking Forward - Treehouse Blog.
- Getting Started with TypeScript - Treehouse Blog.
- Brackets extensions - Use Brackets keyboard shortcuts in VS Code.
- Troubleshooting extensions blog post - Learn to troubleshoot extensions using extension bisect.
- Case study of a Computer Science lecturer at Naresuan University in Thailand who uses VS Code
Docs & Books
- http://code.visualstudio.com/Docs
- eBook: Visual Studio Code - Tips & Tricks Vol. 1
- Collection of helpful tips and tricks for VS Code.
- Release notes
Extensions you should really check out
- Thinking in Code By Jonathan Carter. A Collection of extensions to enable a richer environment for thinking and learning about code.
- Thinking in Data By Paige Bailey. A VS Code extension pack to help users visualize, understand, and interact with data.
- GitHub Codespaces By GitHub. Your instant dev environment connect to Codespaces from Visual Studio Code
- Remote - Containers By Microsoft. Open any folder or repository inside a Docker container and take advantage of Visual Studio Code's full feature set.
- Remote - SSH By Microsoft. Open any folder on a remote machine using SSH and take advantage of VS Code's full feature set.
- Remote - SSH: Editing Configuration Files By Microsoft. Edit SSH configuration files.
- Remote - WSL By Microsoft. Open any folder in the Windows Subsystem for Linux (WSL) and take advantage of Visual Studio Code's full feature set.
- Remote Development By Microsoft. An extension pack that lets you open any folder in a container, on a remote machine, or in WSL and take advantage of VS Code's full feature set.
- vscode-icons By VSCode Icons Team. Icons for Visual Studio Code
- Python By Microsoft. IntelliSense (Pylance), Linting, Debugging (multi-threaded, remote), Jupyter Notebooks, code formatting, refactoring, unit tests, and more.
- Pylance By Microsoft. A performant, feature-rich language server for Python in VS Code
- Jupyter By Microsoft. Jupyter notebook support, interactive programming and computing that supports Intellisense, debugging and more.
Insiders Build
Be sure to check out the Insiders Build which can be run alongside the stable version of VS Code but allows you to test out the new features ahead of time, before they land in the stable release.
Visual Studio Code 1.0
Released on 14 April 2016
Its hard to believe that VS Code has been with us for such a short time, with each release growing in features & functions.
The code team have released a great blog post covering the journey to version 1. Read about the journey to version 1.0
Visual Studio Code on the Visual Studio Marketplace
Visual Studio Code now offers support for extensions and themes! With hundreds available at https://marketplace.visualstudio.com/#VSCode
A great write up to using an extension in VS Code is from Rey Bango (@reybango), Adding ESLint to the Microsoft VS Code Editor http://blog.reybango.com/2015/12/17/adding-eslint-to-the-microsoft-vs-code-editor/
We also plan to cover:
- Working with Gulp
- Working with tasks
- Deployment
- Working with Remote files
- Plus much more.