FastFormat 1.2.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet tool install --global FastFormat --version 1.2.0
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
dotnet tool install --local FastFormat --version 1.2.0
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=FastFormat&version=1.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
nuke :add-package FastFormat --version 1.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
FastFormat
A fast C# formatter that respects .editorconfig rules. Designed to be significantly faster than dotnet format for pure formatting tasks.
Performance
In benchmarks formatting 50 C# files:
- FastFormat: ~0.7s
dotnet format: ~4.0s
That's roughly 6x faster.
Installation
dotnet tool install --global FastFormat
Usage
# Format files or directories
# (refuses to run on non-project directories without --force)
dotnet-fastformat src/
dotnet-fastformat Program.cs
# Check formatting without making changes
dotnet-fastformat --check src/
# Include/exclude patterns
dotnet-fastformat --exclude "**/*.generated.cs" src/
dotnet-fastformat --include "src/**/*.cs" --include "tests/**/*.cs" .
# Bypass the project-directory safety check
dotnet-fastformat --force ~/some-random-dir/
# Stdin -> stdout
cat Program.cs | dotnet-fastformat
cat Program.cs | dotnet-fastformat --stdin-filepath src/Program.cs
# Verbose output
dotnet-fastformat -v src/
# Control parallelism
dotnet-fastformat -p 8 src/
Supported .editorconfig Options
indent_styleindent_sizetab_widthend_of_lineinsert_final_newlinetrim_trailing_whitespacecsharp_new_line_before_open_bracecsharp_new_line_before_catchcsharp_new_line_before_elsecsharp_new_line_before_finallycsharp_new_line_before_members_in_object_initializerscsharp_new_line_between_query_expression_clausesdotnet_sort_system_directives_firstdotnet_separate_import_directive_groups
File Types
.cs— C# source files.csx— C# script files
Safety
When run on a directory, FastFormat refuses to recurse unless the directory (or an ancestor) looks like a project — indicated by the presence of .git, .editorconfig, *.csproj, *.sln, or *.slnx. It also refuses to run directly on $HOME or the filesystem root. Use --force to bypass this check.
Encoding
Files are read and written preserving their existing BOM. Files without a BOM are assumed to be UTF-8.
Default Behaviors
- Final newline: Files are always given a trailing newline unless
.editorconfigexplicitly setsinsert_final_newline = false.
Why is it faster?
- No MSBuild workspace loading
- No semantic analysis
- Parallel file processing
- Direct
.editorconfigparsing without heavy workspace machinery - Gitignore-aware file discovery
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.