materialize: fix on darwin + various improvements (#361500)
[NixPkgs.git] / pkgs / development / tools / marksman / default.nix
blobbae8b5ad21dc6692d98e0b88cd25f2296a50fefa
1 { lib
2 , fetchFromGitHub
3 , buildDotnetModule
4 , dotnetCorePackages
5 , marksman
6 , testers
7 }:
9 buildDotnetModule rec {
10   pname = "marksman";
11   version = "2024-11-20";
13   src = fetchFromGitHub {
14     owner = "artempyanykh";
15     repo = "marksman";
16     rev = version;
17     sha256 = "sha256-gQ/CncjGBR4cAVRko+u3Zv6QTg8AxmV+9+WbAcp+qX4=";
18   };
20   projectFile = "Marksman/Marksman.fsproj";
21   dotnetBuildFlags = [ "-p:VersionString=${version}" ];
23   __darwinAllowLocalNetworking = true;
25   doCheck = true;
26   testProjectFile = "Tests/Tests.fsproj";
28   nugetDeps = ./deps.nix;
30   dotnet-sdk = dotnetCorePackages.sdk_8_0;
31   dotnet-runtime = dotnetCorePackages.runtime_8_0;
33   postInstall = ''
34     install -m 644 -D -t "$out/share/doc/${pname}" LICENSE
35   '';
37   passthru = {
38     updateScript = ./update.sh;
39     tests.version = testers.testVersion {
40       package = marksman;
41       command = "marksman --version";
42     };
43   };
45   meta = with lib; {
46     description = "Language Server for Markdown";
47     longDescription = ''
48       Marksman is a program that integrates with your editor
49       to assist you in writing and maintaining your Markdown documents.
50       Using LSP protocol it provides completion, goto definition,
51       find references, rename refactoring, diagnostics, and more.
52       In addition to regular Markdown, it also supports wiki-link-style
53       references that enable Zettelkasten-like note taking.
54     '';
55     homepage = "https://github.com/artempyanykh/marksman";
56     license = licenses.mit;
57     maintainers = with maintainers; [ stasjok plusgut ];
58     platforms = dotnet-sdk.meta.platforms;
59     mainProgram = "marksman";
60   };