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