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.
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.
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.
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:
- Simple examples of usage of the C# base langauage
- CsStdLibrary: Stubs for the C# standard library
- LangDoc: an MPS plugin allowing better documentation of a language
- TextGenGen: an MPS plugin for automatic generation of the TextGen aspect from the Editor aspect
- CsStubsGenerator (StubsGenerator), DotNetLibraryExporter: MPS plugins and non-MPS tools for generation of C# library stubs
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.