add dedicated open tab command as a fast path for all tab commands, simplify/streamline new tab menu

This commit is contained in:
Ryan Fleury
2025-04-25 10:04:42 -07:00
parent 0ed951e537
commit 33362d91a0
4 changed files with 43 additions and 59 deletions
+7 -5
View File
@@ -52,7 +52,7 @@ str8_lit_comp(""),
str8_lit_comp(""), str8_lit_comp(""),
}; };
RD_VocabInfo rd_vocab_info_table[315] = RD_VocabInfo rd_vocab_info_table[316] =
{ {
{str8_lit_comp("auto_view_rule"), str8_lit_comp("auto_view_rules"), str8_lit_comp("Auto View Rule"), str8_lit_comp("Auto View Rules"), RD_IconKind_Binoculars}, {str8_lit_comp("auto_view_rule"), str8_lit_comp("auto_view_rules"), str8_lit_comp("Auto View Rule"), str8_lit_comp("Auto View Rules"), RD_IconKind_Binoculars},
{str8_lit_comp("file_path_map"), str8_lit_comp("file_path_maps"), str8_lit_comp("File Path Map"), str8_lit_comp("File Path Maps"), RD_IconKind_FileOutline}, {str8_lit_comp("file_path_map"), str8_lit_comp("file_path_maps"), str8_lit_comp("File Path Map"), str8_lit_comp("File Path Maps"), RD_IconKind_FileOutline},
@@ -236,7 +236,8 @@ RD_VocabInfo rd_vocab_info_table[315] =
{str8_lit_comp("prev_tab"), str8_lit_comp(""), str8_lit_comp("Focus Previous Tab"), str8_lit_comp(""), RD_IconKind_LeftArrow}, {str8_lit_comp("prev_tab"), str8_lit_comp(""), str8_lit_comp("Focus Previous Tab"), str8_lit_comp(""), RD_IconKind_LeftArrow},
{str8_lit_comp("move_tab_right"), str8_lit_comp(""), str8_lit_comp("Move Tab Right"), str8_lit_comp(""), RD_IconKind_RightArrow}, {str8_lit_comp("move_tab_right"), str8_lit_comp(""), str8_lit_comp("Move Tab Right"), str8_lit_comp(""), RD_IconKind_RightArrow},
{str8_lit_comp("move_tab_left"), str8_lit_comp(""), str8_lit_comp("Move Tab Left"), str8_lit_comp(""), RD_IconKind_LeftArrow}, {str8_lit_comp("move_tab_left"), str8_lit_comp(""), str8_lit_comp("Move Tab Left"), str8_lit_comp(""), RD_IconKind_LeftArrow},
{str8_lit_comp("open_tab"), str8_lit_comp(""), str8_lit_comp("Open Tab"), str8_lit_comp(""), RD_IconKind_Null}, {str8_lit_comp("open_tab"), str8_lit_comp(""), str8_lit_comp("Open New Tab"), str8_lit_comp(""), RD_IconKind_Null},
{str8_lit_comp("build_tab"), str8_lit_comp(""), str8_lit_comp("Build Tab"), str8_lit_comp(""), RD_IconKind_Null},
{str8_lit_comp("duplicate_tab"), str8_lit_comp(""), str8_lit_comp("Duplicate Tab"), str8_lit_comp(""), RD_IconKind_Duplicate}, {str8_lit_comp("duplicate_tab"), str8_lit_comp(""), str8_lit_comp("Duplicate Tab"), str8_lit_comp(""), RD_IconKind_Duplicate},
{str8_lit_comp("close_tab"), str8_lit_comp(""), str8_lit_comp("Close Tab"), str8_lit_comp(""), RD_IconKind_X}, {str8_lit_comp("close_tab"), str8_lit_comp(""), str8_lit_comp("Close Tab"), str8_lit_comp(""), RD_IconKind_X},
{str8_lit_comp("move_tab"), str8_lit_comp(""), str8_lit_comp("Move Tab"), str8_lit_comp(""), RD_IconKind_Null}, {str8_lit_comp("move_tab"), str8_lit_comp(""), str8_lit_comp("Move Tab"), str8_lit_comp(""), RD_IconKind_Null},
@@ -442,7 +443,7 @@ Rng1U64 rd_reg_slot_range_table[42] =
{OffsetOf(RD_Regs, os_event), OffsetOf(RD_Regs, os_event) + sizeof(OS_Event *)}, {OffsetOf(RD_Regs, os_event), OffsetOf(RD_Regs, os_event) + sizeof(OS_Event *)},
}; };
RD_CmdKindInfo rd_cmd_kind_info_table[211] = RD_CmdKindInfo rd_cmd_kind_info_table[212] =
{ {
{0}, {0},
{ str8_lit_comp("launch_and_run"), str8_lit_comp("Starts debugging a new instance of a target, then runs."), str8_lit_comp("launch,start,run,target"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("launch_and_run"), str8_lit_comp("Starts debugging a new instance of a target, then runs."), str8_lit_comp("launch,start,run,target"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}},
@@ -522,7 +523,8 @@ RD_CmdKindInfo rd_cmd_kind_info_table[211] =
{ str8_lit_comp("prev_tab"), str8_lit_comp("Focuses the previous tab on the active panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("prev_tab"), str8_lit_comp("Focuses the previous tab on the active panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}},
{ str8_lit_comp("move_tab_right"), str8_lit_comp("Moves the selected tab right one slot."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("move_tab_right"), str8_lit_comp("Moves the selected tab right one slot."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}},
{ str8_lit_comp("move_tab_left"), str8_lit_comp("Moves the selected tab left one slot."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("move_tab_left"), str8_lit_comp("Moves the selected tab left one slot."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}},
{ str8_lit_comp("open_tab"), str8_lit_comp("Opens a new tab with the parameterized view specification."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("open_tab"), str8_lit_comp("Opens a new tab."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_CmdName, str8_lit_comp("query:tab_commands"), str8_lit_comp("commands"), CTRL_EntityKind_Null}},
{ str8_lit_comp("build_tab"), str8_lit_comp("Opens a new tab with the parameterized view specification."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}},
{ str8_lit_comp("duplicate_tab"), str8_lit_comp("Duplicates a tab."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_View, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("duplicate_tab"), str8_lit_comp("Duplicates a tab."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_View, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}},
{ str8_lit_comp("close_tab"), str8_lit_comp("Closes the currently opened tab."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_View, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("close_tab"), str8_lit_comp("Closes the currently opened tab."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_View, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}},
{ str8_lit_comp("move_tab"), str8_lit_comp("Moves a tab to a new panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, { str8_lit_comp("move_tab"), str8_lit_comp("Moves a tab to a new panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}},
@@ -698,6 +700,7 @@ struct {String8 string; RD_Binding binding;} rd_default_binding_table[108] =
{str8_lit_comp("close_tab"), {OS_Key_W, 0 |OS_Modifier_Ctrl }}, {str8_lit_comp("close_tab"), {OS_Key_W, 0 |OS_Modifier_Ctrl }},
{str8_lit_comp("tab_bar_top"), {OS_Key_Up, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift |OS_Modifier_Alt}}, {str8_lit_comp("tab_bar_top"), {OS_Key_Up, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift |OS_Modifier_Alt}},
{str8_lit_comp("tab_bar_bottom"), {OS_Key_Down, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift |OS_Modifier_Alt}}, {str8_lit_comp("tab_bar_bottom"), {OS_Key_Down, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift |OS_Modifier_Alt}},
{str8_lit_comp("open_tab"), {OS_Key_T, 0 |OS_Modifier_Ctrl }},
{str8_lit_comp("open"), {OS_Key_O, 0 |OS_Modifier_Ctrl }}, {str8_lit_comp("open"), {OS_Key_O, 0 |OS_Modifier_Ctrl }},
{str8_lit_comp("reload_active"), {OS_Key_R, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, {str8_lit_comp("reload_active"), {OS_Key_R, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }},
{str8_lit_comp("switch"), {OS_Key_I, 0 |OS_Modifier_Ctrl }}, {str8_lit_comp("switch"), {OS_Key_I, 0 |OS_Modifier_Ctrl }},
@@ -761,7 +764,6 @@ struct {String8 string; RD_Binding binding;} rd_default_binding_table[108] =
{str8_lit_comp("toggle_watch_expr_at_mouse"), {OS_Key_D, 0 |OS_Modifier_Ctrl }}, {str8_lit_comp("toggle_watch_expr_at_mouse"), {OS_Key_D, 0 |OS_Modifier_Ctrl }},
{str8_lit_comp("toggle_watch_pin"), {OS_Key_F9, 0 |OS_Modifier_Ctrl }}, {str8_lit_comp("toggle_watch_pin"), {OS_Key_F9, 0 |OS_Modifier_Ctrl }},
{str8_lit_comp("toggle_breakpoint"), {OS_Key_F9, 0 }}, {str8_lit_comp("toggle_breakpoint"), {OS_Key_F9, 0 }},
{str8_lit_comp("add_target"), {OS_Key_T, 0 |OS_Modifier_Ctrl }},
{str8_lit_comp("attach"), {OS_Key_F6, 0 |OS_Modifier_Shift }}, {str8_lit_comp("attach"), {OS_Key_F6, 0 |OS_Modifier_Shift }},
{str8_lit_comp("open_palette"), {OS_Key_F1, 0 }}, {str8_lit_comp("open_palette"), {OS_Key_F1, 0 }},
{str8_lit_comp("open_palette"), {OS_Key_P, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, {str8_lit_comp("open_palette"), {OS_Key_P, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }},
+2 -1
View File
@@ -134,6 +134,7 @@ RD_CmdKind_PrevTab,
RD_CmdKind_MoveTabRight, RD_CmdKind_MoveTabRight,
RD_CmdKind_MoveTabLeft, RD_CmdKind_MoveTabLeft,
RD_CmdKind_OpenTab, RD_CmdKind_OpenTab,
RD_CmdKind_BuildTab,
RD_CmdKind_DuplicateTab, RD_CmdKind_DuplicateTab,
RD_CmdKind_CloseTab, RD_CmdKind_CloseTab,
RD_CmdKind_MoveTab, RD_CmdKind_MoveTab,
@@ -667,7 +668,7 @@ Z(getting_started)\
C_LINKAGE_BEGIN C_LINKAGE_BEGIN
extern String8 rd_tab_fast_path_view_name_table[20]; extern String8 rd_tab_fast_path_view_name_table[20];
extern String8 rd_tab_fast_path_query_name_table[20]; extern String8 rd_tab_fast_path_query_name_table[20];
extern RD_VocabInfo rd_vocab_info_table[315]; extern RD_VocabInfo rd_vocab_info_table[316];
extern RD_NameSchemaInfo rd_name_schema_info_table[21]; extern RD_NameSchemaInfo rd_name_schema_info_table[21];
extern Rng1U64 rd_reg_slot_range_table[42]; extern Rng1U64 rd_reg_slot_range_table[42];
extern String8 rd_binding_version_remap_old_name_table[8]; extern String8 rd_binding_version_remap_old_name_table[8];
+3 -4
View File
@@ -683,7 +683,8 @@ RD_CmdTable: // | | | |
{PrevTab 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 LeftArrow "prev_tab" "Focus Previous Tab" "Focuses the previous tab on the active panel." "" "" } {PrevTab 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 LeftArrow "prev_tab" "Focus Previous Tab" "Focuses the previous tab on the active panel." "" "" }
{MoveTabRight 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 RightArrow "move_tab_right" "Move Tab Right" "Moves the selected tab right one slot." "" "$tab," } {MoveTabRight 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 RightArrow "move_tab_right" "Move Tab Right" "Moves the selected tab right one slot." "" "$tab," }
{MoveTabLeft 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 LeftArrow "move_tab_left" "Move Tab Left" "Moves the selected tab left one slot." "" "$tab," } {MoveTabLeft 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 LeftArrow "move_tab_left" "Move Tab Left" "Moves the selected tab left one slot." "" "$tab," }
{OpenTab 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "open_tab" "Open Tab" "Opens a new tab with the parameterized view specification." "" "" } {OpenTab 1 1 0 0 "query:tab_commands" CmdName commands Nil Null 0 0 0 0 0 1 1 Null "open_tab" "Open New Tab" "Opens a new tab." "" "" }
{BuildTab 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "build_tab" "Build Tab" "Opens a new tab with the parameterized view specification." "" "" }
{DuplicateTab 1 1 0 0 "" View null Nil Null 0 0 0 0 0 0 0 Duplicate "duplicate_tab" "Duplicate Tab" "Duplicates a tab." "" "$tab," } {DuplicateTab 1 1 0 0 "" View null Nil Null 0 0 0 0 0 0 0 Duplicate "duplicate_tab" "Duplicate Tab" "Duplicates a tab." "" "$tab," }
{CloseTab 1 1 0 0 "" View null Nil Null 0 0 0 0 0 0 0 X "close_tab" "Close Tab" "Closes the currently opened tab." "" "$tab," } {CloseTab 1 1 0 0 "" View null Nil Null 0 0 0 0 0 0 0 X "close_tab" "Close Tab" "Closes the currently opened tab." "" "$tab," }
{MoveTab 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_tab" "Move Tab" "Moves a tab to a new panel." "" "" } {MoveTab 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_tab" "Move Tab" "Moves a tab to a new panel." "" "" }
@@ -956,6 +957,7 @@ RD_DefaultBindingTable:
{ "close_tab" W ctrl 0 0 } { "close_tab" W ctrl 0 0 }
{ "tab_bar_top" Up ctrl shift alt } { "tab_bar_top" Up ctrl shift alt }
{ "tab_bar_bottom" Down ctrl shift alt } { "tab_bar_bottom" Down ctrl shift alt }
{ "open_tab" T ctrl 0 0 }
//- rjf: files //- rjf: files
{ "open" O ctrl 0 0 } { "open" O ctrl 0 0 }
@@ -1038,9 +1040,6 @@ RD_DefaultBindingTable:
//- rjf: breakpoints //- rjf: breakpoints
{ "toggle_breakpoint" F9 0 0 0 } { "toggle_breakpoint" F9 0 0 0 }
//- rjf: targets
{ "add_target" T ctrl 0 0 }
//- rjf: attaching //- rjf: attaching
{ "attach" F6 0 shift 0 } { "attach" F6 0 shift 0 }
+31 -49
View File
@@ -3100,6 +3100,11 @@ rd_view_ui(Rng2F32 rect)
U64 pid = eval.value.u128.u64[0]; U64 pid = eval.value.u128.u64[0];
rd_cmd(RD_CmdKind_CompleteQuery, .pid = pid); rd_cmd(RD_CmdKind_CompleteQuery, .pid = pid);
}break; }break;
case RD_EvalSpaceKind_MetaCmd:
{
String8 cmd_name = rd_cmd_name_from_eval(eval);
rd_cmd(RD_CmdKind_CompleteQuery, .cmd_name = cmd_name);
}break;
} }
// rjf: if we do not have a specific command, then we can just // rjf: if we do not have a specific command, then we can just
@@ -6820,9 +6825,6 @@ rd_window_frame(void)
rd_cmd_kind_info_table[RD_CmdKind_RotatePanelColumns].string, rd_cmd_kind_info_table[RD_CmdKind_RotatePanelColumns].string,
rd_cmd_kind_info_table[RD_CmdKind_NextPanel].string, rd_cmd_kind_info_table[RD_CmdKind_NextPanel].string,
rd_cmd_kind_info_table[RD_CmdKind_PrevPanel].string, rd_cmd_kind_info_table[RD_CmdKind_PrevPanel].string,
rd_cmd_kind_info_table[RD_CmdKind_CloseTab].string,
rd_cmd_kind_info_table[RD_CmdKind_NextTab].string,
rd_cmd_kind_info_table[RD_CmdKind_PrevTab].string,
rd_cmd_kind_info_table[RD_CmdKind_TabBarTop].string, rd_cmd_kind_info_table[RD_CmdKind_TabBarTop].string,
rd_cmd_kind_info_table[RD_CmdKind_TabBarBottom].string, rd_cmd_kind_info_table[RD_CmdKind_TabBarBottom].string,
rd_cmd_kind_info_table[RD_CmdKind_ResetToDefaultPanels].string, rd_cmd_kind_info_table[RD_CmdKind_ResetToDefaultPanels].string,
@@ -6839,9 +6841,6 @@ rd_window_frame(void)
'c', 'c',
'n', 'n',
'p', 'p',
't',
'b',
'v',
0, 0,
0, 0,
0, 0,
@@ -6858,48 +6857,25 @@ rd_window_frame(void)
{ {
String8 cmds[] = String8 cmds[] =
{ {
rd_cmd_kind_info_table[RD_CmdKind_OpenTargets].string, rd_cmd_kind_info_table[RD_CmdKind_OpenTab].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenMachines].string, rd_cmd_kind_info_table[RD_CmdKind_CloseTab].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenProcesses].string, rd_cmd_kind_info_table[RD_CmdKind_DuplicateTab].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenThreads].string, rd_cmd_kind_info_table[RD_CmdKind_MoveTabLeft].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenCallStack].string, rd_cmd_kind_info_table[RD_CmdKind_MoveTabRight].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenOutput].string, rd_cmd_kind_info_table[RD_CmdKind_NextTab].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenMemory].string, rd_cmd_kind_info_table[RD_CmdKind_PrevTab].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenDisasm].string, rd_cmd_kind_info_table[RD_CmdKind_TabSettings].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenWatch].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenLocals].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenRegisters].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenGlobals].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenThreadLocals].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenTypes].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenProcedures].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenBreakpoints].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenWatchPins].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenFilePathMaps].string,
rd_cmd_kind_info_table[RD_CmdKind_OpenAutoViewRules].string,
// rd_cmd_kind_info_table[RD_CmdKind_GettingStarted].string,
}; };
U32 codepoints[] = U32 codepoints[] =
{ {
0, 'o',
0, 'c',
0, 'd',
0, 'l',
0, 'r',
0, 'n',
0, 'p',
0, 's',
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
}; };
Assert(ArrayCount(codepoints) == ArrayCount(cmds)); Assert(ArrayCount(codepoints) == ArrayCount(cmds));
rd_cmd_list_menu_buttons(ArrayCount(cmds), cmds, codepoints); rd_cmd_list_menu_buttons(ArrayCount(cmds), cmds, codepoints);
@@ -12557,7 +12533,7 @@ rd_frame(void)
U64 fast_path_idx = (kind - RD_CmdKind_FirstTabFastPathCmd); U64 fast_path_idx = (kind - RD_CmdKind_FirstTabFastPathCmd);
String8 view_name = rd_tab_fast_path_view_name_table[fast_path_idx]; String8 view_name = rd_tab_fast_path_view_name_table[fast_path_idx];
String8 query_name = rd_tab_fast_path_query_name_table[fast_path_idx]; String8 query_name = rd_tab_fast_path_query_name_table[fast_path_idx];
rd_cmd(RD_CmdKind_OpenTab, .string = view_name, .expr = query_name); rd_cmd(RD_CmdKind_BuildTab, .string = view_name, .expr = query_name);
} }
}break; }break;
@@ -12589,8 +12565,9 @@ rd_frame(void)
rd_cmd(RD_CmdKind_PushQuery, .expr = expr, .do_implicit_root = 1, .do_lister = 1, .do_big_rows = 1, .view = tab->id); rd_cmd(RD_CmdKind_PushQuery, .expr = expr, .do_implicit_root = 1, .do_lister = 1, .do_big_rows = 1, .view = tab->id);
}break; }break;
//- rjf: command fast path //- rjf: command fast paths
case RD_CmdKind_RunCommand: case RD_CmdKind_RunCommand:
case RD_CmdKind_OpenTab:
{ {
RD_CmdKindInfo *info = rd_cmd_kind_info_from_string(cmd->regs->cmd_name); RD_CmdKindInfo *info = rd_cmd_kind_info_from_string(cmd->regs->cmd_name);
@@ -13609,7 +13586,7 @@ rd_frame(void)
.view = tab->id, .view = tab->id,
.prev_tab = new_prev->id); .prev_tab = new_prev->id);
}break; }break;
case RD_CmdKind_OpenTab: case RD_CmdKind_BuildTab:
{ {
String8 expr_file_path = rd_file_path_from_eval_string(scratch.arena, rd_regs()->expr); String8 expr_file_path = rd_file_path_from_eval_string(scratch.arena, rd_regs()->expr);
RD_Cfg *panel = rd_cfg_from_id(rd_regs()->panel); RD_Cfg *panel = rd_cfg_from_id(rd_regs()->panel);
@@ -13699,6 +13676,11 @@ rd_frame(void)
RD_Cfg *panel = rd_cfg_from_id(rd_regs()->panel); RD_Cfg *panel = rd_cfg_from_id(rd_regs()->panel);
rd_cfg_child_from_string_or_alloc(panel, str8_lit("tabs_on_bottom")); rd_cfg_child_from_string_or_alloc(panel, str8_lit("tabs_on_bottom"));
}break; }break;
case RD_CmdKind_TabSettings:
{
String8 expr = push_str8f(scratch.arena, "query:$%I64x", rd_regs()->view);
rd_cmd(RD_CmdKind_PushQuery, .expr = expr, .do_implicit_root = 1, .do_big_rows = 1, .do_lister = 1);
}break;
//- rjf: files //- rjf: files
case RD_CmdKind_Open: case RD_CmdKind_Open:
@@ -13708,7 +13690,7 @@ rd_frame(void)
if(props.created != 0) if(props.created != 0)
{ {
rd_cmd(RD_CmdKind_RecordFileInProject); rd_cmd(RD_CmdKind_RecordFileInProject);
rd_cmd(RD_CmdKind_OpenTab, .string = str8_lit("pending"), .expr = rd_eval_string_from_file_path(scratch.arena, path)); rd_cmd(RD_CmdKind_BuildTab, .string = str8_lit("pending"), .expr = rd_eval_string_from_file_path(scratch.arena, path));
} }
else else
{ {