void () { if (!isBinaryWithoutDecompiler(file)) { LoadTextUtil.clearCharsetAutoDetectionReason(file); file.setBOM(null); // reset BOM in case we had one and the external change stripped it away file.setCharset(null, null, false); boolean wasWritable = document.isWritable(); document.setReadOnly(false); boolean tooLarge = FileUtilRt.isTooLarge(file.getLength()); isReloadable[0] = isReloadable(file, document, project); if (isReloadable[0]) { CharSequence reloaded = tooLarge ? LoadTextUtil.loadText(file, getPreviewCharCount(file)) : LoadTextUtil.loadText(file); ((DocumentEx)document).replaceText(reloaded, file.getModificationStamp()); setDocumentTooLarge(document, tooLarge); } document.setReadOnly(!wasWritable); } }