void CMD_Redo() { BSet active = GetBSet(ActiveWindowID); RedoEdit(active.buffer, &active.view->carets); } RegisterCommand(CMD_Redo, "ctrl-shift-z", "Redo after undoing changes to the buffer"); void CMD_Undo() { BSet active = GetBSet(ActiveWindowID); UndoEdit(active.buffer, &active.view->carets); } RegisterCommand(CMD_Undo, "ctrl-z", "Undo last change you made to the buffer"); void CMD_EncloseLine() { BSet active = GetBSet(ActiveWindowID); EncloseLine(active.view); } RegisterCommand(CMD_EncloseLine, "ctrl-l", "Select the entire line on which your caret is placed"); void CMD_SelectAll() { BSet active = GetBSet(ActiveWindowID); SelectEntireBuffer(active.view); active.view->update_scroll = false; } RegisterCommand(CMD_SelectAll, "ctrl-a", "Select the entire buffer"); void CMD_KillSelectedLines() { BSet active = GetBSet(ActiveWindowID); KillSelectedLines(active.view); } RegisterCommand(CMD_KillSelectedLines, "ctrl-shift-k", "Delete the selected lines, don't put to clipboard"); void CMD_IndentSelectedLines() { BSet active = GetBSet(ActiveWindowID); IndentSelectedLines(active.view); } RegisterCommand(CMD_IndentSelectedLines, "ctrl-rightbracket | tab", ""); void CMD_DedentSelectedLines() { BSet active = GetBSet(ActiveWindowID); IndentSelectedLines(active.view, true); } RegisterCommand(CMD_DedentSelectedLines, "ctrl-leftbracket | shift-tab", ""); void CMD_DuplicateLineDown() { BSet active = GetBSet(ActiveWindowID); DuplicateLine(active.view, DIR_DOWN); } RegisterCommand(CMD_DuplicateLineDown, "ctrl-alt-down", ""); void CMD_CreateCursorDown() { BSet active = GetBSet(ActiveWindowID); CreateCursorVertical(active.view, DIR_DOWN); } RegisterCommand(CMD_CreateCursorDown, "alt-shift-down", ""); void CMD_SelectDownToEmptyLine() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_DOWN, CTRL_PRESSED, SHIFT_PRESS); } RegisterCommand(CMD_SelectDownToEmptyLine, "ctrl-shift-down", ""); void CMD_MoveLineDown() { BSet active = GetBSet(ActiveWindowID); MoveCaretsLine(active.view, DIR_DOWN); } RegisterCommand(CMD_MoveLineDown, "alt-down", ""); void CMD_MoveDownToEmptyLine() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_DOWN, CTRL_PRESSED); } RegisterCommand(CMD_MoveDownToEmptyLine, "ctrl-down", ""); void CMD_SelectDown() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_DOWN, false, SHIFT_PRESS); } RegisterCommand(CMD_SelectDown, "shift-down", ""); void CMD_MoveDown() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_DOWN); } RegisterCommand(CMD_MoveDown, "down", ""); void CMD_DuplicateLineUp() { BSet active = GetBSet(ActiveWindowID); DuplicateLine(active.view, DIR_UP); } RegisterCommand(CMD_DuplicateLineUp, "ctrl-alt-up", ""); void CMD_CreateCursorUp() { BSet active = GetBSet(ActiveWindowID); CreateCursorVertical(active.view, DIR_UP); } RegisterCommand(CMD_CreateCursorUp, "alt-shift-up", ""); void CMD_SelectUpToEmptyLine() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_UP, CTRL_PRESSED, SHIFT_PRESS); } RegisterCommand(CMD_SelectUpToEmptyLine, "ctrl-shift-up", ""); void CMD_MoveLineUp() { BSet active = GetBSet(ActiveWindowID); MoveCaretsLine(active.view, DIR_UP); } RegisterCommand(CMD_MoveLineUp, "alt-up", ""); void CMD_MoveUpToEmptyLine() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_UP, CTRL_PRESSED); } RegisterCommand(CMD_MoveUpToEmptyLine, "ctrl-up", ""); void CMD_SelectUp() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_UP, false, SHIFT_PRESS); } RegisterCommand(CMD_SelectUp, "shift-up", ""); void CMD_MoveUp() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_UP); } RegisterCommand(CMD_MoveUp, "up", ""); void CMD_BoundarySelectLeft() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_LEFT, CTRL_PRESSED, SHIFT_PRESS); } RegisterCommand(CMD_BoundarySelectLeft, "ctrl-shift-left", ""); void CMD_BoundaryMoveLeft() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_LEFT, CTRL_PRESSED); } RegisterCommand(CMD_BoundaryMoveLeft, "ctrl-left", ""); void CMD_SelectLeft() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_LEFT, false, SHIFT_PRESS); } RegisterCommand(CMD_SelectLeft, "shift-left", ""); void CMD_MoveLeft() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_LEFT); } RegisterCommand(CMD_MoveLeft, "left", ""); void CMD_BoundarySelectRight() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_RIGHT, CTRL_PRESSED, SHIFT_PRESS); } RegisterCommand(CMD_BoundarySelectRight, "ctrl-shift-right", ""); void CMD_BoundaryMoveRight() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_RIGHT, CTRL_PRESSED); } RegisterCommand(CMD_BoundaryMoveRight, "ctrl-right", ""); void CMD_SelectRight() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_RIGHT, false, SHIFT_PRESS); } RegisterCommand(CMD_SelectRight, "shift-right", ""); void CMD_MoveRight() { BSet active = GetBSet(ActiveWindowID); MoveCarets(active.view, DIR_RIGHT); } RegisterCommand(CMD_MoveRight, "right", ""); void CMD_MoveUpAPage() { BSet active = GetBSet(ActiveWindowID); MoveCursorByPageSize(active.window, DIR_UP); } RegisterCommand(CMD_MoveUpAPage, "pageup", ""); void CMD_SelectUpPage() { BSet active = GetBSet(ActiveWindowID); MoveCursorByPageSize(active.window, DIR_UP, SHIFT_PRESS); } RegisterCommand(CMD_SelectUpPage, "shift-pageup", ""); void CMD_MoveToStart() { BSet active = GetBSet(ActiveWindowID); SelectRange(active.view, MakeRange(0)); } RegisterCommand(CMD_MoveToStart, "ctrl-pageup", ""); void CMD_SelectDownPage() { BSet active = GetBSet(ActiveWindowID); MoveCursorByPageSize(active.window, DIR_DOWN, SHIFT_PRESS); } RegisterCommand(CMD_SelectDownPage, "shift-pagedown", ""); void CMD_MoveToEnd() { BSet active = GetBSet(ActiveWindowID); SelectRange(active.view, MakeRange(active.buffer->len)); } RegisterCommand(CMD_MoveToEnd, "ctrl-pagedown", ""); void CMD_MoveDownPage() { BSet active = GetBSet(ActiveWindowID); MoveCursorByPageSize(active.window, DIR_DOWN); } RegisterCommand(CMD_MoveDownPage, "pagedown", ""); void CMD_SelectToLineStart() { BSet active = GetBSet(ActiveWindowID); MoveCursorToSide(active.view, DIR_LEFT, SHIFT_PRESS); } RegisterCommand(CMD_SelectToLineStart, "shift-home", ""); void CMD_MoveToLineStart() { BSet active = GetBSet(ActiveWindowID); MoveCursorToSide(active.view, DIR_LEFT); } RegisterCommand(CMD_MoveToLineStart, "home", ""); void CMD_MoveToLineEnd() { BSet active = GetBSet(ActiveWindowID); MoveCursorToSide(active.view, DIR_RIGHT); } RegisterCommand(CMD_MoveToLineEnd, "end", ""); void CMD_SelectToLineEnd() { BSet active = GetBSet(ActiveWindowID); MoveCursorToSide(active.view, DIR_RIGHT, SHIFT_PRESS); } RegisterCommand(CMD_SelectToLineEnd, "shift-end", ""); void CMD_DeleteCharacter() { BSet active = GetBSet(ActiveWindowID); Delete(active.view, DIR_LEFT); } RegisterCommand(CMD_DeleteCharacter, "shift-backspace | backspace", ""); void CMD_DeleteBoundary() { BSet active = GetBSet(ActiveWindowID); Delete(active.view, DIR_LEFT, SHIFT_PRESS); } RegisterCommand(CMD_DeleteBoundary, "ctrl-backspace", ""); void CMD_DeleteForward() { BSet active = GetBSet(ActiveWindowID); Delete(active.view, DIR_RIGHT); } RegisterCommand(CMD_DeleteForward, "shift-delete | delete", ""); void CMD_DeleteForwardBoundary() { BSet active = GetBSet(ActiveWindowID); Delete(active.view, DIR_RIGHT, SHIFT_PRESS); } RegisterCommand(CMD_DeleteForwardBoundary, "ctrl-delete", ""); void CMD_InsertNewLineUp() { BSet active = GetBSet(ActiveWindowID); SaveCaretHistoryBeforeBeginEdit(active.buffer, active.view->carets); MoveCursorToSide(active.view, DIR_LEFT); IndentedNewLine(active.view); MoveCarets(active.view, DIR_UP); } RegisterCommand(CMD_InsertNewLineUp, "ctrl-shift-enter", ""); void CMD_InsertNewLineDown() { BSet active = GetBSet(ActiveWindowID); SaveCaretHistoryBeforeBeginEdit(active.buffer, active.view->carets); MoveCursorToSide(active.view, DIR_RIGHT); IndentedNewLine(active.view); } RegisterCommand(CMD_InsertNewLineDown, "ctrl-enter", ""); void CMD_NewLine() { BSet active = GetBSet(ActiveWindowID); IndentedNewLine(active.view); } RegisterCommand(CMD_NewLine, "enter | shift-enter", ""); void CMD_CreateCaretOnNextFind() { BSet active = GetBSet(ActiveWindowID); String16 string = GetString(active.buffer, active.view->carets[0].range); Caret caret = FindNext(active.buffer, string, active.view->carets[0]); Insert(&active.view->carets, caret, 0); MergeCarets(active.buffer, &active.view->carets); } RegisterCommand(CMD_CreateCaretOnNextFind, "ctrl-d", ""); void CMD_ClearCarets() { BSet active = GetBSet(ActiveWindowID); active.view->carets.len = 1; active.view->carets[0] = MakeCaret(GetFront(active.view->carets[0])); } RegisterCommand(CMD_ClearCarets, "escape", "Clear all carets and reset to 1 caret, also do some windowing stuff that closes things on escape");