about summary refs log tree commit diff
path: root/modules/common/vscode.nix
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>2024-03-19 10:51:20 +0300
committerAzat Bahawi <azat@bahawi.net>2024-03-19 10:51:20 +0300
commit80bdf22e9f97bdbb6d5a720dcc705fb55f3bc299 (patch)
tree92c18febe273f94d488a17d9bfdeeade4f3aaaef /modules/common/vscode.nix
parent2024-03-17 (diff)
2024-03-19
Diffstat (limited to '')
-rw-r--r--modules/common/vscode.nix327
1 files changed, 166 insertions, 161 deletions
diff --git a/modules/common/vscode.nix b/modules/common/vscode.nix
index 0780b0b..8901113 100644
--- a/modules/common/vscode.nix
+++ b/modules/common/vscode.nix
@@ -26,198 +26,203 @@ in {
   };
 
   config = mkIf cfg.enable {
-    hm.programs.vscode = with config.nixfiles;
-    with modules;
-    with profiles; {
-      enable = true;
-
-      inherit (cfg) package;
-
-      extensions = with pkgs.open-vsx;
-        [
-          editorconfig.editorconfig
-          efoerster.texlab
-          github.vscode-pull-request-github
-          gitlab.gitlab-workflow
-          golang.go
-          graphql.vscode-graphql
-          graphql.vscode-graphql-execution
-          graphql.vscode-graphql-syntax
-          hashicorp.hcl
-          hashicorp.terraform
-          haskell.haskell
-          jnoortheen.nix-ide
-          kahole.magit
-          mads-hartmann.bash-ide-vscode
-          mkhl.direnv
-          ms-kubernetes-tools.vscode-kubernetes-tools
-          ms-python.python
-          redhat.ansible
-          redhat.vscode-xml
-          redhat.vscode-yaml
-          rust-lang.rust
-          signageos.signageos-vscode-sops
-          skellock.just
-          streetsidesoftware.code-spell-checker
-          streetsidesoftware.code-spell-checker-british-english
-          streetsidesoftware.code-spell-checker-russian
-          streetsidesoftware.code-spell-checker-scientific-terms
-          tamasfe.even-better-toml
-          task.vscode-task
-          vscode-org-mode.org-mode
-          ziglang.vscode-zig
-        ]
-        ++ optional cfg.vim.enable vscodevim.vim;
-
-      userSettings = {
-        editor = {
-          codeLens = false;
-          cursorStyle = "block";
-          detectIndentation = true;
-          minimap.enabled = false;
-          renderWhitespace = "trailing";
-          rulers = [80 120];
-          smoothScrolling = false;
-          tabCompletion = "on";
-          cursorSurroundingLines = 10;
-          scrollBeyondLastColumn = 10;
-        };
+    hm = {
+      stylix.targets.vscode.enable = false;
+
+      programs.vscode = with config.nixfiles;
+      with modules;
+      with profiles; {
+        enable = true;
+
+        inherit (cfg) package;
+
+        extensions = with pkgs.open-vsx;
+          [
+            editorconfig.editorconfig
+            efoerster.texlab
+            github.vscode-pull-request-github
+            gitlab.gitlab-workflow
+            golang.go
+            graphql.vscode-graphql
+            graphql.vscode-graphql-execution
+            graphql.vscode-graphql-syntax
+            hashicorp.hcl
+            hashicorp.terraform
+            haskell.haskell
+            jnoortheen.nix-ide
+            kahole.magit
+            mads-hartmann.bash-ide-vscode
+            mkhl.direnv
+            ms-kubernetes-tools.vscode-kubernetes-tools
+            ms-python.python
+            redhat.ansible
+            redhat.vscode-xml
+            redhat.vscode-yaml
+            rust-lang.rust
+            signageos.signageos-vscode-sops
+            skellock.just
+            streetsidesoftware.code-spell-checker
+            streetsidesoftware.code-spell-checker-british-english
+            streetsidesoftware.code-spell-checker-russian
+            streetsidesoftware.code-spell-checker-scientific-terms
+            tamasfe.even-better-toml
+            task.vscode-task
+            vscode-org-mode.org-mode
+            ziglang.vscode-zig
+          ]
+          ++ optional cfg.vim.enable vscodevim.vim;
+
+        userSettings = {
+          editor = {
+            codeLens = false;
+            cursorStyle = "block";
+            detectIndentation = true;
+            minimap.enabled = false;
+            renderWhitespace = "trailing";
+            rulers = [80 120];
+            smoothScrolling = false;
+            tabCompletion = "on";
+            cursorSurroundingLines = 10;
+            scrollBeyondLastColumn = 10;
+          };
 
-        keyboard.dispatch = "keyCode";
+          keyboard.dispatch = "keyCode";
 
-        diffEditor.codeLens = false;
+          diffEditor.codeLens = false;
 
-        files = {
-          autoSave = "off";
-          enableTrash = false;
-        };
+          files = {
+            autoSave = "off";
+            enableTrash = false;
+          };
 
-        workbench = {
-          activityBar.location = "hidden";
-          editor.highlightModifiedTabs = true;
-          enableExperiments = false;
-          settings.enableNaturalLanguageSearch = false;
-          startupEditor = "none";
-          tips.enabled = false;
-          tree.indent = 4;
-          welcomePage = {
-            walkthroughs.openOnInstall = false;
-            preferReducedMotion = true;
+          workbench = {
+            activityBar.location = "hidden";
+            colorTheme = "Default Light Modern";
+            editor.highlightModifiedTabs = true;
+            enableExperiments = false;
+            settings.enableNaturalLanguageSearch = false;
+            startupEditor = "none";
+            tips.enabled = false;
+            tree.indent = 4;
+            welcomePage = {
+              walkthroughs.openOnInstall = false;
+              preferReducedMotion = true;
+            };
           };
-        };
 
-        extensions = {
-          autoCheckUpdates = false;
-          autoUpdate = false;
-          ignoreRecommendations = true;
-        };
+          extensions = {
+            autoCheckUpdates = false;
+            autoUpdate = false;
+            ignoreRecommendations = true;
+          };
 
-        terminal.integrated = {
-          enableBell = true;
-        };
+          terminal.integrated = {
+            enableBell = true;
+          };
 
-        update = {
-          mode = "none";
-          showReleaseNotes = false;
-        };
+          update = {
+            mode = "none";
+            showReleaseNotes = false;
+          };
 
-        telemetry = {
-          enableCrashReporter = false;
-          enableTelemetry = false;
-        };
+          telemetry = {
+            enableCrashReporter = false;
+            enableTelemetry = false;
+          };
 
-        security.workspace.trust.enabled = false;
+          security.workspace.trust.enabled = false;
 
-        # Extensions.
+          # Extensions.
 
-        ansible = {
           ansible = {
-            useFullyQualifiedCollectionNames = true;
-            reuseTerminal = true;
+            ansible = {
+              useFullyQualifiedCollectionNames = true;
+              reuseTerminal = true;
+            };
+            validation.lint.path = getExe' pkgs.ansible-lint "ansible-lint";
           };
-          validation.lint.path = getExe' pkgs.ansible-lint "ansible-lint";
-        };
 
-        bashIde.shellcheckPath = getExe' pkgs.shellcheck "shellcheck";
+          bashIde.shellcheckPath = getExe' pkgs.shellcheck "shellcheck";
 
-        cSpell.language = "en-GB,en,ru";
+          cSpell.language = "en-GB,en,ru";
 
-        direnv = {
-          restart.automatic = true;
-        };
+          direnv = {
+            restart.automatic = true;
+          };
 
-        magit = {
-          forge-enabled = true;
-          git-path = getExe config.hm.programs.git.package;
-        };
+          magit = {
+            forge-enabled = true;
+            git-path = getExe config.hm.programs.git.package;
+          };
 
-        git.openRepositoryInParentFolders = "always";
+          git.openRepositoryInParentFolders = "always";
 
-        github = {
-          branchProtection = true;
-          gitProtocol = "ssh";
-        };
+          github = {
+            branchProtection = true;
+            gitProtocol = "ssh";
+          };
 
-        terraform = {
-          languageServer.path = getExe' pkgs.terraform-ls "terraform-ls";
-          languageServer.terraform.path = getExe pkgs.opentofu;
-        };
+          terraform = {
+            languageServer.path = getExe' pkgs.terraform-ls "terraform-ls";
+            languageServer.terraform.path = getExe pkgs.opentofu;
+          };
 
-        haskell = {
-          formattingProvider = "ormolu";
-          serverExecutablePath = getExe' pkgs.haskell-language-server "haskell-language-server";
-        };
+          haskell = {
+            formattingProvider = "ormolu";
+            serverExecutablePath = getExe' pkgs.haskell-language-server "haskell-language-server";
+          };
 
-        nix = {
-          enableLanguageServer = true;
-          serverPath = getExe pkgs.nil;
-        };
+          nix = {
+            enableLanguageServer = true;
+            serverPath = getExe pkgs.nil;
+          };
 
-        python = with pkgs.python311Packages; {
-          experiments.optOutFrom = ["All"];
-          pipenvPath = getExe' pkgs.pipenv "pipenv";
-          poetryPath = getExe' pkgs.poetry "poetry";
-          formatting = {
-            provider = "black";
-            autopep8Path = getExe' autopep8 "autopep8";
-            blackPath = getExe' black "black";
-            yapfPath = getExe' yapf "yapf";
-          };
-          linting = {
-            enabled = true;
-            banditPath = getExe' bandit "bandit";
-            flake8Path = getExe' flake8 "flake8";
-            mypyPath = getExe' mypy "mypy";
-            pycodestylePath = getExe' pycodestyle "pycodestyle";
-            pydocstylePath = getExe' pydocstyle "pydocstyle";
-            pylamaPath = getExe' pylama "pylama";
-            pylintPath = getExe' pylint "pylint";
-          };
-          testing = {
-            pytestPath = getExe' pytest "pytest";
+          python = with pkgs.python311Packages; {
+            experiments.optOutFrom = ["All"];
+            pipenvPath = getExe' pkgs.pipenv "pipenv";
+            poetryPath = getExe' pkgs.poetry "poetry";
+            formatting = {
+              provider = "black";
+              autopep8Path = getExe' autopep8 "autopep8";
+              blackPath = getExe' black "black";
+              yapfPath = getExe' yapf "yapf";
+            };
+            linting = {
+              enabled = true;
+              banditPath = getExe' bandit "bandit";
+              flake8Path = getExe' flake8 "flake8";
+              mypyPath = getExe' mypy "mypy";
+              pycodestylePath = getExe' pycodestyle "pycodestyle";
+              pydocstylePath = getExe' pydocstyle "pydocstyle";
+              pylamaPath = getExe' pylama "pylama";
+              pylintPath = getExe' pylint "pylint";
+            };
+            testing = {
+              pytestPath = getExe' pytest "pytest";
+            };
           };
-        };
 
-        rust-client = {
-          disableRustup = true;
-          rustupPath = getExe' pkgs.rustup "rustup";
-          rustfmt_path = getExe pkgs.rustfmt;
-        };
+          rust-client = {
+            disableRustup = true;
+            rustupPath = getExe' pkgs.rustup "rustup";
+            rustfmt_path = getExe pkgs.rustfmt;
+          };
 
-        vim = mkIf cfg.vim.enable {
-          easymotion = true;
+          vim = mkIf cfg.vim.enable {
+            easymotion = true;
 
-          leader = " ";
+            leader = " ";
 
-          useSystemClipboard = true;
-        };
+            useSystemClipboard = true;
+          };
 
-        zig.zls = {
-          checkForUpdate = false;
-          path = getExe' pkgs.zls "zls";
-        };
+          zig.zls = {
+            checkForUpdate = false;
+            path = getExe' pkgs.zls "zls";
+          };
 
-        redhat.telemetry.enabled = false;
+          redhat.telemetry.enabled = false;
+        };
       };
     };
 

Consider giving Nix/NixOS a try! <3