TextEditorModule copied from branch 'to-be-splitted'