Onscreen IDE & dynamic instant update [_v0.5.4_]

UPDATE :
[X] completion codes list text : the last update is bad, I don’t know what I was thinking. All text items were strongly flattened at generation time, which took longer generation time (1+ second, previously only 0.15 sec).
To improve that, I managed to flatten them upon their 1st appearance in the scrolled window. This way, the rest of them (invisible ones) will be flattened (if not already has 1 child) as you scroll.
Result : you can get the codes list generated ASAP (it’s back to 0.1+ sec), lightweight for rendering, and the flattening time isn’t noticable.
[X] I used that trick too for the script text as well. It’s great to cut down the loading time, e.g. IDE.py (4460+ lines, 166 KB) is cut from 50 secs down to 10 secs. At last, it can keep me from falling asleep during loading time. :laughing:
[X] update/restart : added events hook release for objects which use PauseResume extension, and all objects except the IDE and everything under /direct
[X] update/restart : the preserved cameras now only the default ones
[X] update/restart : now the main module is always re-imported, so you can do anything outside World class and it will be updated. Done by unloading it from sys.modules to force import.
[X] improved unindent, now supports fine tune (1 space) unindent
[X] indentation is EVERYTHING : added alignment helper line to easily see to which notch you’re currently aligned. If the notch is offscreen, a viewport will be created to let you see that distant spot, so you don’t have to do some weird scroll just to see it. How many IDEs out there implement this ?