static @Nullable List<? extends Segment> calcFocusZones(@Nullable PsiFile file) {
    if (file == null || !isEnabled()) {
      return null;
    }

    return CachedValuesManager.getCachedValue(file, () -> {
      FileViewProvider provider = file.getViewProvider();

      List<Segment> segments = null;
      for (FocusModeProvider p : EP_NAME.allForLanguageOrAny(provider.getBaseLanguage())) {
        segments = ContainerUtil.append(calcFocusZones(p, file), file.getTextRange());
        break;
      }
      return CachedValueProvider.Result.create(segments, file);
    });
  }
static @Nullable List<? extends Segment> calcFocusZones(@Nullable PsiFile file)