Crate biome_formatter
source ·Expand description
Infrastructure for code formatting
This module defines FormatElement, an IR to format code documents and provides a mean to print such a document to a string. Objects that know how to format themselves implement the Format trait.
§Formatting Traits
- Format: Implemented by objects that can be formatted.
- FormatRule: Rule that knows how to format an object of another type. Necessary in the situation where it’s necessary to implement Format on an object from another crate. This module defines the FormatRefWithRule and FormatOwnedWithRule structs to pass an item with its corresponding rule.
- FormatWithRule implemented by objects that know how to format another type. Useful for implementing some reusable formatting logic inside of this module if the type itself doesn’t implement Format
§Formatting Macros
This crate defines two macros to construct the IR. These are inspired by Rust’s fmt
macros
format!
: Formats a formatable objectformat_args!
: Concatenates a sequence of Format objects.write!
: Writes a sequence of formatable objects into an output buffer.
Re-exports§
pub use crate::diagnostics::ActualStart;
pub use crate::diagnostics::FormatError;
pub use crate::diagnostics::InvalidDocumentError;
pub use crate::diagnostics::PrintError;
pub use format_element::normalize_newlines;
pub use format_element::FormatElement;
pub use format_element::LINE_TERMINATORS;
pub use group_id::GroupId;
Modules§
- Types for extracting and representing comments of a syntax tree.
- Provides builders for comments and skipped token trivia.
Macros§
- Provides multiple different alternatives and the printer picks the first one that fits. Use this as last resort because it requires that the printer must try all variants in the worst case. The passed variants must be in the following order:
- Writes formatted data into the given buffer and prints all written elements for a quick and dirty debugging.
- Creates the Format IR for a value.
- Constructs the parameters for other formatting macros.
- Writes formatted data into a buffer.
Structs§
- Mono-morphed type to format an object. Used by the crate::format!, crate::format_args!, and crate::write! macros.
- Sequence of objects that should be formatted in the specified order.
- The first variant is the most flat, and the last is the most expanded variant. See
best_fitting!
macro for a more in-detail documentation - Formats the
item
with the specified rule. - Formats the referenced
item
with the specified rule. - This structure stores the state that is relevant for the formatting of the whole document.
- Default implementation for formatting a token
- Buffer that allows you inspecting elements as they get written to the formatter.
- Validated value for the
line_width
formatter options - Error type returned when converting a u16 to a LineWidth fails
- This struct wraps an existing buffer and emits a preamble text when the first text is written.
- A Buffer that removes any soft line breaks.
- Lightweight sourcemap marker between source and output tokens
- A source map for mapping positions of a pre-processed tree back to the locations in the source tree.
- Builder for creating a source map.
- Vector backed
Buffer
implementation.
Enums§
- Snapshot of a buffer state that can be restored at a later point.
- Error type returned when parsing a LineWidth from a string fails
Traits§
- A trait for writing or formatting into FormatElement-accepting buffers or streams.
- The CstFormatContext is an extension of the CST unaware FormatContext and must be implemented by every language.
- Formatting trait for types that can create a formatted representation. The
biome_formatter
equivalent to std::fmt::Display. - Context object storing data relevant when formatting an object.
- Entry point for formatting a SyntaxNode for a specific language.
- Options customizing how the source code should be formatted.
- Rule that knows how to format an object of type
T
. - Rule that supports customizing how it formats an object of type
T
. - Trait for an object that formats an object with a specified rule.
Functions§
- The
format
function takes anArguments
struct and returns the resulting formatting IR. - Formats a syntax node file based on its features.
- Formats a range within a file, supported by Biome
- Formats a single node within a file, supported by Biome.
- The
write
function takes a target buffer and anArguments
struct that can be precompiled with theformat_args!
macro.
Type Aliases§
- Public return type of the formatter