in hybrid/src/main/java/jetbrains/jetpad/hybrid/TokenCellTraits.java [115:151]
public void onKeyPressedLowPriority(Cell tokenCell, KeyEvent event) {
TokenOperations<?> tokenOps = tokenOperations(tokenCell);
if ((event.is(Key.DELETE) || event.is(Key.BACKSPACE)) && (Cells.isEmpty(tokenCell) || myValueToken)) {
tokenOps.deleteToken(tokenCell, 0).run();
event.consume();
return;
}
if (event.is(Key.DELETE) && Positions.isLastPosition(tokenCell) && tokenOps.canDelete(tokenCell, 1)) {
if (tokenOps.canMerge(tokenCell, 1)) {
tokenOps.mergeTokens(tokenCell, false).run();
} else {
tokenOps.deleteToken(tokenCell, 1).run();
}
event.consume();
return;
}
if (event.is(Key.BACKSPACE) && Positions.isFirstPosition(tokenCell) && tokenOps.canDelete(tokenCell, -1)) {
if (tokenOps.canMerge(tokenCell, -1)) {
tokenOps.mergeTokens(tokenCell, true).run();
} else {
tokenOps.deleteToken(tokenCell, -1).run();
}
event.consume();
return;
}
if (event.is(KeyStrokeSpecs.DELETE_CURRENT)) {
tokenOps.deleteToken(tokenCell, 0).run();
event.consume();
return;
}
super.onKeyPressed(tokenCell, event);
}