{ pkgs, lib, ... }: { nixpkgs.config.allowUnfree = true; programs.vscode = { enable = true; enableUpdateCheck = false; extensions = with pkgs.vscode-extensions; [ vscodevim.vim jnoortheen.nix-ide mkhl.direnv ms-vscode-remote.remote-containers hashicorp.hcl hashicorp.terraform dbaeumer.vscode-eslint esbenp.prettier-vscode ms-kubernetes-tools.vscode-kubernetes-tools redhat.vscode-yaml tim-koehler.helm-intellisense ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ { name = "pulumi-vscode-tools"; publisher = "pulumi"; version = "0.3.0"; sha256 = "sha256-7jHXem8jRM9KopC1jWc3r4cz6dnifiJavOTiaNV29Jg="; } { name = "pulumi-lsp-client"; publisher = "pulumi"; version = "0.2.3"; sha256 = "sha256-Ct2Zmwxz1QGo4/RTC/iSsxeac1q2R/2qc78Va0ndlYQ="; } { name = "vt100-syntax-highlighting"; publisher = "tobias-faller"; version = "1.1.0"; sha256 = "sha256-+u98PDVZhGH5tfZ/sE1i+8BmAjFr2IVfO1mMAvKbomo="; } { name = "lisp"; publisher = "mattn"; version = "0.1.12"; sha256 = "sha256-x6aFrcX0YElEFEr0qA669/LPlab15npmXd5Q585pIEw="; } ]; userSettings = with pkgs; { # TODO: make a central place for defining my terminal font "terminal.integrated.defaultProfile.linux" = "fish"; "terminal.integrated.fontFamily" = "CommitMono Nerd Font"; "editor.tabSize" = 2; "nix.enableLanguageServer" = true; "nix.serverPath" = nixd + "/bin/nixd"; "nix.formatterPath" = nixfmt + "/bin/nixfmt"; "extensions.autoUpdate" = false; "typescript.tsserver.maxTsServerMemory" = 8192; "typescript.tsserver.nodePath" = nodejs + "/bin/node"; "workbench.editorAssociations" = { "*.txt" = "vt100.preview"; "*.log" = "vt100.preview"; }; }; }; }