Releases: roblox-csharp/roblox-cs
Releases · roblox-csharp/roblox-cs
1.2.0
- Add
-w
/--watch
option to CLI - Transform file-scoped namespaces to namespace declarations
params
keyword parameters codegen (varargs)- Relational pattern codegen (e.g.
case >= 1
) const
declaration codegen- Fixed
ClassInstance#$base()
RuntimeLib method - Fixed full qualification issues
- Warn if using bitwise operators with 64 or 128-bit number types
- Throw if using extern keyword
- New
roblox-cs.yml
fields:EmitNativeAttributeOnClassOrNamespaceCallbacks
(bool
)EnabledBuiltInTransformers
(string[]
)
New Contributors
- @SecondNewtonLaw made their first contribution in #10
Full Changelog: 1.1.2...1.2.0
1.1.2
try
/catch
/finally
codegenthrow
codegennameof
codegen
Full Changelog: 1.1.1...1.1.2
1.1.1
this
expression codegen (#8)- Removed
Console.Write
&Console.WriteLine
in favor ofprint
- Fixed
Utility.FixPathSep()
replacing../
with.
- Fixed debug transformer not adding file info if invocation is fully qualified
- Fixed
Roblox.Globals
members fully qualifying - Implicitly add
using Roblox;
&using static Roblox.Globals;
Full Changelog: 1.1.0...1.1.1
1.1.0
- Variables & assignment now emits declarations from is patterns
- Fixed initializers being emitted for type patterns (#7)
- Fixed one entry point for both client & server not being allowed (#3)
- Fixed member access not fully qualifying at top-level
- Revamped CLI
--help
flag-v
/--version
flag--init
option (to initialize a project)
Full Changelog: 1.0.8...1.1.0
1.0.8
- Do statement codegen (e.g.
do Console.WriteLine("epic") while (true);
) - New anonymous type codegen (e.g.
var x = new { IsCool = true };
- Included System.Collections library
- Macro'd
Equals
method to__eq
metamethod anda == b
on call - Throw if using unsupported syntaxes:
- Abstract classes (for now)
- Virtual methods in interfaces (for now)
- Unsafe contexts
- Partial modifier (for now)
- Refs
- Using statements
- Goto statements/labels
- Write
class
instead of the class name when referring to static class members - Fixed files from
obj/
being included in compilation
Full Changelog: 1.0.7...1.0.8
1.0.7
is
(andis not
) pattern expression codegen (e.g.instance is BasePart part
)- Fixed nested safe navigation
- Transform
BinaryExpression
s using 'is' operator toIsPatternExpression
s
Full Changelog: 1.0.6...1.0.7
1.0.6
- Emit Luau types for strict type checking
- Added
Native
attribute to run functions/constructors natively - Macro string methods which have the same functionality as their Luau counterparts
- Parenthesized expression codegen
- Added enum declaration codegen
- Switch statement codegen (including
when
clause as well asnot
, discard, and declaration patterns) - Fixed for statements with no declarations/conditions/incrementors
- Added
@native
attributed to class/namespace callbacks in emitted code - Added
EntryPointRequired
option toroblox-cs.yml
config
Full Changelog: 1.0.5...1.0.6
1.0.5
rbxcs_include
folder is now located via Rojo project file- Fixed superclass names passed into
CS.classDef()
(#1) - Check inherited members when prepending
self.
/class.
to a member - Fixed some inheritance metatable issues
- Local function declaration codegen (#5)
- Namespace loading issues (#2)
Full Changelog: 1.0.4...1.0.5
1.0.4
- Inheritance
class A : B
& base initializerspublic A() : base(a, b)
- Analyze namespaces for members used as values instead of only using directives
Full Changelog: 1.0.3...1.0.4
1.0.3
default
keyword support- Omit
require()
if only types are used from imports - Add type stubs for most built-in Luau libraries
- Move Roblox types to different repository
- Create & macro ToNumber, ToFloat, etc. methods to
tonumber()
- Transform
@
out of identifier names - Disallow Luau keywords in identifier names
- Transform
ToString
method identifiers into__tostring
- Macro bitwise operators to
bit32
library methods - Various fixes
Full Changelog: 1.0.2...1.0.3