command_terminal icon indicating copy to clipboard operation
command_terminal copied to clipboard

AddCommand don't add autocompletion all the times

Open Wokarol opened this issue 7 years ago • 3 comments

When I'm adding command at runtime using AddCommand, autocompletion word for this command isn't always added. I don't know why.

Wokarol avatar Oct 24 '18 19:10 Wokarol

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

Wokarol avatar Oct 25 '18 17:10 Wokarol

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.

stillwwater avatar Oct 29 '18 18:10 stillwwater

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

Wokarol avatar Oct 29 '18 18:10 Wokarol