joelspadin-garmin / vscode-private-extension-manager

Private extension manager for Visual Studio Code
103 stars 22 forks source link
vscode vscode-extension

Private Extension Manager for Visual Studio Code

build status: extension build status: remote-helper code style: prettier

Private Extension Manager is a Visual Studio Code extension that lets you find, install, and update extensions from any NPM registry. This lets you distribute organization-specific extensions using a private registry server such as Sonatype Nexus or Verdaccio.

The extension folder contains the main extension. See its README for more details.

The remote-helper folder contains a helper extension that lets the main extension work properly when in a remote workspace.

Contribution

Contributions are welcome! Fork this repository, then see below for instructions on building and testing the extension. Submit a pull request with the change and we will review it.

Building and Debugging

See the VS Code extension documentation for general information on developing extensions.

Prerequisites

  1. Node.js 12.x
  2. Visual Studio Code

Setup

  1. Clone the repository and open the private-extension-manager.code-workspace workspace in VS Code.
  2. When prompted, install all the recommended extensions. If no prompt appears, press Ctrl+Shift+P and run the Extensions: Show Recommended Extensions command, then install the extensions under the Workspace Recommendations section.
  3. Press Ctrl+Shift+P and run the Terminal: Create New Integrated Terminal command. Select the extension folder.
  4. Run the following command in the terminal to install all dependencies:
    npm install
  5. Repeat steps 3-4 for the remote-helper folder.

Debugging

Open the Debug panel (Ctrl+Shift+D) and select the debug configuration to run:

Press F5 or click the green triangle button to start debugging.

Remote Development

To debug Private Extension Manager when using a remote extension such as Remote - SSH, open a VS Code window to the remote machine, then perform the setup as described above. When you start debugging the extension, this will open another remote window with the debug extension loaded.