arrterian / nix-env-selector

Allows switch environment for Visual Studio Code using Nix Package Manager.
MIT License
220 stars 29 forks source link

[Feature]: Support multiroot workspace #68

Open gracicot opened 2 years ago

gracicot commented 2 years ago

Is your feature request related to a problem? Please describe.

I have a workspace with multiple roots. Some are node projects, some are C++ projects with CMake and I use nix to manage all the environments.

The nix-env-selector don't seem to support this. I cannot select which nix file I'm loading for which directory, and some tools don't seem to work. I must run all my tools in the integrated terminal instead of using extension commands

Describe the solution you'd like

Being able to select a nix file for each projects.

Describe alternatives you've considered

Running all tools in the integrated terminal. For some things like python debugging it seem to work since the venv point to the nix python.

Also running everything in different windows seem to work.

CMCDragonkai commented 2 years ago

I'm interested in this, since I have many NodeJS projects, and I have a workspace file that is rooted at Projects/ directory.

In particular, one thing I'm confused about is how nix-specific environment variables get applied to certain extensions.

For example in one project which involves C++, I want to have one of the include paths that shell.nix brings in to be understood by the cpptools extension.

It appears that the cpptools extension can make use of includePath in a c_cpp_properties.json configuration file. Now it can use environment variables as per https://code.visualstudio.com/docs/editor/variables-reference#_environment-variables.

However my vscode is loaded before entering the nix-shell, so I'm not sure how nix-shell's env variables will apply here.

Is it expected to run vscode within each nix-shell?

paulhdk commented 1 year ago

Just giving this a polite bump. Any updates on this? Would also be very interested in this feature :-)