in src/org/jetbrains/plugins/ipnb/editor/panels/IpnbFilePanel.java [421:440]
public void saveToFile(boolean synchronize) {
mySynchronize = synchronize;
final String oldText = myDocument.getText();
final String newText = IpnbParser.newDocumentText(this);
if (newText == null) return;
if (oldText.equals(newText) && mySynchronize) {
new Alarm().addRequest(new MySynchronizeRequest(), 10, ModalityState.stateForComponent(this));
mySynchronize = false;
return;
}
try {
final ReplaceInfo replaceInfo = findFragmentToChange(oldText, newText);
if (replaceInfo.getStartOffset() != -1) {
myDocument.replaceString(replaceInfo.getStartOffset(), replaceInfo.getEndOffset(), replaceInfo.getReplacement());
}
}
catch (Exception e) {
myDocument.replaceString(0, oldText.length(), newText);
}
}