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

Load/download extension using extensions.json adjacent to settings.json #34011

Closed
JasCodes opened this issue Sep 8, 2017 · 9 comments
Closed
Labels
*duplicate Issue identified as a duplicate of another issue(s) extensions Issues concerning extensions info-needed Issue requires more information from poster

Comments

@JasCodes
Copy link

JasCodes commented Sep 8, 2017

I think it makes sense to move extensions to extensions.json for following advantages.

  • Easy to share and sync
  • Workspace specific extensions
  • Allow users to create extensions collection which user can enable or disable as collection
    e.g csharp collection in extensions.json file will have on csharp related extensions and can be disabled in workspace extensions.json so unnecessary extensions are not loaded

Thx

@vscodebot vscodebot bot added the extensions Issues concerning extensions label Sep 8, 2017
@JasCodes JasCodes changed the title Load/download extension with extensions.json Load/download extension using extensions.json adjacent to settings.json Sep 8, 2017
@JasCodes
Copy link
Author

JasCodes commented Sep 8, 2017

@sandy081 @joaomoreno

@shanalikhan
Copy link

This makes sense
It will also solve this issue : #14444

@roblourens
Copy link
Member

I don't understand what you're asking for, we support an extension.json file already.

@roblourens roblourens added the info-needed Issue requires more information from poster label Sep 8, 2017
@JasCodes
Copy link
Author

JasCodes commented Sep 8, 2017

Hey @roblourens

I am new to IDE. I didn't came across extension.json either at location C:\Users\user\.vscode-insiders or C:\Users\user\AppData\Roaming\Code - Insiders\user

So it will be awfully nice of you to point out if I am missing something.
Thx

PS: @shanalikhan also have similar year old issue #14444

@roblourens
Copy link
Member

We a have a couple features that address this:

Hope that helps!

@JasCodes
Copy link
Author

JasCodes commented Sep 8, 2017

Hey @robertohuertasm
That was extremely helpful information.

But I still feel its more inline with the design pattern of light weight text editors such as vscode to save all settings in json file including user-wide extensions.

Let me try to rephrase and update my proposal.

  • In user folder C:\Users\user\AppData\Roaming\Code - Insiders\user create extensions.js and environment.js

  • extensions.js should contain list of all extensions and there enabled status; this is more in line with design pattern and aggregate all vscode configrations in one folder.

  • environment.js is optional file where you can create collection of extensions. Lets say we have csharp, misc and cpp environment. Each can have collection of extensions that are available. Benefit of this is one can enable/disable any environment. Lets say you enabled misc and cpp in settings all csharp extensions will be not loaded but union of misc and cpp extensions will be loaded.

Let me know if I was able to explain the proposals decently ; I do strongly feel about extensions.js at user level to manage state of extensions is inline with design pattern.

Thx

@roblourens
Copy link
Member

Thanks for the details. We try to design the extension APIs so that the user doesn't need to do a lot of manual management like that - I have lots of extensions installed that are only useful in certain file types or workflows, but I've never needed to enable/disable them individually. It is possible to disable them for a certain workspace (by clicking the gear in the extensions viewlet) but I don't think that controlling it with a config file is necessary.

Instead, if there are extensions that need to be enable/disabled really often, we should figure out why that is and either file issues on the extension, or change the extension APIs so that they don't interfere.

@JasCodes
Copy link
Author

JasCodes commented Sep 8, 2017

Well json configs are for nerds and that what vscode copied from success of sublime. This allows you to check them in git, share and expand on each others work.

Anyways you already have UI for settings.json but still have file for it which I can sync accross platforms easy. Same true for extensions, people who don't wanna use extensions.json file; for them you already have UI; I am just purposing the using json as store instead of internal store.

Thx

@roblourens
Copy link
Member

Got it. I just realized this is also tracked in #15442, there has been some other discussion about it if you check the other linked issues too.

@roblourens roblourens added the *duplicate Issue identified as a duplicate of another issue(s) label Sep 8, 2017
@vscodebot vscodebot bot locked and limited conversation to collaborators Nov 17, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
*duplicate Issue identified as a duplicate of another issue(s) extensions Issues concerning extensions info-needed Issue requires more information from poster
Projects
None yet
Development

No branches or pull requests

3 participants