selectWordAtCurrentPosition() {
    if(this.state.lines.length === 0
      || lineContainingChar(this.state.lines, this.state.position, true).line.isEof()) {
      this._setPosition(this.state.position)
      this._modifySelection(EOF, true)
    } else {
      let word = this._wordRelativeTo(this.state.position)
      this._setPosition(word.start)
      this._modifySelection(word.end, false)
    }
    this.setActiveAttributes()
  }
Word selection follows Google Docs and Microsoft Word 2010 behavior of:
- selecting the word that was clicked, and one or more spaces following it
- if clicking at the end of a line with a soft return, the first word on the next line is selected
- if clicking at the end of a line with a hard return, the hard return is selected (shown as a "space")
- if clicking at the end of the last (empty) line, a (non-existent) hard return at EOF is selected (shown as
  a "space")