nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 fetchFromGitHub,
4 buildDotnetModule,
5 dotnetCorePackages,
6 nix-update-script,
7 versionCheckHook,
8}:
9
10let
11 pname = "marksman";
12 dotnet-sdk = dotnetCorePackages.sdk_9_0_1xx-bin;
13in
14buildDotnetModule (finalAttrs: {
15 inherit pname dotnet-sdk;
16 version = "2025-12-13";
17
18 src = fetchFromGitHub {
19 owner = "artempyanykh";
20 repo = "marksman";
21 tag = finalAttrs.version;
22 hash = "sha256-HgRovSdalRRG1Gx0vNYhRDTbYO/vpz4hB1pgqcVjWF4=";
23 };
24
25 projectFile = "Marksman/Marksman.fsproj";
26 dotnetBuildFlags = [ "-p:VersionString=${finalAttrs.version}" ];
27
28 __darwinAllowLocalNetworking = true;
29
30 doCheck = true;
31 testProjectFile = "Tests/Tests.fsproj";
32
33 nugetDeps = ./deps.json;
34
35 dotnet-runtime = dotnetCorePackages.runtime_9_0;
36
37 postInstall = ''
38 install -m 644 -D -t "$out/share/doc/${pname}" LICENSE
39 '';
40
41 passthru = {
42 updateScript = nix-update-script { };
43 };
44
45 nativeInstallCheckInputs = [ versionCheckHook ];
46 doInstallCheck = true;
47
48 meta = {
49 description = "Language Server for Markdown";
50 longDescription = ''
51 Marksman is a program that integrates with your editor
52 to assist you in writing and maintaining your Markdown documents.
53 Using LSP protocol it provides completion, goto definition,
54 find references, rename refactoring, diagnostics, and more.
55 In addition to regular Markdown, it also supports wiki-link-style
56 references that enable Zettelkasten-like note taking.
57 '';
58 homepage = "https://github.com/artempyanykh/marksman";
59 license = lib.licenses.mit;
60 maintainers = with lib.maintainers; [
61 stasjok
62 plusgut
63 ];
64 platforms = dotnet-sdk.meta.platforms;
65 mainProgram = pname;
66 };
67})