Как переопределить FrontEndEventActions? - PullRequest
5 голосов
/ 15 апреля 2011

Добрый день,

Этот вопрос возникает из вопроса о прерывании оценки полной последовательности входных данных .

Я думаю, что возможно достичь желаемогоповедение путем переопределения FrontEndEventActions для двух событий: "EvaluateCells" (или нажатия Shift + Enter ) и нажатия Alt + . ,Это должно быть что-то вроде:

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

или

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

Где AbortAllNextInputs и Last$PreRead определены следующим образом:

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@#]
    ] &

Но я могуне получается FrontEndEventActions работать.Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 15 апреля 2011

Я считаю, что вам нужно изменить KeyEventTranslations.tr, как указано здесь и здесь .

...