Commit 1112fb3

HPCesia <me@hpcesia.com>
2025-07-01 16:26:17
feat(editor): rust and cpp support
1 parent 8fb4167
Changed files (4)
home
base
tui
editors
helix
linux
gui
vscode
home/base/tui/editors/helix/languages/cpp.nix
@@ -0,0 +1,33 @@
+{...}: {
+  programs.helix.languages = {
+    language = [
+      {
+        name = "c";
+        auto-format = true;
+        indent = {
+          tab-width = 2;
+          unit = "  ";
+        };
+      }
+      {
+        name = "cpp";
+        auto-format = true;
+        indent = {
+          tab-width = 2;
+          unit = "  ";
+        };
+      }
+    ];
+    language-server.clangd = {
+      command = "clangd";
+      args = [
+        "--all-scopes-completion"
+        "--completion-parse=auto"
+        "--completion-style=detailed"
+        "--background-index"
+        "--clang-tidy"
+        "--fallback-style=LLVM"
+      ];
+    };
+  };
+}
home/base/tui/editors/helix/languages/rust.nix
@@ -0,0 +1,16 @@
+{...}: {
+  programs.helix.languages = {
+    language = [
+      {
+        name = "rust";
+        auto-format = true;
+        indent = {
+          tab-width = 2;
+          unit = "  ";
+        };
+      }
+    ];
+    language-server.rust-analyzer.config = {
+    };
+  };
+}
home/linux/gui/vscode/profiles/cpp.nix
@@ -0,0 +1,39 @@
+{pkgs, ...}: let
+  baseExtensions = import ../baseExtensions.nix pkgs;
+in {
+  programs.vscode.profiles."C++" = {
+    userSettings = {
+      "clangd.arguments" = [
+        "--compile-commands-dir=\${workspaceFolder}/.vscode"
+        "--all-scopes-completion"
+        "--completion-parse=auto"
+        "--completion-style=detailed"
+        "--background-index"
+        "--pch-storage=memory"
+        "--clang-tidy"
+        "--fallback-style=LLVM"
+      ];
+      "clangd.checkUpdates" = false;
+      "editor.suggest.snippetsPreventQuickSuggestions" = false;
+      "lldb.dereferencePointers" = true;
+      "lldb.evaluateForHovers" = true;
+    };
+
+    extensions =
+      (with pkgs.vscode-extensions; [
+        llvm-vs-code-extensions.vscode-clangd
+        vadimcn.vscode-lldb
+      ])
+      ++ (
+        pkgs.vscode-utils.extensionsFromVscodeMarketplace [
+          {
+            name = "xmake-vscode";
+            publisher = "tboox";
+            version = "2.4.0";
+            sha256 = "rxx/tG0WqSQoP1nfuknPewDkmEkNBkFBaC2ZrWwTLpg=";
+          }
+        ]
+      )
+      ++ baseExtensions;
+  };
+}
home/linux/gui/vscode/profiles/rust.nix
@@ -0,0 +1,15 @@
+{pkgs, ...}: let
+  baseExtensions = import ../baseExtensions.nix pkgs;
+in {
+  programs.vscode.profiles.Rust = {
+    userSettings = {
+    };
+
+    extensions =
+      (with pkgs.vscode-extensions; [
+        rust-lang.rust-analyzer
+        vadimcn.vscode-lldb
+      ])
+      ++ baseExtensions;
+  };
+}