private void propertyChanged(@NotNull VFilePropertyChangeEvent event) {
    if (VirtualFile.PROP_WRITABLE.equals(event.getPropertyName())) {
      VirtualFile file = event.getFile();
      Document document = getCachedDocument(file);
      if (document != null) {
        ApplicationManager.getApplication().runWriteAction((ExternalChangeAction)() -> document.setReadOnly(!file.isWritable()));
      }
    }
    else if (VirtualFile.PROP_NAME.equals(event.getPropertyName())) {
      VirtualFile file = event.getFile();
      Document document = getCachedDocument(file);
      if (document == null) {
        return;
      }
      if (isBinaryWithoutDecompiler(file)) {
        // a file is linked to a document - chances are it is an "unknown text file" now
        unbindFileFromDocument(file, document);
        // to avoid weird inconsistencies when file opened in an editor tab got renamed to unknown extension and then typed into
        closeAllEditorsFor(file);
        myMultiCaster.afterDocumentUnbound(file, document);
      }
      else if (FileContentUtilCore.FORCE_RELOAD_REQUESTOR.equals(event.getRequestor()) && isBinaryWithDecompiler(file)) {
        reloadFromDisk(document);
      }
    }
  }
private void propertyChanged(@NotNull VFilePropertyChangeEvent event)