cool :) new to matrix and nixos :) Here goes: I'm new to nixos and I'm currently evaluating it to become my main OS for development and so on. My most recent problems are related to C++ development: * I'm working on emacs, and I use language server to work. I'm biased to clangd * First using the following shell.nix (I use lorri as well): ```nix { pkgs ? import {} }: (pkgs.mkShell.override { stdenv = pkgs.llvmPackages_12.stdenv; }) { name = "clang-nix-shell"; nativeBuildInputs = [ pkgs.bear pkgs.clang_12 ]; buildInputs = [ pkgs.clang_12 ]; } ``` It won't install an up to date clangd/clang-tidy but the version 7. if I add `pkgs.llvmPackages_11.clang-unwrapped` as a nativeBuildInputs I do have a clangd and clang-tiny that are up to date but they are not present in the version 12. Is that "normal" or should I report the bug (and maybe help :)) * Second, and main pain point: I understand well that clang is wrapped so that paths are injected. The problem is that clangd use a compilation database and the invocation are without any paths so it does not find any includes. * A corollary of the problem above is that, if I add boost libraries as a dependencies, it is awesome, I just have to invoke clang and the library is found however my build tool (cmake) does not find it and same problem with clangd, it does not find boost include dirs. With boost, I tried to add as buildInputs: ``` pkgs.boost175 # .override { # enableShared = false; # enabledStatic = true; # } ``` If I understand https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/boost/generic.nix right, I pass the right override but it does not seem to work, I get a : ```error: cannot coerce a set to a string at /nix/store/xac96m3da9h6xb94287vp6vyay13g2my-nixos-21.05pre286880.7cb76200088/nixos/pkgs/stdenv/generic/make-derivation.nix:243:11: 242| depsHostHost = lib.elemAt (lib.elemAt dependencies 1) 0; 243| buildInputs = lib.elemAt (lib.elemAt dependencies 1) 1; | ^ 244| depsTargetTarget = lib.elemAt (lib.elemAt dependencies 2) 0; (use '--show-trace' to show detailed location information)```