code: func (v *View) parseInput(ch rune) []cell {
  	cells := []cell{}
  
  	isEscape, err := v.ei.parseOne(ch)
  	if err != nil {
  		for _, r := range v.ei.runes() {
  			c := cell{
  				fgColor: v.FgColor,
  				bgColor: v.BgColor,
  				chr:     r,
  			}
  			cells = append(cells, c)
  		}
  		v.ei.reset()
  	} else {
  		if isEscape {
  			return nil
  		}
  		c := cell{
  			fgColor: v.ei.curFgColor,
  			bgColor: v.ei.curBgColor,
  			chr:     ch,
  		}
  		cells = append(cells, c)
  	}
  
  	return cells
  }
docs: // parseInput parses char by char the input written to the View. It returns nil
  // while processing ESC sequences. Otherwise, it returns a cell slice that
  // contains the processed data.