Repository navigation
Script Studio QA round ten: keys as uuids, linked prims, the link notice, event hovers - #593
Merged
Merged
Conversation
With keys as uuids, a key held as text (declared with nothing, or given "") that was given llList2Key's item took tostring of SLua's List2Key, which answers NULL_KEY for "" and for any text that is no UUID: key av; av = llList2Key(["", ...], 0); av != "" was true, where LSL's was false. Wherever llList2Key's key is made text (Writer::coerced), its item is read as List2String reads it, as it already was with keys as text: av = newAssignments[1] or "". A key held as a uuid keeps List2Key. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The explorer lists the objects pinned, selected in world, or holding an open script, and a file's tab names no prim: a prim whose open scripts were all linked to files, their tabs giving way to the files', dropped out once the edit window closed and deselected it. A file's tab now counts as open for every script it masters (not orphaned), and links made and let go of relist the explorer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
function LLEvents.run_time_permissions() showed nothing under the old solver, which types only LLEvents in a function statement's name, and the editor's fallback asked the definitions for the dotted name, which they keep events under bare. The old editor showed the event's arguments. A field with no type of its own now takes the one the table or extern type it is on gives it, and a field holding a function or nil, as an event's handler does, hovers as the function: function LLEvents.run_time_permissions(perm: number), under either solver. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Compare a link offers read the script in-world and, where the read failed, returned without a word, so the button only closed the notice. The failure is now said on the file's tab, with the reason the read gave (MasterWorldNotRead). The masters test now takes Compare through a refused read and a read one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A link's notice ran three times past the one line the bar had, cut with an ellipsis and whole only in its tip. The bar's words now wrap at what its buttons leave them, and its layout panel is as tall as their lines, up to three, again as the window is resized; all of them are still in the tip. The link's own words are shorter too: "[NAME] is linked to [FILE]: each save of the file sends it. They differ now: the next save sends the file, keeping what [NAME] held in History." Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A link's notice offered Send File, which sends the file over the script, and no way the other way. Update File (master_take_world) reads what the script holds in-world, out of its envelope, and puts it in the file's tab as one step to undo; the file on disk is written only by a save of it, which then sends what the script already holds. Offered wherever Send File and Compare are, on the file's tab: a link made to a file that differs, a tab that gave way to such a file, a send held over a change in-world, and a change heard in-world. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8da2f20 reworded SluaList2KeyText, which is said wherever llList2Key's key is made text, not only where every key is held as text; the string the studio shows it by was left with the old words. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7977a06 held key k; as text, since LSL's held "": (string)k was "" and k == NULL_KEY FALSE. Tapple asks for it as key k = NULL_KEY; is, as it was before: local k = NULL_KEY, a uuid compared with "" as uuid(""), and given llList2Key as List2Key. The difference is said once, over the first such declaration (SluaKeyDeclared): it equals NULL_KEY and reads as NULL_KEY's text, where LSL's did neither. key k = ""; is still held as text, for the link-message case of QG10. With keys as text, nothing changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 35 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Tapple's tenth round of Script Studio QA covers six reports: two in the converter's keys as uuids, the explorer losing linked prims, the link notice's length and buttons, and SLua event hovers.
One commit partly undoes nopjmp's
7977a06902. That commit held a key declared with nothing as text, since LSL'skey k;holds"". Tapple asked to havekey k;meankey k = NULL_KEY;again where keys are uuids, as it did before, and that was decided on 2026-10-27. The difference from LSL is noted in the script.key k = "";still stays text, for round seven's link-message case.llList2Key's key made text holds its item's text, not NULL_KEY's
llList2Key's item tooktostring(llcompat.List2Key(...)). SLua'sList2Keyanswers NULL_KEY for""and for any text that is no UUID. Tapple'sav = llList2Key(["", ...], 0); if (av != "")printed["00000000-..."]where LSL printed[].Writer::coerced), its item is now read as List2String reads it:av = newAssignments[1] or "". Keys as text already worked this way (round eight). A key held as a uuid keepsllcompat.List2Key.string msg = llList2Key(l, 0)with keys as uuids, which gave NULL_KEY's text for text that is no UUID.SluaList2KeyTextis reworded to fit, in the converter and instrings.xml.A key declared with nothing is NULL_KEY again where keys are uuids
key av;islocal av: uuid = NULL_KEY, compared with""asuuid(""), and givenllList2KeyasList2Key. Tapple's script now comes out exactly as they asked.SluaKeyDeclared, once a script, like the other key notes). The key equals NULL_KEY and reads as NULL_KEY's text, where LSL's did neither.key av = "";is still text. With keys as text, nothing changes.7977a06902changed for this are back to what they were (gOwner, gSitter, gSender), and its "holds no text" test is replaced.A file's tab keeps the prims of the scripts it masters in the explorer
Hover on an SLua event's handler says its parameters again
function LLEvents.run_time_permissions()hovered as nothing. The old solver types onlyLLEventsin a function statement's name, and the editor's fallback asked the definitions for the dotted name, where events are kept bare. The old script editor showed the arguments.function LLEvents.run_time_permissions(perm: number), under either solver.Compare with the world's script says why it could not read it
MasterWorldNotRead). Nothing else on that path drops the comparison, and the masters test compares as it should. The cause in Tapple's viewer was not reproduced, so the hand check below matters.Script Studio's notice wraps its words onto up to three lines
ALScriptNoticeBar::fitWords).A file's link offers Update File: the script's world text into the file
master_take_world) reads what the script holds in-world, out of its envelope, and puts it in the file's tab as one step to undo. The file on disk is written only when the tab is saved, and that save then sends what the script already holds.Related Issues
None: Tapple's QA notes of 2026-10-22 to 2026-10-25, forwarded.
Issue Link: none
Checklist
Additional Notes
Testing
allsltoslua: Tapple's script withkey av;,= ""and= NULL_KEY, and a key declared with nothing, noted and with keys as text.alluauservice: an event's handler hovered while being written and while being read, under both solvers.alscriptstudiomasters: Compare through a refused read and a successful one, and Update File put in the tab, undone, and taken again when already the same.alscriptstudioorphans: the real bar from the skin, one line, two, and past three.Hand checks
🤖 Generated with Claude Code