Commit a9f079b

HPCesia <me@hpcesia.com>
2025-06-13 16:23:41
feat(editor): add more helix language config
1 parent 491d0d6
Changed files (6)
home/base/tui/editors/helix/languages/astro.nix
@@ -0,0 +1,28 @@
+{...}: {
+  programs.helix.languages = {
+    language = [
+      {
+        name = "astro";
+        auto-format = true;
+        indent = {
+          tab-width = 2;
+          unit = "  ";
+        };
+        language-servers = ["astro-ls" "tailwindcss-ls"];
+      }
+    ];
+    language-server = {
+      astro-ls = {
+        command = "astro-ls";
+        args = ["--stdio"];
+        config = {
+          typescript = {
+            tsdk = "node_modules/typescript/lib";
+            environment = "node";
+          };
+          contentIntellisense = true;
+        };
+      };
+    };
+  };
+}
home/base/tui/editors/helix/languages/css.nix
@@ -0,0 +1,48 @@
+{...}: let
+  stylelintRoots = [
+    ".stylelintrc"
+    ".stylelintrc.mjs"
+    ".stylelintrc.cjs"
+    ".stylelintrc.js"
+    ".stylelintrc.json"
+    ".stylelintrc.yaml"
+    ".stylelintrc.yml"
+    "stylelint.config.mjs"
+    "stylelint.config.cjs"
+    "stylelint.config.js"
+  ];
+in {
+  programs.helix.languages = {
+    language = [
+      {
+        name = "css";
+        auto-format = true;
+        indent = {
+          tab-width = 2;
+          unit = "  ";
+        };
+        roots = stylelintRoots;
+        language-servers = ["stylelint-lsp" "tailwindcss-ls"];
+      }
+      {
+        name = "scss";
+        auto-format = true;
+        indent = {
+          tab-width = 2;
+          unit = "  ";
+        };
+        roots = stylelintRoots;
+        language-servers = ["stylelint-lsp" "tailwindcss-ls"];
+      }
+    ];
+    language-server = {
+      stylelint-lsp = {
+        command = "stylelint-lsp";
+        args = ["--stdio"];
+        config = {
+          autoFixOnFormat = true;
+        };
+      };
+    };
+  };
+}
home/base/tui/editors/helix/languages/html.nix
@@ -0,0 +1,15 @@
+{...}: {
+  programs.helix.languages = {
+    language = [
+      {
+        name = "html";
+        auto-format = true;
+        indent = {
+          tab-width = 2;
+          unit = "  ";
+        };
+        language-servers = ["vscode-html-language-server" "tailwindcss-ls"];
+      }
+    ];
+  };
+}
home/base/tui/editors/helix/languages/markdown.nix
@@ -0,0 +1,18 @@
+{...}: {
+  programs.helix.languages = {
+    language = [
+      {
+        name = "markdown";
+        auto-format = true;
+        indent = {
+          tab-width = 2;
+          unit = "  ";
+        };
+        formatter = {
+          command = "prettier";
+        };
+        language-servers = ["marksman"];
+      }
+    ];
+  };
+}
home/base/tui/editors/helix/languages/mdx.nix
@@ -0,0 +1,38 @@
+{...}: {
+  programs.helix.languages = {
+    language = [
+      {
+        name = "mdx";
+        scope = "source.mdx";
+        injection-regex = "mdx";
+        file-types = ["mdx"];
+        block-comment-tokens = {
+          start = "<!--";
+          end = "-->";
+        };
+        auto-format = true;
+        indent = {
+          tab-width = 2;
+          unit = "  ";
+        };
+        formatter = {
+          command = "prettier";
+        };
+        language-servers = ["mdx-language-server"];
+      }
+    ];
+    grammar = [
+      {
+        name = "mdx";
+        source = {
+          git = "https://github.com/parmort/tree-sitter-mdx";
+          rev = "413285231ce8fa8b11e7074bbe265b48aa7277f9";
+        };
+      }
+    ];
+    language-server.mdx-language-server = {
+      command = "mdx-language-server";
+      args = ["--stdio"];
+    };
+  };
+}
home/base/tui/editors/packages.nix
@@ -18,6 +18,7 @@
     marksman # Markdown LSP
     tinymist # Typst LSP
     typstyle # Typst Formatter
+    mdx-language-server
 
     # === General Purpose Languages === #
     # -- C/C++
@@ -61,5 +62,7 @@
     nodePackages.vscode-langservers-extracted # HTML/CSS/JSON/ESLint LSP extracted from vscode
     nodePackages."@tailwindcss/language-server"
     nodePackages."@astrojs/language-server"
+    stylelint-lsp
+    nodePackages.prettier
   ];
 }