Unlike a TextEditor, in which the user navigates and edits in terms of plain text, a LanguageAwareEditor performs navigation and editing in terms of the programming language being edited. This includes both ReFactoring and transformations that change, rather than preserve, behaviour.
Example editing actions: