Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support to install and uninstall extensions from cli #691

Closed
joaomoreno opened this issue Nov 26, 2015 · 14 comments
Closed

Support to install and uninstall extensions from cli #691

joaomoreno opened this issue Nov 26, 2015 · 14 comments
Assignees
Milestone

Comments

@joaomoreno
Copy link
Member

@joaomoreno joaomoreno commented Nov 26, 2015

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

Copied from original issue: microsoft/vscode-vsce#48

@joaomoreno joaomoreno changed the title Add command to install and uninstall extensions Support to install and uninstall extensions from cli Nov 26, 2015
@pascalberger
Copy link

@pascalberger pascalberger commented Dec 7, 2015

👍

1 similar comment
@brunolm
Copy link

@brunolm brunolm commented Dec 8, 2015

👍

@mrmlnc
Copy link
Contributor

@mrmlnc mrmlnc commented Mar 8, 2016

It would be very convenient 👍

@chadbr
Copy link

@chadbr chadbr commented Mar 14, 2016

yes please!

@eyalon81
Copy link

@eyalon81 eyalon81 commented Apr 5, 2016

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.

@Tyriar
Copy link
Member

@Tyriar Tyriar commented Apr 5, 2016

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
@eyalon81
Copy link

@eyalon81 eyalon81 commented Apr 5, 2016

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

@joaomoreno
Copy link
Member Author

@joaomoreno joaomoreno commented Apr 25, 2016

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

@eyalon81
Copy link

@eyalon81 eyalon81 commented Apr 25, 2016

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

@egamma
Copy link
Member

@egamma egamma commented Apr 26, 2016

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

@joaomoreno joaomoreno mentioned this issue May 4, 2016
3 of 3 tasks complete
joaomoreno added a commit that referenced this issue May 4, 2016
joaomoreno added a commit that referenced this issue May 4, 2016
joaomoreno added a commit that referenced this issue May 4, 2016
@joaomoreno joaomoreno closed this in 93eb848 May 4, 2016
@egamma egamma mentioned this issue May 23, 2016
86 of 87 tasks complete
@vviikk
Copy link

@vviikk vviikk commented Jun 8, 2016

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

@Tyriar
Copy link
Member

@Tyriar Tyriar commented Jun 8, 2016

Yes this has shipped to both stable and insiders

@jokeyrhyme
Copy link

@jokeyrhyme jokeyrhyme commented Jun 8, 2016

It is wonderful. Great work! <3

@rwatts3
Copy link

@rwatts3 rwatts3 commented Jul 10, 2017

does this support installing from github repos or git repos ?

like atom apm install somerepo/some-project

@vscodebot vscodebot bot locked and limited conversation to collaborators Nov 18, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet