SELECT
TRIGGER
FROM
-- top level trigger select
mouse buttons and mouse movement
[
DEF,Sel,(
SELECT
ENABLE
FROM
[
CTRL] => [IfShift,
{ ~2 Coords SelSecondary ToPrimary SelPendDel ~1 },
{ ~2 Coords ToLimbo SelPendDel ~1 }];
[SHIFT] => { ~2 Coords SelSecondary ToPrimary SelNotPendDel ~1 };
ENDCASE => { ~2 Coords SelNotPendDel ~1 })]
[
DEF,ClickSel,(
SELECT
ENABLE
FROM
[SHIFT] WHILE Ctrl Up WHILE Spare3 Up => [Sel,~1,~2 ForceSelNotPendDel];
ENDCASE => [Sel,~1,~2])]
[
DEF,MouseClick,(
SELECT
TRIGGER
FROM
[Click,~1] => [ClickSel,~3,~1Mouse];
ENDCASE => [ClickSel,~2,~1Mouse])]
Red Down => [MouseClick,Red,SelChar,SelNode];
Yellow Down =>
SELECT
ENABLE
FROM
Red Up => [MouseClick,Yellow,SelWord,SelBranch];
ENDCASE;
[
DEF,Extend,(
[IfShift,[Sel,~1 SelStartExtend,BlueMouse],[Sel,~1 SelStartExtend,BlueMouse ForceSelPendDel]])]
Blue Down =>
SELECT
ENABLE
FROM
[BothUp,Red,Yellow] =>
SELECT
TRIGGER
FROM
[Click,Blue] =>
SELECT
TRIGGER
FROM
[Click,Blue] => [Extend,SelExpand];
ENDCASE => [Extend,SelReduce];
ENDCASE => [Extend];
ENDCASE;
Mouse =>
SELECT
ENABLE
FROM
Red Down => [Sel,SelUpdate];
Yellow Down => [Sel,SelUpdate];
Blue Down => { Coords SelExtend };
ENDCASE;
[
DEF,ButtonUp,(
SELECT
ENABLE
FROM
[FourUp,LeftShift,RightShift,Ctrl,Spare3]
WHILE [BothUp,~1,~2] =>
SELECT
ENABLE
FROM
ESC Down => Repeat;
ENDCASE => DoEdit;
ENDCASE)]
Red Up =>
SELECT
ENABLE
FROM
Blue Down => [Extend,ForceSelPendDel];
ENDCASE => [ButtonUp,Blue,Yellow];
Yellow Up =>
SELECT
ENABLE
FROM
Blue Down WHILE Red Up => [Extend,ForceSelPendDel];
ENDCASE => [ButtonUp,Red,Blue];
Blue Up => [ButtonUp,Red,Yellow];
Shift key Commands
LeftShift Up [WhileSixUp,Red,Yellow,Blue,Ctrl,Spare3,RightShift] => DoEdit;
RightShift Up [WhileSixUp,Red,Yellow,Blue,Ctrl,Spare3,LeftShift] => DoEdit;
Ctrl Up [WhileSixUp,LeftShift,Red,Yellow,Blue,Spare3,RightShift] => DoEdit;
Spare3 Up [WhileSixUp,LeftShift,Red,Yellow,Blue,Ctrl,RightShift] => DoEdit;
Function key Commands
BS Down => [IfCtrl,
[IfShift,{ 1 DeleteNextWord },{ 1 BackWord }],
[IfShift,{ 1 DeleteNextChar },{ 1 BackSpace }]];
Spare2 Down => [IfCtrl,
[IfShift,{ IntermediateUser CtrlPrevPlaceholder },{ IntermediateUser CtrlNextPlaceholder }],
[IfShift,{ IntermediateUser PreviousPlaceholder },{ IntermediateUser NextPlaceholder }]];
ESC Down WHILE Ctrl Up WHILE Spare3 Up => [IfShift,Undo,Repeat];
LF Down => [IfCtrl,
{ IntermediateUser AnonymousLoadImpl },
{ IntermediateUser AnonymousLoad }];
DEL Down =>
SELECT
ENABLE
FROM
[SHIFT] => EditAbort;
[CTRL] => EditAbort;
Red Down => EditAbort;
Yellow Down => EditAbort;
Blue Down => EditAbort;
ENDCASE => Delete;
Space Down
WHILE
BW Down =>
SELECT
TRIGGER
FROM
[Click,Space] => ClearCaretLooks;
ENDCASE => ClearLooks;
Number Commands
[
DEF,Num,(~1 Down =>
SELECT
ENABLE
FROM
~3
[CTRL] => { IntermediateUser Command~2 };
ENDCASE)]
[Num,Zero,0, [SHIFT] WHILE [CTRL] => { IntermediateUser SelectMatchingParens };];
[Num,One,1, [SHIFT] WHILE [CTRL] => { AdvancedUser ReadProfile };];
[Num,Two,2];
[Num,Three,3];
[Num,Four,4];
[Num,Five,5];
[Num,Six,6];
[Num,Seven,7];
[Num,Eight,8];
[Num,Nine,9, [SHIFT] WHILE [CTRL] => { IntermediateUser ParenBrackets };];
Punctuation Commands
Return Down =>
SELECT
ENABLE
FROM
[SHIFT] => Char;
ENDCASE => [IfCtrl,{ AdvancedUser Break }, InsertLineBreak];
Arrow Down
WHILE [
CTRL] =>
[IfShift,{ AdvancedUser GetType }, {AdvancedUser SetType }];
BackSlash Down
WHILE [
CTRL] =>
[IfShift,{ AdvancedUser SetNotComment },{ AdvancedUser SetComment }];
Dash Down WHILE [CTRL] => { IntermediateUser DashBrackets };
Comma Down
WHILE [
SHIFT]
WHILE [
CTRL] =>
{ IntermediateUser AngleBrackets };
Period Down
WHILE [
SHIFT]
WHILE [
CTRL] =>
{ IntermediateUser SelectMatchingAngleBrackets };
Quote Down
WHILE [
CTRL] =>
[IfShift,{ IntermediateUser DoubleQuoteBrackets },{ IntermediateUser SingleQuoteBrackets }];
LeftBracket Down
WHILE [
CTRL] =>
[IfShift,{ IntermediateUser CurlyBrackets },{ IntermediateUser SquareBrackets }];
RightBracket Down
WHILE [
CTRL] =>
[IfShift,{ IntermediateUser SelectMatchingCurlyBrackets },
{ IntermediateUser SelectMatchingSquareBrackets }];
Letter Commands
[
DEF,Letter,(
~1 Down =>
SELECT
ENABLE
FROM
BW Down =>
SELECT
TRIGGER
FROM
[Click,~1] => [IfShift,{ ~2 RemoveCaretLook },{ ~2 ApplyCaretLook }];
ENDCASE => [IfShift,{ ~2 RemoveLook },{ ~2 ApplyLook }];
~3
ENDCASE)]
[Letter,
A,0,
[CTRL] => [IfShift,{ IntermediateUser 1 DeleteNextChar },{ 1 BackSpace }]];
[Letter,
B,1,
[CTRL] => { IntermediateUser PlaceholderBrackets }];
[Letter,
C,2,
[
CTRL] =>
SELECT
TRIGGER
FROM
[Click,C] => [IfShift,{ IntermediateUser InitialCaps },{ IntermediateUser FirstCap }];
ENDCASE => [IfShift,{ IntermediateUser AllCaps },{ IntermediateUser AllLower }]];
[Letter,
D,3,
[CTRL] => { IntermediateUser Everything }];
[Letter,
E,4,
[CTRL] => { IntermediateUser ExpandAbbrev }];
[Letter,
F,5,
[CTRL] => { AdvancedUser ToPrimary SelSecondary SelNotPendDel EditType }];
[Letter,G,6];
[Letter,
H,7,
[CTRL] => [IfShift,{ IntermediateUser 1 DeleteNextChar },{ 1 BackSpace }]];
[Letter,
I,8,
[CTRL] => [IfShift,{ AdvancedUser Break UnNest },{ AdvancedUser Break Nest }]];
[Letter,
J,9,
[CTRL] => { AdvancedUser Join }];
[Letter,
K,10,
[
CTRL] => [IfShift,{ IntermediateUser UnMakeControlCharacter },
{ IntermediateUser MakeControlCharacter }]];
[Letter,L,11];
[Letter,
M,12,
[CTRL] => { IntermediateUser SetMesaLooks }];
[Letter,
N,13,
[CTRL] => [IfShift,{ AdvancedUser UnNest },{ AdvancedUser Nest }]];
[Letter,
O,14,
[
CTRL] => [IfShift,{ IntermediateUser UnMakeOctalCharacter },
{ IntermediateUser MakeOctalCharacter }]];
[Letter,
P,15,
[CTRL] => { IntermediateUser Paste }];
[Letter,
Q,16,
[CTRL] => { IntermediateUser ToPrimary SelSecondary SelNotPendDel EditLooks }];
[Letter,R,17];
[Letter,
S,18,
-- copy primary
[CTRL] => { IntermediateUser MakeNotPendingDelete ToSecondary SelSecondary SelNotPendDel }];
[Letter,
T,19,
[CTRL] => { IntermediateUser Time }];
[Letter,U,20];
[Letter,
V,21,
[CTRL] => { IntermediateUser GrowSelectionToBlanks }];
[Letter,
W,22,
[CTRL] => [IfShift,{ IntermediateUser 1 DeleteNextWord },{ 1 BackWord }]];
[Letter,
X,23,
-- transpose
[CTRL] => { IntermediateUser ToBoth SelSecondary SelNotPendDel }];
[Letter,Y,24];
[Letter,
Z,25,
-- move primary
[CTRL] => { IntermediateUser MakePendingDelete ToSecondary SelSecondary SelNotPendDel }];