nix-doc
A Nix documentation search tool.
Setup
$ nix-env -i -f ./default.nix
# or if you don't want to use nix,
$ cargo install --path .
Usage
nix-doc SearchRegex [Directory]
Example output:
nixpkgs$ nix-doc callPackage
Call the package function in the file `fn' with the required
arguments automatically. The function is called with the
arguments `args', but any missing arguments are obtained from
`autoArgs'. This function is intended to be partially
parameterised, e.g.,
callPackage = callPackageWith pkgs;
pkgs = {
libfoo = callPackage ./foo.nix { };
libbar = callPackage ./bar.nix { };
};
If the `libbar' function expects an argument named `libfoo', it is
automatically passed as an argument. Overrides or missing
arguments can be supplied in `args', e.g.
libbar = callPackage ./bar.nix {
libfoo = null;
enableX11 = true;
};
callPackageWith = autoArgs: fn: args: ...
# ./lib/customisation.nix:117
─────────────────────────────────────────────
Like callPackage, but for a function that returns an attribute
set of derivations. The override function is added to the
individual attributes.
callPackagesWith = autoArgs: fn: args: ...
# ./lib/customisation.nix:127
─────────────────────────────────────────────
Similar to callPackageWith/callPackage, but without makeOverridable
callPackageWith = autoArgs: fn: args: ...
# ./pkgs/development/beam-modules/lib.nix:7
TODO
- Generate tags files/otherwise generate a database file to speed up result generation.
- Use Nix itself with builtins.unsafeGetAttrPos to find our functions for us, but we handle pulling out the docs. (requires a fair refactor)
- Fix the dedent again. We are eating indents we should not be eating e.g. in the example above.