commit cd286f6801a881b7985537aa4bd2f80f6329409b
parent 8825a0e864f042d10ee0ae21f38ed22b55a6f8a6
Author: Toni Brown <me@tb148.eu.org>
Date: Thu, 13 Nov 2025 13:21:07 +0800
Add slang-server package and update Zed editor configuration
- Add new slang-server derivation - Configure slang as primary
SystemVerilog language server - Add SystemVerilog formatting
configuration for verible - Set preferred line length to 64 -
Configure ruff to use tabs for indentation
Diffstat:
2 files changed, 71 insertions(+), 5 deletions(-)
diff --git a/slang-server.nix b/slang-server.nix
@@ -0,0 +1,53 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ boost,
+ catch2_3,
+ cmake,
+ ninja,
+ fmt_12,
+ mimalloc,
+ python3,
+}:
+stdenv.mkDerivation (finalAttrs: {
+ pname = "slang-server";
+ version = "0.2.0";
+
+ src =
+ fetchFromGitHub {
+ owner = "hudson-trading";
+ repo = "slang-server";
+ tag = "v0.2.0";
+ hash = "sha256-FZHV/ezCrhXLwUHGGVTTUSynyw9SA0Roo5KyIpaN7KI=";
+ fetchSubmodules = true;
+ };
+
+ postPatch = ''
+ substituteInPlace external/slang/external/CMakeLists.txt --replace-fail \
+ 'set(mimalloc_min_version "2.2")' \
+ 'set(mimalloc_min_version "${lib.versions.majorMinor mimalloc.version}")'
+ '';
+
+ cmakeFlags = [
+ "-DCMAKE_INSTALL_INCLUDEDIR=include"
+ "-DCMAKE_INSTALL_LIBDIR=lib"
+ ];
+
+ nativeBuildInputs = [
+ cmake
+ ninja
+ python3
+ ];
+
+ strictDeps = true;
+
+ buildInputs = [
+ boost
+ catch2_3
+ fmt_12
+ mimalloc
+ ];
+
+ doCheck = true;
+ })
diff --git a/zed-editor.nix b/zed-editor.nix
@@ -22,7 +22,7 @@
tailwindcss-language-server
taplo
verible
- # veridian
+ (callPackage ./slang-server.nix {})
vscode-json-languageserver
yaml-language-server
];
@@ -38,6 +38,7 @@
"verilog"
];
userSettings = {
+ preferred_line_length = 64;
buffer_font_family = "Sarasa Mono SC";
buffer_font_size = 16;
ui_font_family = "Sarasa Mono SC";
@@ -50,10 +51,19 @@
"nil"
"!nixd"
];
- SystemVerilog.language_servers = [
- "verible"
- "!veridian"
- ];
+ SystemVerilog = {
+ hard_tabs = false;
+ formatter = {
+ language_server = {
+ name = "verible";
+ };
+ };
+ language_servers = [
+ "slang"
+ "verible"
+ "!veridian"
+ ];
+ };
};
lsp.nil.initialization_options = {
formatting.command = [
@@ -63,6 +73,9 @@
];
diagnostics.ignored = ["unused_binding"];
};
+ lsp.ruff.initialization_options.settings.configuration = {
+ format.indent-style = "tab";
+ };
};
};
}