With VSIX Manager, you can manage your extensions from your settings and install them from several places, including specified marketplaces or GitHub releases.
In your settings:
{
"vsix.sources": {
"opn": {
"type": "marketplace",
"serviceUrl": "https://open-vsx.org/vscode/gallery",
},
},
"vsix.groups": {
"node": [
<...extensions>
],
"python": [
<...extensions>
],
},
"vsix.extensions": [
"opn:zokugun.automatic-editor-sorter",
"opn:zokugun.explicit-folding",
"node",
],
"vsix.crons": {
"update": "0 12 * * *"
},
}
With vsix.groups
, you can manage your extensions by sets.
vsix.extensions
and each group of vsix.groups
are a list of expression
expression = ["-"] *identifier* ("||" *identifier*)*
identifier = *groupName* | *extensionID* | *sourceName*:*extensionID*
extensionID
: id of an extension found in VSCode, VSCodium, ... (same as<publisherName>.<extensionName>
)groupName
: name of a group defined invsix.groups
sourceName
: name of a source defined invsix.sources
"vsix.extensions": [
"opn:zokugun.explicit-folding",
"-vsx:devXalt.extYalt||ms:devX.extY"
],
"vsix.extensions": [
"-vsx:devXalt.extYalt||ms:devX.extY"
],
// is equivalent to
"vsix.extensions": [
{
"id": [
"vsx:devXalt.extYalt",
"ms:devX.extY",
],
"enabled": false,
},
],
If an expression is prefixed by -
or "enabled": false
, then the extension or the group of extension will be installed in a disable state.
If an expression contains multiple identifiers, the manager will try the first one. It it fails, it will try the next one until an extension is installed.
You can specify the version you want like "ms:[email protected]"
.
Within vsix.sources
, you can define where to find the extensions.
"vsix.sources": {
"opn": {
"type": "marketplace",
"serviceUrl": "https://open-vsx.org/vscode/gallery",
},
},
"vsix.sources": {
"mfs": {
"type": "file",
"path": "~/my-extensions",
},
},
The ~
shortcut for the home directory is working on all systems, including Windows.
The latest version will be searched in:
~/my-extensions
~/my-extensions/<publisherName>
~/my-extensions/<publisherName>.<extensionName>
For an extension named: "mfs:devX.extY"
, it will for the files:
~/my-extensions/devX.extY-<version>.vsix
~/my-extensions/devX/devX.extY-<version>.vsix
~/my-extensions/devX.extY/devX.extY-<version>.vsix
For an extension named: "mfs:extXYZ"
, it will for the files:
~/my-extensions/extXYZ-<version>.vsix
~/my-extensions/extXYZ/extXYZ-<version>.vsix
github
is a built-in source (no configuration required) and will install extensions from the GitHub release pages.
{
"vsix.extensions": [
"github:<username>/<project>",
],
}
You can access your private repositories by giving an access token. You can specify an environment variable to read it from.
{
"vsix.sources": {
"mgh": {
"type": "github",
"token": "env:MY_TOKEN",
},
},
"vsix.extensions": [
"mgh:<username>/<project>",
],
}
{
"vsix.sources": {
"mgh": {
"type": "github",
"owner": "<username>",
},
},
"vsix.extensions": [
"mgh:<project>",
],
}
You can use the fallback
property to use another source when the extension isn't found in the first source.
"vsix.sources": {
"mfs": {
"type": "file",
"path": "~/my-extensions",
"fallback": "opn",
},
"opn": {
"type": "marketplace",
"serviceUrl": "https://open-vsx.org/vscode/gallery",
},
},
You can use the throttle
property to limit the number of requests to a source.
"vsix.sources": {
"opn": {
"type": "marketplace",
"serviceUrl": "https://open-vsx.org/vscode/gallery",
"throttle": 5000,
},
},
> VSIX Manager: Install extensions
: install the extensions> VSIX Manager: Uninstall extensions
: uninstall the extensions> VSIX Manager: Update extensions
: update the extensions
vsix.crons
allows you to schedule the update
command.
"vsix.crons": {
"update": "0 12 * * *" // at 12PM, every day
}
If the property vsix.debug
(false
by default) is true
, the extension will print out debug information into the channel VSIX Manager
of the panel Output
(menu: View
/ Output
).
Support this project by becoming a financial contributor.
ko-fi.com/daiyam | |
liberapay.com/daiyam/donate | |
paypal.me/daiyam99 |
Enjoy!