about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2024-03-04 08:36:23 -0800
committerFranck Cuny <franck@fcuny.net>2024-03-04 08:36:45 -0800
commit33806c2191cd83d0a1e00614f6cb0ba8e2d67e7e (patch)
tree1a60f1e09ff4a094f88e4b1f73160d44f5ecdfdb
parentnix libraries and modules will be under `nix/` (diff)
downloadworld-33806c2191cd83d0a1e00614f6cb0ba8e2d67e7e.tar.gz
install and configure vscode
-rw-r--r--home/dev.nix82
1 files changed, 70 insertions, 12 deletions
diff --git a/home/dev.nix b/home/dev.nix
index 00107f3..f26b422 100644
--- a/home/dev.nix
+++ b/home/dev.nix
@@ -1,16 +1,20 @@
-{ pkgs, config, ... }:
+{ pkgs
+, config
+, ...
+}:
 let
-  pythonEnv = pkgs.python3.withPackages (p: with p; [
-    black
-    click
-    isort
-    pylsp-mypy
-    requests
-    types-requests
-    pip
-    ipython
-    virtualenv
-  ]);
+  pythonEnv = pkgs.python3.withPackages (p:
+    with p; [
+      black
+      click
+      isort
+      pylsp-mypy
+      requests
+      types-requests
+      pip
+      ipython
+      virtualenv
+    ]);
 in
 {
   programs.go = {
@@ -32,6 +36,10 @@ in
     kubectl
 
     google-cloud-sdk
+
+    rnix-lsp
+    alejandra
+    nil
   ];
 
   home.sessionPath = [
@@ -42,6 +50,56 @@ in
     kc = "kubectl";
   };
 
+  programs.vscode = {
+    enable = true;
+
+    # Workaround https://github.com/nix-community/home-manager/issues/3507
+    mutableExtensionsDir = false;
+
+    extensions = with pkgs.vscode-extensions; [
+      #go
+      golang.go
+
+      # nix
+      arrterian.nix-env-selector
+      bbenoist.nix
+      jnoortheen.nix-ide
+
+      # python
+      ms-python.python
+      ms-python.vscode-pylance
+
+      # utils
+      mkhl.direnv
+      editorconfig.editorconfig
+      tamasfe.even-better-toml
+    ];
+    userSettings = {
+      editor.fontSize = 16;
+      "editor.formatOnSave" = true;
+      "editor.minimap.enabled" = false;
+
+      workbench.colorTheme = "Default Light Modern";
+      workbench.sideBar.location = "right";
+
+      "telemetry.telemetryLevel" = "off";
+
+      "files.autoSave" = "afterDelay";
+      # in milliseconds
+      "files.autoSaveDelay" = 100;
+
+      "nix.serverPath" = "nil";
+      "nix.serverSettings" = {
+        "nil" = {
+          "formatting" = {
+            "command" = [ "alejandra" ];
+          };
+        };
+      };
+      "nix.enableLanguageServer" = true;
+    };
+  };
+
   home.sessionVariables = with config.xdg; {
     IPYTHONDIR = "${cacheHome}/ipython";
     PIP_LOG = "${cacheHome}/pip/pip.log";