Remove hooks fully, replace with commands again
This commit is contained in:
@@ -1142,7 +1142,7 @@ API void InitBuffer(Allocator allocator, Buffer *buffer, BufferID id = {}, Strin
|
|||||||
API void DeinitBuffer(Buffer *buffer) {
|
API void DeinitBuffer(Buffer *buffer) {
|
||||||
Allocator allocator = buffer->line_starts.allocator;
|
Allocator allocator = buffer->line_starts.allocator;
|
||||||
Dealloc(allocator, buffer->data);
|
Dealloc(allocator, buffer->data);
|
||||||
Dealloc(&buffer->hooks);
|
Dealloc(&buffer->commands);
|
||||||
Dealloc(&buffer->line_starts);
|
Dealloc(&buffer->line_starts);
|
||||||
DeallocHistoryArray(&buffer->undo_stack);
|
DeallocHistoryArray(&buffer->undo_stack);
|
||||||
DeallocHistoryArray(&buffer->redo_stack);
|
DeallocHistoryArray(&buffer->redo_stack);
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ void UIMessagef(const char *fmt, ...) {
|
|||||||
NextActiveWindowID = main.window->id;
|
NextActiveWindowID = main.window->id;
|
||||||
RawAppendf(main.buffer, "\n %S\n :Close\n", string);
|
RawAppendf(main.buffer, "\n %S\n :Close\n", string);
|
||||||
main.view->carets[0] = FindNext(main.buffer, u":Close", MakeCaret(0));
|
main.view->carets[0] = FindNext(main.buffer, u":Close", MakeCaret(0));
|
||||||
AddCommand(&main.view->hooks, "Close", "escape | enter", [](HookParam param){
|
AddCommand(&main.view->commands, "Close", "escape | enter", [](){
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
Close(active.buffer->id);
|
Close(active.buffer->id);
|
||||||
});
|
});
|
||||||
@@ -223,7 +223,7 @@ void CenterView(WindowID window) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_CenterView(HookParam param) {
|
void CMD_CenterView() {
|
||||||
CenterView(PrimaryWindowID);
|
CenterView(PrimaryWindowID);
|
||||||
} RegisterCommand(CMD_CenterView, "");
|
} RegisterCommand(CMD_CenterView, "");
|
||||||
|
|
||||||
@@ -336,7 +336,7 @@ void ApplyFormattingTool(Buffer *buffer, String tool) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_FormatSelection(HookParam param) {
|
void CMD_FormatSelection() {
|
||||||
Scratch scratch;
|
Scratch scratch;
|
||||||
BSet primary = GetBSet(PrimaryWindowID);
|
BSet primary = GetBSet(PrimaryWindowID);
|
||||||
|
|
||||||
@@ -471,7 +471,7 @@ BSet Exec(String cmd, String working_dir, bool set_active = true) {
|
|||||||
return main;
|
return main;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_SaveAll(HookParam param) {
|
void CMD_SaveAll() {
|
||||||
For(Buffers) {
|
For(Buffers) {
|
||||||
// NOTE: file_mod_time is only set when buffer got read or written to disk already so should be saved
|
// NOTE: file_mod_time is only set when buffer got read or written to disk already so should be saved
|
||||||
if (it->file_mod_time && it->dirty) {
|
if (it->file_mod_time && it->dirty) {
|
||||||
@@ -480,12 +480,12 @@ void CMD_SaveAll(HookParam param) {
|
|||||||
}
|
}
|
||||||
} RegisterCommand(CMD_SaveAll, "ctrl-shift-s");
|
} RegisterCommand(CMD_SaveAll, "ctrl-shift-s");
|
||||||
|
|
||||||
void CMD_GotoNextInList(HookParam param) {
|
void CMD_GotoNextInList() {
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
GotoNextInList(main.window, 1);
|
GotoNextInList(main.window, 1);
|
||||||
} RegisterCommand(CMD_GotoNextInList, "ctrl-e", "For example: when jumping from build panel to build error, a jump point is setup, user can click this button to go over to the next compiler error");
|
} RegisterCommand(CMD_GotoNextInList, "ctrl-e", "For example: when jumping from build panel to build error, a jump point is setup, user can click this button to go over to the next compiler error");
|
||||||
|
|
||||||
void CMD_GotoPrevInList(HookParam param) {
|
void CMD_GotoPrevInList() {
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
GotoNextInList(main.window, -1);
|
GotoNextInList(main.window, -1);
|
||||||
} RegisterCommand(CMD_GotoPrevInList, "alt-e", "For example: when jumping from build panel to build error, a jump point is setup, user can click this button to go over to the previous compiler error");
|
} RegisterCommand(CMD_GotoPrevInList, "alt-e", "For example: when jumping from build panel to build error, a jump point is setup, user can click this button to go over to the previous compiler error");
|
||||||
@@ -564,8 +564,8 @@ void Set(String string) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hook *cmd = NULL;
|
Command *cmd = NULL;
|
||||||
For (GlobalHooks) {
|
For (GlobalCommands) {
|
||||||
if (it.name == name) {
|
if (it.name == name) {
|
||||||
cmd = ⁢
|
cmd = ⁢
|
||||||
break;
|
break;
|
||||||
@@ -795,23 +795,23 @@ BSet Open(String16 path, ResolveOpenMeta meta) {
|
|||||||
return Open(string, meta);
|
return Open(string, meta);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_Save(HookParam param) {
|
void CMD_Save() {
|
||||||
BSet active = GetBSet(PrimaryWindowID);
|
BSet active = GetBSet(PrimaryWindowID);
|
||||||
SaveBuffer(active.buffer);
|
SaveBuffer(active.buffer);
|
||||||
} RegisterCommand(CMD_Save, "ctrl-s", "Save buffer currently open in the last primary window");
|
} RegisterCommand(CMD_Save, "ctrl-s", "Save buffer currently open in the last primary window");
|
||||||
|
|
||||||
void CMD_Reopen(HookParam param) {
|
void CMD_Reopen() {
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
ReopenBuffer(main.buffer);
|
ReopenBuffer(main.buffer);
|
||||||
NextActiveWindowID = main.window->id;
|
NextActiveWindowID = main.window->id;
|
||||||
} RegisterCommand(CMD_Reopen, "");
|
} RegisterCommand(CMD_Reopen, "");
|
||||||
|
|
||||||
void CMD_New(HookParam param) {
|
void CMD_New() {
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
New(main.window, "");
|
New(main.window, "");
|
||||||
} RegisterCommand(CMD_New, "ctrl-n", "Open a new buffer with automatically generated name, use :Rename");
|
} RegisterCommand(CMD_New, "ctrl-n", "Open a new buffer with automatically generated name, use :Rename");
|
||||||
|
|
||||||
void CMD_ToggleFullscreen(HookParam param) {
|
void CMD_ToggleFullscreen() {
|
||||||
if (IsInFullscreen) {
|
if (IsInFullscreen) {
|
||||||
SDL_SetWindowSize(SDLWindow, FullScreenSizeX, FullScreenSizeY);
|
SDL_SetWindowSize(SDLWindow, FullScreenSizeX, FullScreenSizeY);
|
||||||
SDL_SetWindowPosition(SDLWindow, FullScreenPositionX, FullScreenPositionY);
|
SDL_SetWindowPosition(SDLWindow, FullScreenPositionX, FullScreenPositionY);
|
||||||
@@ -828,7 +828,7 @@ void CMD_ToggleFullscreen(HookParam param) {
|
|||||||
IsInFullscreen = !IsInFullscreen;
|
IsInFullscreen = !IsInFullscreen;
|
||||||
} RegisterCommand(CMD_ToggleFullscreen, "f11");
|
} RegisterCommand(CMD_ToggleFullscreen, "f11");
|
||||||
|
|
||||||
void CMD_SetWorkDirHere(HookParam param) {
|
void CMD_SetWorkDirHere() {
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
SetWorkDirHere(GetDir(main.buffer));
|
SetWorkDirHere(GetDir(main.buffer));
|
||||||
} RegisterCommand(CMD_SetWorkDirHere, "", "Sets work directory to the directory of the current buffer, it also renames couple special buffers to make them accomodate the new WorkDir");
|
} RegisterCommand(CMD_SetWorkDirHere, "", "Sets work directory to the directory of the current buffer, it also renames couple special buffers to make them accomodate the new WorkDir");
|
||||||
@@ -885,38 +885,27 @@ void OpenCode(String dir) {
|
|||||||
CoResume(data);
|
CoResume(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_OpenCode(HookParam param) {
|
void CMD_OpenCode() {
|
||||||
OpenCode(WorkDir);
|
OpenCode(WorkDir);
|
||||||
} RegisterCommand(CMD_OpenCode, "", "Open all code files in current WorkDir, the code files are determined through NonCodePatterns_EndsWith config variable list");
|
} RegisterCommand(CMD_OpenCode, "", "Open all code files in current WorkDir, the code files are determined through NonCodePatterns_EndsWith config variable list");
|
||||||
|
|
||||||
void CMD_KillProcess(HookParam param) {
|
void CMD_KillProcess() {
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
KillProcess(main.view);
|
KillProcess(main.view);
|
||||||
} RegisterCommand(CMD_KillProcess, "", "Kill process in the last active primary window");
|
} RegisterCommand(CMD_KillProcess, "", "Kill process in the last active primary window");
|
||||||
|
|
||||||
void CMD_CloseWindow(HookParam param) {
|
void CMD_CloseWindow() {
|
||||||
Close(PrimaryWindowID);
|
Close(PrimaryWindowID);
|
||||||
} RegisterCommand(CMD_CloseWindow, "", "Close the last active primary window");
|
} RegisterCommand(CMD_CloseWindow, "", "Close the last active primary window");
|
||||||
|
|
||||||
void AddCommand(Array<Hook> *arr, String name, String binding, HookFunction *function) {
|
void AddCommand(Array<Command> *arr, String name, String binding, CMDFunction *function) {
|
||||||
Hook hook = {};
|
Command cmd = {};
|
||||||
hook.name = name;
|
cmd.name = name;
|
||||||
hook.binding = binding;
|
cmd.binding = binding;
|
||||||
hook.function = function;
|
cmd.function = function;
|
||||||
hook.trigger = ParseKeyCached(binding);
|
cmd.trigger = ParseKeyCached(binding);
|
||||||
hook.docs = "Not listing hooks anywhere currently, maybe should change!!";
|
cmd.docs = "Not listing commands attached to things anywhere currently, maybe should change?";
|
||||||
Add(arr, hook);
|
Add(arr, cmd);
|
||||||
}
|
|
||||||
|
|
||||||
void AddHook(Array<Hook> *arr, HookKind kind, String name, String binding, HookFunction *function) {
|
|
||||||
Hook hook = {};
|
|
||||||
hook.kind = kind;
|
|
||||||
hook.name = name;
|
|
||||||
hook.binding = binding;
|
|
||||||
hook.function = function;
|
|
||||||
hook.trigger = ParseKeyCached(binding);
|
|
||||||
hook.docs = "Not listing hooks anywhere currently, maybe should change!!";
|
|
||||||
Add(arr, hook);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Coro_Rename(mco_coro *co) {
|
void Coro_Rename(mco_coro *co) {
|
||||||
@@ -928,8 +917,8 @@ void Coro_Rename(mco_coro *co) {
|
|||||||
|
|
||||||
main.view->carets[0] = FindNext(main.buffer, u"]", MakeCaret(0));
|
main.view->carets[0] = FindNext(main.buffer, u"]", MakeCaret(0));
|
||||||
main.view->carets[0].range.max = main.view->carets[0].range.min;
|
main.view->carets[0].range.max = main.view->carets[0].range.min;
|
||||||
AddCommand(&main.view->hooks, "Rename", "enter", [](HookParam param){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Rename";});
|
AddCommand(&main.view->commands, "Rename", "enter", [](){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Rename";});
|
||||||
AddCommand(&main.view->hooks, "Cancel", "escape", [](HookParam param){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Cancel";});
|
AddCommand(&main.view->commands, "Cancel", "escape", [](){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Cancel";});
|
||||||
String result = "Cancel";
|
String result = "Cancel";
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (main.window->active_view != main.view->id || (main.window->id != PrimaryWindowID && main.window->id != ActiveWindowID) || main.window->close) {
|
if (main.window->active_view != main.view->id || (main.window->id != PrimaryWindowID && main.window->id != ActiveWindowID) || main.window->close) {
|
||||||
@@ -958,7 +947,7 @@ void Coro_Rename(mco_coro *co) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_Rename(HookParam param) {
|
void CMD_Rename() {
|
||||||
CoRemove("Coro_Rename");
|
CoRemove("Coro_Rename");
|
||||||
CoData *data = CoAdd(Coro_Rename);
|
CoData *data = CoAdd(Coro_Rename);
|
||||||
CoResume(data);
|
CoResume(data);
|
||||||
@@ -974,9 +963,9 @@ String Coro_YesNoCancel(mco_coro *co, BSet main, String question) {
|
|||||||
)==", question);
|
)==", question);
|
||||||
main.view->carets[0] = FindNext(main.buffer, u":Yes", MakeCaret(0));
|
main.view->carets[0] = FindNext(main.buffer, u":Yes", MakeCaret(0));
|
||||||
main.view->carets[0].range.min = main.view->carets[0].range.max;
|
main.view->carets[0].range.min = main.view->carets[0].range.max;
|
||||||
AddCommand(&main.view->hooks, "Yes", "enter", [](HookParam param){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Yes";});
|
AddCommand(&main.view->commands, "Yes", "enter", [](){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Yes";});
|
||||||
AddCommand(&main.view->hooks, "No", "", [](HookParam param){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "No";});
|
AddCommand(&main.view->commands, "No", "", [](){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "No";});
|
||||||
AddCommand(&main.view->hooks, "Cancel", "escape", [](HookParam param){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Cancel";});
|
AddCommand(&main.view->commands, "Cancel", "escape", [](){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Cancel";});
|
||||||
String result = "Cancel";
|
String result = "Cancel";
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (main.window->active_view != main.view->id || (main.window->id != PrimaryWindowID && main.window->id != ActiveWindowID) || main.window->close) {
|
if (main.window->active_view != main.view->id || (main.window->id != PrimaryWindowID && main.window->id != ActiveWindowID) || main.window->close) {
|
||||||
@@ -1034,13 +1023,13 @@ void Coro_Close(mco_coro *co) {
|
|||||||
} ElseInvalidCodepath();
|
} ElseInvalidCodepath();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_Close(HookParam param) {
|
void CMD_Close() {
|
||||||
CoRemove("Coro_Close");
|
CoRemove("Coro_Close");
|
||||||
CoData *data = CoAdd(Coro_Close);
|
CoData *data = CoAdd(Coro_Close);
|
||||||
CoResume(data);
|
CoResume(data);
|
||||||
} RegisterCommand(CMD_Close, "ctrl-w", "Close open view in the last active primary window");
|
} RegisterCommand(CMD_Close, "ctrl-w", "Close open view in the last active primary window");
|
||||||
|
|
||||||
void CMD_DeleteFile(HookParam param) {
|
void CMD_DeleteFile() {
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
String buffer_name = main.buffer->name;
|
String buffer_name = main.buffer->name;
|
||||||
DeleteFile(main.buffer->name);
|
DeleteFile(main.buffer->name);
|
||||||
@@ -1081,7 +1070,7 @@ String Coro_CloseAllEx(mco_coro *co) {
|
|||||||
return "Yes";
|
return "Yes";
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_QuitWithoutSaving(HookParam param) {
|
void CMD_QuitWithoutSaving() {
|
||||||
#ifdef PLUGIN_REMEDYBG
|
#ifdef PLUGIN_REMEDYBG
|
||||||
QuitDebugger();
|
QuitDebugger();
|
||||||
#endif
|
#endif
|
||||||
@@ -1091,11 +1080,11 @@ void CMD_QuitWithoutSaving(HookParam param) {
|
|||||||
void Coro_Quit(mco_coro *co) {
|
void Coro_Quit(mco_coro *co) {
|
||||||
String res = Coro_CloseAllEx(co);
|
String res = Coro_CloseAllEx(co);
|
||||||
if (res != "Cancel") {
|
if (res != "Cancel") {
|
||||||
CMD_QuitWithoutSaving({});
|
CMD_QuitWithoutSaving();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_Quit(HookParam param) {
|
void CMD_Quit() {
|
||||||
CoRemove("Coro_Quit");
|
CoRemove("Coro_Quit");
|
||||||
CoData *data = CoAdd(Coro_Quit);
|
CoData *data = CoAdd(Coro_Quit);
|
||||||
CoResume(data);
|
CoResume(data);
|
||||||
@@ -1105,72 +1094,72 @@ void Coro_CloseAll(mco_coro *co) {
|
|||||||
Coro_CloseAllEx(co);
|
Coro_CloseAllEx(co);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_CloseAll(HookParam param) {
|
void CMD_CloseAll() {
|
||||||
CoRemove("Coro_CloseAll");
|
CoRemove("Coro_CloseAll");
|
||||||
CoData *data = CoAdd(Coro_CloseAll);
|
CoData *data = CoAdd(Coro_CloseAll);
|
||||||
CoResume(data);
|
CoResume(data);
|
||||||
} RegisterCommand(CMD_CloseAll, "", "Ask user which files to save and close all open normal views and buffers");
|
} RegisterCommand(CMD_CloseAll, "", "Ask user which files to save and close all open normal views and buffers");
|
||||||
|
|
||||||
void CMD_JumpPrev(HookParam param) {
|
void CMD_JumpPrev() {
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
JumpToLastValidView(main.window);
|
JumpToLastValidView(main.window);
|
||||||
NextActiveWindowID = main.window->id;
|
NextActiveWindowID = main.window->id;
|
||||||
} RegisterCommand(CMD_JumpPrev, "ctrl-tab", "Go to the previous open view in primary window");
|
} RegisterCommand(CMD_JumpPrev, "ctrl-tab", "Go to the previous open view in primary window");
|
||||||
|
|
||||||
void CMD_Prev(HookParam param) {
|
void CMD_Prev() {
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
main.window->skip_checkpoint = true;
|
main.window->skip_checkpoint = true;
|
||||||
JumpBack(main.window);
|
JumpBack(main.window);
|
||||||
NextActiveWindowID = main.window->id;
|
NextActiveWindowID = main.window->id;
|
||||||
} RegisterCommand(CMD_Prev, "alt-q | mousex1", "Go to previous position (either previous view that was open or caret position) in the primary window");
|
} RegisterCommand(CMD_Prev, "alt-q | mousex1", "Go to previous position (either previous view that was open or caret position) in the primary window");
|
||||||
|
|
||||||
void CMD_Next(HookParam param) {
|
void CMD_Next() {
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
main.window->skip_checkpoint = true;
|
main.window->skip_checkpoint = true;
|
||||||
JumpForward(main.window);
|
JumpForward(main.window);
|
||||||
NextActiveWindowID = main.window->id;
|
NextActiveWindowID = main.window->id;
|
||||||
} RegisterCommand(CMD_Next, "alt-shift-q | mousex2", "Go to next position, after backtracking, in the primary window");
|
} RegisterCommand(CMD_Next, "alt-shift-q | mousex2", "Go to next position, after backtracking, in the primary window");
|
||||||
|
|
||||||
void CMD_OpenUpFolder(HookParam param) {
|
void CMD_OpenUpFolder() {
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
String name = ChopLastSlash(main.buffer->name);
|
String name = ChopLastSlash(main.buffer->name);
|
||||||
Open(name);
|
Open(name);
|
||||||
} RegisterCommand(CMD_OpenUpFolder, "ctrl-o", "Open current's file directory or up directory in other cases");
|
} RegisterCommand(CMD_OpenUpFolder, "ctrl-o", "Open current's file directory or up directory in other cases");
|
||||||
|
|
||||||
void CMD_EncloseLine(HookParam param) {
|
void CMD_EncloseLine() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
EncloseLine(active.view);
|
EncloseLine(active.view);
|
||||||
} RegisterCommand(CMD_EncloseLine, "ctrl-l", "Select the entire line on which your caret is placed");
|
} RegisterCommand(CMD_EncloseLine, "ctrl-l", "Select the entire line on which your caret is placed");
|
||||||
|
|
||||||
void CMD_SelectAll(HookParam param) {
|
void CMD_SelectAll() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
SelectEntireBuffer(active.view);
|
SelectEntireBuffer(active.view);
|
||||||
active.view->update_scroll = false;
|
active.view->update_scroll = false;
|
||||||
} RegisterCommand(CMD_SelectAll, "ctrl-a", "Select the entire buffer");
|
} RegisterCommand(CMD_SelectAll, "ctrl-a", "Select the entire buffer");
|
||||||
|
|
||||||
void CMD_Redo(HookParam param) {
|
void CMD_Redo() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
RedoEdit(active.buffer, &active.view->carets);
|
RedoEdit(active.buffer, &active.view->carets);
|
||||||
} RegisterCommand(CMD_Redo, "ctrl-shift-z", "Redo after undoing changes to the buffer");
|
} RegisterCommand(CMD_Redo, "ctrl-shift-z", "Redo after undoing changes to the buffer");
|
||||||
|
|
||||||
void CMD_Undo(HookParam param) {
|
void CMD_Undo() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
UndoEdit(active.buffer, &active.view->carets);
|
UndoEdit(active.buffer, &active.view->carets);
|
||||||
} RegisterCommand(CMD_Undo, "ctrl-z", "Undo last change you made to the buffer");
|
} RegisterCommand(CMD_Undo, "ctrl-z", "Undo last change you made to the buffer");
|
||||||
|
|
||||||
void CMD_MakeFontLarger(HookParam param) {
|
void CMD_MakeFontLarger() {
|
||||||
FontSize += 1;
|
FontSize += 1;
|
||||||
ReloadFont(PathToFont, (U32)FontSize);
|
ReloadFont(PathToFont, (U32)FontSize);
|
||||||
} RegisterCommand(CMD_MakeFontLarger, "ctrl-equals", "Increase the font size");
|
} RegisterCommand(CMD_MakeFontLarger, "ctrl-equals", "Increase the font size");
|
||||||
|
|
||||||
void CMD_MakeFontSmaller(HookParam param) {
|
void CMD_MakeFontSmaller() {
|
||||||
if (FontSize > 4) {
|
if (FontSize > 4) {
|
||||||
FontSize -= 1;
|
FontSize -= 1;
|
||||||
ReloadFont(PathToFont, (U32)FontSize);
|
ReloadFont(PathToFont, (U32)FontSize);
|
||||||
}
|
}
|
||||||
} RegisterCommand(CMD_MakeFontSmaller, "ctrl-minus", "Decrease the font size");
|
} RegisterCommand(CMD_MakeFontSmaller, "ctrl-minus", "Decrease the font size");
|
||||||
|
|
||||||
void CMD_OpenLoadWord(HookParam param) {
|
void CMD_OpenLoadWord() {
|
||||||
Scratch scratch;
|
Scratch scratch;
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
String16 load_word = FetchLoadWord(active.view);
|
String16 load_word = FetchLoadWord(active.view);
|
||||||
@@ -1181,210 +1170,210 @@ void CMD_OpenLoadWord(HookParam param) {
|
|||||||
Open(load_word);
|
Open(load_word);
|
||||||
} RegisterCommand(CMD_OpenLoadWord, "ctrl-q | f12", "Open a link under the caret (file link, url, command) or open the selection");
|
} RegisterCommand(CMD_OpenLoadWord, "ctrl-q | f12", "Open a link under the caret (file link, url, command) or open the selection");
|
||||||
|
|
||||||
void CMD_KillSelectedLines(HookParam param) {
|
void CMD_KillSelectedLines() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
KillSelectedLines(active.view);
|
KillSelectedLines(active.view);
|
||||||
} RegisterCommand(CMD_KillSelectedLines, "ctrl-shift-k");
|
} RegisterCommand(CMD_KillSelectedLines, "ctrl-shift-k");
|
||||||
|
|
||||||
void CMD_IndentSelectedLines(HookParam param) {
|
void CMD_IndentSelectedLines() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
IndentSelectedLines(active.view);
|
IndentSelectedLines(active.view);
|
||||||
} RegisterCommand(CMD_IndentSelectedLines, "ctrl-rightbracket | tab");
|
} RegisterCommand(CMD_IndentSelectedLines, "ctrl-rightbracket | tab");
|
||||||
|
|
||||||
void CMD_DedentSelectedLines(HookParam param) {
|
void CMD_DedentSelectedLines() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
IndentSelectedLines(active.view, true);
|
IndentSelectedLines(active.view, true);
|
||||||
} RegisterCommand(CMD_DedentSelectedLines, "ctrl-leftbracket | shift-tab");
|
} RegisterCommand(CMD_DedentSelectedLines, "ctrl-leftbracket | shift-tab");
|
||||||
|
|
||||||
void CMD_DuplicateLineDown(HookParam param) {
|
void CMD_DuplicateLineDown() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
DuplicateLine(active.view, DIR_DOWN);
|
DuplicateLine(active.view, DIR_DOWN);
|
||||||
} RegisterCommand(CMD_DuplicateLineDown, "ctrl-alt-down");
|
} RegisterCommand(CMD_DuplicateLineDown, "ctrl-alt-down");
|
||||||
|
|
||||||
void CMD_CreateCursorDown(HookParam param) {
|
void CMD_CreateCursorDown() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
CreateCursorVertical(active.view, DIR_DOWN);
|
CreateCursorVertical(active.view, DIR_DOWN);
|
||||||
} RegisterCommand(CMD_CreateCursorDown, "alt-shift-down");
|
} RegisterCommand(CMD_CreateCursorDown, "alt-shift-down");
|
||||||
|
|
||||||
void CMD_SelectDownToEmptyLine(HookParam param) {
|
void CMD_SelectDownToEmptyLine() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_DOWN, CTRL_PRESSED, SHIFT_PRESS);
|
MoveCarets(active.view, DIR_DOWN, CTRL_PRESSED, SHIFT_PRESS);
|
||||||
} RegisterCommand(CMD_SelectDownToEmptyLine, "ctrl-shift-down");
|
} RegisterCommand(CMD_SelectDownToEmptyLine, "ctrl-shift-down");
|
||||||
|
|
||||||
void CMD_MoveLineDown(HookParam param) {
|
void CMD_MoveLineDown() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCaretsLine(active.view, DIR_DOWN);
|
MoveCaretsLine(active.view, DIR_DOWN);
|
||||||
} RegisterCommand(CMD_MoveLineDown, "alt-down");
|
} RegisterCommand(CMD_MoveLineDown, "alt-down");
|
||||||
|
|
||||||
void CMD_MoveDownToEmptyLine(HookParam param) {
|
void CMD_MoveDownToEmptyLine() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_DOWN, CTRL_PRESSED);
|
MoveCarets(active.view, DIR_DOWN, CTRL_PRESSED);
|
||||||
} RegisterCommand(CMD_MoveDownToEmptyLine, "ctrl-down");
|
} RegisterCommand(CMD_MoveDownToEmptyLine, "ctrl-down");
|
||||||
|
|
||||||
void CMD_SelectDown(HookParam param) {
|
void CMD_SelectDown() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_DOWN, false, SHIFT_PRESS);
|
MoveCarets(active.view, DIR_DOWN, false, SHIFT_PRESS);
|
||||||
} RegisterCommand(CMD_SelectDown, "shift-down");
|
} RegisterCommand(CMD_SelectDown, "shift-down");
|
||||||
|
|
||||||
void CMD_MoveDown(HookParam param) {
|
void CMD_MoveDown() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_DOWN);
|
MoveCarets(active.view, DIR_DOWN);
|
||||||
} RegisterCommand(CMD_MoveDown, "down");
|
} RegisterCommand(CMD_MoveDown, "down");
|
||||||
|
|
||||||
void CMD_DuplicateLineUp(HookParam param) {
|
void CMD_DuplicateLineUp() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
DuplicateLine(active.view, DIR_UP);
|
DuplicateLine(active.view, DIR_UP);
|
||||||
} RegisterCommand(CMD_DuplicateLineUp, "ctrl-alt-up");
|
} RegisterCommand(CMD_DuplicateLineUp, "ctrl-alt-up");
|
||||||
|
|
||||||
void CMD_CreateCursorUp(HookParam param) {
|
void CMD_CreateCursorUp() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
CreateCursorVertical(active.view, DIR_UP);
|
CreateCursorVertical(active.view, DIR_UP);
|
||||||
} RegisterCommand(CMD_CreateCursorUp, "alt-shift-up");
|
} RegisterCommand(CMD_CreateCursorUp, "alt-shift-up");
|
||||||
|
|
||||||
void CMD_SelectUpToEmptyLine(HookParam param) {
|
void CMD_SelectUpToEmptyLine() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_UP, CTRL_PRESSED, SHIFT_PRESS);
|
MoveCarets(active.view, DIR_UP, CTRL_PRESSED, SHIFT_PRESS);
|
||||||
} RegisterCommand(CMD_SelectUpToEmptyLine, "ctrl-shift-up");
|
} RegisterCommand(CMD_SelectUpToEmptyLine, "ctrl-shift-up");
|
||||||
|
|
||||||
void CMD_MoveLineUp(HookParam param) {
|
void CMD_MoveLineUp() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCaretsLine(active.view, DIR_UP);
|
MoveCaretsLine(active.view, DIR_UP);
|
||||||
} RegisterCommand(CMD_MoveLineUp, "alt-up");
|
} RegisterCommand(CMD_MoveLineUp, "alt-up");
|
||||||
|
|
||||||
void CMD_MoveUpToEmptyLine(HookParam param) {
|
void CMD_MoveUpToEmptyLine() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_UP, CTRL_PRESSED);
|
MoveCarets(active.view, DIR_UP, CTRL_PRESSED);
|
||||||
} RegisterCommand(CMD_MoveUpToEmptyLine, "ctrl-up");
|
} RegisterCommand(CMD_MoveUpToEmptyLine, "ctrl-up");
|
||||||
|
|
||||||
void CMD_SelectUp(HookParam param) {
|
void CMD_SelectUp() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_UP, false, SHIFT_PRESS);
|
MoveCarets(active.view, DIR_UP, false, SHIFT_PRESS);
|
||||||
} RegisterCommand(CMD_SelectUp, "shift-up");
|
} RegisterCommand(CMD_SelectUp, "shift-up");
|
||||||
|
|
||||||
void CMD_MoveUp(HookParam param) {
|
void CMD_MoveUp() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_UP);
|
MoveCarets(active.view, DIR_UP);
|
||||||
} RegisterCommand(CMD_MoveUp, "up");
|
} RegisterCommand(CMD_MoveUp, "up");
|
||||||
|
|
||||||
void CMD_BoundarySelectLeft(HookParam param) {
|
void CMD_BoundarySelectLeft() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_LEFT, CTRL_PRESSED, SHIFT_PRESS);
|
MoveCarets(active.view, DIR_LEFT, CTRL_PRESSED, SHIFT_PRESS);
|
||||||
} RegisterCommand(CMD_BoundarySelectLeft, "ctrl-shift-left");
|
} RegisterCommand(CMD_BoundarySelectLeft, "ctrl-shift-left");
|
||||||
|
|
||||||
void CMD_BoundaryMoveLeft(HookParam param) {
|
void CMD_BoundaryMoveLeft() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_LEFT, CTRL_PRESSED);
|
MoveCarets(active.view, DIR_LEFT, CTRL_PRESSED);
|
||||||
} RegisterCommand(CMD_BoundaryMoveLeft, "ctrl-left");
|
} RegisterCommand(CMD_BoundaryMoveLeft, "ctrl-left");
|
||||||
|
|
||||||
void CMD_SelectLeft(HookParam param) {
|
void CMD_SelectLeft() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_LEFT, false, SHIFT_PRESS);
|
MoveCarets(active.view, DIR_LEFT, false, SHIFT_PRESS);
|
||||||
} RegisterCommand(CMD_SelectLeft, "shift-left");
|
} RegisterCommand(CMD_SelectLeft, "shift-left");
|
||||||
|
|
||||||
void CMD_FocusLeftWindow(HookParam param) {
|
void CMD_FocusLeftWindow() {
|
||||||
NextActiveWindowID = SwitchWindow(DIR_LEFT)->id;
|
NextActiveWindowID = SwitchWindow(DIR_LEFT)->id;
|
||||||
} RegisterCommand(CMD_FocusLeftWindow, "alt-left");
|
} RegisterCommand(CMD_FocusLeftWindow, "alt-left");
|
||||||
|
|
||||||
void CMD_MoveLeft(HookParam param) {
|
void CMD_MoveLeft() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_LEFT);
|
MoveCarets(active.view, DIR_LEFT);
|
||||||
} RegisterCommand(CMD_MoveLeft, "left");
|
} RegisterCommand(CMD_MoveLeft, "left");
|
||||||
|
|
||||||
void CMD_BoundarySelectRight(HookParam param) {
|
void CMD_BoundarySelectRight() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_RIGHT, CTRL_PRESSED, SHIFT_PRESS);
|
MoveCarets(active.view, DIR_RIGHT, CTRL_PRESSED, SHIFT_PRESS);
|
||||||
} RegisterCommand(CMD_BoundarySelectRight, "ctrl-shift-right");
|
} RegisterCommand(CMD_BoundarySelectRight, "ctrl-shift-right");
|
||||||
|
|
||||||
void CMD_BoundaryMoveRight(HookParam param) {
|
void CMD_BoundaryMoveRight() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_RIGHT, CTRL_PRESSED);
|
MoveCarets(active.view, DIR_RIGHT, CTRL_PRESSED);
|
||||||
} RegisterCommand(CMD_BoundaryMoveRight, "ctrl-right");
|
} RegisterCommand(CMD_BoundaryMoveRight, "ctrl-right");
|
||||||
|
|
||||||
void CMD_SelectRight(HookParam param) {
|
void CMD_SelectRight() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_RIGHT, false, SHIFT_PRESS);
|
MoveCarets(active.view, DIR_RIGHT, false, SHIFT_PRESS);
|
||||||
} RegisterCommand(CMD_SelectRight, "shift-right");
|
} RegisterCommand(CMD_SelectRight, "shift-right");
|
||||||
|
|
||||||
void CMD_FocusRightWindow(HookParam param) {
|
void CMD_FocusRightWindow() {
|
||||||
NextActiveWindowID = SwitchWindow(DIR_RIGHT)->id;
|
NextActiveWindowID = SwitchWindow(DIR_RIGHT)->id;
|
||||||
} RegisterCommand(CMD_FocusRightWindow, "alt-right");
|
} RegisterCommand(CMD_FocusRightWindow, "alt-right");
|
||||||
|
|
||||||
void CMD_MoveRight(HookParam param) {
|
void CMD_MoveRight() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCarets(active.view, DIR_RIGHT);
|
MoveCarets(active.view, DIR_RIGHT);
|
||||||
} RegisterCommand(CMD_MoveRight, "right");
|
} RegisterCommand(CMD_MoveRight, "right");
|
||||||
|
|
||||||
void CMD_MoveUpAPage(HookParam param) {
|
void CMD_MoveUpAPage() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCursorByPageSize(active.window, DIR_UP);
|
MoveCursorByPageSize(active.window, DIR_UP);
|
||||||
} RegisterCommand(CMD_MoveUpAPage, "pageup");
|
} RegisterCommand(CMD_MoveUpAPage, "pageup");
|
||||||
|
|
||||||
void CMD_SelectUpPage(HookParam param) {
|
void CMD_SelectUpPage() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCursorByPageSize(active.window, DIR_UP, SHIFT_PRESS);
|
MoveCursorByPageSize(active.window, DIR_UP, SHIFT_PRESS);
|
||||||
} RegisterCommand(CMD_SelectUpPage, "shift-pageup");
|
} RegisterCommand(CMD_SelectUpPage, "shift-pageup");
|
||||||
|
|
||||||
void CMD_MoveToStart(HookParam param) {
|
void CMD_MoveToStart() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
SelectRange(active.view, MakeRange(0));
|
SelectRange(active.view, MakeRange(0));
|
||||||
} RegisterCommand(CMD_MoveToStart, "ctrl-pageup");
|
} RegisterCommand(CMD_MoveToStart, "ctrl-pageup");
|
||||||
|
|
||||||
void CMD_SelectDownPage(HookParam param) {
|
void CMD_SelectDownPage() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCursorByPageSize(active.window, DIR_DOWN, SHIFT_PRESS);
|
MoveCursorByPageSize(active.window, DIR_DOWN, SHIFT_PRESS);
|
||||||
} RegisterCommand(CMD_SelectDownPage, "shift-pagedown");
|
} RegisterCommand(CMD_SelectDownPage, "shift-pagedown");
|
||||||
|
|
||||||
void CMD_MoveToEnd(HookParam param) {
|
void CMD_MoveToEnd() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
SelectRange(active.view, MakeRange(active.buffer->len));
|
SelectRange(active.view, MakeRange(active.buffer->len));
|
||||||
} RegisterCommand(CMD_MoveToEnd, "ctrl-pagedown");
|
} RegisterCommand(CMD_MoveToEnd, "ctrl-pagedown");
|
||||||
|
|
||||||
void CMD_MoveDownPage(HookParam param) {
|
void CMD_MoveDownPage() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCursorByPageSize(active.window, DIR_DOWN);
|
MoveCursorByPageSize(active.window, DIR_DOWN);
|
||||||
} RegisterCommand(CMD_MoveDownPage, "pagedown");
|
} RegisterCommand(CMD_MoveDownPage, "pagedown");
|
||||||
|
|
||||||
void CMD_SelectToLineStart(HookParam param) {
|
void CMD_SelectToLineStart() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCursorToSide(active.view, DIR_LEFT, SHIFT_PRESS);
|
MoveCursorToSide(active.view, DIR_LEFT, SHIFT_PRESS);
|
||||||
} RegisterCommand(CMD_SelectToLineStart, "shift-home");
|
} RegisterCommand(CMD_SelectToLineStart, "shift-home");
|
||||||
|
|
||||||
void CMD_MoveToLineStart(HookParam param) {
|
void CMD_MoveToLineStart() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCursorToSide(active.view, DIR_LEFT);
|
MoveCursorToSide(active.view, DIR_LEFT);
|
||||||
} RegisterCommand(CMD_MoveToLineStart, "home");
|
} RegisterCommand(CMD_MoveToLineStart, "home");
|
||||||
|
|
||||||
void CMD_MoveToLineEnd(HookParam param) {
|
void CMD_MoveToLineEnd() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCursorToSide(active.view, DIR_RIGHT);
|
MoveCursorToSide(active.view, DIR_RIGHT);
|
||||||
} RegisterCommand(CMD_MoveToLineEnd, "end");
|
} RegisterCommand(CMD_MoveToLineEnd, "end");
|
||||||
|
|
||||||
void CMD_SelectToLineEnd(HookParam param) {
|
void CMD_SelectToLineEnd() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
MoveCursorToSide(active.view, DIR_RIGHT, SHIFT_PRESS);
|
MoveCursorToSide(active.view, DIR_RIGHT, SHIFT_PRESS);
|
||||||
} RegisterCommand(CMD_SelectToLineEnd, "shift-end");
|
} RegisterCommand(CMD_SelectToLineEnd, "shift-end");
|
||||||
|
|
||||||
void CMD_DeleteCharacter(HookParam param) {
|
void CMD_DeleteCharacter() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
Delete(active.view, DIR_LEFT);
|
Delete(active.view, DIR_LEFT);
|
||||||
} RegisterCommand(CMD_DeleteCharacter, "shift-backspace | backspace");
|
} RegisterCommand(CMD_DeleteCharacter, "shift-backspace | backspace");
|
||||||
|
|
||||||
void CMD_DeleteBoundary(HookParam param) {
|
void CMD_DeleteBoundary() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
Delete(active.view, DIR_LEFT, SHIFT_PRESS);
|
Delete(active.view, DIR_LEFT, SHIFT_PRESS);
|
||||||
} RegisterCommand(CMD_DeleteBoundary, "ctrl-backspace");
|
} RegisterCommand(CMD_DeleteBoundary, "ctrl-backspace");
|
||||||
|
|
||||||
void CMD_DeleteForward(HookParam param) {
|
void CMD_DeleteForward() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
Delete(active.view, DIR_RIGHT);
|
Delete(active.view, DIR_RIGHT);
|
||||||
} RegisterCommand(CMD_DeleteForward, "shift-delete | delete");
|
} RegisterCommand(CMD_DeleteForward, "shift-delete | delete");
|
||||||
|
|
||||||
void CMD_DeleteForwardBoundary(HookParam param) {
|
void CMD_DeleteForwardBoundary() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
Delete(active.view, DIR_RIGHT, SHIFT_PRESS);
|
Delete(active.view, DIR_RIGHT, SHIFT_PRESS);
|
||||||
} RegisterCommand(CMD_DeleteForwardBoundary, "ctrl-delete");
|
} RegisterCommand(CMD_DeleteForwardBoundary, "ctrl-delete");
|
||||||
|
|
||||||
void CMD_InsertNewLineUp(HookParam param) {
|
void CMD_InsertNewLineUp() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
SaveCaretHistoryBeforeBeginEdit(active.buffer, active.view->carets);
|
SaveCaretHistoryBeforeBeginEdit(active.buffer, active.view->carets);
|
||||||
MoveCursorToSide(active.view, DIR_LEFT);
|
MoveCursorToSide(active.view, DIR_LEFT);
|
||||||
@@ -1392,19 +1381,19 @@ void CMD_InsertNewLineUp(HookParam param) {
|
|||||||
MoveCarets(active.view, DIR_UP);
|
MoveCarets(active.view, DIR_UP);
|
||||||
} RegisterCommand(CMD_InsertNewLineUp, "ctrl-shift-enter");
|
} RegisterCommand(CMD_InsertNewLineUp, "ctrl-shift-enter");
|
||||||
|
|
||||||
void CMD_InsertNewLineDown(HookParam param) {
|
void CMD_InsertNewLineDown() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
SaveCaretHistoryBeforeBeginEdit(active.buffer, active.view->carets);
|
SaveCaretHistoryBeforeBeginEdit(active.buffer, active.view->carets);
|
||||||
MoveCursorToSide(active.view, DIR_RIGHT);
|
MoveCursorToSide(active.view, DIR_RIGHT);
|
||||||
IndentedNewLine(active.view);
|
IndentedNewLine(active.view);
|
||||||
} RegisterCommand(CMD_InsertNewLineDown, "ctrl-enter");
|
} RegisterCommand(CMD_InsertNewLineDown, "ctrl-enter");
|
||||||
|
|
||||||
void CMD_NewLine(HookParam param) {
|
void CMD_NewLine() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
IndentedNewLine(active.view);
|
IndentedNewLine(active.view);
|
||||||
} RegisterCommand(CMD_NewLine, "enter | shift-enter");
|
} RegisterCommand(CMD_NewLine, "enter | shift-enter");
|
||||||
|
|
||||||
void CMD_CreateCaretOnNextFind(HookParam param) {
|
void CMD_CreateCaretOnNextFind() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
String16 string = GetString(active.buffer, active.view->carets[0].range);
|
String16 string = GetString(active.buffer, active.view->carets[0].range);
|
||||||
Caret caret = FindNext(active.buffer, string, active.view->carets[0]);
|
Caret caret = FindNext(active.buffer, string, active.view->carets[0]);
|
||||||
@@ -1412,17 +1401,17 @@ void CMD_CreateCaretOnNextFind(HookParam param) {
|
|||||||
MergeCarets(active.buffer, &active.view->carets);
|
MergeCarets(active.buffer, &active.view->carets);
|
||||||
} RegisterCommand(CMD_CreateCaretOnNextFind, "ctrl-d");
|
} RegisterCommand(CMD_CreateCaretOnNextFind, "ctrl-d");
|
||||||
|
|
||||||
void CMD_FocusWindow1(HookParam param) {
|
void CMD_FocusWindow1() {
|
||||||
NextActiveWindowID = GetOverlappingWindow({0,0}, GetWindow(ActiveWindowID))->id;
|
NextActiveWindowID = GetOverlappingWindow({0,0}, GetWindow(ActiveWindowID))->id;
|
||||||
} RegisterCommand(CMD_FocusWindow1, "ctrl-1");
|
} RegisterCommand(CMD_FocusWindow1, "ctrl-1");
|
||||||
|
|
||||||
void CMD_FocusWindow2(HookParam param) {
|
void CMD_FocusWindow2() {
|
||||||
Window *first = GetOverlappingWindow({0,0}, GetWindow(ActiveWindowID));
|
Window *first = GetOverlappingWindow({0,0}, GetWindow(ActiveWindowID));
|
||||||
Vec2I p = GetSideOfWindow(first, DIR_RIGHT);
|
Vec2I p = GetSideOfWindow(first, DIR_RIGHT);
|
||||||
NextActiveWindowID = GetOverlappingWindow(p, GetWindow(ActiveWindowID))->id;
|
NextActiveWindowID = GetOverlappingWindow(p, GetWindow(ActiveWindowID))->id;
|
||||||
} RegisterCommand(CMD_FocusWindow2, "ctrl-2");
|
} RegisterCommand(CMD_FocusWindow2, "ctrl-2");
|
||||||
|
|
||||||
void CMD_FocusWindow3(HookParam param) {
|
void CMD_FocusWindow3() {
|
||||||
Window *first = GetOverlappingWindow({0,0});
|
Window *first = GetOverlappingWindow({0,0});
|
||||||
if (first) {
|
if (first) {
|
||||||
Window *second = GetOverlappingWindow(GetSideOfWindow(first, DIR_RIGHT));
|
Window *second = GetOverlappingWindow(GetSideOfWindow(first, DIR_RIGHT));
|
||||||
@@ -1435,11 +1424,11 @@ void CMD_FocusWindow3(HookParam param) {
|
|||||||
}
|
}
|
||||||
} RegisterCommand(CMD_FocusWindow3, "ctrl-3");
|
} RegisterCommand(CMD_FocusWindow3, "ctrl-3");
|
||||||
|
|
||||||
void CMD_NewWindow(HookParam param) {
|
void CMD_NewWindow() {
|
||||||
CreateWind();
|
CreateWind();
|
||||||
} RegisterCommand(CMD_NewWindow, "ctrl-backslash");
|
} RegisterCommand(CMD_NewWindow, "ctrl-backslash");
|
||||||
|
|
||||||
void CMD_ClearCarets(HookParam param) {
|
void CMD_ClearCarets() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
active.view->carets.len = 1;
|
active.view->carets.len = 1;
|
||||||
active.view->carets[0] = MakeCaret(GetFront(active.view->carets[0]));
|
active.view->carets[0] = MakeCaret(GetFront(active.view->carets[0]));
|
||||||
@@ -1473,8 +1462,8 @@ void Coro_ReplaceAll(mco_coro *co) {
|
|||||||
|
|
||||||
Caret field_seek = FindNext(main.buffer, u"for::", MakeCaret(0));
|
Caret field_seek = FindNext(main.buffer, u"for::", MakeCaret(0));
|
||||||
main.view->carets[0] = FindNext(main.buffer, string, field_seek);
|
main.view->carets[0] = FindNext(main.buffer, string, field_seek);
|
||||||
AddCommand(&main.view->hooks, "Submit", "enter", [](HookParam param){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Submit";});
|
AddCommand(&main.view->commands, "Submit", "enter", [](){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Submit";});
|
||||||
AddCommand(&main.view->hooks, "Cancel", "escape", [](HookParam param){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Cancel";});
|
AddCommand(&main.view->commands, "Cancel", "escape", [](){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Cancel";});
|
||||||
|
|
||||||
String result = "Cancel";
|
String result = "Cancel";
|
||||||
for (;;) {
|
for (;;) {
|
||||||
@@ -1506,8 +1495,8 @@ void Coro_ReplaceAll(mco_coro *co) {
|
|||||||
|
|
||||||
Caret field_seek = FindNext(main.buffer, u"with::", MakeCaret(0));
|
Caret field_seek = FindNext(main.buffer, u"with::", MakeCaret(0));
|
||||||
main.view->carets[0] = MakeCaret(main.buffer->len, field_seek.range.max);
|
main.view->carets[0] = MakeCaret(main.buffer->len, field_seek.range.max);
|
||||||
AddCommand(&main.view->hooks, "Submit", "enter", [](HookParam param){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Submit";});
|
AddCommand(&main.view->commands, "Submit", "enter", [](){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Submit";});
|
||||||
AddCommand(&main.view->hooks, "Cancel", "escape", [](HookParam param){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Cancel";});
|
AddCommand(&main.view->commands, "Cancel", "escape", [](){BSet active = GetBSet(ActiveWindowID); active.view->hook_cmd = "Cancel";});
|
||||||
String result = "Cancel";
|
String result = "Cancel";
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (main.window->active_view != main.view->id || (main.window->id != PrimaryWindowID && main.window->id != ActiveWindowID) || main.window->close) {
|
if (main.window->active_view != main.view->id || (main.window->id != PrimaryWindowID && main.window->id != ActiveWindowID) || main.window->close) {
|
||||||
@@ -1544,7 +1533,7 @@ void Coro_ReplaceAll(mco_coro *co) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_ReplaceAll(HookParam param) {
|
void CMD_ReplaceAll() {
|
||||||
CoRemove("Coro_ReplaceAll");
|
CoRemove("Coro_ReplaceAll");
|
||||||
CoData *data = CoAdd(Coro_ReplaceAll);
|
CoData *data = CoAdd(Coro_ReplaceAll);
|
||||||
CoResume(data);
|
CoResume(data);
|
||||||
@@ -1615,7 +1604,7 @@ void UpdateSearchProjectView() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_SearchProject(HookParam param) {
|
void CMD_SearchProject() {
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
String16 string = {};
|
String16 string = {};
|
||||||
if (main.view->carets.len == 1 && GetSize(main.view->carets[0]) > 0) {
|
if (main.view->carets.len == 1 && GetSize(main.view->carets[0]) > 0) {
|
||||||
@@ -1626,7 +1615,7 @@ void CMD_SearchProject(HookParam param) {
|
|||||||
Buffer *search_project_buffer = GetBuffer(SearchProjectBufferID);
|
Buffer *search_project_buffer = GetBuffer(SearchProjectBufferID);
|
||||||
View *view = WindowOpenBufferView(main.window, search_project_buffer->name);
|
View *view = WindowOpenBufferView(main.window, search_project_buffer->name);
|
||||||
view->special = true;
|
view->special = true;
|
||||||
AddCommand(&view->hooks, "Open", "ctrl-q | enter | f12", [](HookParam param) {
|
AddCommand(&view->commands, "Open", "ctrl-q | enter | f12", []() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
NextActiveWindowID = main.window->id;
|
NextActiveWindowID = main.window->id;
|
||||||
|
|||||||
@@ -87,17 +87,17 @@ void ClipboardPaste(View *view) {
|
|||||||
EndEdit(buffer, &edits, &view->carets, KILL_SELECTION);
|
EndEdit(buffer, &edits, &view->carets, KILL_SELECTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_Paste(HookParam param) {
|
void CMD_Paste() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
ClipboardPaste(active.view);
|
ClipboardPaste(active.view);
|
||||||
} RegisterCommand(CMD_Paste, "ctrl-v");
|
} RegisterCommand(CMD_Paste, "ctrl-v");
|
||||||
|
|
||||||
void CMD_Copy(HookParam param) {
|
void CMD_Copy() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
ClipboardCopy(active.view);
|
ClipboardCopy(active.view);
|
||||||
} RegisterCommand(CMD_Copy, "ctrl-c");
|
} RegisterCommand(CMD_Copy, "ctrl-c");
|
||||||
|
|
||||||
void CMD_Cut(HookParam param) {
|
void CMD_Cut() {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
SaveCaretHistoryBeforeBeginEdit(active.buffer, active.view->carets);
|
SaveCaretHistoryBeforeBeginEdit(active.buffer, active.view->carets);
|
||||||
ClipboardCopy(active.view);
|
ClipboardCopy(active.view);
|
||||||
|
|||||||
@@ -284,12 +284,12 @@ void TestParser() {
|
|||||||
}
|
}
|
||||||
} RegisterFunction(&TestFunctions, TestParser);
|
} RegisterFunction(&TestFunctions, TestParser);
|
||||||
|
|
||||||
void CMD_OpenConfig(HookParam param) {
|
void CMD_OpenConfig() {
|
||||||
Buffer *buffer = GetBuffer(GlobalConfigBufferID);
|
Buffer *buffer = GetBuffer(GlobalConfigBufferID);
|
||||||
Open(buffer->name);
|
Open(buffer->name);
|
||||||
} RegisterCommand(CMD_OpenConfig, "", "Open the global config file");
|
} RegisterCommand(CMD_OpenConfig, "", "Open the global config file");
|
||||||
|
|
||||||
void CMD_OpenConfigOptions(HookParam param) {
|
void CMD_OpenConfigOptions() {
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
JumpTempBuffer(&main);
|
JumpTempBuffer(&main);
|
||||||
NextActiveWindowID = main.window->id;
|
NextActiveWindowID = main.window->id;
|
||||||
@@ -303,7 +303,7 @@ void CMD_OpenConfigOptions(HookParam param) {
|
|||||||
default: InvalidCodepath();
|
default: InvalidCodepath();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
For (GlobalHooks) {
|
For (GlobalCommands) {
|
||||||
RawAppendf(main.buffer, "\n:Set %-50S '%S'", it.name, it.binding);
|
RawAppendf(main.buffer, "\n:Set %-50S '%S'", it.name, it.binding);
|
||||||
}
|
}
|
||||||
} RegisterCommand(CMD_OpenConfigOptions, "", "List available variables and associated documentation inside the command window");
|
} RegisterCommand(CMD_OpenConfigOptions, "", "List available variables and associated documentation inside the command window");
|
||||||
@@ -334,7 +334,7 @@ void EvalCommandsLineByLine(BSet set) {
|
|||||||
NextActiveWindowID = save_next;
|
NextActiveWindowID = save_next;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_EvalCommandsLineByLine(HookParam param) {
|
void CMD_EvalCommandsLineByLine() {
|
||||||
BSet set = GetBSet(PrimaryWindowID);
|
BSet set = GetBSet(PrimaryWindowID);
|
||||||
EvalCommandsLineByLine(set);
|
EvalCommandsLineByLine(set);
|
||||||
} RegisterCommand(CMD_EvalCommandsLineByLine, "", "Goes line by line over a buffer and evaluates every line as a command, ignores empty or lines starting with '//'");
|
} RegisterCommand(CMD_EvalCommandsLineByLine, "", "Goes line by line over a buffer and evaluates every line as a command, ignores empty or lines starting with '//'");
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ void UpdateFuzzySearchView() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SetFuzzy(View *view) {
|
void SetFuzzy(View *view) {
|
||||||
AddCommand(&view->hooks, "Open", "ctrl-q | enter | f12", [](HookParam){
|
AddCommand(&view->commands, "Open", "ctrl-q | enter | f12", [](){
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
NextActiveWindowID = main.window->id;
|
NextActiveWindowID = main.window->id;
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ String Intern(InternTable *table, String string) {
|
|||||||
// optimize worst offenders (like event text)
|
// optimize worst offenders (like event text)
|
||||||
InternTable GlobalInternTable;
|
InternTable GlobalInternTable;
|
||||||
|
|
||||||
Array<Hook> GlobalHooks;
|
Array<Command> GlobalCommands;
|
||||||
Array<FunctionData> TestFunctions;
|
Array<FunctionData> TestFunctions;
|
||||||
Array<Variable> Variables;
|
Array<Variable> Variables;
|
||||||
|
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ BSet ExecBuild(String cmd) {
|
|||||||
return build;
|
return build;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_Build(HookParam param) {
|
void CMD_Build() {
|
||||||
CMD_SaveAll({});
|
CMD_SaveAll();
|
||||||
#if OS_WINDOWS
|
#if OS_WINDOWS
|
||||||
ExecBuild("build.bat");
|
ExecBuild("build.bat");
|
||||||
#else
|
#else
|
||||||
@@ -49,7 +49,7 @@ void CMD_Build(HookParam param) {
|
|||||||
main.window->visible = true;
|
main.window->visible = true;
|
||||||
} RegisterCommand(CMD_Build, "f1", "Run build.sh or build.bat in working directory, output is printed in a popup console and a special build buffer");
|
} RegisterCommand(CMD_Build, "f1", "Run build.sh or build.bat in working directory, output is printed in a popup console and a special build buffer");
|
||||||
|
|
||||||
void CMD_ShowBuildWindow(HookParam param) {
|
void CMD_ShowBuildWindow() {
|
||||||
BSet main = GetBSet(BuildWindowID);
|
BSet main = GetBSet(BuildWindowID);
|
||||||
if (ActiveWindowID != BuildWindowID) {
|
if (ActiveWindowID != BuildWindowID) {
|
||||||
main.window->visible = true;
|
main.window->visible = true;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
void CMD_ShowCommands(HookParam param) {
|
void CMD_ShowCommands() {
|
||||||
// @todo: maybe redo this, similar behavior but use View stored information
|
// @todo: maybe redo this, similar behavior but use View stored information
|
||||||
// if (ActiveWindowID == CommandWindowID && LastExecutedManualCommand == CMD_ShowCommands) {
|
// if (ActiveWindowID == CommandWindowID && LastExecutedManualCommand == CMD_ShowCommands) {
|
||||||
// NextActiveWindowID = PrimaryWindowID;
|
// NextActiveWindowID = PrimaryWindowID;
|
||||||
@@ -9,7 +9,7 @@ void CMD_ShowCommands(HookParam param) {
|
|||||||
command_bar.window->visible = true;
|
command_bar.window->visible = true;
|
||||||
NextActiveWindowID = command_bar.window->id;
|
NextActiveWindowID = command_bar.window->id;
|
||||||
ResetBuffer(command_bar.buffer);
|
ResetBuffer(command_bar.buffer);
|
||||||
For (GlobalHooks) {
|
For (GlobalCommands) {
|
||||||
if (it.name == "OpenCommand") {
|
if (it.name == "OpenCommand") {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -23,7 +23,7 @@ void CMD_ShowCommands(HookParam param) {
|
|||||||
SelectRange(command_bar.view, GetBufferBeginAsRange(command_bar.buffer));
|
SelectRange(command_bar.view, GetBufferBeginAsRange(command_bar.buffer));
|
||||||
} RegisterCommand(CMD_ShowCommands, "ctrl-shift-p", "List available commands and their documentation inside the command window");
|
} RegisterCommand(CMD_ShowCommands, "ctrl-shift-p", "List available commands and their documentation inside the command window");
|
||||||
|
|
||||||
void CMD_ShowDebugBufferList(HookParam param) {
|
void CMD_ShowDebugBufferList() {
|
||||||
// @todo: maybe redo this, similar behavior but use View stored information
|
// @todo: maybe redo this, similar behavior but use View stored information
|
||||||
// if (ActiveWindowID == CommandWindowID && LastExecutedManualCommand == CMD_ShowDebugBufferList) {
|
// if (ActiveWindowID == CommandWindowID && LastExecutedManualCommand == CMD_ShowDebugBufferList) {
|
||||||
// NextActiveWindowID = PrimaryWindowID;
|
// NextActiveWindowID = PrimaryWindowID;
|
||||||
@@ -45,7 +45,7 @@ void CMD_ShowDebugBufferList(HookParam param) {
|
|||||||
SelectRange(command_bar.view, GetBufferBeginAsRange(command_bar.buffer));
|
SelectRange(command_bar.view, GetBufferBeginAsRange(command_bar.buffer));
|
||||||
} RegisterCommand(CMD_ShowDebugBufferList, "ctrl-shift-alt-p", "Show full list of buffers, including the special ones that normally just clutter list");
|
} RegisterCommand(CMD_ShowDebugBufferList, "ctrl-shift-alt-p", "Show full list of buffers, including the special ones that normally just clutter list");
|
||||||
|
|
||||||
void CMD_ShowBufferList(HookParam param) {
|
void CMD_ShowBufferList() {
|
||||||
// @todo: maybe redo this, similar behavior but use View stored information
|
// @todo: maybe redo this, similar behavior but use View stored information
|
||||||
// if (ActiveWindowID == CommandWindowID && LastExecutedManualCommand == CMD_ShowBufferList) {
|
// if (ActiveWindowID == CommandWindowID && LastExecutedManualCommand == CMD_ShowBufferList) {
|
||||||
// NextActiveWindowID = PrimaryWindowID;
|
// NextActiveWindowID = PrimaryWindowID;
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ void UpdateDebugWindow() {
|
|||||||
RawAppendf(set.buffer, "int temp = %d\n", main.buffer->temp);
|
RawAppendf(set.buffer, "int temp = %d\n", main.buffer->temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_ToggleDebug(HookParam param) {
|
void CMD_ToggleDebug() {
|
||||||
Window *window = GetWindow(DebugWindowID);
|
Window *window = GetWindow(DebugWindowID);
|
||||||
window->visible = !window->visible;
|
window->visible = !window->visible;
|
||||||
} RegisterCommand(CMD_ToggleDebug, "ctrl-0", "Open a floating window that might become useful for debugging");
|
} RegisterCommand(CMD_ToggleDebug, "ctrl-0", "Open a floating window that might become useful for debugging");
|
||||||
|
|||||||
@@ -2156,7 +2156,7 @@ bool RDBG_InitConnection() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_StartDebugging(HookParam param) {
|
void CMD_StartDebugging() {
|
||||||
bool conn = RDBG_InitConnection();
|
bool conn = RDBG_InitConnection();
|
||||||
if (!conn) {
|
if (!conn) {
|
||||||
return;
|
return;
|
||||||
@@ -2194,7 +2194,7 @@ void CMD_StartDebugging(HookParam param) {
|
|||||||
}
|
}
|
||||||
} RegisterCommand(CMD_StartDebugging, "f5", "Start debugging, if debugger not active it starts it, uses BinaryUnderDebug");
|
} RegisterCommand(CMD_StartDebugging, "f5", "Start debugging, if debugger not active it starts it, uses BinaryUnderDebug");
|
||||||
|
|
||||||
void CMD_RunToLineInDebugger(HookParam param) {
|
void CMD_RunToLineInDebugger() {
|
||||||
bool conn = RDBG_InitConnection();
|
bool conn = RDBG_InitConnection();
|
||||||
if (!conn) {
|
if (!conn) {
|
||||||
return;
|
return;
|
||||||
@@ -2211,7 +2211,7 @@ void CMD_RunToLineInDebugger(HookParam param) {
|
|||||||
}
|
}
|
||||||
} RegisterCommand(CMD_RunToLineInDebugger, "ctrl-f10", "Instruct debugger to execute until line and column under caret");
|
} RegisterCommand(CMD_RunToLineInDebugger, "ctrl-f10", "Instruct debugger to execute until line and column under caret");
|
||||||
|
|
||||||
void CMD_StopDebugging(HookParam param) {
|
void CMD_StopDebugging() {
|
||||||
bool conn = RDBG_InitConnection();
|
bool conn = RDBG_InitConnection();
|
||||||
if (!conn) {
|
if (!conn) {
|
||||||
return;
|
return;
|
||||||
@@ -2226,7 +2226,7 @@ void CMD_StopDebugging(HookParam param) {
|
|||||||
}
|
}
|
||||||
} RegisterCommand(CMD_StopDebugging, "shift-f5", "Stop debugging");
|
} RegisterCommand(CMD_StopDebugging, "shift-f5", "Stop debugging");
|
||||||
|
|
||||||
void CMD_AddBreakpoint(HookParam param) {
|
void CMD_AddBreakpoint() {
|
||||||
if (!RDBG_InitConnection()) {
|
if (!RDBG_InitConnection()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
void CMD_Search(HookParam param) {
|
void CMD_Search() {
|
||||||
BSet main = GetBSet(ActiveWindowID);
|
BSet main = GetBSet(ActiveWindowID);
|
||||||
String16 string = {};
|
String16 string = {};
|
||||||
if (main.view->carets.len == 1 && GetSize(main.view->carets[0]) > 0) {
|
if (main.view->carets.len == 1 && GetSize(main.view->carets[0]) > 0) {
|
||||||
@@ -23,23 +23,23 @@ void SearchWindowFindNext(bool forward = true) {
|
|||||||
CenterView(PrimaryWindowID);
|
CenterView(PrimaryWindowID);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_SearchNextInSearch(HookParam param) {
|
void CMD_SearchNextInSearch() {
|
||||||
SearchWindowFindNext(true);
|
SearchWindowFindNext(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_SearchPrevInSearch(HookParam param) {
|
void CMD_SearchPrevInSearch() {
|
||||||
SearchWindowFindNext(false);
|
SearchWindowFindNext(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMD_SearchNext(HookParam param) {
|
void CMD_SearchNext() {
|
||||||
SearchWindowFindNext(true);
|
SearchWindowFindNext(true);
|
||||||
} RegisterCommand(CMD_SearchNext, "f3", "Go to the next occurence of the search window needle");
|
} RegisterCommand(CMD_SearchNext, "f3", "Go to the next occurence of the search window needle");
|
||||||
|
|
||||||
void CMD_SearchPrev(HookParam param) {
|
void CMD_SearchPrev() {
|
||||||
SearchWindowFindNext(false);
|
SearchWindowFindNext(false);
|
||||||
} RegisterCommand(CMD_SearchPrev, "shift-f3", "Go to the previous occurence of the search window needle");
|
} RegisterCommand(CMD_SearchPrev, "shift-f3", "Go to the previous occurence of the search window needle");
|
||||||
|
|
||||||
void CMD_SearchAll(HookParam param) {
|
void CMD_SearchAll() {
|
||||||
BSet main = GetBSet(PrimaryWindowID);
|
BSet main = GetBSet(PrimaryWindowID);
|
||||||
BSet set = GetBSet(SearchWindowID);
|
BSet set = GetBSet(SearchWindowID);
|
||||||
String16 needle = GetString(set.buffer, GetRange(set.buffer));
|
String16 needle = GetString(set.buffer, GetRange(set.buffer));
|
||||||
@@ -47,11 +47,11 @@ void CMD_SearchAll(HookParam param) {
|
|||||||
set.window->visible = false;
|
set.window->visible = false;
|
||||||
} RegisterCommand(CMD_SearchAll, "alt-f3", "Use the search window needle and seek all the possible occurences in current buffer");
|
} RegisterCommand(CMD_SearchAll, "alt-f3", "Use the search window needle and seek all the possible occurences in current buffer");
|
||||||
|
|
||||||
void CMD_ToggleCaseSensitiveSearch(HookParam param) {
|
void CMD_ToggleCaseSensitiveSearch() {
|
||||||
SearchCaseSensitive = !SearchCaseSensitive;
|
SearchCaseSensitive = !SearchCaseSensitive;
|
||||||
} RegisterCommand(CMD_ToggleCaseSensitiveSearch, "alt-c", "Text editor wide search toggle, should apply to most search things");
|
} RegisterCommand(CMD_ToggleCaseSensitiveSearch, "alt-c", "Text editor wide search toggle, should apply to most search things");
|
||||||
|
|
||||||
void CMD_ToggleSearchWordBoundary(HookParam param) {
|
void CMD_ToggleSearchWordBoundary() {
|
||||||
SearchWordBoundary = !SearchWordBoundary;
|
SearchWordBoundary = !SearchWordBoundary;
|
||||||
} RegisterCommand(CMD_ToggleSearchWordBoundary, "alt-w", "Text editor wide search toggle, should apply to most search things");
|
} RegisterCommand(CMD_ToggleSearchWordBoundary, "alt-w", "Text editor wide search toggle, should apply to most search things");
|
||||||
|
|
||||||
@@ -73,9 +73,9 @@ void InitSearchWindow() {
|
|||||||
window->visible = false;
|
window->visible = false;
|
||||||
window->lose_visibility_on_escape = true;
|
window->lose_visibility_on_escape = true;
|
||||||
window->jump_history = false;
|
window->jump_history = false;
|
||||||
AddCommand(&view->hooks, "SearchAll", "alt-enter", CMD_SearchAll);
|
AddCommand(&view->commands, "SearchAll", "alt-enter", CMD_SearchAll);
|
||||||
AddCommand(&view->hooks, "SearchPrevInSearch", "shift-enter", CMD_SearchPrevInSearch);
|
AddCommand(&view->commands, "SearchPrevInSearch", "shift-enter", CMD_SearchPrevInSearch);
|
||||||
AddCommand(&view->hooks, "SearchNextInSearch", "enter", CMD_SearchNextInSearch);
|
AddCommand(&view->commands, "SearchNextInSearch", "enter", CMD_SearchNextInSearch);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LayoutSearchWindow(Rect2I *rect, int16_t wx, int16_t wy) {
|
void LayoutSearchWindow(Rect2I *rect, int16_t wx, int16_t wy) {
|
||||||
|
|||||||
@@ -33,11 +33,11 @@
|
|||||||
#include "event.cpp"
|
#include "event.cpp"
|
||||||
#include "config.cpp"
|
#include "config.cpp"
|
||||||
#include "commands.cpp"
|
#include "commands.cpp"
|
||||||
#include "commands_clipboard.cpp"
|
|
||||||
#include "scratch.cpp"
|
#include "scratch.cpp"
|
||||||
#include "draw.cpp"
|
#include "draw.cpp"
|
||||||
#include "test/tests.cpp"
|
#include "test/tests.cpp"
|
||||||
|
|
||||||
|
#include "commands_clipboard.cpp"
|
||||||
#include "plugin_command_window.cpp"
|
#include "plugin_command_window.cpp"
|
||||||
#include "plugin_search_window.cpp"
|
#include "plugin_search_window.cpp"
|
||||||
#include "plugin_status_window.cpp"
|
#include "plugin_status_window.cpp"
|
||||||
@@ -410,20 +410,20 @@ void OnCommand(Event event) {
|
|||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
|
|
||||||
bool executed = false;
|
bool executed = false;
|
||||||
For (active.view->hooks) {
|
For (active.view->commands) {
|
||||||
if (it.trigger && MatchEvent(it.trigger, &event)) {
|
if (it.trigger && MatchEvent(it.trigger, &event)) {
|
||||||
ProfileScopeEx(it.name);
|
ProfileScopeEx(it.name);
|
||||||
it.function({});
|
it.function();
|
||||||
executed = true;
|
executed = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (executed == false) {
|
if (executed == false) {
|
||||||
For (GlobalHooks) {
|
For (GlobalCommands) {
|
||||||
if (it.trigger && MatchEvent(it.trigger, &event)) {
|
if (it.trigger && MatchEvent(it.trigger, &event)) {
|
||||||
ProfileScopeEx(it.name);
|
ProfileScopeEx(it.name);
|
||||||
it.function(HookParam{});
|
it.function();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -438,7 +438,7 @@ void OnCommand(Event event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (event.kind == EVENT_QUIT) {
|
if (event.kind == EVENT_QUIT) {
|
||||||
CMD_Quit({});
|
CMD_Quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
IF_DEBUG(AssertRanges(main.view->carets));
|
IF_DEBUG(AssertRanges(main.view->carets));
|
||||||
@@ -447,17 +447,17 @@ void OnCommand(Event event) {
|
|||||||
|
|
||||||
void EvalCommand(String command) {
|
void EvalCommand(String command) {
|
||||||
BSet active = GetBSet(ActiveWindowID);
|
BSet active = GetBSet(ActiveWindowID);
|
||||||
For (active.view->hooks) {
|
For (active.view->commands) {
|
||||||
if (it.name == command) {
|
if (it.name == command) {
|
||||||
ProfileScopeEx(it.name);
|
ProfileScopeEx(it.name);
|
||||||
it.function({});
|
it.function();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
For (GlobalHooks) {
|
For (GlobalCommands) {
|
||||||
if (it.name == command) {
|
if (it.name == command) {
|
||||||
ProfileScopeEx(it.name);
|
ProfileScopeEx(it.name);
|
||||||
it.function({});
|
it.function();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -519,7 +519,7 @@ void GarbageCollect() {
|
|||||||
|
|
||||||
RawAppendf(GCInfoBuffer, "View %d %S\n", (int)it->id.id, buffer ? buffer->name : String{"NULL"});
|
RawAppendf(GCInfoBuffer, "View %d %S\n", (int)it->id.id, buffer ? buffer->name : String{"NULL"});
|
||||||
remove_item = true;
|
remove_item = true;
|
||||||
Dealloc(&it->hooks);
|
Dealloc(&it->commands);
|
||||||
Dealloc(it);
|
Dealloc(it);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -556,7 +556,7 @@ void GarbageCollect() {
|
|||||||
RawAppendf(GCInfoBuffer, "Wind %d %d %d %d %d\n", (int)it->id.id, (int)it->total_rect.min.x, (int)it->total_rect.min.y, (int)it->total_rect.max.x, (int)it->total_rect.max.y);
|
RawAppendf(GCInfoBuffer, "Wind %d %d %d %d %d\n", (int)it->id.id, (int)it->total_rect.min.x, (int)it->total_rect.min.y, (int)it->total_rect.max.x, (int)it->total_rect.max.y);
|
||||||
Dealloc(&it->goto_history);
|
Dealloc(&it->goto_history);
|
||||||
Dealloc(&it->goto_redo);
|
Dealloc(&it->goto_redo);
|
||||||
Dealloc(&it->hooks);
|
Dealloc(&it->commands);
|
||||||
Dealloc(sys_allocator, it);
|
Dealloc(sys_allocator, it);
|
||||||
remove_item = true;
|
remove_item = true;
|
||||||
} else {
|
} else {
|
||||||
@@ -922,7 +922,7 @@ int main(int argc, char **argv)
|
|||||||
CreateWind();
|
CreateWind();
|
||||||
InitOS(ReportWarningf);
|
InitOS(ReportWarningf);
|
||||||
|
|
||||||
For (GlobalHooks) {
|
For (GlobalCommands) {
|
||||||
if (it.binding.len != 0) {
|
if (it.binding.len != 0) {
|
||||||
it.trigger = ParseKeyCached(it.binding);
|
it.trigger = ParseKeyCached(it.binding);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,31 +25,11 @@ struct HistoryEntry {
|
|||||||
double time;
|
double time;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HookKind {
|
typedef void CMDFunction();
|
||||||
HookKind_Invalid,
|
struct Command {
|
||||||
HookKind_Command,
|
|
||||||
};
|
|
||||||
|
|
||||||
// Global hooks, per (window, view, buffer) hooks
|
|
||||||
|
|
||||||
struct HookParam {
|
|
||||||
union {
|
|
||||||
Buffer *buffer;
|
|
||||||
struct {
|
|
||||||
Window *window;
|
|
||||||
Rect2I *rect;
|
|
||||||
int16_t wx;
|
|
||||||
int16_t wy;
|
|
||||||
} layout;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef void HookFunction(HookParam param);
|
|
||||||
struct Hook {
|
|
||||||
HookKind kind;
|
|
||||||
String name;
|
String name;
|
||||||
String docs;
|
String docs;
|
||||||
HookFunction *function;
|
CMDFunction *function;
|
||||||
String binding;
|
String binding;
|
||||||
struct Trigger *trigger;
|
struct Trigger *trigger;
|
||||||
};
|
};
|
||||||
@@ -73,7 +53,7 @@ struct Buffer {
|
|||||||
Array<HistoryEntry> undo_stack;
|
Array<HistoryEntry> undo_stack;
|
||||||
Array<HistoryEntry> redo_stack;
|
Array<HistoryEntry> redo_stack;
|
||||||
int edit_phase;
|
int edit_phase;
|
||||||
Array<Hook> hooks;
|
Array<Command> commands;
|
||||||
struct {
|
struct {
|
||||||
uint32_t no_history : 1;
|
uint32_t no_history : 1;
|
||||||
uint32_t no_line_starts : 1;
|
uint32_t no_line_starts : 1;
|
||||||
@@ -98,7 +78,7 @@ struct View {
|
|||||||
bool update_scroll;
|
bool update_scroll;
|
||||||
|
|
||||||
String hook_cmd;
|
String hook_cmd;
|
||||||
Array<Hook> hooks;
|
Array<Command> commands;
|
||||||
Function *update_hook;
|
Function *update_hook;
|
||||||
uint64_t prev_search_line_hash;
|
uint64_t prev_search_line_hash;
|
||||||
struct {
|
struct {
|
||||||
@@ -136,7 +116,7 @@ struct Window {
|
|||||||
ViewID active_goto_list;
|
ViewID active_goto_list;
|
||||||
Int goto_list_pos;
|
Int goto_list_pos;
|
||||||
|
|
||||||
Array<Hook> hooks;
|
Array<Command> commands;
|
||||||
struct {
|
struct {
|
||||||
uint32_t draw_scrollbar : 1;
|
uint32_t draw_scrollbar : 1;
|
||||||
uint32_t draw_line_numbers : 1;
|
uint32_t draw_line_numbers : 1;
|
||||||
@@ -280,24 +260,21 @@ struct ResolvedOpen {
|
|||||||
bool existing_buffer;
|
bool existing_buffer;
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddHook(Array<Hook> *arr, HookKind kind, String name, String binding, HookFunction *function);
|
void AddCommand(Array<Command> *arr, String name, String binding, CMDFunction *function);
|
||||||
void AddCommand(Array<Hook> *arr, String name, String binding, HookFunction *function);
|
#define RegisterCommand(name, ...) Register_Command RC__##name(&GlobalCommands, name, #name, __VA_ARGS__)
|
||||||
#define RegisterCommand(name, ...) Register_Command RC__##name(&GlobalHooks, HookKind_Command, name, #name, __VA_ARGS__)
|
|
||||||
#define RegisterHook(name, kind, bindings, docs) Register_Command RC__##name(&GlobalHooks, kind, name, #name, bindings, docs)
|
|
||||||
struct Register_Command {
|
struct Register_Command {
|
||||||
Register_Command(Array<Hook> *funcs, HookKind kind, HookFunction *function, String name, String binding, String docs = "") {
|
Register_Command(Array<Command> *funcs, CMDFunction *function, String name, String binding, String docs = "") {
|
||||||
int64_t pos = 0;
|
int64_t pos = 0;
|
||||||
if (Seek(name, "_", &pos, 0)) {
|
if (Seek(name, "_", &pos, 0)) {
|
||||||
name = Skip(name, pos + 1);
|
name = Skip(name, pos + 1);
|
||||||
}
|
}
|
||||||
Hook hook = {};
|
Command cmd = {};
|
||||||
hook.kind = kind;
|
cmd.name = name;
|
||||||
hook.name = name;
|
cmd.binding = binding;
|
||||||
hook.binding = binding;
|
cmd.function = function;
|
||||||
hook.function = function;
|
cmd.docs = docs;
|
||||||
hook.docs = docs;
|
|
||||||
Reserve(funcs, 512);
|
Reserve(funcs, 512);
|
||||||
Add(funcs, hook);
|
Add(funcs, cmd);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ API View *CreateView(BufferID active_buffer) {
|
|||||||
view->id = AllocViewID(view);
|
view->id = AllocViewID(view);
|
||||||
view->active_buffer = active_buffer;
|
view->active_buffer = active_buffer;
|
||||||
view->carets.allocator = al;
|
view->carets.allocator = al;
|
||||||
view->hooks.allocator = al;
|
view->commands.allocator = al;
|
||||||
Add(&view->carets, {0, 0});
|
Add(&view->carets, {0, 0});
|
||||||
Add(&Views, view);
|
Add(&Views, view);
|
||||||
return view;
|
return view;
|
||||||
@@ -16,7 +16,7 @@ API View *CreateView(BufferID active_buffer) {
|
|||||||
|
|
||||||
void Dealloc(View *view) {
|
void Dealloc(View *view) {
|
||||||
Dealloc(&view->carets);
|
Dealloc(&view->carets);
|
||||||
Dealloc(&view->hooks);
|
Dealloc(&view->commands);
|
||||||
Dealloc(view->carets.allocator, view);
|
Dealloc(view->carets.allocator, view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user