The latest release of RTist 11, called 2020.22, is now available. Here’s a look at what’s most noteworthy:
Final Modifier Supported
The C++ 11, Final Modifier is now supported by the model compiler. There is a new Final property that can be set on classes and capsules to specify that they cannot be inherited. The same property is also available on operations to specify that they cannot be overridden.
Automatic Variables with Auto Keyword
Another C++ 11 feature is automatic variables declared with the auto keyword. In RTist, you can now create attributes typed by a special auto type that has been added to the CppPrimitiveDatatypes package. You need to specify a default value for the attribute, set its Initializer Kind property to either “equal” or “brace” and make it static const or static constexpr, so that the model compiler will generate an initializer for the corresponding C++ variable. The C++ compiler will deduce the type of the variable from that initializer value.
Fix for Broken References
An important improvement in the 2020.22 release is the better support for working with broken references. In the previous versions, the tool had difficulties coping with certain broken references, and as a remedy it sometimes deleted elements with such references. Now this no longer happens, and instead we have made it easier to fix broken references by means of a new Quick Fix called “Rebind Broken References”. This quick fix can be run from the context menu of a broken reference problem in the Problems view, and it is able to rebind broken references that have been introduced by refactorings, where not all affected references could be updated at the time of the refactoring. A common example is when elements in a model library are moved so they end up in a different model file. This affects all client models that use the library, and since the refactoring of a library typically is done without knowledge of which clients that may use it, many references in client models can become broken because of this. The “Rebind Broken References” quick fix is able to update all such broken references in one go.
TC Editor Enhancements
We have also improved the TC editor in this release. The TC editor’s Code tab now highlights syntax errors which makes it easier to work with transformation configurations textually.
Finally, let’s mention the graphic visualization of TC relationships that was first available as an experimental feature in the previous release. In this release, we have continued to improve this feature and it now can show both prerequisite and inheritance relationships for TCs (separately or both at the same time). The layout of the graphs has also been improved which is noticeable especially for big graphs. This feature is still experimental, and we hope to complete it in the next release.