* Factorize common code features, commands and actions into a Language Toolkit: The idea is to have Platform UI/Text providing the definition of the very usual code-related commands, so each language could simply add handlers rather than redefining commands. That would also allow a better factorization of UI and shortcuts, and thus more consistency across plugins.
* Provide "state of art" classes for Platform adopters: Currently, many classes have a lot of I<MyFeature>Extension<N> which provide additional value which is usually considered as "state of art" in modern IDEs. It's not easy for adopters to figure out the value provided by those extensions and to think about implementing them, and even to implement them. We should consider providing some "state of art" classes that take advantage of all extensions and implements good default to minimize adoption. An important point is that we should design and document those classes as easily moveable, to easily allow us to add support for another extension without surprising users.