- Implemented a 3-pass matching algorithm in the Reconciler to handle ambiguous paths, ensuring accurate reconciliation of instances with duplicate names. - Added default property caching and refined property comparison logic for better instance matching. - Introduced recursive change-count matching as a tiebreaker for ambiguous results. - Refactored equality checks and path handling for robustness with duplicate-named siblings. - Updated descendant search functions for `WeakDom` and `RojoTree` to support the new matching algorithm. - Exposed `snapshot`, `syncback`, and `variant_eq` modules publicly, along with integration tests for the matching algorithm. - Enhanced deduplication processes and improved code readability. These changes significantly improve the reconciliation process, addressing previous ambiguities and enhancing overall performance. |
||
|---|---|---|
| .cargo | ||
| .config | ||
| .cursor | ||
| .github/workflows | ||
| .vscode | ||
| assets | ||
| benches | ||
| build/windows | ||
| crates | ||
| plugin | ||
| rbx-dom@1166e5a628 | ||
| rojo-test | ||
| scripts | ||
| src | ||
| test-projects | ||
| tests | ||
| vscode-rojo@f18e6d4c52 | ||
| .dir-locals.el | ||
| .editorconfig | ||
| .git-blame-ignore-revs | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| install.ps1 | ||
| install.sh | ||
| LICENSE.txt | ||
| plugin.project.json | ||
| README.md | ||
| rokit.toml | ||
| selene.toml | ||
| testez.yml | ||
Rojo is a tool designed to enable Roblox developers to use professional-grade software engineering tools.
With Rojo, it's possible to use industry-leading tools like Visual Studio Code and Git.
Rojo is designed for power users who want to use the best tools available for building games, libraries, and plugins.
Features
Rojo enables:
- Working on scripts and models from the filesystem, in your favorite editor
- Versioning your game, library, or plugin using Git or another VCS
- Streaming
rbxmxandrbxmmodels into your game in real time - Packaging and deploying your project to Roblox.com from the command line
In the future, Rojo will be able to:
- Sync instances from Roblox Studio to the filesystem
- Automatically convert your existing game to work with Rojo
- Import custom instances like MoonScript code
Documentation
Documentation is hosted in the rojo.space repository.
Contributing
Check out our contribution guide for detailed instructions for helping work on Rojo!
Pull requests are welcome!
Rojo supports Rust 1.88 and newer. The minimum supported version of Rust is based on the latest versions of the dependencies that Rojo has.
License
Rojo is available under the terms of the Mozilla Public License, Version 2.0. See LICENSE.txt for details.
