Visual Studio Code is built with extensibility in mind. From the UI to the editing experience, almost every part of VS Code can be customized and enhanced through the Extension API. In fact, many core features of VS Code are built as extensions and use the same Extension API.
This documentation describes:
- How to build, run, debug, test and publish an extension
- How to take advantage of VS Code's rich Extension API
- Where to find guides and code samples to help get you started
If you are looking for published extensions, head to the VS Code Extension Marketplace.
VS Code updates on a monthly cadence, and that applies to the Extension API as well. New features and APIs become available every month to increase the power and scope of VS Code extensions.
To stay current with the Extension API, you can review the monthly release notes, which have dedicated sections covering:
- Extension authoring - Learn what new extension APIs are available in the latest release.
- Proposed extension APIs - Review and give feedback on upcoming proposed APIs.
What can extensions do?
Here are some examples of what you can achieve with the Extension API:
- Change the look of VS Code with a color or icon theme - Theming
- Add custom components & views in the UI - Extending the Workbench
- Create a Webview to display a custom webpage built with HTML/CSS/JS - Webview Guide
- Support a new programming language - Language Extensions Overview
- Support debugging a specific runtime - Debugger Extension Guide
If you'd like to have a more comprehensive overview of the Extension API, refer to the Extension Capabilities Overview page. Extension Guides Overview also includes a list of code samples and guides that illustrate various Extension API usage.
How to build extensions?
Building a good extension can take a lot of effort. Here is what each section of the API doc can help you with:
- Get Started teaches fundamental concepts for building extensions with the Hello World sample.
- Working with Extensions includes in-depth guides on various extension development topics, such as publishing and testing extensions.
- Extension Capabilities dissects VS Code's vast API into smaller categories and points you to more detailed topics.
- Extension Guides includes guides and code samples that explain specific usages of VS Code Extension API.
- Language Extensions illustrates how to add support for a programming language with guides and code samples.
- Advanced Topics explains advanced concepts such as Extension Host, Supporting Remote Development and VS Online, and Proposed API.
- References contains exhaustive references for the VS Code API, Contribution Points, and many other topics.
Looking for help
If you have questions for extension development, try asking on:
- Stack Overflow: There are thousands of questions tagged
visual-studio-code, and over half of them already have answers. Search for your issue, ask questions, or help your fellow developers by answering VS Code extension development questions!
- Gitter Channel and VS Code Dev Slack: Public chatroom for extension developers. Some VS Code team members chime in conversations.
To provide feedback on the documentation, create new issues at Microsoft/vscode-docs. If you have extension questions that you cannot find an answer for, or issues with the VS Code Extension API, please open new issues at Microsoft/vscode.