Skip to content

warrenseine/prettier-plugin-csharp

Repository files navigation

❌ 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#

Prettier C# Plugin

Gitter Travis npm version code style: prettier Follow+Prettier+on+Twitter

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.

Unmaintained

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.

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


Warren Seine