We know that there is an efficient way to delete all output from the EvaluationNotebook[]:
FrontEndTokenExecute["DeleteGeneratedCells"] How is it possible to do the same for pre-existing output only under the EvaluationCell[] in the situation when CellAutoOverwrite -> False and GeneratedCell -> False is set for all output by default:
SetOptions[EvaluationNotebook[], StyleDefinitions -> Notebook[{Cell[StyleData[StyleDefinitions -> "Default.nb"]], Cell[StyleData[All], CellAutoOverwrite -> False, GeneratedCell -> False]}]] Specifically, I would like to do this from CellProlog by setting something like
SetOptions[EvaluationNotebook[], CellProlog :> FrontEndTokenExecute["DeleteGeneratedCells"]] but it should delete only output associated with EvaluationCell[], as it happens with the default settings. What can I use instead of FrontEndTokenExecute["DeleteGeneratedCells"] for this purpose?
I have tried temporarily reverting to the default stylesheet, then evoking PrintTemporary[] (what should cause auto-deletion of pre-existing output). But from CellProlog it doesn't work unfortunately:
SetOptions[EvaluationNotebook[], CellProlog :> ( SetOptions[EvaluationNotebook[], StyleDefinitions -> "Default.nb"]; PrintTemporary[]; SetOptions[EvaluationNotebook[], StyleDefinitions -> Notebook[{Cell[StyleData[StyleDefinitions -> "Default.nb"]], Cell[StyleData[All], GeneratedCell -> False, CellAutoOverwrite -> False]}]])]
{CellProlog :> FrontEndExecute[ FrontEndToken[EvaluationNotebook[], "SelectNextLine"]]; If[Experimental`CellStyleNames[NotebookSelection[]] == "Output", CurrentValue[NotebookSelection[], CellAutoOverwrite] = True]; CellEpilog :> SelectionMove[EvaluationNotebook[], After, Cell]}? $\endgroup$Experimental`CellStyleNames: I was able to develop something what can be thought as a start - see my answer. $\endgroup$