Home

Awesome

kdlfmt

A formatter for kdl documents.

kdlfmt is a thin cli wrapper built on-top of the official kdl parser for Rust (kdl-rs), so any formatting/parsing issues should be reported there.

<!-- START_SECTION:base-command-help -->
A code formatter for kdl documents.

Usage: kdlfmt <COMMAND>

Commands:
  format       Format kdl files
  check        Validate files are formatted
  completions  Generate shell completions
  help         Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

<!-- END_SECTION:base-command-help -->

Installation

kdlfmt can be installed using Cargo, the package manager for Rust (crates.io).

cargo install kdlfmt

If you do not have/want Rust installed on your device you can find precompiled binaries on the release page.

Usage

Once installed the formatted can be invoked by running kdlfmt format.

kdlfmt format PATH
<!-- START_SECTION:format-command-help -->
Format kdl files

Usage: kdlfmt format [OPTIONS] <INPUT>

Arguments:
  <INPUT>  Path to file OR directory. Use "-" to read from stdin

Options:
      --log-level <LOG_LEVEL>  [possible values: trace, debug, info, warn, error, off]
  -h, --help                   Print help
  -V, --version                Print version

<!-- END_SECTION:format-command-help -->

Validating files are formatted

kdlfmt also support validating if files are formatted using the kdlfmt check command.

kdlfmt check PATH
<!-- START_SECTION:check-command-help -->
Validate files are formatted

Usage: kdlfmt check [OPTIONS] <INPUT>

Arguments:
  <INPUT>  Path to file OR directory. Use "-" to read from stdin

Options:
      --log-level <LOG_LEVEL>  [possible values: trace, debug, info, warn, error, off]
  -h, --help                   Print help
  -V, --version                Print version

<!-- END_SECTION:check-command-help -->

Ignoring files

.kdlfmtignore files are used to ignore files/directories.

It uses the same syntax as .gitignore files.

Shell completion

Shell completion can be generated using the kdl completions command.

<!-- START_SECTION:completions-command-help -->
Generate shell completions

Usage: kdlfmt completions <SHELL>

Arguments:
  <SHELL>  [possible values: bash, elvish, fish, powershell, zsh]

Options:
  -h, --help     Print help
  -V, --version  Print version

<!-- END_SECTION:completions-command-help -->

Bash

Add the following to your .bashrc.

eval "$(kdlfmt completions bash)"

Bash

Add the following to your .zshrc:

eval "$(kdlfmt completions zsh)"

Fish

Add the following to ~/.config/fish/config.fish.

kdlfmt completions fish | source

PowerShell

Add the following to your PowerShell configuration (Can be found by running $PROFILE).

Invoke-Expression (&kdlfmt completions powershell)

Elvish

Add the following to ~/.elvish/rc.elv.

eval (kdlfmt completions elvish)