1{
2 lib,
3 buildDotnetGlobalTool,
4 dotnetCorePackages,
5 versionCheckHook,
6 nix-update-script,
7}:
8let
9 dotnet-sdk = dotnetCorePackages.sdk_9_0;
10in
11
12buildDotnetGlobalTool rec {
13 pname = "csharp-ls";
14 version = "0.18.0";
15
16 nugetHash = "sha256-VSlyAt5c03Oiha21ZyQ4Xm/2iIse0h1eVrVpu+nWW3s=";
17
18 inherit dotnet-sdk;
19 dotnet-runtime = dotnet-sdk;
20
21 nativeInstallCheckInputs = [
22 versionCheckHook
23 ];
24 versionCheckProgramArg = "--version";
25 doInstallCheck = true;
26
27 passthru.updateScript = nix-update-script { };
28
29 meta = {
30 description = "Roslyn-based LSP language server for C#";
31 mainProgram = "csharp-ls";
32 homepage = "https://github.com/razzmatazz/csharp-language-server";
33 changelog = "https://github.com/razzmatazz/csharp-language-server/releases/tag/v${version}";
34 license = lib.licenses.mit;
35 platforms = lib.platforms.unix;
36 maintainers = with lib.maintainers; [ GaetanLepage ];
37 badPlatforms = [
38 # Crashes immediately at runtime
39 # terminated by signal SIGKILL (Forced quit)
40 # https://github.com/razzmatazz/csharp-language-server/issues/211
41 "aarch64-darwin"
42 ];
43 };
44}