mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-10 03:23:29 +03:00
doc/packages/treefmt: add option reference docs
Add a `treefmt.optionsDoc` passthru, which is included on the treefmt section of the nixpkgs manual. This generates reference docs for options declared in `treefmt.evalConfig`.
This commit is contained in:
parent
96f041725f
commit
4c638c2735
6 changed files with 56 additions and 11 deletions
|
@ -49,6 +49,7 @@ stdenvNoCC.mkDerivation (
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
ln -s ${optionsJSON}/share/doc/nixos/options.json ./config-options.json
|
ln -s ${optionsJSON}/share/doc/nixos/options.json ./config-options.json
|
||||||
ln -s ${treefmt.functionsDoc.markdown} ./packages/treefmt-functions.section.md
|
ln -s ${treefmt.functionsDoc.markdown} ./packages/treefmt-functions.section.md
|
||||||
|
ln -s ${treefmt.optionsDoc.optionsJSON}/share/doc/nixos/options.json ./treefmt-options.json
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
|
|
|
@ -3,10 +3,21 @@
|
||||||
[treefmt](https://github.com/numtide/treefmt) streamlines the process of applying formatters to your project, making it a breeze with just one command line.
|
[treefmt](https://github.com/numtide/treefmt) streamlines the process of applying formatters to your project, making it a breeze with just one command line.
|
||||||
|
|
||||||
The [`treefmt` package](https://search.nixos.org/packages?channel=unstable&show=treefmt)
|
The [`treefmt` package](https://search.nixos.org/packages?channel=unstable&show=treefmt)
|
||||||
provides functions for configuring treefmt using the module system, which are [documented below](#sec-functions-library-treefmt).
|
provides functions for configuring treefmt using the module system, which are [documented below](#sec-functions-library-treefmt), along with [their options](#sec-treefmt-options-reference).
|
||||||
|
|
||||||
Alternatively, treefmt can be configured using [treefmt-nix](https://github.com/numtide/treefmt-nix).
|
Alternatively, treefmt can be configured using [treefmt-nix](https://github.com/numtide/treefmt-nix).
|
||||||
|
|
||||||
```{=include=} sections auto-id-prefix=auto-generated-treefmt-functions
|
```{=include=} sections auto-id-prefix=auto-generated-treefmt-functions
|
||||||
treefmt-functions.section.md
|
treefmt-functions.section.md
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Options Reference {#sec-treefmt-options-reference}
|
||||||
|
|
||||||
|
The following attributes can be passed to [`withConfig`](#pkgs.treefmt.withConfig) or [`evalConfig`](#pkgs.treefmt.evalConfig):
|
||||||
|
|
||||||
|
```{=include=} options
|
||||||
|
id-prefix: opt-treefmt-
|
||||||
|
list-id: configuration-variable-list
|
||||||
|
source: ../treefmt-options.json
|
||||||
|
```
|
||||||
|
|
||||||
|
|
|
@ -420,6 +420,9 @@
|
||||||
"sec-tools-of-stdenv": [
|
"sec-tools-of-stdenv": [
|
||||||
"index.html#sec-tools-of-stdenv"
|
"index.html#sec-tools-of-stdenv"
|
||||||
],
|
],
|
||||||
|
"sec-treefmt-options-reference": [
|
||||||
|
"index.html#sec-treefmt-options-reference"
|
||||||
|
],
|
||||||
"ssec-cosmic-common-issues": [
|
"ssec-cosmic-common-issues": [
|
||||||
"index.html#ssec-cosmic-common-issues"
|
"index.html#ssec-cosmic-common-issues"
|
||||||
],
|
],
|
||||||
|
|
|
@ -15,11 +15,9 @@
|
||||||
|
|
||||||
# Inputs
|
# Inputs
|
||||||
|
|
||||||
`module`
|
: A treefmt module. See [options reference].
|
||||||
: A treefmt module, configuring options that include:
|
|
||||||
- `name`: `String` (default `"treefmt-with-config"`)
|
[options reference]: https://nixos.org/manual/nixpkgs/unstable#sec-treefmt-options-reference
|
||||||
- `settings`: `Module` (default `{ }`)
|
|
||||||
- `runtimeInputs`: `[Derivation]` (default `[ ]`)
|
|
||||||
*/
|
*/
|
||||||
evalConfig =
|
evalConfig =
|
||||||
module:
|
module:
|
||||||
|
@ -51,11 +49,9 @@
|
||||||
|
|
||||||
# Inputs
|
# Inputs
|
||||||
|
|
||||||
`module`
|
: A treefmt module. See [options reference].
|
||||||
: A treefmt module, configuring options that include:
|
|
||||||
- `name`: `String` (default `"treefmt-with-config"`)
|
[options reference]: https://nixos.org/manual/nixpkgs/unstable#sec-treefmt-options-reference
|
||||||
- `settings`: `Module` (default `{ }`)
|
|
||||||
- `runtimeInputs`: `[Derivation]` (default `[ ]`)
|
|
||||||
*/
|
*/
|
||||||
withConfig =
|
withConfig =
|
||||||
module:
|
module:
|
||||||
|
|
31
pkgs/by-name/tr/treefmt/options-doc.nix
Normal file
31
pkgs/by-name/tr/treefmt/options-doc.nix
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# To build this derivation, run `nix-build -A treefmt.optionsDoc`
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
treefmt,
|
||||||
|
nixosOptionsDoc,
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
configuration = treefmt.evalConfig [ ];
|
||||||
|
|
||||||
|
root = toString configuration._module.specialArgs.modulesPath;
|
||||||
|
revision = lib.trivial.revisionWithDefault "master";
|
||||||
|
removeRoot = file: lib.removePrefix "/" (lib.removePrefix root file);
|
||||||
|
|
||||||
|
transformDeclaration =
|
||||||
|
file:
|
||||||
|
let
|
||||||
|
fileStr = toString file;
|
||||||
|
subpath = "pkgs/by-name/tr/treefmt/modules/" + removeRoot fileStr;
|
||||||
|
in
|
||||||
|
assert lib.hasPrefix root fileStr;
|
||||||
|
{
|
||||||
|
url = "https://github.com/NixOS/nixpkgs/blob/${revision}/${subpath}";
|
||||||
|
name = subpath;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
nixosOptionsDoc {
|
||||||
|
documentType = "none";
|
||||||
|
options = builtins.removeAttrs configuration.options [ "_module" ];
|
||||||
|
transformOptions = opt: opt // { declarations = map transformDeclaration opt.declarations; };
|
||||||
|
}
|
|
@ -39,6 +39,9 @@ buildGoModule rec {
|
||||||
|
|
||||||
# Documentation for functions defined in `./lib.nix`
|
# Documentation for functions defined in `./lib.nix`
|
||||||
functionsDoc = callPackages ./functions-doc.nix { };
|
functionsDoc = callPackages ./functions-doc.nix { };
|
||||||
|
|
||||||
|
# Documentation for options declared in `treefmt.evalConfig` configurations
|
||||||
|
optionsDoc = callPackages ./options-doc.nix { };
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue