Editor

VSCode

VSCode can be had in two flavours: The proprietary pkgs.vscode from Microsoft and the free pkgs.vscodium. On top of that VSCode can be installed preconfigured with plugins. When manually installing plugins via VSCode, there can be issues if a plugin tries to install native binaries. In this case pkgs.vscode-fhs and pkgs.vscodium-fhs provide a FHS environment in which most plugins should work. See https://wiki.nixos.org/wiki/Vscode for more info.

{ pkgs, ... }: {
  environment.systemPackages = [
    # Plain VSCode
    pkgs.vscodium

    # With plugins
    (pkgs.vscode-with-extensions.override {
      vscode = pkgs.vscodium;
      vscodeExtensions = with vscode-extensions; [
        bbenoist.nix
        ms-python.python
        ms-azuretools.vscode-docker
        ms-vscode-remote.remote-ssh
      ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
        {
          name = "remote-ssh-edit";
          publisher = "ms-vscode-remote";
          version = "0.47.2";
          sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
        }
      ];
    })

    # FHS env
    pkgs.vscodium-fhs
  ];
}

Jetbrains IDEs

See chapter JVM on how to setup JDKs for Java IDEs like IntelliJ.

All Jetbrains IDEs are available under pkgs.jetbrains.<IDE>. See the NixOS Search for a list of available IDEs.

There is also the experimental pkgs.jetbrains.plugins.addPlugidea-communityins which can add plugins to a Jetbrains IDE. See https://github.com/NixOS/nixpkgs/tree/nixos-24.05/pkgs/applications/editors/jetbrains for more details.

{ pkgs, ... }: {

  # Setup JDKs if neccessary

  environment.systemPackages = [
    pkgs.jetbrains.idea-community

    pkgs.jetbrains.idea-ultimate

    # With plugins
    (with pkgs.jetbrains; plugins.addPlugins pycharm-community [
      "nixidea"
      "ideavim"
    ])

  ];

  # For proprietary apps like IntelliJ Ultimate
  nixpkgs.config.allowUnfree = true;
}

Vim

There are a few options available:

Table of Contents