static @Nullable ConfigValue readPropertyWithAlternativeResolver(@NotNull ConfigKey key,
                                                                   @NotNull Project project,
                                                                   @NotNull VirtualFile directory) {
    VirtualFile configVirtualFile = directory.findFileByRelativePath(LOMBOK_CONFIG_FILE_NAME);
    if (configVirtualFile == null) {
      return null;
    }
    Document document = FileDocumentManager.getInstance().getDocument(configVirtualFile);
    if (document == null) {
      return null;
    }
    PsiFile psiFile = PsiDocumentManager.getInstance(project).getPsiFile(document);
    if (psiFile == null) {
      return null;
    }
    Map<ConfigKey, ConfigValue> values = CachedValuesManager.getCachedValue(psiFile, () -> {
      Map<ConfigKey, ConfigValue> result = createConfigMapResult(psiFile);
      //CONFIG_CHANGE_TRACKER is not really accurate, but it is already used for this purpose
      return CachedValueProvider.Result.create(result, LombokConfigChangeListener.CONFIG_CHANGE_TRACKER);
    });
    return values.get(key);
  }
static @Nullable ConfigValue readPropertyWithAlternativeResolver(@NotNull ConfigKey key,
                                                                   @NotNull Project project,
                                                                   @NotNull VirtualFile directory)