mpscs icon indicating copy to clipboard operation
mpscs copied to clipboard

MPS C# implementation

CsBaseLanguage

CsBaseLanguage is a project of the C# language implementation as a JetBrains MPS base language (for further information about base languages, see the MPS User's Guide).

The C# base language is distributed as a JetBrains MPS plugin. You can obtain it via the JetBrains MPS Marketplace from your installed MPS.

Supported C# Features

The C# base language is based on a subset of the C# 5.0 specification. Detailed specification can be found here.

Further references of C# are understood to reference this specified version.

Repository vs. Plugin

This repository contains the most up-to-date version of the C# base language. It is intended for the C# base language developers, not for its users. The TextGen aspect is auto-generated from the Editor aspect. To prevent inconsistency, the TextGen is not included in this repository and must be manually generated.

The plugin distributed via JetBrains MPS Marketplace contains a full binary version of the C# base language, which is time-to-time generated from this repository.

Users who do not want to participate on the C# base language's development are expected neither to use this repository nor to read the documentation contained in it. The language should be close enough to the standard C# so no documentation for users of the plugin is necessary (and therefore is not provided). The documentation in this plugin is intended for the plugin's developer community.

Documentation

This is a list of available documentation of the C# base language.

C# base language overview and design:

  • Repositories Diagram
  • Overview of related projects
  • Structure aspect design notes
  • Editor aspect design notes
  • Testing
  • External libraries support

Checklists and tutorials:

  • Creating your first C# based MPS program
  • Creating your first C# based DSL
  • Building the C# base language
  • Usage manual for advanced MPS users
  • Checklist for keeping the base language up-to-date with MPS version
  • How to run tests

If you have any troubles with the basic tutorials, see the advanced tutorial for more information.

Other documentation:

  • LangDoc plugin usage

Related Projects

Target Platform

The C# base language is expected to work only in the context of the JetBrains MPS workbench.

It has been primarily tested on Windows 10, 64 bit and Windows 7, 64-bit. It should work on Unix-like platforms as well, but maybe with minor problems, which should be, however, easily solvable by the user.