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