Expand description
cmakefmt is a fast, configurable CMake formatter.
§Quick start
Format a CMake source string with the default configuration:
use cmakefmt::{format_source, Config};
let cmake = "CMAKE_MINIMUM_REQUIRED(VERSION 3.20)\n";
let formatted = format_source(cmake, &Config::default()).unwrap();
assert_eq!(formatted, "cmake_minimum_required(VERSION 3.20)\n");To customise formatting, modify Config fields before passing it in:
use cmakefmt::{format_source, Config, CaseStyle};
let mut config = Config::default();
config.line_width = 100;
config.command_case = CaseStyle::Upper;
let cmake = "target_link_libraries(mylib PUBLIC dep1)\n";
let formatted = format_source(cmake, &config).unwrap();
assert_eq!(formatted, "TARGET_LINK_LIBRARIES(mylib PUBLIC dep1)\n");§Organisation
Re-exports§
pub use config::convert_legacy_config_files;pub use config::default_config_template;pub use config::default_config_template_for;pub use config::render_effective_config;pub use config::CaseStyle;pub use config::CommandConfig;pub use config::Config;pub use config::DangleAlign;pub use config::DumpConfigFormat;pub use config::PerCommandConfig;pub use error::Error;pub use error::Result;pub use formatter::format_file;pub use formatter::format_source;pub use formatter::format_source_with_debug;pub use formatter::format_source_with_registry;pub use formatter::format_source_with_registry_debug;pub use spec::registry::CommandRegistry;
Modules§
- config
- Runtime formatter configuration and config-file loading. Runtime formatter configuration.
- error
- Shared error types used across parsing, config loading, and formatting. Structured error types returned by parsing, config loading, and formatting.
- formatter
- Source-to-source formatting pipeline. Top-level formatter entry points.
- parser
- CMake parser and AST definitions. Parser entry points for CMake source text.
- spec
- Built-in and user-extensible command specification registry. Command-spec data model used by the formatter.