code: function Editor(el, model) {
    EditorInterface.call(this);
    this.el_ = el;
  
    _.assign(this.el_.style, constants.editorStyle, {
      padding: '0',
      overflowY: 'hidden'
    });
  
    this.ta_ = document.createElement('textarea');
    _.assign(this.ta_.style, constants.baseStyle, {
      display: 'block',
      margin: '0',
      border: '0',
      padding: constants.editorStyle.padding,
      width: '100%',
      height: '100%',
      font: constants.editorStyle.font,
      lineHeight: '1.2',
      outline: 'none',
      resize: 'none'
    });
    this.el_.appendChild(this.ta_);
  
    // Register input handlers. Use 'input' event to catch text mutations, and
    // various other events to catch selection mutations.
    this.ta_.addEventListener('input', this.handleInput_.bind(this));
  
    var handler = this.updateSelection_.bind(this);
    this.ta_.addEventListener('input', handler);
    this.ta_.addEventListener('keydown', handler);
    this.ta_.addEventListener('mousedown', handler);
    this.ta_.addEventListener('mousemove', handler);
    this.ta_.addEventListener('select', handler);
    window.addEventListener('blur', this.blur.bind(this));
  
    this.reset(model);
  }
docs: ////////////////////////////////////////////////////////////////////////////// Editor