-
Notifications
You must be signed in to change notification settings - Fork 3
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)
-
-
null
as alias fornil
-
this
as 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
-
static
fields in classes,static
classes See Static classes proposal for details. - support
this
reference in fields -
sealed
classes -
public
,private
fields, functions in classes & mixins - allow class fields declaration without explicit assignment (implicit
nil
value)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
/namespace
on file level
- gradual types
- generic types, generic classes
class C<T1, T2..>
- bytecode optimisation with statically resolved types
-
private static
fields in classes -
public
/internal
classes, mixins, enums - try/catch