// remembering old end before document change because of problems
 // with fragments containing "\n"
 @Override
 public void beforeDocumentChange(DocumentEvent e) {
   if (!myTaskFile.isTrackChanges()) {
     return;
   }
   myTaskFile.setHighlightErrors(true);
   Document document = e.getDocument();
   myAnswerPlaceholders.clear();
   for (AnswerPlaceholder answerPlaceholder : myTaskFile.getAnswerPlaceholders()) {
     int twStart = answerPlaceholder.getRealStartOffset(document);
     int length =
         usePossibleAnswerLength
             ? answerPlaceholder.getPossibleAnswerLength()
             : answerPlaceholder.getLength();
     int twEnd = twStart + length;
     myAnswerPlaceholders.add(new AnswerPlaceholderWrapper(answerPlaceholder, twStart, twEnd));
   }
 }