-
Notifications
You must be signed in to change notification settings - Fork 4
roadmap
Matěj Štágl edited this page Oct 2, 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, Moonsharp.Templating assembly. 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. -
sealedclasses -
public,privatefields in classes & mixins - generic classes
class C<T1, T2..>
-
using/static require+ relaxed quotes aroundrequire - bytecode guards stripping with statically resolved types
- try/catch
- types
as comments. SeeTypes as comments proposal for details. Proposal rework pending.