diff --git a/src/text_editor/buffer.cpp b/src/text_editor/buffer.cpp index 1ed89ef..16e7198 100644 --- a/src/text_editor/buffer.cpp +++ b/src/text_editor/buffer.cpp @@ -1553,7 +1553,7 @@ void SaveBuffer(Buffer *buffer) { ProfileFunction(); For (GlobalHooks) { - if (it.kind == HookKind_BeforeBufferSave) { + if (it.kind == HookKind_BeforeSavingBuffer) { ProfileScopeEx(it.name); HookParam param = {}; param.buffer = buffer; diff --git a/src/text_editor/commands.cpp b/src/text_editor/commands.cpp index fbbd7c7..2eea3a9 100644 --- a/src/text_editor/commands.cpp +++ b/src/text_editor/commands.cpp @@ -295,7 +295,7 @@ void HOOK_TrimTrailingWhitespace(HookParam param) { if (TrimTrailingWhitespace) { TrimWhitespace(param.buffer, false); } -} RegisterHook(HOOK_TrimTrailingWhitespace, HookKind_BeforeBufferSave, "", "Cleans trailing whitespace before saving to file"); +} RegisterHook(HOOK_TrimTrailingWhitespace, HookKind_BeforeSavingBuffer, "", "Cleans trailing whitespace before saving to file"); void ConvertLineEndingsToLF(Buffer *buffer, bool trim_lines_with_caret = false) { Scratch scratch; diff --git a/src/text_editor/text_editor.h b/src/text_editor/text_editor.h index 90b8911..6b12f57 100644 --- a/src/text_editor/text_editor.h +++ b/src/text_editor/text_editor.h @@ -39,10 +39,15 @@ enum HookKind { // How can this be expanded? // - Changing the layout algorithm: this seems like a decent one // - What beside that? - HookKind_LayoutWindow, - HookKind_RenderWindow, + HookKind_HandleWindowLayout, - HookKind_BeforeBufferSave, + // Move the special window rendering to hooks? + // HookKind_RenderWindow, + // HookKind_CreateWindow, + + // How to handle formatters for multiple languages and other saving rules??? + HookKind_BeforeSavingBuffer, + HookKind_CreateBuffer, // HookKind_BufferSave, // HookKind_AfterBufferSave, @@ -52,6 +57,8 @@ enum HookKind { // HookKind_BufferOpen, // HookKind_AfterBufferOpen, + HookKind_CreateView, + }; // Global hooks, per (window, view, buffer) hooks diff --git a/src/text_editor/window.cpp b/src/text_editor/window.cpp index fd0acfa..125e8cd 100644 --- a/src/text_editor/window.cpp +++ b/src/text_editor/window.cpp @@ -140,7 +140,7 @@ void LayoutWindows(int16_t wx, int16_t wy) { ForItem (n, Windows) { ForItem (hook, n->hooks) { - if (hook.kind == HookKind_LayoutWindow) { + if (hook.kind == HookKind_HandleWindowLayout) { ProfileScopeEx(it.name); HookParam param = {}; param.layout.window = n; diff --git a/src/text_editor/window_build.cpp b/src/text_editor/window_build.cpp index e090bcf..f3bfd0f 100644 --- a/src/text_editor/window_build.cpp +++ b/src/text_editor/window_build.cpp @@ -35,5 +35,5 @@ void InitBuildWindow(HookParam param) { window->visible = false; window->lose_visibility_on_escape = true; window->jump_history = false; - AddHook(&window->hooks, HookKind_LayoutWindow, "LayoutBuildWindow", "", LayoutBuildWindow); + AddHook(&window->hooks, HookKind_HandleWindowLayout, "LayoutBuildWindow", "", LayoutBuildWindow); } RegisterHook(InitBuildWindow, HookKind_AppInit, "", "Init the build window"); diff --git a/src/text_editor/window_command.cpp b/src/text_editor/window_command.cpp index 9daef48..4fd5377 100644 --- a/src/text_editor/window_command.cpp +++ b/src/text_editor/window_command.cpp @@ -248,5 +248,5 @@ void InitCommandWindow(HookParam param) { window->sync_visibility_with_focus = true; window->lose_focus_on_escape = true; window->jump_history = false; - AddHook(&window->hooks, HookKind_LayoutWindow, "LayoutCommandWindow", "", LayoutCommandWindow); + AddHook(&window->hooks, HookKind_HandleWindowLayout, "LayoutCommandWindow", "", LayoutCommandWindow); } RegisterHook(InitCommandWindow, HookKind_AppInit, "", "Init command window"); diff --git a/src/text_editor/window_debug.cpp b/src/text_editor/window_debug.cpp index 63fc968..ff3b828 100644 --- a/src/text_editor/window_debug.cpp +++ b/src/text_editor/window_debug.cpp @@ -78,7 +78,7 @@ void InitDebugWindow(HookParam param) { window->active_view = view->id; window->visible = false; - AddHook(&window->hooks, HookKind_LayoutWindow, "@todo: LayoutDebugWindow", "", LayoutDebugWindow); + AddHook(&window->hooks, HookKind_HandleWindowLayout, "@todo: LayoutDebugWindow", "", LayoutDebugWindow); } RegisterHook(InitDebugWindow, HookKind_AppInit, "", "Init the debug window"); void CMD_ToggleDebug(HookParam param) { diff --git a/src/text_editor/window_search.cpp b/src/text_editor/window_search.cpp index 682ebad..b149927 100644 --- a/src/text_editor/window_search.cpp +++ b/src/text_editor/window_search.cpp @@ -99,5 +99,5 @@ void InitSearchWindow(HookParam param) { AddCommand(&view->hooks, "SearchAll", "alt-enter", CMD_SearchAll); AddCommand(&view->hooks, "SearchPrevInSearch", "shift-enter", CMD_SearchPrevInSearch); AddCommand(&view->hooks, "SearchNextInSearch", "enter", CMD_SearchNextInSearch); - AddHook(&window->hooks, HookKind_LayoutWindow, "LayoutSearchWindow", "", LayoutSearchWindow); + AddHook(&window->hooks, HookKind_HandleWindowLayout, "LayoutSearchWindow", "", LayoutSearchWindow); } RegisterHook(InitSearchWindow, HookKind_AppInit, "", "Init the search window"); diff --git a/src/text_editor/window_status.cpp b/src/text_editor/window_status.cpp index fa558e6..996be4f 100644 --- a/src/text_editor/window_status.cpp +++ b/src/text_editor/window_status.cpp @@ -77,7 +77,7 @@ void LayoutStatusWindow(HookParam param) { } Int barsize = GetExpandingBarSize(p.window); p.window->document_rect = p.window->total_rect = CutBottom(p.rect, barsize); -} RegisterHook(LayoutStatusWindow, HookKind_LayoutWindow, "", "Layout the status window"); +} RegisterHook(LayoutStatusWindow, HookKind_HandleWindowLayout, "", "Layout the status window"); void StatusWindowInit(HookParam param) { Window *window = CreateWind(); @@ -95,5 +95,5 @@ void StatusWindowInit(HookParam param) { window->primary = false; window->jump_history = false; window->lose_focus_on_escape = true; - AddHook(&window->hooks, HookKind_LayoutWindow, "@todo LayoutStatusWindow", "", LayoutStatusWindow); + AddHook(&window->hooks, HookKind_HandleWindowLayout, "@todo LayoutStatusWindow", "", LayoutStatusWindow); } RegisterHook(StatusWindowInit, HookKind_AppInit, "", "Init the status window"); \ No newline at end of file