Multiple configurations for VSCode - visual-studio-code

At the moment I'm working on a few projects at the same time using VSCode, one in react, another in angular and some good old javascript.
The problem is that I have a few extensions installed that conflict, for example, some code snippets that are the same for React and Angular.
Is it possible to have 3 visual studio code installed on a Mac with different extensions installed?

There are two options for such setup:
Portable installation - unzip VSCode in a folder and create a subfolder there called data. This will trigger the portable mode and all settings will be stored in that data folder. The downside is that you'll have to manually update every portable folder whenever new version comes out. More info here.
Custom config paths - create a shortcut for your VSCode installation, and add those parameters:
--user-data-dir <some-path> --extensions-dir <some-path>
You can put them wherever and have as much shortcuts as you want, they even run in parallel. Best part is once you update the installation, all the configs are upgraded too. More info here.
Both modes are incompatible, so you have to choose one.

Related

Can you have isolated VS Code environments so each project has its own extensions?

I work on multiple projects in VS code. Over time and across projects I have accumulated so many extensions so that starting up is slower and some extensions cause things to break so I have to reinstall VS code to open up a project.
Is there a way, similar to python venv, where you have have multiple instances of vs code each with its own set of extensions?
Yes - you can disable/enable extensions per workspace! Not quite the same as install/uninstall but should solve your problem of extensions running on startup
You go to extensions menu, click the gear icon on some installed extension and you can Disable (Workspace). You can do the same in reverse for enabling per workspace - docs here.

share settings between linux and windows

I have a question: I would like to share settings between two Visual Studio Code installations, one on Windows and another one on Linux.
Simply activating, the syncing of the settings is a bad idea since they contain platform-dependent paths, e.g., the location of the ssh config file. I did it and ended up with a broken VSC installation on linux: it could not find anything because the settings contained windows paths.
I ended disabling most of the syncings, up to the point where the syncing is useless.
Is there any way, a plugin, to easily share settings between installation on different OS platforms?

Install VS Code extension during development?

I am developing an extension for VS Code. This extension is already good enough for me to use during daily work, but not good enough to be published (yet). Is there a canonical way to make an unpublished extension under development available to VS Code? Optimally, I would like to always have the current state of the code running.
I did find a way that seems to work, but I'm not sure whether this is a terrible hack or okay: Create a symbolic link in VS Code's extensions directory (~/.vscode/extensions on Linux) to the development directory. Is there a better/official way?
You can package your extension (even if it's in development) using vsce with the command vsce package. This will create a .vsix file which you can install in your regular instance of VSCode in the marketplace menu (click on the ... icon at the top and select "Install from .vsix file).
If you need to view the logs of the extension, go to Help>Toggle Developer tools and use the console to view your extension's output (if there is any).

Can I have multiple configurations of Visual Studio Code, one per coding language, each with its own plugins?

This is not a duplicate of How do I open multiple instances of Visual Studio Code?.
My previous question, How can I make Visual Studio Code's auto-complete suggestions appear more quickly? explains my problem.
I was using VSC with the PlatformIo plugin for embedded development for a few months with no problem. Then I started on Flutter/Dart and soon had a problem with auto-suggest being really slow.
It could be that I just loaded a duff plug-in (I am adding them back, one by one, to see if/when it "breaks"), but ... I am considering doing all development in VCS, so as to have a single IDE.
I am currently using Eclipse for C/C++ and PHP, WebStorm for AngualrJs and PyCharm for Python.
I had previously used Eclipse for everything, and had a different copy of Eclipse for each language, each with its own plugins.
Since I will be developing in 4 or 5 languages, even if I don't hit a problem as bad as I just did, adding plug-ins for that many languages into a single IDE will inevitably slow things down.
So, question: can I have multiple installs of VSC, each with its own plug-ins, and launch them separately?
I solved this problem on windows using vs code portable.
I created a folder at the root of my machine with subfolders for each language, inside each I put the vs code, then I created a data folder inside each of them so that the information was stored locally, I modified the name of the executables and added it to the path.
As an example, to access a vscode configured for python I put code-python . at the terminal.
I Have the idea watching this video, it may help you (it is in portuguese, but you can see more os less what it does).

Is it possible to have Visual Studio Code custom configured from a .ps1 file?

I'm attempting to put together a standard VS Code build for my company. I have a ps1 file that copies/installs extensions for VS Code after it's been installed but I can't seem to find how or even if it is possible to then configure VS Code settings to utilize those extensions.
For example, one of the extensions is "vscode-icons". I can install the extension just fine but then the user needs to setup his preferences manually to actually use the extension by going to the File->Preferences->File Icon Theme->VS Code Icons.
Is it possible to have my ps1 install file actually make configuration changes so any user who opens VS Code has the custom configuration settings?
The config settings for VS Code are JSON files - just needs to locate and edit them.
First check what manual change is doing then create part in the script to edit the settings.
https://code.visualstudio.com/docs/customization/userandworkspace