❌ This repository is unmaintained and the project is incomplete, don't expect anything else than a toy C# project to reformat correctly! ❌
Have a look at CSharpier instead.
Prettier C# adds C# support to the Prettier code formatter. Like Prettier, it is opinionated and restricts style options to a minimum. It runs where Prettier runs, including CI and pre-commit hooks.
This repository is unmaintained and the project is incomplete, don't expect anything else than a toy C# project to reformat correctly! It will break your code.
Preview the result with this diff example.
yarn add --dev --exact prettier prettier-plugin-csharp
prettier --write "**/*.cs"
The plugin is written in JavaScript. It depends on the JavaScript port of ANTLR and relies on a fork of an unofficial C# 6 grammar from ANTLR. The grammar is precompiled to plain JavaScript and ready to use in the project.
Use your favorite Node package manager:
yarn
The grammar supports C# 6 as a baseline, and tries to catch up with recent additions. Contributions are welcome. To update the grammar:
- Update
src/csharp/*.g4
files. - Ensure you have Java 8+ installed on your machine.
- Fetch a local copy of ANTLR:
yarn fetch-antlr
- Generate the JavaScript parser:
yarn generate-parser
The project is developed against a single grammar-complete regression test. There are no unit tests for the moment.
Run the test with:
yarn test
To test it out on an actual C# file:
- Clone this repository.
- Run
yarn
. - Run
yarn prettier Your/File.cs
to check the output.
Warren Seine |