Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to redefine FrontEndEventActions?

Good day,

This question comes from the question on aborting evaluation of the full sequence of inputs.

I think it is probably possible to achieve the desired behavior by redefining FrontEndEventActions for two events: "EvaluateCells" (or pressing Shift+Enter) and for pressing Alt+.. It should be something like:

SetOptions[$FrontEndSession, 
 FrontEndEventActions -> {"EvaluateCells" :> Last$PreRead, 
   {{"Alt", "."} :> AbortAllNextInputs}}]

or

SetOptions[$FrontEndSession, 
 FrontEndEventActions -> {{{"ShiftKey", "ReturnKeyDown"} :> Last$PreRead}
   {{"Alt", "."} :> AbortAllNextInputs}}]

Where AbortAllNextInputs and Last$PreRead are defined as follows:

AbortAllNextInputs := AbortProtect[
   $new$PreRead = True;
   last$PreRead = ToString[Definition[$PreRead], InputForm];
   ClearAll[$PreRead];
   $PreRead := # &] /; ! TrueQ[$new$PreRead]
Last$PreRead :=
 $PreRead := AbortProtect[
    $new$PreRead = False;
    ClearAll[$PreRead];
    If[last$PreRead === "Null", #, 
     ToExpression[last$PreRead]; $PreRead@#]
    ] &

But I can not get FrontEndEventActions working. Can anyone help me?

like image 598
Alexey Popkov Avatar asked Nov 15 '22 00:11

Alexey Popkov


1 Answers

I believe you need to modify KeyEventTranslations.tr as referenced here and here.

like image 180
Mr.Wizard Avatar answered Dec 05 '22 05:12

Mr.Wizard