- 
                Notifications
    You must be signed in to change notification settings 
- Fork 4
roadmap
        Matěj Štágl edited this page Oct 10, 2022 
        ·
        63 revisions
      
    - Arrow Functions
- ** operator for pow
- If (curly brackets implemented, need single statement with semicolon variant)
- For Loops - iterators. (Need to see how the table without pairs call works with the MoonSharp default iterator)
- For Loops - C style with conditions. (New parser concept).
- do/while loops (try and make not conflict with lua’s do-end scope blocks).
- While loops
- Repeat loops
- Functions with curly bracket { } syntax
- Single-line comments
- Multiline comments
- let/var alias for local
- Tables using ‘:’
- String literal keys for table init syntax
- Square bracket list syntax
- Ternary Expression (CLike only)
- Unary ! negation (TBC)
- && (alias for and)
- || (alias for or)
- Compound assignment *= += -= /= **= ..= %=
- Overloaded + operator that tries to coerce to string if it isn’t a number
- .. replaced with + operator
- Label syntax (CLike only)
- Increment/Decrement shorthand. CLike only, breaks Lua comments
-  Template literals `` (equivalent to $""+ multiline support in c#)
-  Replace #with.length, free # for other uses
-  Ditch Moonsharp’s | lambda |syntax, free pipe for bitwise & implement bitwise operators
-  Nill coalescing operators
-  ??=(nill coalescing assignment)
-  ?!=(inverse nill coalescing assignment)
-  ?.(nill coalescing member access)
-  ?[](nill coalescing element access)
-  ??(nill coalescing)
-  ?!(inverse nill coalescing)
 
-  
-  nullas alias fornil
-  thisas alias forself
- declaration hoisting.
- implicit "self/this". Spec in draft, see Implicit this proposal for details
- self call with dot instead of double colon. Specced in implicit "self/this".
- annotations. See Annotation proposal for details.
- default params. See #18
- switch
- razor-esque syntax, templating library. See Razor like templating proposal for details
- preprocessor See Preprocessor proposal
- first-class ranges See Ranges proposal
-  prototype methods "TEST".lower()
- class syntax, oop extensions. See Object oriented extensions proposal for details.
- enums. See Enum proposal for details.
- max instructions limit
- string lib refactor, remove legacy kopilua interop
-  staticfields in classes,staticclasses See Static classes proposal for details.
-  support thisreference in fields
-  sealedclasses
-  public,privatefields, functions in classes & mixins
-  allow class fields declaration without explicit assignment (implicit nilvalue)class C { private a, b, c }
- expose class/mixin shape in public API
- improve default tostring()implementation of classes, mixins and enums
- 
using/static require
- 
package/namespaceon file level
- gradual types
- generic types, generic classes class C<T1, T2..>
- bytecode optimisation with statically resolved types
- 
private staticfields in classes
- 
public/internalclasses, mixins, enums
- try/catch