My point is just when the editor changes my codes without my consent, no matter what content is or even if it's coded wrongly. Maybe CMT could act like VSCode, showing an autocompletion list or warning the user when it wants to replace all instances of a certain command with another better option.
If you edit your file in CMT "Text" tab editor it will never change anything in your code, let alone without your consent. Because it's basically a code editor.
If you edit an animation in CMT "Animation" tab editor, you basically consent that the animation editor will reformat the lines/commands that it processes (mainly attack and bbox) to the format that it uses (according to the options you selected) and not the format that you used as input. It's wrong to think of CMT animation editor as a code editor, it's better to think of it as a sort of live translator that keep in sync a text model and a GUI model. And for this to work it's impossible to keep idiosyncrasies of text input, it must work on some kind of universal language (that both models understand). The idiosyncrasies of the text input are processed once, and then the animation editor no longer work on the original text, it works on a model of the data encoded in the text (same as the engine reads models files).
So as far as the animation editor is concerned, it never replaces anything. It just output a data model as text.
The only rules of the animation editor are :
- not lose data in regard to OpenBOR engine
- make the animation readable by OpenBOR engine
And honestly, there is already a lot of code in animation editor to preserve user input, which is probably why you guys are under the assumption that it's merely a code/text editor. It's really not, it's just an illusion.
I don't think there is any existing visual data editor (in any domain) that let you modify/generate raw content (for example in xml or html format) while keeping your own rules about how raw content is to be written. The main point of a visual data editor is to give it control to generate/modify raw content.