mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-14 17:28:07 +00:00
turn off transient tab creation with explicit open/switch command
This commit is contained in:
@@ -454,7 +454,7 @@ RD_NameSchemaInfo rd_name_schema_info_table[26] =
|
|||||||
{str8_lit_comp("thread"), str8_lit_comp("x:{'label':code_string, 'id':u64, @no_expand 'active':bool, 'call_stack':query}")},
|
{str8_lit_comp("thread"), str8_lit_comp("x:{'label':code_string, 'id':u64, @no_expand 'active':bool, 'call_stack':query}")},
|
||||||
};
|
};
|
||||||
|
|
||||||
String8 rd_reg_slot_code_name_table[47] =
|
String8 rd_reg_slot_code_name_table[48] =
|
||||||
{
|
{
|
||||||
{0},
|
{0},
|
||||||
str8_lit_comp("machine"),
|
str8_lit_comp("machine"),
|
||||||
@@ -499,13 +499,14 @@ str8_lit_comp("do_lister"),
|
|||||||
str8_lit_comp("do_big_rows"),
|
str8_lit_comp("do_big_rows"),
|
||||||
str8_lit_comp("all_windows"),
|
str8_lit_comp("all_windows"),
|
||||||
str8_lit_comp("non_graphical"),
|
str8_lit_comp("non_graphical"),
|
||||||
|
str8_lit_comp("prefer_new_tab"),
|
||||||
str8_lit_comp("dir2"),
|
str8_lit_comp("dir2"),
|
||||||
str8_lit_comp("string"),
|
str8_lit_comp("string"),
|
||||||
str8_lit_comp("cmd_name"),
|
str8_lit_comp("cmd_name"),
|
||||||
str8_lit_comp("os_event"),
|
str8_lit_comp("os_event"),
|
||||||
};
|
};
|
||||||
|
|
||||||
Rng1U64 rd_reg_slot_range_table[47] =
|
Rng1U64 rd_reg_slot_range_table[48] =
|
||||||
{
|
{
|
||||||
{0},
|
{0},
|
||||||
{OffsetOf(RD_Regs, machine), OffsetOf(RD_Regs, machine) + sizeof(CTRL_Handle)},
|
{OffsetOf(RD_Regs, machine), OffsetOf(RD_Regs, machine) + sizeof(CTRL_Handle)},
|
||||||
@@ -550,6 +551,7 @@ Rng1U64 rd_reg_slot_range_table[47] =
|
|||||||
{OffsetOf(RD_Regs, do_big_rows), OffsetOf(RD_Regs, do_big_rows) + sizeof(B32)},
|
{OffsetOf(RD_Regs, do_big_rows), OffsetOf(RD_Regs, do_big_rows) + sizeof(B32)},
|
||||||
{OffsetOf(RD_Regs, all_windows), OffsetOf(RD_Regs, all_windows) + sizeof(B32)},
|
{OffsetOf(RD_Regs, all_windows), OffsetOf(RD_Regs, all_windows) + sizeof(B32)},
|
||||||
{OffsetOf(RD_Regs, non_graphical), OffsetOf(RD_Regs, non_graphical) + sizeof(B32)},
|
{OffsetOf(RD_Regs, non_graphical), OffsetOf(RD_Regs, non_graphical) + sizeof(B32)},
|
||||||
|
{OffsetOf(RD_Regs, prefer_new_tab), OffsetOf(RD_Regs, prefer_new_tab) + sizeof(B32)},
|
||||||
{OffsetOf(RD_Regs, dir2), OffsetOf(RD_Regs, dir2) + sizeof(Dir2)},
|
{OffsetOf(RD_Regs, dir2), OffsetOf(RD_Regs, dir2) + sizeof(Dir2)},
|
||||||
{OffsetOf(RD_Regs, string), OffsetOf(RD_Regs, string) + sizeof(String8)},
|
{OffsetOf(RD_Regs, string), OffsetOf(RD_Regs, string) + sizeof(String8)},
|
||||||
{OffsetOf(RD_Regs, cmd_name), OffsetOf(RD_Regs, cmd_name) + sizeof(String8)},
|
{OffsetOf(RD_Regs, cmd_name), OffsetOf(RD_Regs, cmd_name) + sizeof(String8)},
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ RD_RegSlot_DoLister,
|
|||||||
RD_RegSlot_DoBigRows,
|
RD_RegSlot_DoBigRows,
|
||||||
RD_RegSlot_AllWindows,
|
RD_RegSlot_AllWindows,
|
||||||
RD_RegSlot_NonGraphical,
|
RD_RegSlot_NonGraphical,
|
||||||
|
RD_RegSlot_PreferNewTab,
|
||||||
RD_RegSlot_Dir2,
|
RD_RegSlot_Dir2,
|
||||||
RD_RegSlot_String,
|
RD_RegSlot_String,
|
||||||
RD_RegSlot_CmdName,
|
RD_RegSlot_CmdName,
|
||||||
@@ -489,6 +490,7 @@ B32 do_lister;
|
|||||||
B32 do_big_rows;
|
B32 do_big_rows;
|
||||||
B32 all_windows;
|
B32 all_windows;
|
||||||
B32 non_graphical;
|
B32 non_graphical;
|
||||||
|
B32 prefer_new_tab;
|
||||||
Dir2 dir2;
|
Dir2 dir2;
|
||||||
String8 string;
|
String8 string;
|
||||||
String8 cmd_name;
|
String8 cmd_name;
|
||||||
@@ -587,6 +589,7 @@ Z(getting_started)\
|
|||||||
.do_big_rows = rd_regs()->do_big_rows,\
|
.do_big_rows = rd_regs()->do_big_rows,\
|
||||||
.all_windows = rd_regs()->all_windows,\
|
.all_windows = rd_regs()->all_windows,\
|
||||||
.non_graphical = rd_regs()->non_graphical,\
|
.non_graphical = rd_regs()->non_graphical,\
|
||||||
|
.prefer_new_tab = rd_regs()->prefer_new_tab,\
|
||||||
.dir2 = rd_regs()->dir2,\
|
.dir2 = rd_regs()->dir2,\
|
||||||
.string = rd_regs()->string,\
|
.string = rd_regs()->string,\
|
||||||
.cmd_name = rd_regs()->cmd_name,\
|
.cmd_name = rd_regs()->cmd_name,\
|
||||||
@@ -597,8 +600,8 @@ extern String8 rd_tab_fast_path_view_name_table[25];
|
|||||||
extern String8 rd_tab_fast_path_query_name_table[25];
|
extern String8 rd_tab_fast_path_query_name_table[25];
|
||||||
extern RD_VocabInfo rd_vocab_info_table[358];
|
extern RD_VocabInfo rd_vocab_info_table[358];
|
||||||
extern RD_NameSchemaInfo rd_name_schema_info_table[26];
|
extern RD_NameSchemaInfo rd_name_schema_info_table[26];
|
||||||
extern String8 rd_reg_slot_code_name_table[47];
|
extern String8 rd_reg_slot_code_name_table[48];
|
||||||
extern Rng1U64 rd_reg_slot_range_table[47];
|
extern Rng1U64 rd_reg_slot_range_table[48];
|
||||||
extern String8 rd_binding_version_remap_old_name_table[8];
|
extern String8 rd_binding_version_remap_old_name_table[8];
|
||||||
extern String8 rd_binding_version_remap_new_name_table[8];
|
extern String8 rd_binding_version_remap_new_name_table[8];
|
||||||
extern String8 rd_icon_kind_text_table[75];
|
extern String8 rd_icon_kind_text_table[75];
|
||||||
|
|||||||
@@ -797,6 +797,7 @@ RD_RegTable:
|
|||||||
{B32 do_big_rows DoBigRows }
|
{B32 do_big_rows DoBigRows }
|
||||||
{B32 all_windows AllWindows }
|
{B32 all_windows AllWindows }
|
||||||
{B32 non_graphical NonGraphical }
|
{B32 non_graphical NonGraphical }
|
||||||
|
{B32 prefer_new_tab PreferNewTab }
|
||||||
{Dir2 dir2 Dir2 }
|
{Dir2 dir2 Dir2 }
|
||||||
{String8 string String }
|
{String8 string String }
|
||||||
{String8 cmd_name CmdName }
|
{String8 cmd_name CmdName }
|
||||||
|
|||||||
@@ -13515,7 +13515,7 @@ rd_frame(void)
|
|||||||
{
|
{
|
||||||
path = rd_regs()->file_path;
|
path = rd_regs()->file_path;
|
||||||
}
|
}
|
||||||
rd_cmd(RD_CmdKind_FindCodeLocation, .file_path = path, .cursor = txt_pt(0, 0), .vaddr = 0, .force_focus = 1);
|
rd_cmd(RD_CmdKind_FindCodeLocation, .file_path = path, .cursor = txt_pt(0, 0), .vaddr = 0, .force_focus = 1, .prefer_new_tab = 1);
|
||||||
}break;
|
}break;
|
||||||
case RD_CmdKind_SwitchToPartnerFile:
|
case RD_CmdKind_SwitchToPartnerFile:
|
||||||
{
|
{
|
||||||
@@ -13542,7 +13542,7 @@ rd_frame(void)
|
|||||||
FileProperties candidate_props = os_properties_from_file_path(candidate_path);
|
FileProperties candidate_props = os_properties_from_file_path(candidate_path);
|
||||||
if(candidate_props.modified != 0)
|
if(candidate_props.modified != 0)
|
||||||
{
|
{
|
||||||
rd_cmd(RD_CmdKind_FindCodeLocation, .file_path = candidate_path, .cursor = txt_pt(0, 0), .vaddr = 0);
|
rd_cmd(RD_CmdKind_FindCodeLocation, .file_path = candidate_path, .cursor = txt_pt(0, 0), .vaddr = 0, .prefer_new_tab = 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14124,12 +14124,14 @@ rd_frame(void)
|
|||||||
CTRL_Entity *process = &ctrl_entity_nil;
|
CTRL_Entity *process = &ctrl_entity_nil;
|
||||||
U64 vaddr = 0;
|
U64 vaddr = 0;
|
||||||
B32 require_disasm_snap = 0;
|
B32 require_disasm_snap = 0;
|
||||||
|
B32 prefer_new_tab = 0;
|
||||||
{
|
{
|
||||||
file_path = rd_mapped_from_file_path(scratch.arena, rd_regs()->file_path);
|
file_path = rd_mapped_from_file_path(scratch.arena, rd_regs()->file_path);
|
||||||
point = rd_regs()->cursor;
|
point = rd_regs()->cursor;
|
||||||
thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->thread);
|
thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->thread);
|
||||||
process = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->process);
|
process = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->process);
|
||||||
vaddr = rd_regs()->vaddr;
|
vaddr = rd_regs()->vaddr;
|
||||||
|
prefer_new_tab = rd_regs()->prefer_new_tab;
|
||||||
if(file_path.size == 0)
|
if(file_path.size == 0)
|
||||||
{
|
{
|
||||||
require_disasm_snap = 1;
|
require_disasm_snap = 1;
|
||||||
@@ -14236,6 +14238,8 @@ rd_frame(void)
|
|||||||
// rjf: try to find panel/view pair that has any *auto* source code tab open
|
// rjf: try to find panel/view pair that has any *auto* source code tab open
|
||||||
info->panel_w_auto = &cfg_nil_panel_node;
|
info->panel_w_auto = &cfg_nil_panel_node;
|
||||||
info->view_w_auto = &cfg_nil_node;
|
info->view_w_auto = &cfg_nil_node;
|
||||||
|
if(!prefer_new_tab)
|
||||||
|
{
|
||||||
for(CFG_PanelNode *panel = panel_tree.root;
|
for(CFG_PanelNode *panel = panel_tree.root;
|
||||||
panel != &cfg_nil_panel_node;
|
panel != &cfg_nil_panel_node;
|
||||||
panel = cfg_panel_node_rec__depth_first_pre(panel_tree.root, panel).next)
|
panel = cfg_panel_node_rec__depth_first_pre(panel_tree.root, panel).next)
|
||||||
@@ -14259,6 +14263,7 @@ rd_frame(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// rjf: find a panel that already has *any* code open (prioritize largest)
|
// rjf: find a panel that already has *any* code open (prioritize largest)
|
||||||
info->panel_w_any_src_code = &cfg_nil_panel_node;
|
info->panel_w_any_src_code = &cfg_nil_panel_node;
|
||||||
@@ -14616,9 +14621,12 @@ rd_frame(void)
|
|||||||
dst_tab = cfg_node_new(rd_state->cfg, dst_panel->cfg, str8_lit("text"));
|
dst_tab = cfg_node_new(rd_state->cfg, dst_panel->cfg, str8_lit("text"));
|
||||||
CFG_Node *expr = cfg_node_new(rd_state->cfg, dst_tab, str8_lit("expression"));
|
CFG_Node *expr = cfg_node_new(rd_state->cfg, dst_tab, str8_lit("expression"));
|
||||||
cfg_node_new(rd_state->cfg, expr, rd_eval_string_from_file_path(scratch.arena, file_path));
|
cfg_node_new(rd_state->cfg, expr, rd_eval_string_from_file_path(scratch.arena, file_path));
|
||||||
|
if(!prefer_new_tab)
|
||||||
|
{
|
||||||
CFG_Node *auto_root = cfg_node_new(rd_state->cfg, dst_tab, str8_lit("auto"));
|
CFG_Node *auto_root = cfg_node_new(rd_state->cfg, dst_tab, str8_lit("auto"));
|
||||||
cfg_node_new(rd_state->cfg, auto_root, str8_lit("1"));
|
cfg_node_new(rd_state->cfg, auto_root, str8_lit("1"));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// rjf: determine if we need a contain or center
|
// rjf: determine if we need a contain or center
|
||||||
RD_CmdKind cursor_snap_kind = RD_CmdKind_CenterCursor;
|
RD_CmdKind cursor_snap_kind = RD_CmdKind_CenterCursor;
|
||||||
|
|||||||
Reference in New Issue
Block a user