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) |
Revision as of 23:33, 6 December 2019
Installing Microsoft's Visual Studio Code
Because it is NixOS, you don't have to be root in order to be able to install stuff. As a normal user, do:
$ nix-env -iA nixos.vscode
And to open or launch the IDE, do:
$ code
As a normal user, you might be curious what stuff you have installed. To find out, do:
$ nix-env -q
Also, if you want to uninstall stuff that you installed there as a normal user, do:
$ nix-env --uninstall package-name-here
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:
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
];
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)