prettier-plugin-csharp
prettier-plugin-csharp copied to clipboard
Prettier C# Plugin
:construction: Work in Progress! :construction:

Prettier C# Plugin
Intro
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.
WORK IN PROGRESS
Please note that this plugin is under active development, and might not be ready to run on production code yet. It will break your code.
Preview the result with this diff example.
Install
yarn add --dev --exact prettier prettier-plugin-csharp
Use
prettier --write "**/*.cs"
How it works
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.
Contributing
Installing dependencies
Use your favorite Node package manager:
yarn
Updating the grammar
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
Testing
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.
Maintainers
![]() |