void (@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); } } }