58 lines
1.7 KiB
Nix
58 lines
1.7 KiB
Nix
{
|
|
lib,
|
|
fetchurl,
|
|
ocaml,
|
|
buildDunePackage,
|
|
}:
|
|
|
|
let
|
|
params =
|
|
if lib.versionAtLeast ocaml.version "4.08" then
|
|
{
|
|
version = "1.3.4";
|
|
hash = "sha256-Hb8FHp9oV03ebi4lSma5xSTKQl6As26Zr5btlkq2EMM=";
|
|
}
|
|
else
|
|
{
|
|
version = "1.3.2";
|
|
hash = "sha256-NEDCuILVN65ekBHrBqu1P1Zn5lHqS7O0YOqCMPqMGSY=";
|
|
};
|
|
in
|
|
|
|
buildDunePackage rec {
|
|
pname = "easy-format";
|
|
inherit (params) version;
|
|
|
|
src = fetchurl {
|
|
url = "https://github.com/ocaml-community/easy-format/releases/download/${version}/easy-format-${version}.tbz";
|
|
inherit (params) hash;
|
|
};
|
|
|
|
doCheck = true;
|
|
|
|
meta = {
|
|
description = "High-level and functional interface to the Format module of the OCaml standard library";
|
|
longDescription = ''
|
|
This module offers a high-level and functional interface to the Format module of
|
|
the OCaml standard library. It is a pretty-printing facility, i.e. it takes as
|
|
input some code represented as a tree and formats this code into the most
|
|
visually satisfying result, breaking and indenting lines of code where
|
|
appropriate.
|
|
|
|
Input data must be first modelled and converted into a tree using 3 kinds of
|
|
nodes:
|
|
|
|
* atoms
|
|
* lists
|
|
* labelled nodes
|
|
|
|
Atoms represent any text that is guaranteed to be printed as-is. Lists can model
|
|
any sequence of items such as arrays of data or lists of definitions that are
|
|
labelled with something like "int main", "let x =" or "x:".
|
|
'';
|
|
homepage = "https://github.com/ocaml-community/easy-format";
|
|
changelog = "https://github.com/ocaml-community/easy-format/releases/tag/${params.version}";
|
|
license = lib.licenses.bsd3;
|
|
maintainers = with lib.maintainers; [ vbgl ];
|
|
};
|
|
}
|