/*********************************************************************** Borland internal editor key bindings. This file contains a KEYMAPR script which defines the default key bindings for the Borland C++ IDE. A complete description of the KEYMAPR language and compiler may be found in on-line help. ****************************************************************/ Script CUA; /******* Compatibility Macros ********/ MACRO DeleteLine IF NOT InqCursorPastEOF THEN BEGIN UndoGroupWithDelete; IF InqEmptyLine THEN LiteralChar('x'); ENDIF; RightOfLine; IF NOT InqCursorAtEOL THEN CursorRightSkipWhite ENDIF; CursorCharRight; SetTempEndPos; CursorCharLeft; LeftOfLine; SetTempPos; DeleteTempBlock; FixScreenPos; END ENDIF; END; MACRO DeleteWord UndoGroupWithDelete; IF InqCursorPastEOL THEN BEGIN LiteralChar('x'); CursorCharLeft; SetTempPos; CursorCharRight; CursorCharRight; CursorRightSkipWhite; SetTempEndPos; END ELSE BEGIN IF InqCursorInTabSpace THEN BEGIN LiteralChar('x'); CursorCharLeft; END ENDIF; SetTempPos; CursorRightSkipWord; CursorRightSkipWhite; SetTempEndPos; IF NOT InqValidTempBlock THEN BEGIN CursorCharRight; CursorRightSkipWhite; SetTempEndPos; END ENDIF END ENDIF; DeleteTempBlock; END; MACRO DeleteToEOL IF NOT InqCursorPastEOF THEN BEGIN UndoGroupWithDelete; SetTempPos; RightOfLine; SetTempEndPos; DeleteTempBlock; FixScreenPos; END ENDIF; END; MACRO RightOfWord CursorRightSkipWord; CursorRightSkipNonWord; FixScreenPos; END; MACRO WordLeft CursorLeftSkipNonWord; CursorLeftSkipWordStream; FixScreenPos; END; MACRO WordRight CursorRightSkipWordStream; CursorRightSkipNonWord; FixScreenPos; END; /* macro definitions for anything which isn't a primitive */ MACRO MacScrollUp ScrollScreenUp;FixCursorPos; END; MACRO MacScrollDown ScrollScreenDown;FixCursorPos; END; MACRO MacPageUp SetPrevPos;FixScreenPos;PageScreenUp;FixCursorPos; END; MACRO MacPageDown SetPrevPos;FixScreenPos;PageScreenDown;FixCursorPos; END; MACRO MacWordLeft SetPrevPos;WordLeft; END; MACRO MacWordRight SetPrevPos;WordRight; END; MACRO MacDeleteLine DeleteLine;LeftOfLine;FixScreenPos; END; MACRO MacLeftOfLine SetPrevPos;LeftOfLine;FixScreenPos; END; MACRO MacRightOfLine SetPrevPos;RightOfLine;FixScreenPos; END; MACRO MacTopOfScreen SetPrevPos;TopOfScreen; END; MACRO MacBottomOfScreen SetPrevPos;BottomOfScreen; END; MACRO MacHomeCursor SetPrevPos;HomeCursor;CenterFixScreenPos END; MACRO MacEndCursor SetPrevPos;EndCursor;CenterFixScreenPos END; MACRO MacOpenLine SetPrevPos;RightOfLine;LiteralChar(10); END; MACRO MacInsertStar LiteralChar('*'); END; MACRO MacInsertMinus LiteralChar('-'); END; MACRO MacInsertPlus LiteralChar('+'); END; MACRO MacMarkCursorSwitchedRight IF NOT InqCursorPastEOF THEN BEGIN ExtendBlockBeg;CursorSwitchedRight;ExtendBlockEnd;HighlightBlock; END ENDIF END; MACRO MacMarkCursorSwitchedLeft ExtendBlockBeg;CursorSwitchedLeft;ExtendBlockEnd;HighlightBlock; END; MACRO MacMarkCursorUp ExtendBlockBeg;CursorUp;ExtendBlockEnd;HighlightBlock; END; MACRO MacMarkCursorDown IF NOT InqCursorPastEOF THEN BEGIN ExtendBlockBeg;CursorDown;ExtendBlockEnd;HighlightBlock; END ENDIF END; MACRO MacMarkPageUp ExtendBlockBeg;PageScreenUp;FixCursorPos;ExtendBlockEnd;HighlightBlock; END; MACRO MacMarkPageDown IF NOT InqCursorPastEOF THEN BEGIN ExtendBlockBeg;PageScreenDown;FixCursorPos;ExtendBlockEnd;HighlightBlock; END ENDIF END; MACRO MacMarkWordLeft ExtendBlockBeg;WordLeft;ExtendBlockEnd;HighlightBlock; END; MACRO MacMarkWordRight IF NOT InqCursorPastEOF THEN BEGIN ExtendBlockBeg;WordRight;ExtendBlockEnd;HighlightBlock; END ENDIF END; MACRO MacMarkLeftOfLine IF NOT InqCursorPastEOF THEN BEGIN ExtendBlockBeg;LeftOfLine;ExtendBlockEnd;HighlightBlock;FixScreenPos; END ENDIF END; MACRO MacMarkRightOfLine IF NOT InqCursorPastEOF THEN BEGIN ExtendBlockBeg;RightOfLine;ExtendBlockEnd;HighlightBlock;FixScreenPos; END ENDIF END; MACRO MacMarkTopOfScreen ExtendBlockBeg;TopOfScreen;ExtendBlockEnd;HighlightBlock; END; MACRO MacMarkBottomOfScreen IF NOT InqCursorPastEOF THEN BEGIN ExtendBlockBeg;BottomOfScreen;ExtendBlockEnd;HighlightBlock; END ENDIF END; MACRO MacMarkHomeCursor ExtendBlockBeg;HomeCursor;ExtendBlockEnd;HighlightBlock; END; MACRO MacMarkEndCursor ExtendBlockBeg;EndCursor;ExtendBlockEnd;HighlightBlock; END; MACRO MacSetBlockBeg HideBlock;SetBlockBeg;HighlightBlock; END; MACRO MacSetBlockEnd HideBlock;SetBlockEnd;HighlightBlock; END; MACRO MacMarkLine IF NOT InqCursorPastEOF THEN BEGIN SetNonInclusiveBlock;HideBlock;SetTempPos;RightOfLine; CursorCharRight;SetBlockEnd; CursorCharLeft;LeftOfLine;SetBlockBeg; HighlightBlock;MoveToTempPos;FixScreenPos; END ENDIF END; MACRO MacMarkWord IF NOT InqCursorPastEOF THEN BEGIN SetNonInclusiveBlock;SetTempPos;HideBlock;CursorRight; CursorLeftSkipNonWord;CursorLeftSkipWordStream; CursorRightSkipWord; SetBlockEnd; CursorLeftSkipNonWord;CursorLeftSkipWordStream; SetBlockBeg;MoveToBlockEnd;HighlightBlock; FixScreenPos; END ENDIF END; MACRO MacMoveToBlockBeg SetPrevPos;MoveToBlockBeg;CenterFixScreenPos; END; MACRO MacMoveToBlockEnd SetPrevPos;MoveToBlockEnd;CenterFixScreenPos; END; MACRO MacMoveToPrevPos SwapPrevPos;CenterFixScreenPos; END; MACRO MacCopyBlock IF InqValidBlock THEN BEGIN CopyBlock;HighlightBlock;MoveToBlockBeg;CenterFixScreenPos; END ENDIF END; MACRO MacMoveBlock IF InqValidBlock THEN BEGIN MoveBlock;HighlightBlock;MoveToBlockBeg;CenterFixScreenPos; END ENDIF END; MACRO MacDeleteBlock IF InqValidBlock THEN BEGIN DeleteBlock;CenterFixScreenPos;HideBlock; END ENDIF END; MACRO MacBreakLine LiteralChar(10);CursorCharLeft; END; MACRO MacGoto0 SetPrevPos;MoveToMark(0); CenterFixScreenPos; END; MACRO MacGoto1 SetPrevPos;MoveToMark(1); CenterFixScreenPos; END; MACRO MacGoto2 SetPrevPos;MoveToMark(2); CenterFixScreenPos; END; MACRO MacGoto3 SetPrevPos;MoveToMark(3); CenterFixScreenPos; END; MACRO MacGoto4 SetPrevPos;MoveToMark(4); CenterFixScreenPos; END; MACRO MacGoto5 SetPrevPos;MoveToMark(5); CenterFixScreenPos; END; MACRO MacGoto6 SetPrevPos;MoveToMark(6); CenterFixScreenPos; END; MACRO MacGoto7 SetPrevPos;MoveToMark(7); CenterFixScreenPos; END; MACRO MacGoto8 SetPrevPos;MoveToMark(8); CenterFixScreenPos; END; MACRO MacGoto9 SetPrevPos;MoveToMark(9); CenterFixScreenPos; END; MACRO MacMatchPairForward SetPrevPos;MatchPairForward; END; MACRO MacMatchPairBackward SetPrevPos;MatchPairBackward; END; MACRO MacGetFindString SetPrevPos;GetFindString; END; MACRO MacRepeatSearch SetPrevPos;RepeatSearch; END; MACRO MacReplace SetPrevPos;Replace; END; MACRO MacLowerCaseWord IF NOT InqCursorPastEOF THEN BEGIN UndoGroupWithNone; MacMarkWord;LowerCaseBlock;HideBlock;MoveToTempPos; END ENDIF END; MACRO MacUpperCaseWord IF NOT InqCursorPastEOF THEN BEGIN UndoGroupWithNone; MacMarkWord;UpperCaseBlock;HideBlock;MoveToTempPos; END ENDIF END; MACRO MacBackWord IF NOT InqCursorPastEOF THEN BEGIN UndoGroupWithDelete; SetTempEndPos; CursorLeftSkipNonWord; CursorLeftSkipWord; SetTempPos; DeleteTempBlock; FixScreenPos; END ENDIF END; MACRO MacUndo Undo; CenterFixScreenPos; END; MACRO MacRedo Redo; CenterFixScreenPos; END; MACRO MacISearch SetNonInclusiveBlock;HideBlock;IncrementalSearch; END; MACRO MacToggleCase UndoGroupWithNone; IF InqValidBlock THEN IF InqCursorInBlock THEN ToggleCase; ELSE BEGIN /* preserve original block marks and cursor */ SetPrevPos; MoveToBlockBeg; SetTempPos; MoveToBlockEnd; SetTempEndPos; /* do case toggle */ SetNonInclusiveBlock; MoveToPrevPos; SetBlockBeg; CursorCharRight; SetBlockEnd; ToggleCase; /* restore original block marks and cursor */ MoveToTempPos; SetBlockBeg; MoveToTempEnd; SetBlockEnd; MoveToPrevPos; END ENDIF ELSE BEGIN SetNonInclusiveBlock; SetBlockBeg; CursorCharRight; SetBlockEnd; HighlightBlock; ToggleCase; HideBlock; END ENDIF; END; MACRO MacDeleteToEOL IF NOT InqCursorPastEOL THEN DeleteToEOL; ENDIF; END; MACRO MacBackspaceDelete IF InqCursorPastEOF THEN IF InqCursorAtBOL THEN BEGIN CursorUp; IF NOT InqCursorPastEOF THEN RightOfLine; ENDIF END ELSE CursorLeft; ENDIF ELSE BackspaceDelete ENDIF; END; /**** key bindings ******/ KEYBOARD System F1 : Help; : Help F4 : RunToHere; : RunToHere F5 : ToggleBreakpoint; : ToggleBreakpoint F7 : Trace; : Trace F8 : Step; : Step F9 : MakeProject; : MakeProject shift-F4: WindowTileHorz; : WindowTileHorz shift-F5: WindowCascade; : WindowCascade alt-F5 : InspectAtCursor; : InspectAtCursor alt-F7 : PrevError; : PrevError alt-F8 : NextError; : NextError alt-F9 : CompileFile; : CompileFile alt-F10: LocalMenu; ctrl-F2 : TerminateProgram; : TerminateProgram ctrl-F3 : ViewCallStack; ctrl-F5 : AddWatch; : AddWatch ctrl-F7 : Modify; : Modify ctrl-F9 : RunProgram; : RunProgram ctrl-shift-R : RecordKeyMacro; ctrl-shift-P : PlaybackKeyMacro; ctrl-K+^D : Menu; ctrl-K+^S : SaveFile; : SaveFile /* ---- Pane mgmt keys ------------------ */ ctrl-O+^E : MoveToPane(0); ctrl-O+^X : MoveToPane(1); ctrl-O+^S : MoveToPane(2); ctrl-O+^D : MoveToPane(3); ctrl-O+DnAr : CreatePane(0); ctrl-O+UpAr : CreatePane(1); ctrl-O+LfAr : CreatePane(3); ctrl-O+RgAr : CreatePane(2); ctrl-O+ctrl-DnAr : CreatePane(0); ctrl-O+ctrl-UpAr : CreatePane(1); ctrl-O+ctrl-LfAr : CreatePane(3); ctrl-O+ctrl-RgAr : CreatePane(2); ctrl-shift-O+^E : MovePaneEdge(0); ctrl-shift-O+^X : MovePaneEdge(1); ctrl-shift-O+^S : MovePaneEdge(2); ctrl-shift-O+^D : MovePaneEdge(3); ctrl-shift-O+UpAr : DeletePane(0); ctrl-shift-O+DnAr : DeletePane(1); ctrl-shift-O+LfAr : DeletePane(2); ctrl-shift-O+RgAr : DeletePane(3); /* ---- Win 3.0 Clipboard keys ------------------ */ ctrl-ins : ClipCopy; shift-del : ClipCut; shift-ins : ClipPaste; /* ---- Win 3.1/NT Clipboard keys ------------------ */ ctrl-C : ClipCopy; : ClipCopy ctrl-V : ClipPaste; : ClipPaste ctrl-X : ClipCut; : ClipCut END; KEYBOARD Editor F1 : HelpKeywordSearch; : HelpKeywordSearch F3 : MacRepeatSearch; : RepeatSearch /* Ctrl-F1 is mapped to HelpKeywordSearch for backward compatibility with */ /* the previous IDEs. It should be considered reserved by Borland and */ /* subject to change in future releases. F1 provides context help or */ /* Keyword search on the token at the cursor. */ Ctrl-F1 : HelpKeywordSearch; : HelpKeywordSearch Esc : NullCmd; ctrl-I : SmartTab; ctrl-N : MacBreakLine; ctrl-P : LiteralChar; ctrl-S : MacISearch; ctrl-T : DeleteWord; ctrl-Y : MacDeleteLine; ctrl-Z : MacUndo; : Undo ctrl-shift-I : IndentBlock; ctrl-shift-U : OutdentBlock; ctrl-shift-Y : DeleteToEol; ctrl-shift-Z : MacRedo; : Redo shift-ctrl-0 : SetMark(0); shift-ctrl-1 : SetMark(1); shift-ctrl-2 : SetMark(2); shift-ctrl-3 : SetMark(3); shift-ctrl-4 : SetMark(4); shift-ctrl-5 : SetMark(5); shift-ctrl-6 : SetMark(6); shift-ctrl-7 : SetMark(7); shift-ctrl-8 : SetMark(8); shift-ctrl-9 : SetMark(9); ctrl-0 : MacGoto0; ctrl-1 : MacGoto1; ctrl-2 : MacGoto2; ctrl-3 : MacGoto3; ctrl-4 : MacGoto4; ctrl-5 : MacGoto5; ctrl-6 : MacGoto6; ctrl-7 : MacGoto7; ctrl-8 : MacGoto8; ctrl-9 : MacGoto9; alt-[ : MacMatchPairForward; alt-] : MacMatchPairBackward; /* the following three keys refer to the ones on the numeric keypad */ star : MacInsertStar; minus : MacInsertMinus; plus : MacInsertPlus; bksp : MacBackspaceDelete; lfar : CursorSwitchedLeft; rgar : CursorSwitchedRight; upar : CursorUp; dnar : CursorDown; pgup : MacPageUp; pgdn : MacPageDown; end : MacRightOfLine; home : MacLeftOfLine; enter: LiteralChar(13); ins : ToggleInsert; del : DeleteChar; tab : LiteralChar('\t'); space: LiteralChar(' '); ctrl-lfar : WordLeft; ctrl-rgar : WordRight; ctrl-bksp : MacBackWord; ctrl-home : MacHomeCursor; ctrl-end : MacEndCursor; ctrl-del : MacDeleteBlock; : ClipClear ctrl-space: LiteralChar(' '); ctrl-pgdn : MacBottomOfScreen; ctrl-pgup : MacTopOfScreen; ctrl-tab : SmartTab; ctrl-upar : MacScrollDown; ctrl-dnar : MacScrollUp; shift-tab : BackTab; shift-bksp : MacBackspaceDelete; shift-lfar : MacMarkCursorSwitchedLeft; shift-rgar : MacMarkCursorSwitchedRight; shift-upar : MacMarkCursorUp; shift-dnar : MacMarkCursorDown; shift-pgup : MacMarkPageUp; shift-pgdn : MacMarkPageDown; shift-end : MacMarkRightOfLine; shift-home : MacMarkLeftOfLine; shift-space: LiteralChar(' '); shift-enter: LiteralChar(13); ctrl-shift-lfar : MacMarkWordLeft; ctrl-shift-rgar : MacMarkWordRight; ctrl-shift-home : MacMarkHomeCursor; ctrl-shift-end : MacMarkEndCursor; ctrl-shift-pgdn : MacMarkBottomOfScreen; ctrl-shift-pgup : MacMarkTopOfScreen; alt-bksp : MacUndo; alt-shift-bksp : MacRedo; /* ---- Control K sequences ------------------ */ ctrl-K+^B : MacSetBlockBeg; ctrl-K+^C : MacCopyBlock; ctrl-K+^D : Menu; /* N.B. must duplicate this due to quirk in keymap processor */ ctrl-K+^E : MacLowerCaseWord; ctrl-K+^F : MacUpperCaseWord; ctrl-K+^H : ToggleHideBlock; ctrl-K+^I : IndentBlock; ctrl-K+^K : MacSetBlockEnd; ctrl-K+^L : MacMarkLine; ctrl-K+^N : UpperCaseBlock; ctrl-K+^O : LowerCaseBlock; /* ctrl-K+^P : PrintBlock; next time */ ctrl-K+^R : ReadBlock; ctrl-K+^S : SaveFile; /* N.B. must duplicate this due to quirk in keymap processor */ ctrl-K+^T : MacMarkWord; ctrl-K+^U : OutdentBlock; ctrl-K+^V : MacMoveBlock; ctrl-K+^W : WriteBlock; ctrl-K+^Y : MacDeleteBlock; ctrl-K+0 : SetMark(0); ctrl-K+1 : SetMark(1); ctrl-K+2 : SetMark(2); ctrl-K+3 : SetMark(3); ctrl-K+4 : SetMark(4); ctrl-K+5 : SetMark(5); ctrl-K+6 : SetMark(6); ctrl-K+7 : SetMark(7); ctrl-K+8 : SetMark(8); ctrl-K+9 : SetMark(9); ctrl-K+ctrl-0 : SetMark(0); ctrl-K+ctrl-1 : SetMark(1); ctrl-K+ctrl-2 : SetMark(2); ctrl-K+ctrl-3 : SetMark(3); ctrl-K+ctrl-4 : SetMark(4); ctrl-K+ctrl-5 : SetMark(5); ctrl-K+ctrl-6 : SetMark(6); ctrl-K+ctrl-7 : SetMark(7); ctrl-K+ctrl-8 : SetMark(8); ctrl-K+ctrl-9 : SetMark(9); /* ---- Control Q sequences ------------------ */ ctrl-Q+^A : MacReplace; : Replace ctrl-Q+^B : MacMoveToBlockBeg; ctrl-Q+^C : MacEndCursor; ctrl-Q+^D : BEGIN RightOfLine; FixScreenPos; END; ctrl-Q+^F : MacGetFindString; : GetFindString ctrl-Q+^K : MacMoveToBlockEnd; ctrl-Q+^P : MacMoveToPrevPos; ctrl-Q+^R : MacHomeCursor; ctrl-Q+^S : MacLeftOfLine; ctrl-Q+^T : CursorLineToWindowTop; ctrl-Q+^U : CursorLineToWindowBottom; ctrl-Q+^Y : MacDeleteToEOL; ctrl-Q+0 : MacGoto0; ctrl-Q+1 : MacGoto1; ctrl-Q+2 : MacGoto2; ctrl-Q+3 : MacGoto3; ctrl-Q+4 : MacGoto4; ctrl-Q+5 : MacGoto5; ctrl-Q+6 : MacGoto6; ctrl-Q+7 : MacGoto7; ctrl-Q+8 : MacGoto8; ctrl-Q+9 : MacGoto9; ctrl-Q+ctrl-0 : MacGoto0; ctrl-Q+ctrl-1 : MacGoto1; ctrl-Q+ctrl-2 : MacGoto2; ctrl-Q+ctrl-3 : MacGoto3; ctrl-Q+ctrl-4 : MacGoto4; ctrl-Q+ctrl-5 : MacGoto5; ctrl-Q+ctrl-6 : MacGoto6; ctrl-Q+ctrl-7 : MacGoto7; ctrl-Q+ctrl-8 : MacGoto8; ctrl-Q+ctrl-9 : MacGoto9; ctrl-Q+[ : MacMatchPairForward; ctrl-Q+ctrl-[ : MacMatchPairForward; ctrl-Q+] : MacMatchPairBackward; ctrl-Q+ctrl-] : MacMatchPairBackward; /* ---- Control O sequences ------------------ */ ctrl-O+^A : OpenFileAtCursor; : OpenFileAtCursor ctrl-O+^B : BrowseSymbolAtCursor; : BrowseSymbolAtCursor ctrl-O+^C : SetColumnBlock; ctrl-O+^G : GoToLine; : GoToLine ctrl-O+^I : SetInclusiveBlock; ctrl-O+^K : SetNonInclusiveBlock; ctrl-O+^L : SetLineBlock; ctrl-O+^O : MacToggleCase; /* ---- Pane mgmt keys ------------------ */ /* N.B. must duplicate these due to quirk in keymap processor */ ctrl-O+^E : MoveToPane(0); ctrl-O+^X : MoveToPane(1); ctrl-O+^S : MoveToPane(2); ctrl-O+^D : MoveToPane(3); ctrl-O+DnAr : CreatePane(0); ctrl-O+UpAr : CreatePane(1); ctrl-O+LfAr : CreatePane(3); ctrl-O+RgAr : CreatePane(2); ctrl-O+ctrl-DnAr : CreatePane(0); ctrl-O+ctrl-UpAr : CreatePane(1); ctrl-O+ctrl-LfAr : CreatePane(3); ctrl-O+ctrl-RgAr : CreatePane(2); END; KEYBOARD MessageWindow space : MsgViewSrc; : MsgViewSrc enter : MsgEditSrc; : MsgEditSrc END; KEYBOARD BreakpointView ctrl-P : DebugDetailBreakList; : DebugDetailBreakList ctrl-I : DebugInspectBreakList; : DebugInspectBreakList ctrl-E : DebugEditBreakList; : DebugEditBreakList ctrl-R : DebugRemoveBreakList; : DebugRemoveBreakList ctrl-A : DebugAddAtLineBreakList; : DebugAddAtLineBreakList /* ctrl-W : DebugAddWinMsg; : DebugAddWinMsgBreakList */ END; KEYBOARD CallStack ctrl-I : DebugInspectCallStack; : DebugInspectCallStack ctrl-E : DebugEditCallStack; : DebugEditCallStack END; KEYBOARD DataInspector ctrl-R : DebugRangeInspect; : DebugRangeInspect ctrl-C : DebugChange; : DebugChange ctrl-I : DebugInspectData; : DebugInspectData ctrl-D : DebugDescend; : DebugDescend ctrl-N : DebugNewExpr; : DebugNewExpr ctrl-T : DebugTypecast; : DebugTypecast END; KEYBOARD DebugLog ctrl-C : DebugCaptureLog; : DebugCaptureLog ctrl-O : DebugLogOptions; : DebugLogOptions ctrl-A : DebugCommentLog; : DebugCommentLog ctrl-E : DebugEraseLog; : DebugEraseLog END; KEYBOARD RegisterView ctrl-H : DebugHexReg; : DebugHexReg ctrl-D : DebugDecimalReg; : DebugDecimalReg ctrl-W : DebugWordReg; : DebugWordReg ctrl-U : DebugDWordReg; : DebugDWordReg END; KEYBOARD WatchView ctrl-P : DebugDetailWatchList; : DebugDetailWatchList ctrl-R : DebugRemoveWatchList; : DebugRemoveWatchList ctrl-A : DebugAddWatchList; : DebugAddWatchList END; KEYBOARD ProjectWindow enter : ProjectNodeAction; plus : ProjectExpandNode; minus : ProjectCollapseNode; space : ProjectNodeToggle; esc : ProjectEndNodeSearch; upar : ProjectNodeUp; dnar : ProjectNodeDown; home : ProjectFirstNode; end : ProjectLastNode; pgup : ProjectPrevPage; pgdn : ProjectNextPage; alt-lfar : ProjectPromoteNode; alt-rgar : ProjectDemoteNode; alt-upar : ProjectMoveUp; alt-dnar : ProjectMoveDown; END;