From e703f3a7ffee32fc2c7bd7cf1129846d3411fe56 Mon Sep 17 00:00:00 2001 From: Mel Date: Tue, 14 Jan 2025 22:13:14 +0100 Subject: Fully configure VSCode Signed-off-by: Mel --- modules/home/code.nix | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ modules/home/common.nix | 4 +++ 2 files changed, 76 insertions(+) create mode 100644 modules/home/code.nix (limited to 'modules/home') diff --git a/modules/home/code.nix b/modules/home/code.nix new file mode 100644 index 0000000..053d550 --- /dev/null +++ b/modules/home/code.nix @@ -0,0 +1,72 @@ +{ + pkgs, + unstablePkgs, + lib, + ... +}: + +let + settings = import ./../../configs/vscode/settings.nix { inherit pkgs lib; }; + keybindings = import ./../../configs/vscode/keybindings.nix { }; + + extensions = with unstablePkgs.vscode-extensions; [ + # Microsoft vendor extensions + ms-vscode.hexeditor + ms-vscode-remote.remote-containers + ms-vscode-remote.remote-ssh + ms-azuretools.vscode-docker + github.codespaces + + # Usability + vscodevim.vim + waderyan.gitblame + mkhl.direnv + alefragnani.bookmarks + + # Language support + ms-vscode.makefile-tools + ms-vscode.cpptools-extension-pack + mesonbuild.mesonbuild + ms-python.python + ms-python.debugpy + charliermarsh.ruff + golang.go + jnoortheen.nix-ide + rust-lang.rust-analyzer + haskell.haskell + justusadam.language-haskell + elixir-lsp.vscode-elixir-ls + + # Pretty :3 + aaron-bond.better-comments + catppuccin.catppuccin-vsc-icons + catppuccin.catppuccin-vsc + jdinhlife.gruvbox + ]; + + externalExtensions = with pkgs.open-vsx; [ + # Small extensions that aren't included in nixpkgs + geequlim.godot-tools + miguelsolorio.fluent-icons + tonybaloney.vscode-pets + ]; + + newVendorExtensions = with pkgs.vscode-marketplace; [ + # Quick editing and viewing of ad-hoc repos and pull request + ms-vscode.remote-repositories + github.remotehub + ]; +in +{ + programs.vscode = { + enable = true; + enableUpdateCheck = false; + enableExtensionUpdateCheck = false; + mutableExtensionsDir = false; + package = unstablePkgs.vscodium; + + extensions = extensions ++ externalExtensions ++ newVendorExtensions; + keybindings = keybindings; + userSettings = settings; + }; +} diff --git a/modules/home/common.nix b/modules/home/common.nix index 99900e6..7e10560 100644 --- a/modules/home/common.nix +++ b/modules/home/common.nix @@ -1,6 +1,10 @@ { ... }: { + imports = [ + ./code.nix + ]; + programs = { git = { enable = true; -- cgit 1.4.1