Fancy "TextEdit" thing: create new C++ module like TextEdit, or use GDScript with existing nodes?
I want to make something similar to the TextEdit node, but allowing for the following options:
1) text effects: allow for "glowing" text (like on an old-school console)
2) drag and drop of words in a sentence: e.g. original sentence is "cat kissed dog", user pulls "dog" over to where cat is sitting, and then cat automagically animates itself over to where dog is, so that new sentence is now "dog kissed cat"
3) novel representation of "text": just making up an example here, but maybe I design things so that after a sentence like "cat kissed dog" is typed, it is is transformed into a tree like:
kissed / \ / \ cat dog
3) user types in a "keyword", denoted by a special character at the start (e.g. a forward slash is the special character, so the keywords would be
\cat), and the keywords are checked to see if they are "known", if they are known, special things might happen (e.g.
\dog might be replaced by a sprite of a dog
4) custom syntax highlighting? e.g.
cat kissed dog is displayed so that "kissed" is bold, and "cat" and "dog" are both pink
5) custom autocompletion? e.g. user starts typing "do", and an autocompletion bar shows "dog, dolphin, doughnut"
6) tightly controlled editing: by this I mean that I don't want the user to be able to "free type" wherever they want like in a normal multi-line text document, but instead I want to be able to control WHERE what they type shows up. For example:
User first types:
cat kissed dog
User hits enter, and cat kissed dog is auto-indented, and a "THEN" is automatically added to the next line:
cat kissed dog THEN <new cursor position>
I am fairly new to Godot (I have completed the tutorials though), and I am having trouble how to organize nodes/scenes in order to achieve the type of things I mention above. Could you help me "imagine"/plan?