Visual Studio Code: Difference between revisions

imported>Samueldr
m Adds note documenting unfree-ness
imported>Tbenst
add instructions for managing extensions and remote-ssh
Line 28: Line 28:


Replace the package-name-here with whatever package returned by 'nix-env -q'.
Replace the package-name-here with whatever package returned by 'nix-env -q'.
== Managing extensions ==
Extensions can be managed using the 'vscode-with-extensions' package:
<syntaxHighlight lang=nix>
let
  extensions = (with pkgs.vscode-extensions; [
      bbenoist.Nix
      ms-python.python
      ms-azuretools.vscode-docker
    ]) ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
    {
      name = "remote-ssh";
      publisher = "ms-vscode-remote";
      version = "0.47.2";
      sha256 = "04niirbkrzsm4wk22pr5dcfymnhqq4vn25xwkf5xvbpw32v1bpp3";
    }
    {
      name = "remote-ssh-edit";
      publisher = "ms-vscode-remote";
      version = "0.47.2";
      sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
    }
  ];
  vscode-with-extensions = vscode-with-extensions.override {
      vscodeExtensions = extensions;
    };
in
  environment.systemPackages = [
    vscode-with-extensions
  ];
</syntaxHighlight>
We can retrieve an updated set for manually installed / specified packages by cloning the 'nixpkgs' repo from github, and running: 'nixpkgs/pkgs/misc/vscode-extensions/update_installed_exts.sh'
== Remote ssh ==
When first launching remote-ssh for a NixOS host, the connection will fail due to a missing glibc dependency in the shipped node.js. This can be resolved by installing the 'nodejs-12_x' package on the NixOS host, and following the instructions in https://github.com/microsoft/vscode-remote-release/issues/648#issuecomment-503148523. Note that nodejs needs to be updated according to VS Code upstream requirements (node 12 is needed as of 12/6/2019)