Skip to content

Rosetta state of development

Andrea edited this page Nov 23, 2016 · 1 revision

This page illustrates the current state of art of Rosetta with respect to the features which should be developed.

Features

Rosetta implements different features which can be divided into categories:

Attention All features are enumerated according to Roslyn node types.

Translating C# language syntax nodes

Rosetta has the ability to translate C# language constructs into corresponding/alternative TypeScript ones.

Type declarations

C# language feature Implemented? Rank
Class declaration Yes 100
Interface declaration Yes 100
Enum declaration No 80
Struct declaration No 10
Delegate declaration No 10

With the following subfeatures:

C# language feature Implemented? Rank
Subclassing Yes 100
Interface implementation Yes 100
Interface extension No 80

Statements

C# language feature Implemented? Rank
Break statement No 50
Checked statement Out of scope
Continue statement Yes 50
Do statement No 40
Empty statement No 40
Expression statement Yes 100
Fixed statement No 40
For each statement No 50
For statement No 70
Global statement Out of scope
Goto statement Out of scope
Labeled statement No 10
Local declaration statement Yes 80
Lock statement Out of scope
Return statement Yes 100
Switch statement No 20
Throw statement Yes 30
Try statement No 30
Unsafe statement Out of scope
Using statement No 30
While statement No 50
Yield statement Out of scope

Expressions

C# language feature Implemented? Rank
Anonymous function expression Out of scope
Anonymous method expression Out of scope
Anonymous object creation expression Out of scope
Array creation expression No 5
Arrow expression clause Out of scope
Assignment expression Yes 100
Await expression Out of scope
Base expression Yes 100
Binary expression Yes 100
Checked expression Out of scope
Conditional access expression No 40
Conditional expression No 40
Default expression Out of scope
Element access expression No 50
Element binding expression No 20
Implicit array creation expression No 30
Initializer expression No 20
Instance expression No 50
Interpolated string expression Out of scope
Invocation expression Yes 80
Lambda expression Out of scope
Literal expression Yes 70
Make ref expression Out of scope
Member access expression No 60
Member binding expression No 40
Object creation expression No 80
Omitted array size expression No 40
Parenthesized expression Out of scope
Parenthesized lambda expression Out of scope
Postfix unary expression Yes 80
Prefix unary expression Yes 80
Query expression Out of scope
Ref type expression Out of scope
Ref value expression Out of scope
Simple lambda expression Out of scope
Sizeof expression No 5
Stack allocation array creation expression Out of scope
This expression Yes 80
Typeof expression No 5

Miscellaneous

C# language feature Implemented? Rank
Lambda expressions No 10
LINQ No 10

Output generation

The following features are supported:

C# language feature Implemented? Rank
Definition bundle generation No* 100
Single file definition generation No* 100
Multiple file definitions generation No* 100
MSBuild integration No* 100
Definition generation from project file Partly 40

Note Entries marked as "No*" are not yet available, but the feature is actually implemented in the codebase. It means that the feature is very likely to be completed soon.