nix3-fmt(1)

✨ nix fmt β€” nix3-fmt(1) ✨

okay bestie, welcome to the manual page for nix fmt, coming at you straight from the General Commands Manual πŸ’–

⚠️ Warning ⚠️ This program is experimental and its interface is subject to change. Like, do not get attached to the exact vibes, they WILL shift. 😭

🌸 Name 🌸

nix fmt β€” reformat your code in the standard style ✨


πŸŽ€ Synopsis πŸŽ€

nix fmt [option…] args…

πŸ’… Description πŸ’…

nix fmt (which is literally just an alias for nix formatter run, no cap) calls the formatter that's specified in the flake. The flake decides, you just vibe. πŸ¦‹

Wanna send flags over to the formatter? Easy. Drop -- first, then your flags, and they get forwarded. Periodt.

Any arguments you hand over also get forwarded to the formatter. Usually those args are the files you want formatted. πŸ“„βœ¨

Oh and the environment variable PRJ_ROOT (according to prj-spec) will be set to the absolute path to the directory containing the closest parent flake.nix relative to the current directory. So it always knows where home is. 🏑


🌈 Example 🌈

Wanna use the official Nix formatter? Say less:

# flake.nix
{
  outputs = { nixpkgs, self }: {
    formatter.x86_64-linux = nixpkgs.legacyPackages.${system}.nixfmt-tree;
  };
}

⭐ Options ⭐

  • --json β€” produce output in JSON format, suitable for consumption by another program. It's giving machine-readable πŸ€–
  • --no-pretty β€” print compact JSON output on a single line, even when the output is a terminal. Some commands may print multiple JSON objects on separate lines.

See --pretty.

  • --pretty β€” print multi-line, indented JSON output for readability.

Default: indent if output is to a terminal.

This option is only effective when --json is also specified.


🧚 Common evaluation options 🧚

  • --arg name expr β€” pass the value expr as the argument name to Nix functions.
  • --arg-from-file name path β€” pass the contents of file path as the argument name to Nix functions.
  • --arg-from-stdin name β€” pass the contents of stdin as the argument name to Nix functions.
  • --argstr name string β€” pass the string string as the argument name to Nix functions.
  • --debugger β€” start an interactive environment if evaluation fails. Lowkey a safe space for when things go sideways 🫢
  • --eval-store store-url β€” the URL of the Nix store to use for evaluation, i.e. to store derivations (.drv files) and inputs referenced by them.
  • --impure β€” allow access to mutable paths and repositories. Living dangerously, we love that πŸ’€
  • --include, -I path β€” add path to search path entries used to resolve lookup paths.

This option may be given multiple times.

Paths added through -I take precedence over the nix-path configuration setting and the NIX_PATH environment variable. Main character energy for real πŸ‘‘

  • --override-flake original-ref resolved-ref β€” override the flake registries, redirecting original-ref to resolved-ref.

  • --commit-lock-file β€” commit changes to the flake's lock file.
  • --inputs-from flake-url β€” use the inputs of the specified flake as registry entries.
  • --no-registries β€” don't allow lookups in the flake registries.
DEPRECATED β€” use --no-use-registries instead. She's retired, bestie. ✨
  • --no-update-lock-file β€” do not allow any updates to the flake's lock file.
  • --no-write-lock-file β€” do not write the flake's newly generated lock file.
  • --output-lock-file flake-lock-path β€” write the given lock file instead of flake.lock within the top-level flake.
  • --override-input input-path flake-url β€” override a specific flake input (e.g. dwarffs/nixpkgs). The input path must not be empty. This implies --no-write-lock-file.
  • --recreate-lock-file β€” recreate the flake's lock file from scratch.
DEPRECATED β€” use nix flake update instead. 😭
  • --reference-lock-file flake-lock-path β€” read the given lock file instead of flake.lock within the top-level flake.
  • --update-input input-path β€” update a specific flake input (ignoring its previous entry in the lock file).
DEPRECATED β€” use nix flake update instead. 😭

  • --debug β€” set the logging verbosity level to 'debug'.
  • --log-format format β€” set the format of log output; one of raw, internal-json, bar or bar-with-logs.
  • --print-build-logs, -L β€” print full build logs on standard error.
  • --quiet β€” decrease the logging verbosity level. 🀫
  • --verbose, -v β€” increase the logging verbosity level. πŸ—£οΈ

πŸ‘‘ Miscellaneous global options πŸ‘‘

  • --help β€” show usage information.
  • --offline β€” disable substituters and consider all previously downloaded files up-to-date.
  • --option name value β€” set the Nix configuration setting name to value (overriding nix.conf).
  • --refresh β€” consider all previously downloaded files out-of-date.
  • --repair β€” during evaluation, rewrite missing or corrupted files in the Nix store. During building, rebuild missing or corrupted store paths.
  • --version β€” show version information.

πŸ¦‹ Options that change the interpretation of installables πŸ¦‹

  • --expr expr β€” interpret installables as attribute paths relative to the Nix expression expr.
  • --file, -f file β€” interpret installables as attribute paths relative to the Nix expression stored in file. If file is the character -, then a Nix expression is read from standard input. Implies --impure.
πŸ“ Note See man nix.conf for overriding configuration settings with command line flags.

and that's the whole page, bestie πŸ’– this was nix3-fmt(1) out of the General Commands Manual β€” go format something cute and slay the day, ily πŸŽ€βœ¨πŸ‘‘

πŸ“¦ where this page comes from