You can install a group of technology-specific extensions in a dedicated folder and start an instance of vscode configured to use that folder.
Example (this is for Mac, I would imagine the process is similar on Windows):
I'm starting in a folder that has node
and php
projects as well as an empty vscode-ext
where extensions will be installed:
❯ # ~/src/local/vscode-multi-project
❯ tree
.
├── node
│ └── index.js
├── php
│ └── index.php
└── vscode-ext
3 directories, 2 files
Install project-specific extensions to their respective folders (you can do it using UI too).
❯ code --extensions-dir vscode-ext/node --install-extension chris-noring.node-snippets
Installing extensions...
Installing extension 'chris-noring.node-snippets'...
(node:54394) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `Electron --trace-deprecation ...` to show where the warning was created)
Extension 'chris-noring.node-snippets' v1.3.3 was successfully installed.
❯ code --extensions-dir vscode-ext/php --install-extension xdebug.php-debug
Installing extensions...
Installing extension 'xdebug.php-debug'...
(node:54476) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `Electron --trace-deprecation ...` to show where the warning was created)
❯ tree -L 3
.
├── node
│ └── index.js
├── php
│ └── index.php
└── vscode-ext
├── node
│ └── chris-noring.node-snippets-1.3.3
└── php
└── xdebug.php-debug-1.29.0
7 directories, 2 files
Make sure extensions are installed
❯ code --extensions-dir vscode-ext/node node

❯ code --extensions-dir vscode-ext/php php
