Skip to content

openrewrite/rewrite-csharp

Repository files navigation

OpenRewrite

rewrite-csharp

ci Maven Central Revved up by Gradle Enterprise Contributing Guide

Introduction

This project contains a variety of OpenRewrite recipes, visitors, and supporting code for the C# language. Most of OpenRewrite, including the core framework, is Java-based, so a remoting mechanism is used to communicate between the Java and C# runtimes.

Note: For now, this language and the associated recipes are only supported via the Moderne CLI or the Moderne Platform (at least until native build tool support catches up). That being said, the Moderne CLI is free to use for open-source repositories. If your repository is closed-source, though, you will need to obtain a license to use the CLI or the Moderne Platform. Please contact Moderne to learn more.

Getting started

For help getting started with the Moderne CLI, check out our getting started guide. Or, if you'd like to try running these recipes in the Moderne Platform, check out the Moderne Platform quickstart guide.

Contributing

We appreciate all types of contributions. See the contributing guide for detailed instructions on how to get started.

Development information

Project structure

  • Rewrite - OpenRewrite port to C#
  • rewrite-csharp - Module with pure C# related LST classes written in Java
  • rewrite-csharp-remoting - Module with the generated C# serializers/deserializers classes required for cross-process communication
  • rewrite-test-engine-remote - Test engine used to power the OpenRewrite LST test written in C#
  • rewrite-csharp-remote-server - The embedded C# based tcp server zipped dlls required to run C# lang server during CLI executions (build/recipe run/ etc )