diff --git a/src/raddbg/generated/raddbg.meta.c b/src/raddbg/generated/raddbg.meta.c index 2c9c378e..6359005b 100644 --- a/src/raddbg/generated/raddbg.meta.c +++ b/src/raddbg/generated/raddbg.meta.c @@ -52,7 +52,7 @@ 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("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("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("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("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}, @@ -442,7 +443,7 @@ Rng1U64 rd_reg_slot_range_table[42] = {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}, { 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("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("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("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}}, @@ -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("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("open_tab"), {OS_Key_T, 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("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_pin"), {OS_Key_F9, 0 |OS_Modifier_Ctrl }}, {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("open_palette"), {OS_Key_F1, 0 }}, {str8_lit_comp("open_palette"), {OS_Key_P, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, diff --git a/src/raddbg/generated/raddbg.meta.h b/src/raddbg/generated/raddbg.meta.h index 736aec89..046029f5 100644 --- a/src/raddbg/generated/raddbg.meta.h +++ b/src/raddbg/generated/raddbg.meta.h @@ -134,6 +134,7 @@ RD_CmdKind_PrevTab, RD_CmdKind_MoveTabRight, RD_CmdKind_MoveTabLeft, RD_CmdKind_OpenTab, +RD_CmdKind_BuildTab, RD_CmdKind_DuplicateTab, RD_CmdKind_CloseTab, RD_CmdKind_MoveTab, @@ -667,7 +668,7 @@ Z(getting_started)\ C_LINKAGE_BEGIN extern String8 rd_tab_fast_path_view_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 Rng1U64 rd_reg_slot_range_table[42]; extern String8 rd_binding_version_remap_old_name_table[8]; diff --git a/src/raddbg/raddbg.mdesk b/src/raddbg/raddbg.mdesk index 0477a1a2..fd92ac2f 100644 --- a/src/raddbg/raddbg.mdesk +++ b/src/raddbg/raddbg.mdesk @@ -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." "" "" } {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," } - {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," } {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." "" "" } @@ -956,6 +957,7 @@ RD_DefaultBindingTable: { "close_tab" W ctrl 0 0 } { "tab_bar_top" Up ctrl shift alt } { "tab_bar_bottom" Down ctrl shift alt } + { "open_tab" T ctrl 0 0 } //- rjf: files { "open" O ctrl 0 0 } @@ -1038,9 +1040,6 @@ RD_DefaultBindingTable: //- rjf: breakpoints { "toggle_breakpoint" F9 0 0 0 } - //- rjf: targets - { "add_target" T ctrl 0 0 } - //- rjf: attaching { "attach" F6 0 shift 0 } diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 35718c3f..8569645d 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -3100,6 +3100,11 @@ rd_view_ui(Rng2F32 rect) U64 pid = eval.value.u128.u64[0]; rd_cmd(RD_CmdKind_CompleteQuery, .pid = pid); }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 @@ -6820,9 +6825,6 @@ rd_window_frame(void) 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_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_TabBarBottom].string, rd_cmd_kind_info_table[RD_CmdKind_ResetToDefaultPanels].string, @@ -6839,9 +6841,6 @@ rd_window_frame(void) 'c', 'n', 'p', - 't', - 'b', - 'v', 0, 0, 0, @@ -6858,48 +6857,25 @@ rd_window_frame(void) { String8 cmds[] = { - rd_cmd_kind_info_table[RD_CmdKind_OpenTargets].string, - rd_cmd_kind_info_table[RD_CmdKind_OpenMachines].string, - rd_cmd_kind_info_table[RD_CmdKind_OpenProcesses].string, - rd_cmd_kind_info_table[RD_CmdKind_OpenThreads].string, - rd_cmd_kind_info_table[RD_CmdKind_OpenCallStack].string, - rd_cmd_kind_info_table[RD_CmdKind_OpenOutput].string, - rd_cmd_kind_info_table[RD_CmdKind_OpenMemory].string, - rd_cmd_kind_info_table[RD_CmdKind_OpenDisasm].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, + rd_cmd_kind_info_table[RD_CmdKind_OpenTab].string, + rd_cmd_kind_info_table[RD_CmdKind_CloseTab].string, + rd_cmd_kind_info_table[RD_CmdKind_DuplicateTab].string, + rd_cmd_kind_info_table[RD_CmdKind_MoveTabLeft].string, + rd_cmd_kind_info_table[RD_CmdKind_MoveTabRight].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_TabSettings].string, }; U32 codepoints[] = { - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + 'o', + 'c', + 'd', + 'l', + 'r', + 'n', + 'p', + 's', }; Assert(ArrayCount(codepoints) == ArrayCount(cmds)); rd_cmd_list_menu_buttons(ArrayCount(cmds), cmds, codepoints); @@ -12557,7 +12533,7 @@ rd_frame(void) U64 fast_path_idx = (kind - RD_CmdKind_FirstTabFastPathCmd); 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]; - rd_cmd(RD_CmdKind_OpenTab, .string = view_name, .expr = query_name); + rd_cmd(RD_CmdKind_BuildTab, .string = view_name, .expr = query_name); } }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); }break; - //- rjf: command fast path + //- rjf: command fast paths case RD_CmdKind_RunCommand: + case RD_CmdKind_OpenTab: { RD_CmdKindInfo *info = rd_cmd_kind_info_from_string(cmd->regs->cmd_name); @@ -13609,7 +13586,7 @@ rd_frame(void) .view = tab->id, .prev_tab = new_prev->id); }break; - case RD_CmdKind_OpenTab: + case RD_CmdKind_BuildTab: { 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); @@ -13699,6 +13676,11 @@ rd_frame(void) RD_Cfg *panel = rd_cfg_from_id(rd_regs()->panel); rd_cfg_child_from_string_or_alloc(panel, str8_lit("tabs_on_bottom")); }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 case RD_CmdKind_Open: @@ -13708,7 +13690,7 @@ rd_frame(void) if(props.created != 0) { 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 {