I don't think it will be a good idea to combine sessionEditor with keyDownEditor for several reasons. 
 * sessionEditor exists only if we're already in a session but keyDownEditor may or may not exist.
 * using keyDownEditor in place of sessionEditor may be misleading. We currently do not have a menu item to invoke code hints. When we have one, then we don't have a keyDownEditor when code hinting is invoked from 
the menu.
  *keyDownEditor is used to make sure that when CodeMirror has made a change due to the key pressed, we want to start inspecting the change and initiate a new session. So we have to clear keyDownEditor after we receive the change event. But we need to keep sessionEditor as long as we're in the same code hinting session.

So combining them into one is going to create more issues than the issues we're solving right now. If you already figure out a way to combine them, then please submit a new pull request, and I'll be happy to review it.