Better Extension Manager
A VSCode extension to manage extensions.
If you find yourself with many, many (many) extensions, your editor probably will become slower. But it's a pain to enable/disable extension by extension every time you need to work with something different, or maybe you could just pre setup some extensions to work with something, and another couple extensions to work in something else, and change between then easily.
This extension is for you!
- Global extensions: Set extensions to always be installed in your editor.
- Workspace extensions: Set extensions to be installed by the current workspace.
- Environment extensions: Create environments and set extensions to be installed when you select the defined environment.
- Default extensions: Set extensions and install then every time you need.
Better Extension Manager will always maintain your editor cleaner, with only the extensions you need! Once setted up, just one command to change between workspace, environment or default extensions.
The core of this extension are available through commands.
List of the commands and what each one does:
For the extensions list, please refer to Extension Settings.
Sync Extensions: Merge the
workspace list of extensions and install all of then, while uninstall any other extensions that are installed. Use this command every time you get into a workspace to work on.
Define Workspace Extensions: Sets a list of the current enabled extensions to the
workspace workspace setting. Use this command every time you want to setup a new extension to the current workspace, so it will be added to the workspace list.
Remove Global Extensions from Workspace: Removes all the extensions in
global user setting from the
workspace workspace setting.
Define Default Extensions: Sets a list of the current enabled extensions to the
default user setting.
Restore Default Extensions: Install all extensions listed on the
default user setting, while uninstall any other extensions that are installed.
Create Global Environment: Sets a list of the current enabled extensions to the
environments user setting with the given name for the environment.
Delete Global Environment: Remove the environment with the given name of the
environments user setting.
Use Global Environment: Install all extensions listed on the
environments user setting with the given name, while uninstall any other extensions that are installed.
Debug: Debug command for development purposes.
How it works?
This extension works by installing and uninstalling other extensions via VSCode's CLI. Be careful while managing your extensions.
This extension will not delete any configurations of the uninstalled extensions.
The VSCode API doesn't give access to disabled extensions, which impossibilites to just enable/disable extensions instead of install/uninstall.
For the same motive, in order to this extension manage other extensions correctly, all your installed extensions must be enabled, if some extensions are disabled it may get stuck while trying to uninstall other extensions because of extension dependency.
While installing/uninstalling extensions it's not possible to retrieve feedback to guarantee that everything worked correctly. A workaround is just execute the command again if you notice that some of the extensions were not installed/uninstalled.
For this extension work correctly you will need VSCode CLI installed and working. The CLI comes with the VSCode default installer.
If you want to have sure it is working just type the command bellow on your terminal:
$ code -v
The extension settings will define which extensions will be installed and when.
better-extension-manager.global: List of extension ids that you want to always be installed.
better-extension-manager.default: List of extension ids that you want to set as default. You can change to these extensions by running the
Restore Default Extensions command.
better-extension-manager.environments: Object with
[environmentName]: extensionIds format. At any time you can run the
Use Global Environment command to select the environment you want, so it's easy to change the extensions.
better-extension-manager.workspace: List of extension ids that you want to be installed on the workspace.
- While trying to install/uninstall several (100+) extensions at once, it may get stuck. A workaround its just execute the command again after a window reload. You can follow the resolution in this issue #1
1.1.0 - 2023-07-14
- It may get stuck when trying to resolve extension dependency. Issue #2.
- Escaping from the confirmation dialog was not working how it should.