about summary refs log tree commit diff
path: root/modules/common/vscode.nix
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>2023-11-19 21:58:34 +0300
committerAzat Bahawi <azat@bahawi.net>2023-11-19 21:58:34 +0300
commitedf7cc355cb1f55a9301283ebec15e01dc4ffe62 (patch)
treebf7745040efadac618168b7a9a764acb482acb07 /modules/common/vscode.nix
parent2023-11-16 (diff)
2023-11-19
Diffstat (limited to '')
-rw-r--r--modules/common/vscode.nix63
1 files changed, 36 insertions, 27 deletions
diff --git a/modules/common/vscode.nix b/modules/common/vscode.nix
index 3ae9800..62abcf8 100644
--- a/modules/common/vscode.nix
+++ b/modules/common/vscode.nix
@@ -41,6 +41,8 @@ in {
           gitlab.gitlab-workflow
           golang.go
           graphql.vscode-graphql
+          graphql.vscode-graphql-execution
+          graphql.vscode-graphql-syntax
           hashicorp.hcl
           hashicorp.terraform
           haskell.haskell
@@ -54,11 +56,13 @@ in {
           redhat.vscode-xml
           redhat.vscode-yaml
           rust-lang.rust
+          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
         ]
@@ -99,7 +103,7 @@ in {
         };
 
         workbench = {
-          activityBar.visible = false;
+          activityBar.location = "hidden";
           editor.highlightModifiedTabs = true;
           enableExperiments = false;
           settings.enableNaturalLanguageSearch = false;
@@ -149,71 +153,76 @@ in {
             useFullyQualifiedCollectionNames = true;
             reuseTerminal = true;
           };
-          validation.lint.path = "${pkgs.ansible-lint}/bin/ansible-lint";
+          validation.lint.path = getExe' pkgs.ansible-lint "ansible-lint";
         };
 
-        bashIde.shellcheckPath = "${pkgs.shellcheck}/bin/shellcheck";
+        bashIde.shellcheckPath = getExe' pkgs.shellcheck "shellcheck";
 
-        cSpell.language = "en-GB,ru";
+        cSpell.language = "en-GB,en,ru";
+
+        direnv = {
+          restart.automatic = true;
+        };
 
         magit = {
           forge-enabled = true;
-          git-path = "${config.hm.programs.git.package}/bin/git";
+          git-path = getExe config.hm.programs.git.package;
         };
 
+        git.openRepositoryInParentFolders = "always";
+
         github = {
           branchProtection = true;
           gitProtocol = "ssh";
         };
 
         terraform = {
-          languageServer.path = "${pkgs.terraform-ls}/bin/terraform-ls";
-          languageServer.terraform.path = "${pkgs.opentofu}/bin/tofu";
+          languageServer.path = getExe' pkgs.terraform-ls "terraform-ls";
+          languageServer.terraform.path = getExe pkgs.opentofu;
         };
 
         haskell = {
           formattingProvider = "ormolu";
-          serverExecutablePath = "${pkgs.haskell-language-server}/bin/haskell-language-server";
+          serverExecutablePath = getExe' pkgs.haskell-language-server "haskell-language-server";
         };
 
         nix = {
           enableLanguageServer = true;
-          serverPath = "${pkgs.nil}/bin/nil";
+          serverPath = getExe pkgs.nil;
         };
 
         python = with pkgs.python311Packages; {
           experiments.optOutFrom = ["All"];
-          pipenvPath = "${pkgs.pipenv}/bin/pipenv";
-          poetryPath = "${pkgs.poetry}/bin/poetry";
+          pipenvPath = getExe' pkgs.pipenv "pipenv";
+          poetryPath = getExe' pkgs.poetry "poetry";
           formatting = {
             provider = "black";
-            autopep8Path = "${autopep8}/bin/autopep8";
-            blackPath = "${black}/bin/black";
-            yapfPath = "${yapf}/bin/yapf";
+            autopep8Path = getExe' autopep8 "autopep8";
+            blackPath = getExe' black "black";
+            yapfPath = getExe' yapf "yapf";
           };
           linting = {
             enabled = true;
-            banditPath = "${bandit}/bin/bandit";
-            flake8Path = "${flake8}/bin/flake8";
-            mypyPath = "${mypy}/bin/mypy";
-            pycodestylePath = "${pycodestyle}/bin/pycodestyle";
-            pydocstylePath = "${pydocstyle}/bin/pydocstyle";
-            pylamaPath = "${pylama}/bin/pylama";
-            pylintPath = "${pylint}/bin/pylint";
+            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 = "${pytest}/bin/pytest";
+            pytestPath = getExe' pytest "pytest";
           };
         };
 
         rust-client = {
           disableRustup = true;
-          rustupPath = "${pkgs.rustup}/bin/rustup";
-          rlsPath = "${pkgs.rustup}/bin/rls";
-          rustfmt_path = "${pkgs.rustfmt}/bin/rustfmt";
+          rustupPath = getExe' pkgs.rustup "rustup";
+          rustfmt_path = getExe pkgs.rustfmt;
         };
 
-        vim = mkIf cfg.vim.enable rec {
+        vim = mkIf cfg.vim.enable {
           easymotion = true;
           easymotionMarkerFontFamily = fontFamily;
           easymotionMarkerFontSize = fontSize;
@@ -225,7 +234,7 @@ in {
 
         zig.zls = {
           checkForUpdate = false;
-          path = "${pkgs.zls}/bin/zls";
+          path = getExe' pkgs.zls "zls";
         };
 
         redhat.telemetry.enabled = false;

Consider giving Nix/NixOS a try! <3