3 releases

0.1.2 Apr 10, 2023
0.1.1 Apr 10, 2023
0.1.0 Apr 9, 2023

#1863 in Development tools

Custom license

73KB
1.5K SLoC

yangfmt

YANG code formatter

Install

Clone the repo, then:

$ cargo install --path .

Pre-compiled binaries will be provided when the project has stabilized.

Usage

Pipe YANG source code to STDIN:

$ cat my-model.yang | yangfmt

Or specify a YANG file as the first positional argument:

$ yangfmt my-model.yang

Add -i to format the given YANG file in place:

$ yangfmt -i my-model.yang

Status

Pretty well tested, should be safe to use!

But please keep your code in version control just in case.

TODO:

  • Better error messages, currently syntax errors are reported raw with a character index

    Instead, error messages should show the file name, line number and column number, plus details about the error.

  • Automatically indent the contents of multi-line strings to align with the first line

  • Handle comments in between string concatenations. Currently this causes a parse error. For example:

    pattern "abcdef"  // Comments here
          + "ghijkl"; // currently causes a parse error
    

    Fortunately I've never seen anybody do this, but it's legal YANG so it should be supported.

Dependencies

~4–6MB
~93K SLoC