I work on an old MacBook that I got from my school most of the time that I am creating, and for most stuff that I create, the code runs fast and works the way I want it to, but when I am trying to actually make the project, some aspects can really slow down the process.
For example, I could be trying to move a large script around, and it takes a really long time to pop out of its previous location, and then is very slow while dragging, and then takes a long time to pop into its final position. This lag happens for me even with small scripts that I try to move around, and it is the hardest to work with when I unintentionally (or intentionally) drag the scripts area around, which can cause my project to freeze for a small amount of time. (This can actually be worse because Snap! has smoothing for dragging, so it can lag multiple times until it goes to the destination)
My suggestion is some kind of mode that reduces this kind of lag by decreasing the quality of the scripting area, and other sections of the editor.
My ideas for the changes that would happen while the mode was enabled if this were to be added: (I don't actually know what slows down snap, so these are my best guesses for what could improve performance, they may not actually have a significant effect)
1: The shape of the blocks could be changed to the outline of rectangles, with no shadows or text formatting.
2: Some way to not automatically compile the snap code every time a block is moved.
3 The removal of the animations and smoothing.
4: Change the dragging behavior to check for possible drop spots less often.
5: Forgetting about the displayed blocks running a program when in a mode that doesn't show them, such as fullscreen mode.
6: Other changes that would make programming faster.
My focus for this request was about the scripting area, not the performance of the actual running of the code or the speed of anything related with the stage, but if there are improvements that would help that kind of speed in a way that wouldn't be added by default because it would negatively affect the user experience, those could be added to the high performance mode as well.
I have an idea of how Windows 10 increases performance - with the windows, it makes an inverted color border. In this case, it would be a white border roughly the same size, and it would snap (hmmm) to other blocks.
How old is the MacBook?
The laptop is a 2020 MacBook Air M1 with Ventura 13.5.
How much memory?
The laptop has 8gb of ram.
Which browser?
I ran Snap! inside of Firefox.
Using flat design:
I tested editing code with flat design and many of the issues I mentioned are a lot faster with it enabled, although with the white background it is a lot harder on my eyes compared to the darker theme of the non-flat-design. (Sidenote: I feel like there should be an option to have a darker flat mode and a light regular mode, but that is probably not very easy to implement)
I will try to use flat mode for editing larger projects, although it would be nice to be able to use the non-flat blocks without the editing speed being reduced. (Other sidenote: Flat mode made my performance testing program run around 1/3 faster, which I will definitely take advantage of)
I tried adding the tampermonkey extension, but due to my school administrators, adding any new apps or extensions is blocked, is there any other way to implement this than through tampermonkey?
You can use a bookmarklet, which is basically just creating a bookmark with the javascript in it, and then just clicking the bookmark to run it. I just added a bookmarklet version to the end of this post.
i would also like some editor performance improvements
maybe make it so snap only renders scripts that are actually visible? i lost a lot of progress once because my project was running and I click on a sprite with many scripts and it crashed the whole editor