Skip to content

Commit

Permalink
Merge branch 'master' of github.com:roblox-csharp/roblox-cs
Browse files Browse the repository at this point in the history
  • Loading branch information
R-unic committed Jan 6, 2025
2 parents ea61407 + af4a479 commit ea0dd45
Showing 1 changed file with 19 additions and 17 deletions.
36 changes: 19 additions & 17 deletions RobloxCS/README.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,44 @@
# RobloxCS

## To-do
- Generate blocks that are direct children of other blocks (or the compilation unit) as `ScopedBlock`s
- Only generate interface declarations & inherit from interfaces if they have methods with implementations
- Map `dynamic` to no type at all

## Roadmap

Key:
- `?` -> will maybe be added

In no particular order:
- [ ] only generate interface declarations & inherit from interfaces if they have methods with implementations
- [ ] map `dynamic` to no type at all
- [ ] a LOT more testing
- [ ] generation tests
- [ ] save navigation (`a?.b?.c`)
- [ ] macro `ToNumber()`, `ToUInt()`, `ToFloat()`, etc. (defined in Roblox.cs in RobloxCS.Types) to `tonumber()`
- [ ] prefix increment/decrement (`++a`, `--a`)
- [ ] transform primary constructors (e.g. `class Vector4(float x = 0, float y = 0, float z = 0, float w = 0)`) into regular class declarations with a constructor
- [ ] member access or qualified names under the Roblox namespace should be unqualified (e.g. `Roblox.Enum.KeyCode.Z` -> `Enum.KeyCode.Z`)
- [ ] emit comments?
- [ ] method overloading
- [ ] patterns
- [ ] `is`
- [ ] `not`
- [ ] type
- [x] `not`
- [x] type
- [ ] nested types
- [ ] declaration
- [ ] relational
- [x] relational
- [ ] control flow
- [x] if
- [x] while
- [x] for
- [x] foreach
- [x] do
- [ ] switch statements
- [x] switch statements
- [ ] switch expressions
- [x] `return`
- [x] `break`
- [x] `continue`
- [ ] types
- [x] types
- [x] map primitives to luau
- [ ] generics
- [ ] type hoisting
- [x] generics
- [x] type hoisting
- [x] namespaces
- [x] enums
- [ ] interfaces
Expand All @@ -48,16 +52,14 @@ In no particular order:
- [ ] property getters
- [ ] property setters
- [x] methods
- [ ] constructor overloading
- [ ] operator overloading
- [ ] inheritance
- [ ] reflection
- [x] nameof
- [ ] typeof (partially done!)
- [ ] `object.GetType()`
- [ ] typeof (mostly done!)

## Will not be supported
- Structs
- Records
- Events (via the `event` keyword, not Roblox events)
- `object.GetType()` (sorry, we can't access C# types during runtime!)
- Any unsafe context (pointers, `unsafe` keyword, `stackalloc`, etc.)
- `ref` keyword

0 comments on commit ea0dd45

Please sign in to comment.