Icon for gfsd IntelliJ IDEA

How to write VS Code extensions: guide & best practices

Person building a dog house next to a real house, symbolic for building an extension

Aiming to get started with plugin development for Visual Studio Code? You’re in the right place to kick things off! This series of blog posts will provide you with fundamental information on getting started with writing extensions for VS Code. We’ve gleaned all the information in this series from our experiences developing our own extension, Symflower for Visual Studio Code. Read on for key insights and best practices that will help you efficiently develop extensions for VS Code that are also well tested!

Getting started with VS Code extension development

We have an excellent step-by-step guide on how to make a VS Code extension that teaches you some basic concepts of the API:

Using the Language Server Protocol for your VS Code extension

Extensions that implement developer tooling such as autocompletion or go-to-definition for a programming language should use the Language Server Protocol, where all of the functionality is implemented in an external program that communicates with VS Code (and other editors that support the standard) over RPC. We’ve written up a guide with tips and tricks for using a language server in an extension:

Testing VS Code extensions

In these posts we share some of our experience in testing extensions.

Official resources for writing VS Code extensions


Sometimes you might also want to search the issue tracker for VS Code on GitHub for feature requests and open problems, or create an issue yourself. There is a label called “extensions-development” specifically for issues related to developing extensions.


If you have any questions or feedback for our articles or our plugin, we’d love to hear from you! You can send us an hello@symflower.com or find us on social media.

| 2023-02-08