I think this name is confusing: `TextEditor` is a platform class. Also this is not merely a text editor, it's an editor with support for interactive compilation units. Would it make sense to call it `AbstractScalaEditor` or something like that?