Ideas: 1# Make every ScEd Tab a sandbox, as an option. When enabled, all user defined variables are local to that tab. On closing Tab, all variable handles kept in mem for that Tab are reset/forgotten; 2# Add error message pointers for Python Tabs. The current messages don't tell error location; 3# Some visual aids for cursor position for easier referring to the error messages;: - a status line/field that displays cursor's position numerically [row, col]; - faint vertical lines every 10/Nth characters, or even a grid; - highlight+focus the position in the script mentioned in the error message. 4# When executing selection of the script, display relative AND absolute line numbers, like Syntax error in line 3.15 (28.15); 5# Highlighting all the string occurrences in the script when Searching, total number of occurrences; 6# Two Tabs side-by-side docking; 7# Colored Tabs, cycling through some predefined color indices or explicitly selecting from a list; 8# Tab contents locking to avoid accidental execution with erasing of the script (Return key), which you sometimes can't undo. I'm not a pro, MEL beginner, however I had some experience with Python in Thonny and VSC. It happened that I had to learn MEL on the go (like using AC from BonusTools is MEL only), and in comparison to aforementioned editors, using Maya Script Editor was a hard experience - syntax, variables, limitations, errors. This might be one of causes why people in the Forum even to a simple code lines so often refer as to "rocket science". Variables: While experimenting/debuging scripts, I often noticed that defined variables are remembered globally and often caused errors, errors in the line bumbers outside my script, like in 0.24 or 65.12 in the twelve lines script. My suspicion was that it happens somewhere internally, because not everything running under the hood is suited for experiments. Yes, rebooting Maya helps, but why? Copy the script, close tab, open a new tab, paste script, no errors! Pointers: When using some longer lines, especially string composition, with escape characters, and many variables, it was so easy to miss some + or ", and the error messages were pointing to a position like 28.132, i.e. line #28, and noooooow.. please, count 132 positions to find the place of the err. When executing selection (debugging), the error message pointers are difficult to use, because those point to relative line number, not the one is displayed on a sidebar. And Python tabs are even less user-friendly, as those don't tell in which line the error was found at all, e.g. # Error: unexpected indent # tells little, if there are no indents as such yet. Tabs: I have some ten MEL and Python tabs open: some have many one-liners that I need to execute occasionally, but don't want to put on shelf as it is not visually representing its function, like connecting/setting/getting some specific attributes; some hold scripting experiments or small utilities, a Python code that I need to rewrite in MEL, some hold examples from Command Documentation. With labels MEL Python Python MEL Python MEL MEL MEL MEL MEL MEL MEL.. I sometimes it takes time to find the right tab, therefore it would be nice to make them more unique/distinguishable by coloring. Not being a pro, I suspect some of those ideas can develop a bad habits, as Tabs are hardly a place for script keeping, but so are shelves, menus and prefs, that get corrupted occasionally, and for those weekend scripters, like myself, why not if it helps? Otherwise, tell me if anything from that is already possible, and which part is impossible/dangerous, e.g. considering the existence of malicious scripts.
Show More