public static @NotNull Map<IdIndexEntry, Integer> getIdIndexData(@NotNull FileContent content) {
    Map<IdIndexEntry, Integer> idIndexData = content.getUserData(ID_INDEX_DATA_KEY);
    if (idIndexData != null) {
      content.putUserData(ID_INDEX_DATA_KEY, null);
      return idIndexData;
    }

    IdDataConsumer consumer = new IdDataConsumer();
    CharSequence text = content.getContentAsText();
    IdTableBuilding.scanWords(new IdTableBuilding.ScanWordProcessor() {
      @Override
      public void run(final CharSequence chars11, char @Nullable [] charsArray, final int start, final int end) {
        if (charsArray != null) {
          consumer.addOccurrence(charsArray, start, end, UsageSearchContext.IN_PLAIN_TEXT);
        }
        else {
          consumer.addOccurrence(chars11, start, end, UsageSearchContext.IN_PLAIN_TEXT);
        }
      }
    }, text, 0, text.length());

    Map<IdIndexEntry, Integer> result = consumer.getResult();

    if (TodoIndexers.needsTodoIndex(content) &&
        IdIndex.isIndexable(PlainTextFileType.INSTANCE)) {
      content.putUserData(ID_INDEX_DATA_KEY, result);
    }

    return result;
  }
public static @NotNull Map<IdIndexEntry, Integer> getIdIndexData(@NotNull FileContent content)