From 5dd16b04bda9f6a6bff1ae99106df93206fe1e81 Mon Sep 17 00:00:00 2001 From: Leyla Becker Date: Mon, 25 Nov 2024 15:01:00 -0600 Subject: [PATCH] added nix language server and formatter to vscode --- homes/leyla/vscode.nix | 51 +++++++++++++++++++++----------- host-modules/nix-development.nix | 7 +++++ 2 files changed, 40 insertions(+), 18 deletions(-) diff --git a/homes/leyla/vscode.nix b/homes/leyla/vscode.nix index 3772949..d921604 100644 --- a/homes/leyla/vscode.nix +++ b/homes/leyla/vscode.nix @@ -1,8 +1,12 @@ { + lib, pkgs, inputs, + osConfig, ... -}: { +}: let + nix-development-enabled = osConfig.host.nix-development.enable; +in { nixpkgs = { overlays = [ inputs.nix-vscode-extensions.overlays.default @@ -27,19 +31,28 @@ enableUpdateCheck = false; enableExtensionUpdateCheck = false; - userSettings = { - "workbench.colorTheme" = "Atom One Dark"; - "cSpell.userWords" = [ - "webdav" - ]; - "nix.enableLanguageServer" = true; - "nixpkgs" = { - "expr" = "import {}"; - }; - # "fomratting": { - # "command": [ "alejandra" ]; - # }; - }; + userSettings = lib.mkMerge [ + { + "workbench.colorTheme" = "Atom One Dark"; + "cSpell.userWords" = [ + "webdav" + ]; + } + (lib.mkIf nix-development-enabled { + "nix.enableLanguageServer" = true; + "nix.serverPath" = "nil"; + "[nix]" = { + "editor.defaultFormatter" = "kamadorueda.alejandra"; + "editor.formatOnPaste" = true; + "editor.formatOnSave" = true; + "editor.formatOnType" = true; + }; + "alejandra.program" = "alejandra"; + "nixpkgs" = { + "expr" = "import {}"; + }; + }) + ]; extensions = ( with open-vsx; @@ -52,10 +65,6 @@ streetsidesoftware.code-spell-checker-italian jeanp413.open-remote-ssh - # nix extensions - pinage404.nix-extension-pack - jnoortheen.nix-ide - # html extensions formulahendry.auto-rename-tag ms-vscode.live-server @@ -75,6 +84,12 @@ # misc extensions bungcip.better-toml ] + ++ (lib.lists.optionals nix-development-enabled [ + # nix extensions + pinage404.nix-extension-pack + jnoortheen.nix-ide + kamadorueda.alejandra + ]) ++ ( with vscode-marketplace; [ # js extensions diff --git a/host-modules/nix-development.nix b/host-modules/nix-development.nix index 2608ba3..6eeddc4 100644 --- a/host-modules/nix-development.nix +++ b/host-modules/nix-development.nix @@ -1,5 +1,6 @@ { lib, + pkgs, config, inputs, ... @@ -14,6 +15,12 @@ nix = { nixPath = ["nixpkgs=${inputs.nixpkgs}"]; }; + environment.systemPackages = with pkgs; [ + # nix language server + nil + # nix formatter + alejandra + ]; }) ]; }