Extension enforcement#

pw_ide: Code editor and IDE support for Pigweed projects

One of Pigweed’s most powerful benefits is that it provides all developers on a project team with a consistent development environment. Some teams want to extend this consistency to the IDE by declaring that a certain set of extensions should be enabled (or disabled) when working on their project.

Visual Studio Code provides two mechanisms for indicating that users should have certain extensions:

  1. Extensions can have other extensions as dependencies, such that installing the extension also installs its dependencies.

  2. Projects can included recommendations in .vscode/extensions.json.

The problem with the first option is that it is only available to extensions. Projects can’t declare extension dependencies.

The problem with the second option is that they are just recommendations, and there is no built-in mechanism to enforce them or even install them by default.

Because there’s not a natural way to achieve the goal of editor consistency natively in Visual Studio Code, the Pigweed extension provides an additional mechanism that teams can use instead.

Usage#

Just enable the setting.

Now, extensions listed under recommendations in the project’s .vscode/extensions.json will need to be installed and enabled for the project, and the user will be prompted to do so until all of the extensions are installed and enabled, or until the user manually disables the notification.

Tip

Although installed extensions are available globally, they don’t need to be enabled in other projects or instances of Visual Studio Code.

Likewise, extensions listed under unwantedRecommendations will need to be uninstalled or disabled, and the user will be prompted to do so until all of the extensions are installed and enabled, or until the user manually disables the notification.

Tip

Unwanted recommendations don’t need to be uninstalled if you use them in other projects. Just disable them for this project.