clangd broke because it can't look through symlinks. compile_commands manipulation does not fix it, clangd configuration does not fix it, a vfs overlay does not fix it, and while a combination of those can fix it with a bind mount in place that's just too cursed to even consider clangd bug: https://github.com/llvm/llvm-project/issues/116877 Change-Id: I8e3e8489548eb3a7aa65ac9d12a5ec8abf814aec
1.3 KiB
1.3 KiB
R""(
Note: this command's interface is based heavily around installables, which you may want to read about first (nix --help).
Examples
-
Apply the build environment of GNU hello to the current shell:
# . <(nix print-dev-env nixpkgs#hello) -
Get the build environment in JSON format:
# nix print-dev-env nixpkgs#hello --jsonThe output will look like this:
{ "bashFunctions": { "buildPhase": " \n runHook preBuild;\n...", ... }, "variables": { "src": { "type": "exported", "value": "/nix/store/3x7dwzq014bblazs7kq20p9hyzz0qh8g-hello-2.10.tar.gz" }, "postUnpackHooks": { "type": "array", "value": ["_updateSourceDateEpochFromSourceRoot"] }, ... } }
Description
This command prints a shell script that can be sourced by bash and
that sets the variables and shell functions defined by the build
process of installable. This allows you to get a similar build
environment in your current shell rather than in a subshell (as with
nix develop).
With --json, the output is a JSON serialisation of the variables and
functions defined by the build process.
)""