But I get the impression that not many users discover this. When I look at projects uploaded to the Snap! website, I see many with sprites named “Sprite”, “Sprite(2)”, “Sprite(3)”, “Sprite(3)(2)”, and so on.
Costumes have a “rename” option when you right-click on them, and so do scenes if you’ve added more than one scene to your project. I would like to request that sprites also have a “rename” option added to their right-click menu.
In other words, I’d like this (the current menu when you right-click a sprite):
I personally feel like the current system is very discoverable, since it is probably one of the first things anyone sees, as it’s right in the middle on the top, and also a bright rectangle in a sea of dark colors. I personally don’t rename many sprites, because I’m lazy, and I assume this is the case for most people.
However, I don’t see why having a rename option in the right-click menu is a bad thing, in fact, it could be good, as people may expect that.
But if I then rename Sprite(2) to Second, I would expect the tell [Sprite(2) V]::control block to become tell [Second V]::control since the sprite has been renamed, and it doesn’t. This bug is probably not easy to discover at the moment since many users either won’t rename sprites, or will rename them immediately after creating them. But once a “rename” menu option is added, I suspect users will expect existing references to sprites to automatically update when the sprite is renamed.
I certainly missed the option my first few times playing around with the interface. I was paying a lot more attention to the blocks and central part of the GUI than to the top bar, especially since I discovered that the top bar didn’t allow renaming your project. That taught me to expect the “rename” option to be found in right-click menus: it’s there for variables, scenes, costumes…
I’m trying to avoid cluttering up menus, especially context menus, with redundant options, because they complicate the GUI and increase cognitive load. Renaming sprites is - I think - very discoverable and easy to do, and the reason why folks don’t do it all the time might just be that they don’t need specials names for their objects, but just “another object”. This is especially the case in Snap, where we have first-class-ness of sprites, and can also refer to them directly rather than by their name (as opposed to Scratch, where references by name are the only supported modality). That’s also the reason why I’m not automagically changing all sprite name references inside sprite-name blocks.