diff --git a/common/pc/default.nix b/common/pc/default.nix index a9846bd..d9e2a9e 100644 --- a/common/pc/default.nix +++ b/common/pc/default.nix @@ -11,7 +11,6 @@ in ./firefox.nix ./audio.nix ./pithos.nix - ./vscodium.nix ./discord.nix ./steam.nix ./touchpad.nix diff --git a/common/pc/vscodium.nix b/common/pc/vscodium.nix deleted file mode 100644 index cc33ed5..0000000 --- a/common/pc/vscodium.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib, config, pkgs, ... }: - -let - cfg = config.de; - - extensions = with pkgs.vscode-extensions; [ - bbenoist.nix # nix syntax support - arrterian.nix-env-selector # nix dev envs - dart-code.dart-code - dart-code.flutter - golang.go - jnoortheen.nix-ide - ms-vscode.cpptools - rust-lang.rust-analyzer - vadimcn.vscode-lldb - tauri-apps.tauri-vscode - platformio.platformio-vscode-ide - vue.volar - ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ - { - name = "wgsl-analyzer"; - publisher = "wgsl-analyzer"; - version = "0.12.105"; - sha256 = "sha256-NheEVNIa8CIlyMebAhxRKS44b1bZiWVt8PgC6r3ExMA="; - } - ]; - - vscodium-with-extensions = pkgs.vscode-with-extensions.override { - vscode = pkgs.vscodium; - vscodeExtensions = extensions; - }; -in -{ - config = lib.mkIf cfg.enable { - users.users.googlebot.packages = [ - vscodium-with-extensions - ]; - }; -} diff --git a/home/googlebot.nix b/home/googlebot.nix index dc623d4..70d6aab 100644 --- a/home/googlebot.nix +++ b/home/googlebot.nix @@ -1,5 +1,8 @@ { config, lib, pkgs, osConfig, ... }: +# https://home-manager-options.extranix.com/ +# https://nix-community.github.io/home-manager/options.xhtml + let # Check if the current machine has the role "personal" thisMachineIsPersonal = osConfig.thisMachine.hasRole."personal"; @@ -55,4 +58,51 @@ in programs.zed-editor = { enable = thisMachineIsPersonal; }; + + programs.vscode = { + enable = thisMachineIsPersonal; + package = pkgs.vscodium; + profiles.default = { + userSettings = { + editor.formatOnSave = true; + nix = { + enableLanguageServer = true; + serverPath = "${pkgs.nil}/bin/nil"; + serverSettings.nil = { + formatting.command = [ "${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt" ]; + nix.flake.autoArchive = true; + }; + }; + dotnetAcquisitionExtension.sharedExistingDotnetPath = "${pkgs.dotnet-sdk_9}/bin"; + godotTools = { + lsp.serverPort = 6005; # port needs to match Godot configuration + editorPath.godot4 = "godot-mono"; + }; + }; + extensions = with pkgs.vscode-extensions; [ + bbenoist.nix # nix syntax support + arrterian.nix-env-selector # nix dev envs + dart-code.dart-code + dart-code.flutter + golang.go + jnoortheen.nix-ide + ms-vscode.cpptools + rust-lang.rust-analyzer + vadimcn.vscode-lldb + tauri-apps.tauri-vscode + platformio.platformio-vscode-ide + vue.volar + wgsl-analyzer.wgsl-analyzer + + # Godot + geequlim.godot-tools # For Godot GDScript support + ms-dotnettools.csharp + ms-dotnettools.vscode-dotnet-runtime + ]; + }; + }; + + home.packages = lib.mkIf thisMachineIsPersonal [ + pkgs.dotnetCorePackages.dotnet_9.sdk # For Godot-Mono VSCode-Extension CSharp + ]; }