EmacsKeys is based on eventFilters installed on a QTextEdit or a QPlainTextEdit. It basically catches all keystrokes and modifies some internal state that make the resulting text in the editor look like it was using vim.
There are only a few files in here:
- emacskeysplugin.{h,cpp} - interaction with the rest of Creator
- emacskeysactions.{h,cpp} - settings
- emacskeyshandler.{h,cpp} - the "real" event
There are some more hints for developers in emacskeyshandler.cpp