-
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