Skip to content

dotnet-format

dotnet-format documentation

format - GitHub

Configuration in Mega-Linter

Variable Description Default value
CSHARP_DOTNET_FORMAT_ARGUMENTS User custom arguments to add in linter CLI call
Ex: -s --foo "bar"
CSHARP_DOTNET_FORMAT_FILTER_REGEX_INCLUDE Custom regex including filter
Ex: (src\|lib)
Include every file
CSHARP_DOTNET_FORMAT_FILTER_REGEX_EXCLUDE Custom regex excluding filter
Ex: (test\|examples)
Exclude no file
CSHARP_DOTNET_FORMAT_CLI_LINT_MODE Override default CLI lint mode
- file: Calls the linter for each file
- list_of_files: Call the linter with the list of files as argument
- project: Call the linter from the root of the project
{linter.cli_lint_mode}
CSHARP_DOTNET_FORMAT_FILE_EXTENSIONS Allowed file extensions. "*" matches any extension, "" matches empty extension. Empty list excludes all files
Ex: [".py", ""]
[".cs"]
CSHARP_DOTNET_FORMAT_FILE_NAMES_REGEX File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: ["Dockerfile(-.+)?", "Jenkinsfile"]
Include every file
CSHARP_DOTNET_FORMAT_PRE_COMMANDS List of bash commands to run before the linter None
CSHARP_DOTNET_FORMAT_POST_COMMANDS List of bash commands to run after the linter None
CSHARP_DOTNET_FORMAT_DISABLE_ERRORS Run linter but consider errors as warnings true
CSHARP_DOTNET_FORMAT_DISABLE_ERRORS_IF_LESS_THAN Maximum number of errors allowed 0

Mega-Linter Flavours

This linter is available in the following flavours

Flavor Description Embedded linters Info
all Default Mega-Linter Flavor 94 Docker Image Size (tag) Docker Pulls
dotnet Optimized for C, C++, C# or VB based projects 47 Docker Image Size (tag) Docker Pulls

Behind the scenes

How are identified applicable files

  • File extensions: .cs

How the linting is performed

  • dotnet-format is called one time by identified file

Example calls

dotnet-format --folder --check --exclude / --include myfile.cs
dotnet-format --folder --exclude / --include myfile.cs

Help content

dotnet-format
  dotnet-format

Usage:
  dotnet-format [options] [<workspace>]

Arguments:
  <workspace>  A path to a solution file, a project file, or a folder containing a solution or project file. If a path is not specified then the current directory is used. [default: ]

Options:
  --no-restore                                                             Doesn't execute an implicit restore before formatting.
  -f, --folder                                                             Whether to treat the `<workspace>` argument as a simple folder of files.
  -w, --fix-whitespace                                                     Run whitespace formatting. Run by default when not applying fixes.
  -s, --fix-style <error|info|warn>                                        Run code style analyzers and apply fixes.
  -a, --fix-analyzers <error|info|warn>                                    Run 3rd party analyzers and apply fixes.
  --diagnostics <diagnostics>                                              A space separated list of diagnostic ids to use as a filter when fixing code style or 3rd party issues. [default: ]
  --include <include>                                                      A list of relative file or folder paths to include in formatting. All files are formatted if empty. [default: ]
  --exclude <exclude>                                                      A list of relative file or folder paths to exclude from formatting. [default: ]
  --check                                                                  Formats files without saving changes to disk. Terminates with a non-zero exit code if any files were formatted.
  --report <report-path>                                                   Accepts a file path, which if provided, will produce a json report in the given directory.
  -v, --verbosity <d|detailed|diag|diagnostic|m|minimal|n|normal|q|quiet>  Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]
  --binarylog <binary-log-path>                                            Log all project or solution load information to a binary log file.
  --version                                                                Show version information
  -?, -h, --help                                                           Show help and usage information

Installation on mega-linter Docker image

  • Dockerfile commands :
# Parent descriptor install
RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \
    && chmod +x dotnet-install.sh \
    && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel Current -version latest

ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet"
# Linter install
RUN /usr/share/dotnet/dotnet tool install -g dotnet-format

Example success log

Results of dotnet-format linter (version 4.1.131201)
See documentation on https://megalinter.github.io/descriptors/csharp_dotnet_format/
-----------------------------------------------

[SUCCESS] .automation/test/csharp/csharp_good_01.cs
      Formatting code files in workspace '.automation/test/csharp'.
      Format complete in 1181ms.

Example error log

Results of dotnet-format linter (version 4.1.131201)
See documentation on https://megalinter.github.io/descriptors/csharp_dotnet_format/
-----------------------------------------------

[ERROR] .automation/test/csharp/csharp_bad_01.cs
      Formatting code files in workspace '.automation/test/csharp'.
      csharp/csharp_bad_01.cs(1,33): Fix whitespace formatting.
      Formatted code file '.automation/test/csharp/csharp_bad_01.cs'.
      Format complete in 1295ms.