Open Wokarol opened 6 years ago
I've done some testing and looks like AddCommand automatically adds word for autocompletion in editor, but doesn't do this on standalone build. So code that I have to do for it to works looks like that:
Terminal.Shell.AddCommand(
commandName
.Replace("{name}", name)
.Replace("{parent_name}", (transform.parent != null) ? transform.parent.name : name),
Execute, 0, 0, help);
#if !UNITY_EDITOR
Terminal.Autocomplete.Register(
commandName
.Replace("{name}", name)
.Replace("{parent_name}", (transform.parent != null) ? transform.parent.name : name)
);
#endif
Could this be related to script execution order? All registered commands get added to autocomplete during the Start
procedure in Terminal.cs
.
Edit: I'll try to find a workaround for this, maybe a refresh_autocomplete
command to add any commands that were left out. Or perhaps having the interpreter raise an event whenever a new command is added, allowing the autocomplete to use the events to add commands as soon as they registered.
I've done some testing. I'm using persistent scene in my project and looks like loading scene with Terminal as second one screws few things up. I've exposed some things and created this script: https://pastebin.com/8MQ7rR8i
When I'm adding command at runtime using AddCommand, autocompletion word for this command isn't always added. I don't know why.