Icon for gfsd IntelliJ IDEA

How to make VS Code extensions: guide & best practices

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

Aiming to start writing extensions 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 extension development 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

We have an excellent step-by-step guide to get you started on your first VS Code extension which teaches you some basic concepts of the API:

Language Server Protocol

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:


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

Official Resources


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.

Technical | 2023-02-08