/** {@inheritDoc} */
 @Override
 public LinearRange getSelection(final Document document) {
   if (region == null) {
     // keep cursor location
     return LinearRange.createWithStart(cursorOffset).andLength(0);
   } else {
     return LinearRange.createWithStart(region.getOffset()).andLength(region.getLength());
   }
 }