We need to be able to enable commands in the REPL like "cls". This implementation would allow one to have custom commands plugged in via MEF similar to script packs.
Suggested design:
- Commands should start with ":" in order to not conflict with the Roslyn spec.
- REPL commands are distributed via nuget
- REPL commands implement an interface IReplCommand which has an InheritedExport. The command can expose a "Command" property with the command name. Metadata is not needed.
- Commands are imported via MEF. Commands should be registered globally by dropping nuget packages in.
- ServiceRoot will contain a collection of commands
- A new ReplCommandService will handle parsing and delegating to the repl commands. It should use a command factory similar to what we use for scriptcs itself.
- Powerargs should handle arg parsing.
We need to be able to enable commands in the REPL like "cls". This implementation would allow one to have custom commands plugged in via MEF similar to script packs.
Suggested design: