Vscode: Support to install and uninstall extensions from cli

Created on 26 Nov 2015  路  14Comments  路  Source: microsoft/vscode

_From @Tyriar on November 26, 2015 2:1_

Similar to apm's install and uninstall commands, it would be great to have an official way of installing and uninstalling extensions via the command line in a platform independent way.

This would enable a nicer way of maintaining a consistent development environment across multiple PCs/platforms without resorting to symlinking the extensions to cloud storage (see https://github.com/Microsoft/vscode/issues/679).

_Copied from original issue: Microsoft/vscode-vsce#48_

feature-request

Most helpful comment

Unfortunately, this will bleed into May. We need further architecture work in the cli and main processes for this to happen. Anything without it would be half baked.

Namely, we need to

  1. Instantiate the gallery and extension services on the CLI process. Both of these have dependencies that are nowadays very hard to instantiate on their own.
  2. Not only that but make that instantiation dynamic, such that the CLI runs as fast as possible to answer the simple questions such as --version and --help.
  3. Further refactor the main processes' services to become more lightweight and possibly used by any process possible.

cc @egamma

All 14 comments

:+1:

:+1:

It would be very convenient :+1:

yes please!

_I posted this in another suggestion but maybe this is a better place to post it so here it goes:_

I'd really want to have is a Console that I can use to install extensions, install nuget packages, install npm packages or another kind of packages and the only thing it needs is Intellisense for packages but yeah definitely unified experience for installing packages.

Instead of tackling specific problems, I'd argue that a much better design is to let programmers handle it and what I mean by that is creating a Console that is extensible and is designed for installing packages, whatever the package might be, VSCode extensions, nuget, bower, npm, you name it.

Just to be clear, I mostly suggest the experience of the Package Manager Console available in Visual Stuidio to Visual Studio Code but taking it few steps farther.

I propose the following args:

# Install
code --install-ext=ms-vscode.csharp
code -i ms-vscode.csharp

# Uninstall
code --uninstall-ext=ms-vscode.csharp
code -u ms-vscode.csharp

# List installed extensions
code --list-ext

With the --list-ext arg returning a flat list of extension aliases:

$ code --list-ext
donjayamanne.python
lukehoban.Go
ms-vscode.csharp

@Tyriar I'd go with either one of these but the POSIX/GNU+ style is more appealing to me.

PowerShell style.

# Install
code install-extension ms-vscode.csharp

# Uninstall
code uninstall-extension ms-vscode.csharp

# List installed extensions
code get-extension

POSIX/GNU+ style.

# Install
code extension --install ms-vscode.csharp
code ext -i ms-vscode.csharp

# Uninstall
code extension --uninstall ms-vscode.csharp
code ext -u ms-vscode.csharp

# List installed extensions
code extension --list
code ext -ls 

+ This is more the git style than _real_ POSIX/GNU conventions but it looks good.

Unfortunately, this will bleed into May. We need further architecture work in the cli and main processes for this to happen. Anything without it would be half baked.

Namely, we need to

  1. Instantiate the gallery and extension services on the CLI process. Both of these have dependencies that are nowadays very hard to instantiate on their own.
  2. Not only that but make that instantiation dynamic, such that the CLI runs as fast as possible to answer the simple questions such as --version and --help.
  3. Further refactor the main processes' services to become more lightweight and possibly used by any process possible.

cc @egamma

@joaomoreno great! that way you will have more time to think about it! ;)

@joaomoreno makes good sense. I've also updated the April plan.

Since we're in June is this already in the main branch?

Yes this has shipped to both stable and insiders

It is wonderful. Great work! <3

does this support installing from github repos or git repos ?

like atom apm install somerepo/some-project

Was this page helpful?
0 / 5 - 0 ratings

Related issues

biij5698 picture biij5698  路  3Comments

DovydasNavickas picture DovydasNavickas  路  3Comments

curtw picture curtw  路  3Comments

v-pavanp picture v-pavanp  路  3Comments

sirius1024 picture sirius1024  路  3Comments