blob: d1de48d5aa82141d5cfcd309c43a8864ab0d317c [file] [view]
# SystemVerilog Formatting
<!--*
freshness: { owner: 'fangism' reviewed: '2020-10-16' }
*-->
This directory contains all of the SystemVerilog-specific formatter
implementation.
[Tool user documentation can be found here](../tools/formatter).
## Formatter Subsystems
[Full developer documentation can be found here](../../doc/formatter.md).
Below is a quick summary of the major components.
[formatter.h](formatter.h) contains the top-level entry point into the
formatter. Text-in-text-out tests are in [formatter_test.cc](formatter_test.cc).
[FormatStyle](format_style.h) defines ways in which formatting can be
configured.
[token_annotator.h](token_annotator.h) marks up a token stream with formatting
constraints such as minimum spacing, and always/never-wrap.
[TreeUnwrapper](tree_unwrapper.h) converts a SV syntax tree into a
language-agnostic TokenPartitionTree representation for doing formatting
operations.
[align.h](align.h) implements everything related to tabular alignment of
specific sections of code.
[comment_controls.h](comment_controls.h) implements comment directives thet
disable formatting on ranges of text.