/vscode-vsix-manager

Install extensions from your own sources

Primary LanguageTypeScriptMIT LicenseMIT

VSIX Manager

License Visual Studio Marketplace Version Open VSX Version Donation Donation Donation

With VSIX Manager, you can manage your extensions from your settings and install them from several places, including specified marketplaces or GitHub releases.

Configuration

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 * * *"
    },
}

Groups

With vsix.groups, you can manage your extensions by sets.

Extensions

String notation

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 in vsix.groups
  • sourceName: name of a source defined in vsix.sources
"vsix.extensions": [
    "opn:zokugun.explicit-folding",
    "-vsx:devXalt.extYalt||ms:devX.extY"
],

Object notation

"vsix.extensions": [
    "-vsx:devXalt.extYalt||ms:devX.extY"
],

// is equivalent to

"vsix.extensions": [
    {
        "id": [
            "vsx:devXalt.extYalt",
            "ms:devX.extY",
        ],
        "enabled": false,
    },
],

Disable

If an expression is prefixed by - or "enabled": false, then the extension or the group of extension will be installed in a disable state.

Alternatives

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.

Sources

Within vsix.sources, you can define where to find the extensions.

marketplace

"vsix.sources": {
    "opn": {
        "type": "marketplace",
        "serviceUrl": "https://open-vsx.org/vscode/gallery",
    },
},

file

"vsix.sources": {
    "mfs": {
        "type": "file",
        "path": "~/my-extensions",
    },
},

The latest version will be searched in:

  • ~/my-extensions
  • ~/my-extensions/<publisherName>
  • ~/my-extensions/<publisherName>.<extensionName>

github

github is a built-in source (no configuration required) and will install extensions from the GitHub release pages.

{
    "vsix.extensions": [
        "github:<username>/<project>",
    ],
}

fallback property

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",
    },
},

throttle property

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,
    },
},

Commands

  • > VSIX Manager: Install extensions: install the extensions
  • > VSIX Manager: Uninstall extensions: uninstall the extensions
  • > VSIX Manager: Update extensions: update the extensions

Crons

vsix.crons allows you to schedule the update command.

"vsix.crons": {
    "update": "0 12 * * *"      // at 12PM, every day
}

Debugging

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).

Donations

Support this project by becoming a financial contributor.

Ko-fi ko-fi.com/daiyam
Liberapay liberapay.com/daiyam/donate
PayPal paypal.me/daiyam99

Enjoy!