run-to-line/address porting from old df_entity-based behavior

This commit is contained in:
Ryan Fleury
2024-09-13 11:21:13 -07:00
parent 6b758f08fa
commit 96b5f82964
14 changed files with 770 additions and 636 deletions
+1 -1
View File
@@ -48,7 +48,7 @@ commands =
//- rjf: fkey command slots (change locally but do not commit) //- rjf: fkey command slots (change locally but do not commit)
.f1 = { .win = "build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, .f1 = { .win = "build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
.f2 = { .win = "build rdi_from_pdb", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, .f2 = { .win = "build rdi_from_pdb", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
.f3 = { .win = "pushd build && raddbg.exe --user:local_dev.raddbg_user --project:local_dev.raddbg_project --auto_run && popd", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, .f3 = { .win = "pushd build && raddbg.exe --user:local_dev.raddbg_user --project:local_dev.raddbg_project && popd", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
//- rjf: local target builds //- rjf: local target builds
.build_raddbg = { .win = "build raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, .build_raddbg = { .win = "build raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
+1
View File
@@ -230,6 +230,7 @@ struct CTRL_Spoof
typedef enum CTRL_UserBreakpointKind typedef enum CTRL_UserBreakpointKind
{ {
CTRL_UserBreakpointKind_Null,
CTRL_UserBreakpointKind_FileNameAndLineColNumber, CTRL_UserBreakpointKind_FileNameAndLineColNumber,
CTRL_UserBreakpointKind_SymbolNameAndOffset, CTRL_UserBreakpointKind_SymbolNameAndOffset,
CTRL_UserBreakpointKind_VirtualAddress, CTRL_UserBreakpointKind_VirtualAddress,
+9 -9
View File
@@ -34,7 +34,7 @@ D_CfgSrcTable:
// operations________ names lt sz // operations________ names lt sz
// /..................\ /...\ | | // /..................\ /...\ | |
// dl fz ed rn en cn dp nc np ul iz // dl fz ed rn en cn dp nc np ul iz
D_EntityKindTable: DF_EntityKindTable:
{ {
{Nil nil nils 0 0 0 0 0 0 0 0 0 0 0 "Label" Null "Nil" } {Nil nil nils 0 0 0 0 0 0 0 0 0 0 0 "Label" Null "Nil" }
{Root root roots 0 0 0 0 0 0 0 0 0 0 0 "Label" Null "Root" } {Root root roots 0 0 0 0 0 0 0 0 0 0 0 "Label" Null "Root" }
@@ -96,35 +96,35 @@ D_EntityKindTable:
{ConversionFail conversion_fail conversion_fails 0 0 0 1 0 0 0 0 0 0 0 "Label" Null "Conversion Failure" } {ConversionFail conversion_fail conversion_fails 0 0 0 1 0 0 0 0 0 0 0 "Label" Null "Conversion Failure" }
} }
@enum D_EntityKind: @enum DF_EntityKind:
{ {
@expand(D_EntityKindTable a) `$(a.name)`, @expand(DF_EntityKindTable a) `$(a.name)`,
COUNT, COUNT,
} }
@data(String8) d_entity_kind_display_string_table: @data(String8) d_entity_kind_display_string_table:
{ {
@expand(D_EntityKindTable a) `str8_lit_comp("$(a.display_string)")`, @expand(DF_EntityKindTable a) `str8_lit_comp("$(a.display_string)")`,
} }
@data(String8) d_entity_kind_name_lower_table: @data(String8) d_entity_kind_name_lower_table:
{ {
@expand(D_EntityKindTable a) `str8_lit_comp("$(a.name_lower)")`, @expand(DF_EntityKindTable a) `str8_lit_comp("$(a.name_lower)")`,
} }
@data(String8) d_entity_kind_name_lower_plural_table: @data(String8) d_entity_kind_name_lower_plural_table:
{ {
@expand(D_EntityKindTable a) `str8_lit_comp("$(a.name_lower_plural)")`, @expand(DF_EntityKindTable a) `str8_lit_comp("$(a.name_lower_plural)")`,
} }
@data(String8) d_entity_kind_name_label_table: @data(String8) d_entity_kind_name_label_table:
{ {
@expand(D_EntityKindTable a) `str8_lit_comp("$(a.name_label)")`, @expand(DF_EntityKindTable a) `str8_lit_comp("$(a.name_label)")`,
} }
@data(D_EntityKindFlags) d_entity_kind_flags_table: @data(DF_EntityKindFlags) d_entity_kind_flags_table:
{ {
@expand(D_EntityKindTable a) `($(a.op_delete)*D_EntityKindFlag_CanDelete) | ($(a.op_freeze)*D_EntityKindFlag_CanFreeze) | ($(a.op_edit)*D_EntityKindFlag_CanEdit) | ($(a.op_rename)*D_EntityKindFlag_CanRename) | ($(a.op_enable)*D_EntityKindFlag_CanEnable) | ($(a.op_cond)*D_EntityKindFlag_CanCondition) | ($(a.op_dup)*D_EntityKindFlag_CanDuplicate) | ($(a.name_is_code)*D_EntityKindFlag_NameIsCode) | ($(a.name_is_path)*D_EntityKindFlag_NameIsPath) | ($(a.user_lifetime)*D_EntityKindFlag_UserDefinedLifetime) | ($(a.is_serialized)*D_EntityKindFlag_IsSerializedToConfig)`, @expand(DF_EntityKindTable a) `($(a.op_delete)*DF_EntityKindFlag_CanDelete) | ($(a.op_freeze)*DF_EntityKindFlag_CanFreeze) | ($(a.op_edit)*DF_EntityKindFlag_CanEdit) | ($(a.op_rename)*DF_EntityKindFlag_CanRename) | ($(a.op_enable)*DF_EntityKindFlag_CanEnable) | ($(a.op_cond)*DF_EntityKindFlag_CanCondition) | ($(a.op_dup)*DF_EntityKindFlag_CanDuplicate) | ($(a.name_is_code)*DF_EntityKindFlag_NameIsCode) | ($(a.name_is_path)*DF_EntityKindFlag_NameIsPath) | ($(a.user_lifetime)*DF_EntityKindFlag_UserDefinedLifetime) | ($(a.is_serialized)*DF_EntityKindFlag_IsSerializedToConfig)`,
} }
//////////////////////////////// ////////////////////////////////
+214 -114
View File
@@ -88,6 +88,98 @@ d_handle_list_copy(Arena *arena, D_HandleList list)
return result; return result;
} }
////////////////////////////////
//~ rjf: Breakpoints
internal D_BreakpointArray
d_breakpoint_array_copy(Arena *arena, D_BreakpointArray *src)
{
D_BreakpointArray dst = {0};
dst.count = src->count;
dst.v = push_array(arena, D_Breakpoint, dst.count);
MemoryCopy(dst.v, src->v, sizeof(dst.v[0])*dst.count);
for(U64 idx = 0; idx < dst.count; idx += 1)
{
dst.v[idx].file_path = push_str8_copy(arena, dst.v[idx].file_path);
dst.v[idx].symbol_name = push_str8_copy(arena, dst.v[idx].symbol_name);
dst.v[idx].condition = push_str8_copy(arena, dst.v[idx].condition);
}
return dst;
}
////////////////////////////////
//~ rjf: Path Map Application
internal String8List
d_possible_path_overrides_from_maps_path(Arena *arena, D_PathMapArray *path_maps, String8 file_path)
{
// NOTE(rjf): This path, given some target file path, scans all file path map
// overrides, and collects the set of file paths which could've redirected
// to the target file path given the set of file path maps.
//
// For example, if I have a rule saying D:/devel/ maps to C:/devel/, and I
// feed in C:/devel/foo/bar.txt, then this path will construct
// D:/devel/foo/bar.txt, as a possible option.
//
// It will also preserve C:/devel/foo/bar.txt in the resultant list, so that
// overrideless files still work through this path, and both redirected
// files and non-redirected files can go through the same path.
//
String8List result = {0};
str8_list_push(arena, &result, file_path);
Temp scratch = scratch_begin(&arena, 1);
PathStyle pth_style = PathStyle_Relative;
String8List pth_parts = path_normalized_list_from_string(scratch.arena, file_path, &pth_style);
{
for(U64 idx = 0; idx < path_maps->count; idx += 1)
{
//- rjf: unpack link
D_PathMap *map = &path_maps->v[idx];
PathStyle src_style = PathStyle_Relative;
PathStyle dst_style = PathStyle_Relative;
String8List src_parts = path_normalized_list_from_string(scratch.arena, map->src, &src_style);
String8List dst_parts = path_normalized_list_from_string(scratch.arena, map->dst, &dst_style);
//- rjf: determine if this link can possibly redirect to the target file path
B32 dst_redirects_to_pth = 0;
String8Node *non_redirected_pth_first = 0;
if(dst_style == pth_style && dst_parts.first != 0 && pth_parts.first != 0)
{
dst_redirects_to_pth = 1;
String8Node *dst_n = dst_parts.first;
String8Node *pth_n = pth_parts.first;
for(;dst_n != 0 && pth_n != 0; dst_n = dst_n->next, pth_n = pth_n->next)
{
if(!str8_match(dst_n->string, pth_n->string, StringMatchFlag_CaseInsensitive))
{
dst_redirects_to_pth = 0;
break;
}
non_redirected_pth_first = pth_n->next;
}
}
//- rjf: if this link can redirect to this path via `src` -> `dst`, compute
// possible full source path, by taking `src` and appending non-redirected
// suffix (which did not show up in `dst`)
if(dst_redirects_to_pth)
{
String8List candidate_parts = src_parts;
for(String8Node *p = non_redirected_pth_first; p != 0; p = p->next)
{
str8_list_push(scratch.arena, &candidate_parts, p->string);
}
StringJoin join = {0};
join.sep = str8_lit("/");
String8 candidate_path = str8_list_join(arena, &candidate_parts, 0);
str8_list_push(arena, &result, candidate_path);
}
}
}
scratch_end(scratch);
return result;
}
//////////////////////////////// ////////////////////////////////
//~ rjf: Config Type Functions //~ rjf: Config Type Functions
@@ -340,7 +432,7 @@ d_entity_rec_depth_first(DF_Entity *entity, DF_Entity *subtree_root, U64 sib_off
//- rjf: ancestor/child introspection //- rjf: ancestor/child introspection
internal DF_Entity * internal DF_Entity *
d_entity_child_from_kind(DF_Entity *entity, D_EntityKind kind) d_entity_child_from_kind(DF_Entity *entity, DF_EntityKind kind)
{ {
DF_Entity *result = &d_nil_entity; DF_Entity *result = &d_nil_entity;
for(DF_Entity *child = entity->first; !d_entity_is_nil(child); child = child->next) for(DF_Entity *child = entity->first; !d_entity_is_nil(child); child = child->next)
@@ -355,7 +447,7 @@ d_entity_child_from_kind(DF_Entity *entity, D_EntityKind kind)
} }
internal DF_Entity * internal DF_Entity *
d_entity_ancestor_from_kind(DF_Entity *entity, D_EntityKind kind) d_entity_ancestor_from_kind(DF_Entity *entity, DF_EntityKind kind)
{ {
DF_Entity *result = &d_nil_entity; DF_Entity *result = &d_nil_entity;
for(DF_Entity *p = entity->parent; !d_entity_is_nil(p); p = p->parent) for(DF_Entity *p = entity->parent; !d_entity_is_nil(p); p = p->parent)
@@ -370,7 +462,7 @@ d_entity_ancestor_from_kind(DF_Entity *entity, D_EntityKind kind)
} }
internal D_EntityList internal D_EntityList
d_push_entity_child_list_with_kind(Arena *arena, DF_Entity *entity, D_EntityKind kind) d_push_entity_child_list_with_kind(Arena *arena, DF_Entity *entity, DF_EntityKind kind)
{ {
D_EntityList result = {0}; D_EntityList result = {0};
for(DF_Entity *child = entity->first; !d_entity_is_nil(child); child = child->next) for(DF_Entity *child = entity->first; !d_entity_is_nil(child); child = child->next)
@@ -384,7 +476,7 @@ d_push_entity_child_list_with_kind(Arena *arena, DF_Entity *entity, D_EntityKind
} }
internal DF_Entity * internal DF_Entity *
d_entity_child_from_string_and_kind(DF_Entity *parent, String8 string, D_EntityKind kind) d_entity_child_from_string_and_kind(DF_Entity *parent, String8 string, DF_EntityKind kind)
{ {
DF_Entity *result = &d_nil_entity; DF_Entity *result = &d_nil_entity;
for(DF_Entity *child = parent->first; !d_entity_is_nil(child); child = child->next) for(DF_Entity *child = parent->first; !d_entity_is_nil(child); child = child->next)
@@ -484,7 +576,7 @@ d_full_path_from_entity(Arena *arena, DF_Entity *entity)
String8List strs = {0}; String8List strs = {0};
for(DF_Entity *e = entity; !d_entity_is_nil(e); e = e->parent) for(DF_Entity *e = entity; !d_entity_is_nil(e); e = e->parent)
{ {
if(e->kind == D_EntityKind_File) if(e->kind == DF_EntityKind_File)
{ {
str8_list_push_front(scratch.arena, &strs, e->string); str8_list_push_front(scratch.arena, &strs, e->string);
} }
@@ -518,7 +610,7 @@ d_display_string_from_entity(Arena *arena, DF_Entity *entity)
} }
}break; }break;
case D_EntityKind_Target: case DF_EntityKind_Target:
{ {
if(entity->string.size != 0) if(entity->string.size != 0)
{ {
@@ -526,12 +618,12 @@ d_display_string_from_entity(Arena *arena, DF_Entity *entity)
} }
else else
{ {
DF_Entity *exe = d_entity_child_from_kind(entity, D_EntityKind_Executable); DF_Entity *exe = d_entity_child_from_kind(entity, DF_EntityKind_Executable);
result = push_str8_copy(arena, exe->string); result = push_str8_copy(arena, exe->string);
} }
}break; }break;
case D_EntityKind_Breakpoint: case DF_EntityKind_Breakpoint:
{ {
if(entity->string.size != 0) if(entity->string.size != 0)
{ {
@@ -539,7 +631,7 @@ d_display_string_from_entity(Arena *arena, DF_Entity *entity)
} }
else else
{ {
DF_Entity *loc = d_entity_child_from_kind(entity, D_EntityKind_Location); DF_Entity *loc = d_entity_child_from_kind(entity, DF_EntityKind_Location);
if(loc->flags & D_EntityFlag_HasTextPoint) if(loc->flags & D_EntityFlag_HasTextPoint)
{ {
result = push_str8f(arena, "%S:%I64d:%I64d", str8_skip_last_slash(loc->string), loc->text_point.line, loc->text_point.column); result = push_str8f(arena, "%S:%I64d:%I64d", str8_skip_last_slash(loc->string), loc->text_point.line, loc->text_point.column);
@@ -555,9 +647,9 @@ d_display_string_from_entity(Arena *arena, DF_Entity *entity)
} }
}break; }break;
case D_EntityKind_Process: case DF_EntityKind_Process:
{ {
DF_Entity *main_mod_child = d_entity_child_from_kind(entity, D_EntityKind_Module); DF_Entity *main_mod_child = d_entity_child_from_kind(entity, DF_EntityKind_Module);
String8 main_mod_name = str8_skip_last_slash(main_mod_child->string); String8 main_mod_name = str8_skip_last_slash(main_mod_child->string);
result = push_str8f(arena, "%S%s%sPID: %i%s", result = push_str8f(arena, "%S%s%sPID: %i%s",
main_mod_name, main_mod_name,
@@ -567,13 +659,13 @@ d_display_string_from_entity(Arena *arena, DF_Entity *entity)
main_mod_name.size != 0 ? ")" : ""); main_mod_name.size != 0 ? ")" : "");
}break; }break;
case D_EntityKind_Thread: case DF_EntityKind_Thread:
{ {
String8 name = entity->string; String8 name = entity->string;
if(name.size == 0) if(name.size == 0)
{ {
DF_Entity *process = d_entity_ancestor_from_kind(entity, D_EntityKind_Process); DF_Entity *process = d_entity_ancestor_from_kind(entity, DF_EntityKind_Process);
DF_Entity *first_thread = d_entity_child_from_kind(process, D_EntityKind_Thread); DF_Entity *first_thread = d_entity_child_from_kind(process, DF_EntityKind_Thread);
if(first_thread == entity) if(first_thread == entity)
{ {
name = str8_lit("Main Thread"); name = str8_lit("Main Thread");
@@ -587,12 +679,12 @@ d_display_string_from_entity(Arena *arena, DF_Entity *entity)
name.size != 0 ? ")" : ""); name.size != 0 ? ")" : "");
}break; }break;
case D_EntityKind_Module: case DF_EntityKind_Module:
{ {
result = push_str8_copy(arena, str8_skip_last_slash(entity->string)); result = push_str8_copy(arena, str8_skip_last_slash(entity->string));
}break; }break;
case D_EntityKind_RecentProject: case DF_EntityKind_RecentProject:
{ {
result = push_str8_copy(arena, str8_skip_last_slash(entity->string)); result = push_str8_copy(arena, str8_skip_last_slash(entity->string));
}break; }break;
@@ -606,11 +698,11 @@ internal String8
d_search_tags_from_entity(Arena *arena, DF_Entity *entity) d_search_tags_from_entity(Arena *arena, DF_Entity *entity)
{ {
String8 result = {0}; String8 result = {0};
if(entity->kind == D_EntityKind_Thread) if(entity->kind == DF_EntityKind_Thread)
{ {
Temp scratch = scratch_begin(&arena, 1); Temp scratch = scratch_begin(&arena, 1);
CTRL_Entity *entity_ctrl = ctrl_entity_from_handle(d_state->ctrl_entity_store, entity->ctrl_handle); CTRL_Entity *entity_ctrl = ctrl_entity_from_handle(d_state->ctrl_entity_store, entity->ctrl_handle);
CTRL_Entity *process = ctrl_entity_ancestor_from_kind(entity_ctrl, D_EntityKind_Process); CTRL_Entity *process = ctrl_entity_ancestor_from_kind(entity_ctrl, DF_EntityKind_Process);
CTRL_Unwind unwind = d_query_cached_unwind_from_thread(entity_ctrl); CTRL_Unwind unwind = d_query_cached_unwind_from_thread(entity_ctrl);
String8List strings = {0}; String8List strings = {0};
for(U64 frame_num = unwind.frames.count; frame_num > 0; frame_num -= 1) for(U64 frame_num = unwind.frames.count; frame_num > 0; frame_num -= 1)
@@ -684,8 +776,8 @@ d_eval_from_entity(Arena *arena, DF_Entity *entity)
{ {
D_EntityEval *eval = push_array(arena, D_EntityEval, 1); D_EntityEval *eval = push_array(arena, D_EntityEval, 1);
{ {
DF_Entity *loc = d_entity_child_from_kind(entity, D_EntityKind_Location); DF_Entity *loc = d_entity_child_from_kind(entity, DF_EntityKind_Location);
DF_Entity *cnd = d_entity_child_from_kind(entity, D_EntityKind_Condition); DF_Entity *cnd = d_entity_child_from_kind(entity, DF_EntityKind_Condition);
String8 label_string = push_str8_copy(arena, entity->string); String8 label_string = push_str8_copy(arena, entity->string);
String8 loc_string = {0}; String8 loc_string = {0};
if(loc->flags & D_EntityFlag_HasTextPoint) if(loc->flags & D_EntityFlag_HasTextPoint)
@@ -820,9 +912,9 @@ d_name_release(String8 string)
//- rjf: entity allocation + tree forming //- rjf: entity allocation + tree forming
internal DF_Entity * internal DF_Entity *
d_entity_alloc(DF_Entity *parent, D_EntityKind kind) d_entity_alloc(DF_Entity *parent, DF_EntityKind kind)
{ {
B32 user_defined_lifetime = !!(d_entity_kind_flags_table[kind] & D_EntityKindFlag_UserDefinedLifetime); B32 user_defined_lifetime = !!(d_entity_kind_flags_table[kind] & DF_EntityKindFlag_UserDefinedLifetime);
U64 free_list_idx = !!user_defined_lifetime; U64 free_list_idx = !!user_defined_lifetime;
if(d_entity_is_nil(parent)) { parent = d_state->entities_root; } if(d_entity_is_nil(parent)) { parent = d_state->entities_root; }
@@ -904,7 +996,7 @@ d_entity_release(DF_Entity *entity)
Temp scratch = scratch_begin(0, 0); Temp scratch = scratch_begin(0, 0);
// rjf: unpack // rjf: unpack
U64 free_list_idx = !!(d_entity_kind_flags_table[entity->kind] & D_EntityKindFlag_UserDefinedLifetime); U64 free_list_idx = !!(d_entity_kind_flags_table[entity->kind] & DF_EntityKindFlag_UserDefinedLifetime);
// rjf: release whole tree // rjf: release whole tree
typedef struct Task Task; typedef struct Task Task;
@@ -1140,13 +1232,13 @@ d_possible_overrides_from_file_path(Arena *arena, String8 file_path)
PathStyle pth_style = PathStyle_Relative; PathStyle pth_style = PathStyle_Relative;
String8List pth_parts = path_normalized_list_from_string(scratch.arena, file_path, &pth_style); String8List pth_parts = path_normalized_list_from_string(scratch.arena, file_path, &pth_style);
{ {
D_EntityList links = d_query_cached_entity_list_with_kind(D_EntityKind_FilePathMap); D_EntityList links = d_query_cached_entity_list_with_kind(DF_EntityKind_FilePathMap);
for(D_EntityNode *n = links.first; n != 0; n = n->next) for(D_EntityNode *n = links.first; n != 0; n = n->next)
{ {
//- rjf: unpack link //- rjf: unpack link
DF_Entity *link = n->entity; DF_Entity *link = n->entity;
DF_Entity *src = d_entity_child_from_kind(link, D_EntityKind_Source); DF_Entity *src = d_entity_child_from_kind(link, DF_EntityKind_Source);
DF_Entity *dst = d_entity_child_from_kind(link, D_EntityKind_Dest); DF_Entity *dst = d_entity_child_from_kind(link, DF_EntityKind_Dest);
PathStyle src_style = PathStyle_Relative; PathStyle src_style = PathStyle_Relative;
PathStyle dst_style = PathStyle_Relative; PathStyle dst_style = PathStyle_Relative;
String8List src_parts = path_normalized_list_from_string(scratch.arena, src->string, &src_style); String8List src_parts = path_normalized_list_from_string(scratch.arena, src->string, &src_style);
@@ -1201,7 +1293,7 @@ d_entity_root(void)
} }
internal D_EntityList internal D_EntityList
d_push_entity_list_with_kind(Arena *arena, D_EntityKind kind) d_push_entity_list_with_kind(Arena *arena, DF_EntityKind kind)
{ {
ProfBeginFunction(); ProfBeginFunction();
D_EntityList result = {0}; D_EntityList result = {0};
@@ -1219,7 +1311,7 @@ d_push_entity_list_with_kind(Arena *arena, D_EntityKind kind)
} }
internal DF_Entity * internal DF_Entity *
d_entity_from_id(D_EntityID id) d_entity_from_id(DF_EntityID id)
{ {
DF_Entity *result = &d_nil_entity; DF_Entity *result = &d_nil_entity;
for(DF_Entity *e = d_entity_root(); for(DF_Entity *e = d_entity_root();
@@ -1243,7 +1335,7 @@ d_machine_entity_from_machine_id(CTRL_MachineID machine_id)
!d_entity_is_nil(e); !d_entity_is_nil(e);
e = d_entity_rec_depth_first_pre(e, &d_nil_entity).next) e = d_entity_rec_depth_first_pre(e, &d_nil_entity).next)
{ {
if(e->kind == D_EntityKind_Machine && e->ctrl_handle.machine_id == machine_id) if(e->kind == DF_EntityKind_Machine && e->ctrl_handle.machine_id == machine_id)
{ {
result = e; result = e;
break; break;
@@ -1251,7 +1343,7 @@ d_machine_entity_from_machine_id(CTRL_MachineID machine_id)
} }
if(d_entity_is_nil(result)) if(d_entity_is_nil(result))
{ {
result = d_entity_alloc(d_entity_root(), D_EntityKind_Machine); result = d_entity_alloc(d_entity_root(), DF_EntityKind_Machine);
d_entity_equip_ctrl_handle(result, ctrl_handle_make(machine_id, dmn_handle_zero())); d_entity_equip_ctrl_handle(result, ctrl_handle_make(machine_id, dmn_handle_zero()));
} }
return result; return result;
@@ -1302,7 +1394,7 @@ d_entity_from_ctrl_id(CTRL_MachineID machine_id, U32 id)
} }
internal DF_Entity * internal DF_Entity *
d_entity_from_name_and_kind(String8 string, D_EntityKind kind) d_entity_from_name_and_kind(String8 string, DF_EntityKind kind)
{ {
DF_Entity *result = &d_nil_entity; DF_Entity *result = &d_nil_entity;
D_EntityList all_of_this_kind = d_query_cached_entity_list_with_kind(kind); D_EntityList all_of_this_kind = d_query_cached_entity_list_with_kind(kind);
@@ -2400,7 +2492,7 @@ d_eval_space_read(void *u, E_Space space, void *out, Rng1U64 range)
switch(entity->kind) switch(entity->kind)
{ {
//- rjf: nil-space -> fall back to file system //- rjf: nil-space -> fall back to file system
case D_EntityKind_Nil: case DF_EntityKind_Nil:
{ {
U128 key = space.u128; U128 key = space.u128;
U128 hash = hs_hash_from_key(key, 0); U128 hash = hs_hash_from_key(key, 0);
@@ -2442,7 +2534,7 @@ d_eval_space_read(void *u, E_Space space, void *out, Rng1U64 range)
}break; }break;
//- rjf: process -> reading process memory //- rjf: process -> reading process memory
case D_EntityKind_Process: case DF_EntityKind_Process:
{ {
Temp scratch = scratch_begin(0, 0); Temp scratch = scratch_begin(0, 0);
CTRL_ProcessMemorySlice slice = ctrl_query_cached_data_from_process_vaddr_range(scratch.arena, entity->ctrl_handle, range, d_state->frame_eval_memread_endt_us); CTRL_ProcessMemorySlice slice = ctrl_query_cached_data_from_process_vaddr_range(scratch.arena, entity->ctrl_handle, range, d_state->frame_eval_memread_endt_us);
@@ -2456,7 +2548,7 @@ d_eval_space_read(void *u, E_Space space, void *out, Rng1U64 range)
}break; }break;
//- rjf: thread -> reading from thread register block //- rjf: thread -> reading from thread register block
case D_EntityKind_Thread: case DF_EntityKind_Thread:
{ {
Temp scratch = scratch_begin(0, 0); Temp scratch = scratch_begin(0, 0);
CTRL_Unwind unwind = d_query_cached_unwind_from_thread(entity); CTRL_Unwind unwind = d_query_cached_unwind_from_thread(entity);
@@ -2510,10 +2602,10 @@ d_eval_space_write(void *u, E_Space space, void *in, Rng1U64 range)
range_dim >= 1) range_dim >= 1)
{ {
result = 1; result = 1;
DF_Entity *condition = d_entity_child_from_kind(entity, D_EntityKind_Condition); DF_Entity *condition = d_entity_child_from_kind(entity, DF_EntityKind_Condition);
if(d_entity_is_nil(condition)) if(d_entity_is_nil(condition))
{ {
condition = d_entity_alloc(entity, D_EntityKind_Condition); condition = d_entity_alloc(entity, DF_EntityKind_Condition);
} }
String8 new_name = str8_cstring_capped((U8 *)in, (U8 *)in+range_dim); String8 new_name = str8_cstring_capped((U8 *)in, (U8 *)in+range_dim);
d_entity_equip_name(condition, new_name); d_entity_equip_name(condition, new_name);
@@ -2522,13 +2614,13 @@ d_eval_space_write(void *u, E_Space space, void *in, Rng1U64 range)
}break; }break;
//- rjf: process -> commit to process memory //- rjf: process -> commit to process memory
case D_EntityKind_Process: case DF_EntityKind_Process:
{ {
result = ctrl_process_write(entity->ctrl_handle, range, in); result = ctrl_process_write(entity->ctrl_handle, range, in);
}break; }break;
//- rjf: thread -> commit to thread's register block //- rjf: thread -> commit to thread's register block
case D_EntityKind_Thread: case DF_EntityKind_Thread:
{ {
CTRL_Unwind unwind = d_query_cached_unwind_from_thread(entity); CTRL_Unwind unwind = d_query_cached_unwind_from_thread(entity);
U64 frame_idx = 0; U64 frame_idx = 0;
@@ -2564,13 +2656,13 @@ d_key_from_eval_space_range(E_Space space, Rng1U64 range, B32 zero_terminated)
default:{}break; default:{}break;
//- rjf: nil space -> filesystem key encoded inside of `space` //- rjf: nil space -> filesystem key encoded inside of `space`
case D_EntityKind_Nil: case DF_EntityKind_Nil:
{ {
result = space.u128; result = space.u128;
}break; }break;
//- rjf: process space -> query //- rjf: process space -> query
case D_EntityKind_Process: case DF_EntityKind_Process:
{ {
result = ctrl_hash_store_key_from_process_vaddr_range(entity->ctrl_handle, range, zero_terminated); result = ctrl_hash_store_key_from_process_vaddr_range(entity->ctrl_handle, range, zero_terminated);
}break; }break;
@@ -2592,7 +2684,7 @@ d_whole_range_from_eval_space(E_Space space)
default:{}break; default:{}break;
//- rjf: nil space -> filesystem key encoded inside of `space` //- rjf: nil space -> filesystem key encoded inside of `space`
case D_EntityKind_Nil: case DF_EntityKind_Nil:
{ {
HS_Scope *scope = hs_scope_open(); HS_Scope *scope = hs_scope_open();
U128 hash = {0}; U128 hash = {0};
@@ -2608,7 +2700,7 @@ d_whole_range_from_eval_space(E_Space space)
result = r1u64(0, data.size); result = r1u64(0, data.size);
hs_scope_close(scope); hs_scope_close(scope);
}break; }break;
case D_EntityKind_Process: case DF_EntityKind_Process:
{ {
result = r1u64(0, 0x7FFFFFFFFFFFull); result = r1u64(0, 0x7FFFFFFFFFFFull);
}break; }break;
@@ -2965,10 +3057,10 @@ d_cfg_strings_from_core(Arena *arena, String8 root_path, D_CfgSrc source)
//- rjf: write all entities //- rjf: write all entities
{ {
for(EachEnumVal(D_EntityKind, k)) for(EachEnumVal(DF_EntityKind, k))
{ {
D_EntityKindFlags k_flags = d_entity_kind_flags_table[k]; DF_EntityKindFlags k_flags = d_entity_kind_flags_table[k];
if(!(k_flags & D_EntityKindFlag_IsSerializedToConfig)) if(!(k_flags & DF_EntityKindFlag_IsSerializedToConfig))
{ {
continue; continue;
} }
@@ -3009,7 +3101,7 @@ d_cfg_strings_from_core(Arena *arena, String8 root_path, D_CfgSrc source)
EntityInfoFlag_HasChildren = (1<<5), EntityInfoFlag_HasChildren = (1<<5),
}; };
String8 entity_name_escaped = e->string; String8 entity_name_escaped = e->string;
if(d_entity_kind_flags_table[e->kind] & D_EntityKindFlag_NameIsPath) if(d_entity_kind_flags_table[e->kind] & DF_EntityKindFlag_NameIsPath)
{ {
Temp scratch = scratch_begin(&arena, 1); Temp scratch = scratch_begin(&arena, 1);
String8 path_normalized = path_normalized_from_string(scratch.arena, e->string); String8 path_normalized = path_normalized_from_string(scratch.arena, e->string);
@@ -3130,7 +3222,7 @@ d_cfg_strings_from_core(Arena *arena, String8 root_path, D_CfgSrc source)
//- rjf: entity kind cache //- rjf: entity kind cache
internal D_EntityList internal D_EntityList
d_query_cached_entity_list_with_kind(D_EntityKind kind) d_query_cached_entity_list_with_kind(DF_EntityKind kind)
{ {
ProfBeginFunction(); ProfBeginFunction();
D_EntityListCache *cache = &d_state->kind_caches[kind]; D_EntityListCache *cache = &d_state->kind_caches[kind];
@@ -3173,7 +3265,7 @@ internal D_EntityList
d_push_active_target_list(Arena *arena) d_push_active_target_list(Arena *arena)
{ {
D_EntityList active_targets = {0}; D_EntityList active_targets = {0};
D_EntityList all_targets = d_query_cached_entity_list_with_kind(D_EntityKind_Target); D_EntityList all_targets = d_query_cached_entity_list_with_kind(DF_EntityKind_Target);
for(D_EntityNode *n = all_targets.first; n != 0; n = n->next) for(D_EntityNode *n = all_targets.first; n != 0; n = n->next)
{ {
if(!n->entity->disabled) if(!n->entity->disabled)
@@ -3187,7 +3279,7 @@ d_push_active_target_list(Arena *arena)
//- rjf: expand key based entity queries //- rjf: expand key based entity queries
internal DF_Entity * internal DF_Entity *
d_entity_from_ev_key_and_kind(EV_Key key, D_EntityKind kind) d_entity_from_ev_key_and_kind(EV_Key key, DF_EntityKind kind)
{ {
DF_Entity *result = &d_nil_entity; DF_Entity *result = &d_nil_entity;
D_EntityList list = d_query_cached_entity_list_with_kind(kind); D_EntityList list = d_query_cached_entity_list_with_kind(kind);
@@ -3210,7 +3302,7 @@ d_query_cached_unwind_from_thread(CTRL_Entity *thread)
{ {
Temp scratch = scratch_begin(0, 0); Temp scratch = scratch_begin(0, 0);
CTRL_Unwind result = {0}; CTRL_Unwind result = {0};
if(thread->kind == D_EntityKind_Thread) if(thread->kind == CTRL_EntityKind_Thread)
{ {
U64 reg_gen = ctrl_reg_gen(); U64 reg_gen = ctrl_reg_gen();
U64 mem_gen = ctrl_mem_gen(); U64 mem_gen = ctrl_mem_gen();
@@ -3498,7 +3590,7 @@ d_init(void)
d_state->entities_count = 0; d_state->entities_count = 0;
d_state->ctrl_entity_store = ctrl_entity_store_alloc(); d_state->ctrl_entity_store = ctrl_entity_store_alloc();
d_state->ctrl_stop_arena = arena_alloc(); d_state->ctrl_stop_arena = arena_alloc();
d_state->entities_root = d_entity_alloc(&d_nil_entity, D_EntityKind_Root); d_state->entities_root = d_entity_alloc(&d_nil_entity, DF_EntityKind_Root);
d_state->view_rule_spec_table_size = 1024; d_state->view_rule_spec_table_size = 1024;
d_state->view_rule_spec_table = push_array(arena, D_ViewRuleSpec *, d_state->view_rule_spec_table_size); d_state->view_rule_spec_table = push_array(arena, D_ViewRuleSpec *, d_state->view_rule_spec_table_size);
d_state->ctrl_msg_arena = arena_alloc(); d_state->ctrl_msg_arena = arena_alloc();
@@ -3514,7 +3606,7 @@ d_init(void)
// rjf: set up initial entities // rjf: set up initial entities
{ {
DF_Entity *local_machine = d_entity_alloc(d_state->entities_root, D_EntityKind_Machine); DF_Entity *local_machine = d_entity_alloc(d_state->entities_root, DF_EntityKind_Machine);
d_entity_equip_ctrl_handle(local_machine, ctrl_handle_make(CTRL_MachineID_Local, dmn_handle_zero())); d_entity_equip_ctrl_handle(local_machine, ctrl_handle_make(CTRL_MachineID_Local, dmn_handle_zero()));
d_entity_equip_name(local_machine, str8_lit("This PC")); d_entity_equip_name(local_machine, str8_lit("This PC"));
} }
@@ -3546,7 +3638,7 @@ d_init(void)
} }
internal D_EventList internal D_EventList
d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints) d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, D_PathMapArray *path_maps)
{ {
ProfBeginFunction(); ProfBeginFunction();
Temp scratch = scratch_begin(&arena, 1); Temp scratch = scratch_begin(&arena, 1);
@@ -3656,21 +3748,23 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
case CTRL_EventKind_NewProc: case CTRL_EventKind_NewProc:
{ {
// rjf: the first process? -> clear session output & reset all bp hit counts // rjf: the first process? -> clear session output & reset all bp hit counts
D_EntityList existing_processes = d_query_cached_entity_list_with_kind(D_EntityKind_Process); CTRL_EntityList existing_processes = ctrl_entity_list_from_kind(d_state->ctrl_entity_store, CTRL_EntityKind_Process);
if(existing_processes.count == 0) if(existing_processes.count == 0)
{ {
MTX_Op op = {r1u64(0, 0xffffffffffffffffull), str8_lit("[new session]\n")}; MTX_Op op = {r1u64(0, 0xffffffffffffffffull), str8_lit("[new session]\n")};
mtx_push_op(d_state->output_log_key, op); mtx_push_op(d_state->output_log_key, op);
D_EntityList bps = d_query_cached_entity_list_with_kind(D_EntityKind_Breakpoint); #if 0 // TODO(rjf): @msgs
D_EntityList bps = d_query_cached_entity_list_with_kind(DF_EntityKind_Breakpoint);
for(D_EntityNode *n = bps.first; n != 0; n = n->next) for(D_EntityNode *n = bps.first; n != 0; n = n->next)
{ {
n->entity->u64 = 0; n->entity->u64 = 0;
} }
#endif
} }
// rjf: create entity // rjf: create entity
DF_Entity *machine = d_machine_entity_from_machine_id(event->entity.machine_id); DF_Entity *machine = d_machine_entity_from_machine_id(event->entity.machine_id);
DF_Entity *entity = d_entity_alloc(machine, D_EntityKind_Process); DF_Entity *entity = d_entity_alloc(machine, DF_EntityKind_Process);
d_entity_equip_u64(entity, event->msg_id); d_entity_equip_u64(entity, event->msg_id);
d_entity_equip_ctrl_handle(entity, event->entity); d_entity_equip_ctrl_handle(entity, event->entity);
d_entity_equip_ctrl_id(entity, event->entity_id); d_entity_equip_ctrl_id(entity, event->entity_id);
@@ -3681,7 +3775,7 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
{ {
// rjf: create entity // rjf: create entity
DF_Entity *parent = d_entity_from_ctrl_handle(event->parent); DF_Entity *parent = d_entity_from_ctrl_handle(event->parent);
DF_Entity *entity = d_entity_alloc(parent, D_EntityKind_Thread); DF_Entity *entity = d_entity_alloc(parent, DF_EntityKind_Thread);
d_entity_equip_ctrl_handle(entity, event->entity); d_entity_equip_ctrl_handle(entity, event->entity);
d_entity_equip_arch(entity, event->arch); d_entity_equip_arch(entity, event->arch);
d_entity_equip_ctrl_id(entity, event->entity_id); d_entity_equip_ctrl_id(entity, event->entity_id);
@@ -3694,7 +3788,7 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
// rjf: find any pending thread names correllating with this TID -> equip name if found match // rjf: find any pending thread names correllating with this TID -> equip name if found match
{ {
D_EntityList pending_thread_names = d_query_cached_entity_list_with_kind(D_EntityKind_PendingThreadName); D_EntityList pending_thread_names = d_query_cached_entity_list_with_kind(DF_EntityKind_PendingThreadName);
for(D_EntityNode *n = pending_thread_names.first; n != 0; n = n->next) for(D_EntityNode *n = pending_thread_names.first; n != 0; n = n->next)
{ {
DF_Entity *pending_thread_name = n->entity; DF_Entity *pending_thread_name = n->entity;
@@ -3715,7 +3809,7 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
{ {
break; break;
} }
if(child->kind == D_EntityKind_Thread) if(child->kind == DF_EntityKind_Thread)
{ {
thread_idx_in_process += 1; thread_idx_in_process += 1;
} }
@@ -3748,13 +3842,13 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
// rjf: determine if this is the first module // rjf: determine if this is the first module
B32 is_first = 0; B32 is_first = 0;
if(d_entity_is_nil(d_entity_child_from_kind(parent, D_EntityKind_Module))) if(d_entity_is_nil(d_entity_child_from_kind(parent, DF_EntityKind_Module)))
{ {
is_first = 1; is_first = 1;
} }
// rjf: create module entity // rjf: create module entity
DF_Entity *module = d_entity_alloc(parent, D_EntityKind_Module); DF_Entity *module = d_entity_alloc(parent, DF_EntityKind_Module);
d_entity_equip_ctrl_handle(module, event->entity); d_entity_equip_ctrl_handle(module, event->entity);
d_entity_equip_arch(module, event->arch); d_entity_equip_arch(module, event->arch);
d_entity_equip_name(module, event->string); d_entity_equip_name(module, event->string);
@@ -3765,18 +3859,18 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
// rjf: is first -> find target, equip process & module & first thread with target color // rjf: is first -> find target, equip process & module & first thread with target color
if(is_first) if(is_first)
{ {
D_EntityList targets = d_query_cached_entity_list_with_kind(D_EntityKind_Target); D_EntityList targets = d_query_cached_entity_list_with_kind(DF_EntityKind_Target);
for(D_EntityNode *n = targets.first; n != 0; n = n->next) for(D_EntityNode *n = targets.first; n != 0; n = n->next)
{ {
DF_Entity *target = n->entity; DF_Entity *target = n->entity;
DF_Entity *exe = d_entity_child_from_kind(target, D_EntityKind_Executable); DF_Entity *exe = d_entity_child_from_kind(target, DF_EntityKind_Executable);
String8 exe_name = exe->string; String8 exe_name = exe->string;
String8 exe_name_normalized = path_normalized_from_string(scratch.arena, exe_name); String8 exe_name_normalized = path_normalized_from_string(scratch.arena, exe_name);
String8 module_name_normalized = path_normalized_from_string(scratch.arena, module->string); String8 module_name_normalized = path_normalized_from_string(scratch.arena, module->string);
if(str8_match(exe_name_normalized, module_name_normalized, StringMatchFlag_CaseInsensitive) && if(str8_match(exe_name_normalized, module_name_normalized, StringMatchFlag_CaseInsensitive) &&
target->flags & D_EntityFlag_HasColor) target->flags & D_EntityFlag_HasColor)
{ {
DF_Entity *first_thread = d_entity_child_from_kind(parent, D_EntityKind_Thread); DF_Entity *first_thread = d_entity_child_from_kind(parent, DF_EntityKind_Thread);
Vec4F32 rgba = d_rgba_from_entity(target); Vec4F32 rgba = d_rgba_from_entity(target);
d_entity_equip_color_rgba(parent, rgba); d_entity_equip_color_rgba(parent, rgba);
d_entity_equip_color_rgba(first_thread, rgba); d_entity_equip_color_rgba(first_thread, rgba);
@@ -3811,10 +3905,10 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
case CTRL_EventKind_ModuleDebugInfoPathChange: case CTRL_EventKind_ModuleDebugInfoPathChange:
{ {
DF_Entity *module = d_entity_from_ctrl_handle(event->entity); DF_Entity *module = d_entity_from_ctrl_handle(event->entity);
DF_Entity *debug_info = d_entity_child_from_kind(module, D_EntityKind_DebugInfoPath); DF_Entity *debug_info = d_entity_child_from_kind(module, DF_EntityKind_DebugInfoPath);
if(d_entity_is_nil(debug_info)) if(d_entity_is_nil(debug_info))
{ {
debug_info = d_entity_alloc(module, D_EntityKind_DebugInfoPath); debug_info = d_entity_alloc(module, DF_EntityKind_DebugInfoPath);
} }
d_entity_equip_name(debug_info, event->string); d_entity_equip_name(debug_info, event->string);
d_entity_equip_timestamp(debug_info, event->timestamp); d_entity_equip_timestamp(debug_info, event->timestamp);
@@ -3841,7 +3935,7 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
DF_Entity *process = d_entity_from_ctrl_handle(event->parent); DF_Entity *process = d_entity_from_ctrl_handle(event->parent);
if(!d_entity_is_nil(process)) if(!d_entity_is_nil(process))
{ {
entity = d_entity_alloc(process, D_EntityKind_PendingThreadName); entity = d_entity_alloc(process, DF_EntityKind_PendingThreadName);
d_entity_equip_name(entity, string); d_entity_equip_name(entity, string);
d_entity_equip_ctrl_handle(entity, ctrl_handle_make(event->entity.machine_id, dmn_handle_zero())); d_entity_equip_ctrl_handle(entity, ctrl_handle_make(event->entity.machine_id, dmn_handle_zero()));
d_entity_equip_ctrl_id(entity, event->entity_id); d_entity_equip_ctrl_id(entity, event->entity_id);
@@ -3953,7 +4047,7 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
next = d_entity_rec_depth_first_pre(entity, &d_nil_entity).next; next = d_entity_rec_depth_first_pre(entity, &d_nil_entity).next;
if(entity->flags & D_EntityFlag_MarkedForDeletion) if(entity->flags & D_EntityFlag_MarkedForDeletion)
{ {
B32 undoable = (d_entity_kind_flags_table[entity->kind] & D_EntityKindFlag_UserDefinedLifetime); B32 undoable = (d_entity_kind_flags_table[entity->kind] & DF_EntityKindFlag_UserDefinedLifetime);
// rjf: fixup next entity to iterate to // rjf: fixup next entity to iterate to
next = d_entity_rec_depth_first(entity, &d_nil_entity, OffsetOf(DF_Entity, next), OffsetOf(DF_Entity, next)).next; next = d_entity_rec_depth_first(entity, &d_nil_entity, OffsetOf(DF_Entity, next), OffsetOf(DF_Entity, next)).next;
@@ -4003,12 +4097,12 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
default:{}break; default:{}break;
case DI_EventKind_ConversionStarted: case DI_EventKind_ConversionStarted:
{ {
DF_Entity *task = d_entity_alloc(d_entity_root(), D_EntityKind_ConversionTask); DF_Entity *task = d_entity_alloc(d_entity_root(), DF_EntityKind_ConversionTask);
d_entity_equip_name(task, event->string); d_entity_equip_name(task, event->string);
}break; }break;
case DI_EventKind_ConversionEnded: case DI_EventKind_ConversionEnded:
{ {
DF_Entity *task = d_entity_from_name_and_kind(event->string, D_EntityKind_ConversionTask); DF_Entity *task = d_entity_from_name_and_kind(event->string, DF_EntityKind_ConversionTask);
if(!d_entity_is_nil(task)) if(!d_entity_is_nil(task))
{ {
d_entity_mark_for_deletion(task); d_entity_mark_for_deletion(task);
@@ -4047,6 +4141,7 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
// rjf: prep ctrl running arguments // rjf: prep ctrl running arguments
B32 need_run = 0; B32 need_run = 0;
D_RunKind run_kind = D_RunKind_Run; D_RunKind run_kind = D_RunKind_Run;
D_BreakpointArray run_extra_bps = {0};
CTRL_Entity *run_thread = &ctrl_entity_nil; CTRL_Entity *run_thread = &ctrl_entity_nil;
CTRL_RunFlags run_flags = 0; CTRL_RunFlags run_flags = 0;
CTRL_TrapList run_traps = {0}; CTRL_TrapList run_traps = {0};
@@ -4325,28 +4420,22 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
//- rjf: high-level composite target control operations //- rjf: high-level composite target control operations
case D_CmdKind_RunToLine: case D_CmdKind_RunToLine:
{ {
String8 file_path = params->file_path; run_extra_bps.count = 1;
TxtPt point = params->cursor; run_extra_bps.v = push_array(scratch.arena, D_Breakpoint, 1);
DF_Entity *bp = d_entity_alloc(d_entity_root(), D_EntityKind_Breakpoint); run_extra_bps.v[0].file_path = params->file_path;
d_entity_equip_cfg_src(bp, D_CfgSrc_Transient); run_extra_bps.v[0].pt = params->cursor;
bp->flags |= D_EntityFlag_DiesOnRunStop;
DF_Entity *loc = d_entity_alloc(bp, D_EntityKind_Location);
d_entity_equip_name(loc, file_path);
d_entity_equip_txt_pt(loc, point);
d_cmd(D_CmdKind_Run); d_cmd(D_CmdKind_Run);
}break; }break;
case D_CmdKind_RunToAddress: case D_CmdKind_RunToAddress:
{ {
DF_Entity *bp = d_entity_alloc(d_entity_root(), D_EntityKind_Breakpoint); run_extra_bps.count = 1;
d_entity_equip_cfg_src(bp, D_CfgSrc_Transient); run_extra_bps.v = push_array(scratch.arena, D_Breakpoint, 1);
bp->flags |= D_EntityFlag_DiesOnRunStop; run_extra_bps.v[0].vaddr = params->vaddr;
DF_Entity *loc = d_entity_alloc(bp, D_EntityKind_Location);
d_entity_equip_vaddr(loc, params->vaddr);
d_cmd(D_CmdKind_Run); d_cmd(D_CmdKind_Run);
}break; }break;
case D_CmdKind_Run: case D_CmdKind_Run:
{ {
D_EntityList processes = d_query_cached_entity_list_with_kind(D_EntityKind_Process); CTRL_EntityList processes = ctrl_entity_list_from_kind(d_state->ctrl_entity_store, CTRL_EntityKind_Process);
if(processes.count != 0) if(processes.count != 0)
{ {
d_cmd(D_CmdKind_Continue); d_cmd(D_CmdKind_Continue);
@@ -4365,7 +4454,7 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
// rjf: gather targets corresponding to all launched processes // rjf: gather targets corresponding to all launched processes
D_EntityList targets = {0}; D_EntityList targets = {0};
{ {
D_EntityList processes = d_query_cached_entity_list_with_kind(D_EntityKind_Process); D_EntityList processes = d_query_cached_entity_list_with_kind(DF_EntityKind_Process);
for(D_EntityNode *n = processes.first; n != 0; n = n->next) for(D_EntityNode *n = processes.first; n != 0; n = n->next)
{ {
DF_Entity *process = n->entity; DF_Entity *process = n->entity;
@@ -4479,47 +4568,57 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
msg->parent = process->handle; msg->parent = process->handle;
MemoryCopyArray(msg->exception_code_filters, d_state->ctrl_exception_code_filters); MemoryCopyArray(msg->exception_code_filters, d_state->ctrl_exception_code_filters);
MemoryCopyStruct(&msg->traps, &run_traps); MemoryCopyStruct(&msg->traps, &run_traps);
for(U64 idx = 0; idx < breakpoints->count; idx += 1) D_BreakpointArray *bp_batches[] =
{ {
// rjf: unpack user breakpoint entity breakpoints,
D_Breakpoint *bp = &breakpoints->v[idx]; &run_extra_bps,
};
// rjf: textual location -> add breakpoints for all possible override locations for(U64 batch_idx = 0; batch_idx < ArrayCount(bp_batches); batch_idx += 1)
if(bp->file_path.size != 0 && bp->pt.line != 0) {
D_BreakpointArray *batch_breakpoints = bp_batches[batch_idx];
for(U64 idx = 0; idx < batch_breakpoints->count; idx += 1)
{ {
String8List overrides = d_possible_overrides_from_file_path(scratch.arena, bp->file_path); // rjf: unpack user breakpoint entity
for(String8Node *n = overrides.first; n != 0; n = n->next) D_Breakpoint *bp = &batch_breakpoints->v[idx];
// rjf: textual location -> add breakpoints for all possible override locations
if(bp->file_path.size != 0 && bp->pt.line != 0)
{ {
CTRL_UserBreakpoint ctrl_user_bp = {CTRL_UserBreakpointKind_FileNameAndLineColNumber}; String8List overrides = d_possible_path_overrides_from_maps_path(scratch.arena, path_maps, bp->file_path);
ctrl_user_bp.string = n->string; for(String8Node *n = overrides.first; n != 0; n = n->next)
ctrl_user_bp.pt = bp->pt; {
CTRL_UserBreakpoint ctrl_user_bp = {CTRL_UserBreakpointKind_FileNameAndLineColNumber};
ctrl_user_bp.string = n->string;
ctrl_user_bp.pt = bp->pt;
ctrl_user_bp.condition = bp->condition;
ctrl_user_breakpoint_list_push(scratch.arena, &msg->user_bps, &ctrl_user_bp);
}
}
// rjf: virtual address location -> add breakpoint for address
if(bp->vaddr != 0)
{
CTRL_UserBreakpoint ctrl_user_bp = {CTRL_UserBreakpointKind_VirtualAddress};
ctrl_user_bp.u64 = bp->vaddr;
ctrl_user_bp.condition = bp->condition;
ctrl_user_breakpoint_list_push(scratch.arena, &msg->user_bps, &ctrl_user_bp);
}
// rjf: symbol name location -> add breakpoint for symbol name
if(bp->symbol_name.size != 0)
{
CTRL_UserBreakpoint ctrl_user_bp = {CTRL_UserBreakpointKind_SymbolNameAndOffset};
ctrl_user_bp.string = bp->symbol_name;
ctrl_user_bp.condition = bp->condition; ctrl_user_bp.condition = bp->condition;
ctrl_user_breakpoint_list_push(scratch.arena, &msg->user_bps, &ctrl_user_bp); ctrl_user_breakpoint_list_push(scratch.arena, &msg->user_bps, &ctrl_user_bp);
} }
}
// rjf: virtual address location -> add breakpoint for address
if(bp->vaddr != 0)
{
CTRL_UserBreakpoint ctrl_user_bp = {CTRL_UserBreakpointKind_VirtualAddress};
ctrl_user_bp.u64 = bp->vaddr;
ctrl_user_bp.condition = bp->condition;
ctrl_user_breakpoint_list_push(scratch.arena, &msg->user_bps, &ctrl_user_bp);
}
// rjf: symbol name location -> add breakpoint for symbol name
if(bp->symbol_name.size != 0)
{
CTRL_UserBreakpoint ctrl_user_bp = {CTRL_UserBreakpointKind_SymbolNameAndOffset};
ctrl_user_bp.string = bp->symbol_name;
ctrl_user_bp.condition = bp->condition;
ctrl_user_breakpoint_list_push(scratch.arena, &msg->user_bps, &ctrl_user_bp);
} }
} }
} }
// rjf: copy run traps to scratch (needed, if run_traps can be `d_state->ctrl_last_run_traps`) // rjf: copy run traps to scratch (needed, if run_traps can be `d_state->ctrl_last_run_traps`)
CTRL_TrapList run_traps_copy = ctrl_trap_list_copy(scratch.arena, &run_traps); CTRL_TrapList run_traps_copy = ctrl_trap_list_copy(scratch.arena, &run_traps);
D_BreakpointArray run_extra_bps_copy = d_breakpoint_array_copy(scratch.arena, &run_extra_bps);
// rjf: store last run info // rjf: store last run info
arena_clear(d_state->ctrl_last_run_arena); arena_clear(d_state->ctrl_last_run_arena);
@@ -4528,6 +4627,7 @@ d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints)
d_state->ctrl_last_run_thread_handle = run_thread->handle; d_state->ctrl_last_run_thread_handle = run_thread->handle;
d_state->ctrl_last_run_flags = run_flags; d_state->ctrl_last_run_flags = run_flags;
d_state->ctrl_last_run_traps = ctrl_trap_list_copy(d_state->ctrl_last_run_arena, &run_traps_copy); d_state->ctrl_last_run_traps = ctrl_trap_list_copy(d_state->ctrl_last_run_arena, &run_traps_copy);
d_state->ctrl_last_run_extra_bps = d_breakpoint_array_copy(d_state->ctrl_last_run_arena, &run_extra_bps_copy);
d_state->ctrl_is_running = 1; d_state->ctrl_is_running = 1;
} }
} }
+55 -30
View File
@@ -40,6 +40,20 @@ struct D_BreakpointArray
D_Breakpoint *v; D_Breakpoint *v;
U64 count; U64 count;
}; };
typedef struct D_PathMap D_PathMap;
struct D_PathMap
{
String8 src;
String8 dst;
};
typedef struct D_PathMapArray D_PathMapArray;
struct D_PathMapArray
{
D_PathMap *v;
U64 count;
};
//////////////////////////////// ////////////////////////////////
//~ rjf: Tick Output Types //~ rjf: Tick Output Types
@@ -147,27 +161,27 @@ struct D_LineListArray
//////////////////////////////// ////////////////////////////////
//~ rjf: Entity Kind Flags //~ rjf: Entity Kind Flags
typedef U32 D_EntityKindFlags; typedef U32 DF_EntityKindFlags;
enum enum
{ {
//- rjf: allowed operations //- rjf: allowed operations
D_EntityKindFlag_CanDelete = (1<<0), DF_EntityKindFlag_CanDelete = (1<<0),
D_EntityKindFlag_CanFreeze = (1<<1), DF_EntityKindFlag_CanFreeze = (1<<1),
D_EntityKindFlag_CanEdit = (1<<2), DF_EntityKindFlag_CanEdit = (1<<2),
D_EntityKindFlag_CanRename = (1<<3), DF_EntityKindFlag_CanRename = (1<<3),
D_EntityKindFlag_CanEnable = (1<<4), DF_EntityKindFlag_CanEnable = (1<<4),
D_EntityKindFlag_CanCondition = (1<<5), DF_EntityKindFlag_CanCondition = (1<<5),
D_EntityKindFlag_CanDuplicate = (1<<6), DF_EntityKindFlag_CanDuplicate = (1<<6),
//- rjf: name categorization //- rjf: name categorization
D_EntityKindFlag_NameIsCode = (1<<7), DF_EntityKindFlag_NameIsCode = (1<<7),
D_EntityKindFlag_NameIsPath = (1<<8), DF_EntityKindFlag_NameIsPath = (1<<8),
//- rjf: lifetime categorization //- rjf: lifetime categorization
D_EntityKindFlag_UserDefinedLifetime = (1<<9), DF_EntityKindFlag_UserDefinedLifetime = (1<<9),
//- rjf: serialization //- rjf: serialization
D_EntityKindFlag_IsSerializedToConfig = (1<<10), DF_EntityKindFlag_IsSerializedToConfig = (1<<10),
}; };
//////////////////////////////// ////////////////////////////////
@@ -303,7 +317,7 @@ enum
D_EntityFlag_MarkedForDeletion = (1<<31), D_EntityFlag_MarkedForDeletion = (1<<31),
}; };
typedef U64 D_EntityID; typedef U64 DF_EntityID;
typedef struct DF_Entity DF_Entity; typedef struct DF_Entity DF_Entity;
struct DF_Entity struct DF_Entity
@@ -316,9 +330,9 @@ struct DF_Entity
DF_Entity *parent; DF_Entity *parent;
// rjf: metadata // rjf: metadata
D_EntityKind kind; DF_EntityKind kind;
D_EntityFlags flags; D_EntityFlags flags;
D_EntityID id; DF_EntityID id;
U64 gen; U64 gen;
U64 alloc_time_us; U64 alloc_time_us;
F32 alive_t; F32 alive_t;
@@ -464,7 +478,7 @@ typedef struct D_CmdQuery D_CmdQuery;
struct D_CmdQuery struct D_CmdQuery
{ {
D_CmdParamSlot slot; D_CmdParamSlot slot;
D_EntityKind entity_kind; DF_EntityKind entity_kind;
D_CmdQueryFlags flags; D_CmdQueryFlags flags;
}; };
@@ -720,8 +734,8 @@ struct D_State
U64 entities_active_count; U64 entities_active_count;
// rjf: entity query caches // rjf: entity query caches
U64 kind_alloc_gens[D_EntityKind_COUNT]; U64 kind_alloc_gens[DF_EntityKind_COUNT];
D_EntityListCache kind_caches[D_EntityKind_COUNT]; D_EntityListCache kind_caches[DF_EntityKind_COUNT];
// rjf: per-run caches // rjf: per-run caches
D_UnwindCache unwind_cache; D_UnwindCache unwind_cache;
@@ -746,7 +760,8 @@ struct D_State
U64 ctrl_last_run_frame_idx; U64 ctrl_last_run_frame_idx;
CTRL_Handle ctrl_last_run_thread_handle; CTRL_Handle ctrl_last_run_thread_handle;
CTRL_RunFlags ctrl_last_run_flags; CTRL_RunFlags ctrl_last_run_flags;
CTRL_TrapList ctrl_last_run_traps; CTRL_TrapList ctrl_last_run_traps;
D_BreakpointArray ctrl_last_run_extra_bps;
U128 ctrl_last_run_param_state_hash; U128 ctrl_last_run_param_state_hash;
B32 ctrl_is_running; B32 ctrl_is_running;
B32 ctrl_soft_halt_issued; B32 ctrl_soft_halt_issued;
@@ -794,6 +809,16 @@ internal void d_handle_list_push_node(D_HandleList *list, D_HandleNode *node);
internal void d_handle_list_push(Arena *arena, D_HandleList *list, D_Handle handle); internal void d_handle_list_push(Arena *arena, D_HandleList *list, D_Handle handle);
internal D_HandleList d_handle_list_copy(Arena *arena, D_HandleList list); internal D_HandleList d_handle_list_copy(Arena *arena, D_HandleList list);
////////////////////////////////
//~ rjf: Breakpoints
internal D_BreakpointArray d_breakpoint_array_copy(Arena *arena, D_BreakpointArray *src);
////////////////////////////////
//~ rjf: Path Map Application
internal String8List d_possible_path_overrides_from_maps_path(Arena *arena, D_PathMapArray *path_maps, String8 file_path);
//////////////////////////////// ////////////////////////////////
//~ rjf: Config Type Pure Functions //~ rjf: Config Type Pure Functions
@@ -835,10 +860,10 @@ internal D_EntityRec d_entity_rec_depth_first(DF_Entity *entity, DF_Entity *subt
#define d_entity_rec_depth_first_post(entity, subtree_root) d_entity_rec_depth_first((entity), (subtree_root), OffsetOf(DF_Entity, prev), OffsetOf(DF_Entity, last)) #define d_entity_rec_depth_first_post(entity, subtree_root) d_entity_rec_depth_first((entity), (subtree_root), OffsetOf(DF_Entity, prev), OffsetOf(DF_Entity, last))
//- rjf: ancestor/child introspection //- rjf: ancestor/child introspection
internal DF_Entity *d_entity_child_from_kind(DF_Entity *entity, D_EntityKind kind); internal DF_Entity *d_entity_child_from_kind(DF_Entity *entity, DF_EntityKind kind);
internal DF_Entity *d_entity_ancestor_from_kind(DF_Entity *entity, D_EntityKind kind); internal DF_Entity *d_entity_ancestor_from_kind(DF_Entity *entity, DF_EntityKind kind);
internal D_EntityList d_push_entity_child_list_with_kind(Arena *arena, DF_Entity *entity, D_EntityKind kind); internal D_EntityList d_push_entity_child_list_with_kind(Arena *arena, DF_Entity *entity, DF_EntityKind kind);
internal DF_Entity *d_entity_child_from_string_and_kind(DF_Entity *parent, String8 string, D_EntityKind kind); internal DF_Entity *d_entity_child_from_string_and_kind(DF_Entity *parent, String8 string, DF_EntityKind kind);
//- rjf: entity list building //- rjf: entity list building
internal void d_entity_list_push(Arena *arena, D_EntityList *list, DF_Entity *entity); internal void d_entity_list_push(Arena *arena, D_EntityList *list, DF_Entity *entity);
@@ -880,7 +905,7 @@ internal void d_name_release(String8 string);
//~ rjf: Entity Stateful Functions //~ rjf: Entity Stateful Functions
//- rjf: entity allocation + tree forming //- rjf: entity allocation + tree forming
internal DF_Entity *d_entity_alloc(DF_Entity *parent, D_EntityKind kind); internal DF_Entity *d_entity_alloc(DF_Entity *parent, DF_EntityKind kind);
internal void d_entity_mark_for_deletion(DF_Entity *entity); internal void d_entity_mark_for_deletion(DF_Entity *entity);
internal void d_entity_release(DF_Entity *entity); internal void d_entity_release(DF_Entity *entity);
internal void d_entity_change_parent(DF_Entity *entity, DF_Entity *old_parent, DF_Entity *new_parent, DF_Entity *prev_child); internal void d_entity_change_parent(DF_Entity *entity, DF_Entity *old_parent, DF_Entity *new_parent, DF_Entity *prev_child);
@@ -912,12 +937,12 @@ internal String8List d_possible_overrides_from_file_path(Arena *arena, String8 f
//- rjf: top-level state queries //- rjf: top-level state queries
internal DF_Entity *d_entity_root(void); internal DF_Entity *d_entity_root(void);
internal D_EntityList d_push_entity_list_with_kind(Arena *arena, D_EntityKind kind); internal D_EntityList d_push_entity_list_with_kind(Arena *arena, DF_EntityKind kind);
internal DF_Entity *d_entity_from_id(D_EntityID id); internal DF_Entity *d_entity_from_id(DF_EntityID id);
internal DF_Entity *d_machine_entity_from_machine_id(CTRL_MachineID machine_id); internal DF_Entity *d_machine_entity_from_machine_id(CTRL_MachineID machine_id);
internal DF_Entity *d_entity_from_ctrl_handle(CTRL_Handle handle); internal DF_Entity *d_entity_from_ctrl_handle(CTRL_Handle handle);
internal DF_Entity *d_entity_from_ctrl_id(CTRL_MachineID machine_id, U32 id); internal DF_Entity *d_entity_from_ctrl_id(CTRL_MachineID machine_id, U32 id);
internal DF_Entity *d_entity_from_name_and_kind(String8 string, D_EntityKind kind); internal DF_Entity *d_entity_from_name_and_kind(String8 string, DF_EntityKind kind);
//////////////////////////////// ////////////////////////////////
//~ rjf: View Rule Spec Stateful Functions //~ rjf: View Rule Spec Stateful Functions
@@ -1026,14 +1051,14 @@ internal String8 d_cfg_raw_from_escaped_string(Arena *arena, String8 string);
internal String8List d_cfg_strings_from_core(Arena *arena, String8 root_path, D_CfgSrc source); internal String8List d_cfg_strings_from_core(Arena *arena, String8 root_path, D_CfgSrc source);
//- rjf: entity kind cache //- rjf: entity kind cache
internal D_EntityList d_query_cached_entity_list_with_kind(D_EntityKind kind); internal D_EntityList d_query_cached_entity_list_with_kind(DF_EntityKind kind);
//- rjf: active entity based queries //- rjf: active entity based queries
internal DI_KeyList d_push_active_dbgi_key_list(Arena *arena); internal DI_KeyList d_push_active_dbgi_key_list(Arena *arena);
internal D_EntityList d_push_active_target_list(Arena *arena); internal D_EntityList d_push_active_target_list(Arena *arena);
//- rjf: expand key based entity queries //- rjf: expand key based entity queries
internal DF_Entity *d_entity_from_ev_key_and_kind(EV_Key key, D_EntityKind kind); internal DF_Entity *d_entity_from_ev_key_and_kind(EV_Key key, DF_EntityKind kind);
//- rjf: per-run caches //- rjf: per-run caches
internal CTRL_Unwind d_query_cached_unwind_from_thread(CTRL_Entity *thread); internal CTRL_Unwind d_query_cached_unwind_from_thread(CTRL_Entity *thread);
@@ -1054,6 +1079,6 @@ internal B32 d_next_cmd(D_Cmd **cmd);
//~ rjf: Main Layer Top-Level Calls //~ rjf: Main Layer Top-Level Calls
internal void d_init(void); internal void d_init(void);
internal D_EventList d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints); internal D_EventList d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, D_PathMapArray *path_maps);
#endif // DBG_ENGINE_CORE_H #endif // DBG_ENGINE_CORE_H
+31 -31
View File
@@ -148,38 +148,38 @@ str8_lit_comp("Label"),
str8_lit_comp("Label"), str8_lit_comp("Label"),
}; };
D_EntityKindFlags d_entity_kind_flags_table[30] = DF_EntityKindFlags d_entity_kind_flags_table[30] =
{ {
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (1*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (1*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (1*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (1*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (1*DF_EntityKindFlag_IsSerializedToConfig),
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig), (1*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (1*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (1*DF_EntityKindFlag_CanDuplicate) | (1*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (1*DF_EntityKindFlag_IsSerializedToConfig),
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (1*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig), (1*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (1*DF_EntityKindFlag_CanRename) | (1*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (1*DF_EntityKindFlag_CanDuplicate) | (1*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (1*DF_EntityKindFlag_IsSerializedToConfig),
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (1*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (1*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (1*DF_EntityKindFlag_CanRename) | (1*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (1*DF_EntityKindFlag_CanDuplicate) | (1*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (1*D_EntityKindFlag_CanEnable) | (1*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig), (1*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (1*DF_EntityKindFlag_CanRename) | (1*DF_EntityKindFlag_CanEnable) | (1*DF_EntityKindFlag_CanCondition) | (1*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (1*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (1*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (1*D_EntityKindFlag_NameIsCode) | (1*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (1*DF_EntityKindFlag_NameIsCode) | (1*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (1*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (1*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig), (1*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (1*DF_EntityKindFlag_CanEdit) | (1*DF_EntityKindFlag_CanRename) | (1*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (1*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (1*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (1*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (1*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (1*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (1*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig), (1*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (1*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (1*DF_EntityKindFlag_IsSerializedToConfig),
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig), (1*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (1*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (1*DF_EntityKindFlag_IsSerializedToConfig),
(1*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (1*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (1*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig), (1*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (1*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (1*DF_EntityKindFlag_UserDefinedLifetime) | (1*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (1*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (1*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (1*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (1*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (1*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (1*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (1*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (1*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (1*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (1*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (0*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (0*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (1*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
(0*D_EntityKindFlag_CanDelete) | (0*D_EntityKindFlag_CanFreeze) | (0*D_EntityKindFlag_CanEdit) | (1*D_EntityKindFlag_CanRename) | (0*D_EntityKindFlag_CanEnable) | (0*D_EntityKindFlag_CanCondition) | (0*D_EntityKindFlag_CanDuplicate) | (0*D_EntityKindFlag_NameIsCode) | (0*D_EntityKindFlag_NameIsPath) | (0*D_EntityKindFlag_UserDefinedLifetime) | (0*D_EntityKindFlag_IsSerializedToConfig), (0*DF_EntityKindFlag_CanDelete) | (0*DF_EntityKindFlag_CanFreeze) | (0*DF_EntityKindFlag_CanEdit) | (1*DF_EntityKindFlag_CanRename) | (0*DF_EntityKindFlag_CanEnable) | (0*DF_EntityKindFlag_CanCondition) | (0*DF_EntityKindFlag_CanDuplicate) | (0*DF_EntityKindFlag_NameIsCode) | (0*DF_EntityKindFlag_NameIsPath) | (0*DF_EntityKindFlag_UserDefinedLifetime) | (0*DF_EntityKindFlag_IsSerializedToConfig),
}; };
D_ViewRuleSpecInfo d_core_view_rule_spec_info_table[21] = D_ViewRuleSpecInfo d_core_view_rule_spec_info_table[21] =
+34 -34
View File
@@ -15,40 +15,40 @@ D_CfgSrc_Transient,
D_CfgSrc_COUNT, D_CfgSrc_COUNT,
} D_CfgSrc; } D_CfgSrc;
typedef enum D_EntityKind typedef enum DF_EntityKind
{ {
D_EntityKind_Nil, DF_EntityKind_Nil,
D_EntityKind_Root, DF_EntityKind_Root,
D_EntityKind_Machine, DF_EntityKind_Machine,
D_EntityKind_File, DF_EntityKind_File,
D_EntityKind_AutoViewRule, DF_EntityKind_AutoViewRule,
D_EntityKind_FilePathMap, DF_EntityKind_FilePathMap,
D_EntityKind_WatchPin, DF_EntityKind_WatchPin,
D_EntityKind_Watch, DF_EntityKind_Watch,
D_EntityKind_ViewRule, DF_EntityKind_ViewRule,
D_EntityKind_Breakpoint, DF_EntityKind_Breakpoint,
D_EntityKind_Condition, DF_EntityKind_Condition,
D_EntityKind_Location, DF_EntityKind_Location,
D_EntityKind_Target, DF_EntityKind_Target,
D_EntityKind_Executable, DF_EntityKind_Executable,
D_EntityKind_Arguments, DF_EntityKind_Arguments,
D_EntityKind_WorkingDirectory, DF_EntityKind_WorkingDirectory,
D_EntityKind_EntryPoint, DF_EntityKind_EntryPoint,
D_EntityKind_Window, DF_EntityKind_Window,
D_EntityKind_Panel, DF_EntityKind_Panel,
D_EntityKind_View, DF_EntityKind_View,
D_EntityKind_RecentProject, DF_EntityKind_RecentProject,
D_EntityKind_Source, DF_EntityKind_Source,
D_EntityKind_Dest, DF_EntityKind_Dest,
D_EntityKind_Process, DF_EntityKind_Process,
D_EntityKind_Thread, DF_EntityKind_Thread,
D_EntityKind_Module, DF_EntityKind_Module,
D_EntityKind_PendingThreadName, DF_EntityKind_PendingThreadName,
D_EntityKind_DebugInfoPath, DF_EntityKind_DebugInfoPath,
D_EntityKind_ConversionTask, DF_EntityKind_ConversionTask,
D_EntityKind_ConversionFail, DF_EntityKind_ConversionFail,
D_EntityKind_COUNT, DF_EntityKind_COUNT,
} D_EntityKind; } DF_EntityKind;
typedef enum D_CmdKind typedef enum D_CmdKind
{ {
@@ -142,7 +142,7 @@ extern String8 d_entity_kind_display_string_table[30];
extern String8 d_entity_kind_name_lower_table[30]; extern String8 d_entity_kind_name_lower_table[30];
extern String8 d_entity_kind_name_lower_plural_table[30]; extern String8 d_entity_kind_name_lower_plural_table[30];
extern String8 d_entity_kind_name_label_table[30]; extern String8 d_entity_kind_name_label_table[30];
extern D_EntityKindFlags d_entity_kind_flags_table[30]; extern DF_EntityKindFlags d_entity_kind_flags_table[30];
C_LINKAGE_END C_LINKAGE_END
+4 -4
View File
@@ -390,7 +390,7 @@ DF_CmdTable: // | | | |
`DF_QueryFlags flags`; `DF_QueryFlags flags`;
`DF_RegSlot slot`; `DF_RegSlot slot`;
`String8 view_name`; `String8 view_name`;
`D_EntityKind entity_kind`; `DF_EntityKind entity_kind`;
} }
@struct DF_CmdKindInfo: @struct DF_CmdKindInfo:
@@ -408,9 +408,9 @@ DF_CmdTable: // | | | |
{ {
`{0}`, `{0}`,
@expand(D_CmdTable, a) @expand(D_CmdTable, a)
```{ str8_lit_comp("$(a.string)"), str8_lit_comp("$(a.desc)"), str8_lit_comp("$(a.search_tags)"), str8_lit_comp("$(a.display_name)"), DF_IconKind_$(a.canonical_icon), (DF_CmdKindFlag_ListInUI*$(a.ui_vis))|(DF_CmdKindFlag_ListInIPCDocs*$(a.ipc_docs_vis)), {(DF_QueryFlag_AllowFiles*$(a.q_allow_files))|(DF_QueryFlag_AllowFolders*$(a.q_allow_folders))|(DF_QueryFlag_CodeInput*$(a.q_is_code))|(DF_QueryFlag_KeepOldInput*$(a.q_keep_oi))|(DF_QueryFlag_SelectOldInput*$(a.q_select_oi))|(DF_QueryFlag_Required*$(a.q_required)), DF_RegSlot_$(a.q_slot), str8_lit_comp("$(a.q_view != 'null' -> a.q_view)"), D_EntityKind_$(a.q_ent_kind)}}```; ```{ str8_lit_comp("$(a.string)"), str8_lit_comp("$(a.desc)"), str8_lit_comp("$(a.search_tags)"), str8_lit_comp("$(a.display_name)"), DF_IconKind_$(a.canonical_icon), (DF_CmdKindFlag_ListInUI*$(a.ui_vis))|(DF_CmdKindFlag_ListInIPCDocs*$(a.ipc_docs_vis)), {(DF_QueryFlag_AllowFiles*$(a.q_allow_files))|(DF_QueryFlag_AllowFolders*$(a.q_allow_folders))|(DF_QueryFlag_CodeInput*$(a.q_is_code))|(DF_QueryFlag_KeepOldInput*$(a.q_keep_oi))|(DF_QueryFlag_SelectOldInput*$(a.q_select_oi))|(DF_QueryFlag_Required*$(a.q_required)), DF_RegSlot_$(a.q_slot), str8_lit_comp("$(a.q_view != 'null' -> a.q_view)"), DF_EntityKind_$(a.q_ent_kind)}}```;
@expand(DF_CmdTable, a) @expand(DF_CmdTable, a)
```{ str8_lit_comp("$(a.string)"), str8_lit_comp("$(a.desc)"), str8_lit_comp("$(a.search_tags)"), str8_lit_comp("$(a.display_name)"), DF_IconKind_$(a.canonical_icon), (DF_CmdKindFlag_ListInUI*$(a.ui_vis))|(DF_CmdKindFlag_ListInIPCDocs*$(a.ipc_docs_vis)), {(DF_QueryFlag_AllowFiles*$(a.q_allow_files))|(DF_QueryFlag_AllowFolders*$(a.q_allow_folders))|(DF_QueryFlag_CodeInput*$(a.q_is_code))|(DF_QueryFlag_KeepOldInput*$(a.q_keep_oi))|(DF_QueryFlag_SelectOldInput*$(a.q_select_oi))|(DF_QueryFlag_Required*$(a.q_required)), DF_RegSlot_$(a.q_slot), str8_lit_comp("$(a.q_view != 'null' -> a.q_view)"), D_EntityKind_$(a.q_ent_kind)}}```; ```{ str8_lit_comp("$(a.string)"), str8_lit_comp("$(a.desc)"), str8_lit_comp("$(a.search_tags)"), str8_lit_comp("$(a.display_name)"), DF_IconKind_$(a.canonical_icon), (DF_CmdKindFlag_ListInUI*$(a.ui_vis))|(DF_CmdKindFlag_ListInIPCDocs*$(a.ipc_docs_vis)), {(DF_QueryFlag_AllowFiles*$(a.q_allow_files))|(DF_QueryFlag_AllowFolders*$(a.q_allow_folders))|(DF_QueryFlag_CodeInput*$(a.q_is_code))|(DF_QueryFlag_KeepOldInput*$(a.q_keep_oi))|(DF_QueryFlag_SelectOldInput*$(a.q_select_oi))|(DF_QueryFlag_Required*$(a.q_required)), DF_RegSlot_$(a.q_slot), str8_lit_comp("$(a.q_view != 'null' -> a.q_view)"), DF_EntityKind_$(a.q_ent_kind)}}```;
} }
//////////////////////////////// ////////////////////////////////
@@ -783,7 +783,7 @@ DF_ViewTable:
@data(DF_IconKind) df_entity_kind_icon_kind_table: @data(DF_IconKind) df_entity_kind_icon_kind_table:
{ {
@expand(D_EntityKindTable a) `DF_IconKind_$(a.icon_kind)`, @expand(DF_EntityKindTable a) `DF_IconKind_$(a.icon_kind)`,
} }
//////////////////////////////// ////////////////////////////////
+109 -101
View File
@@ -1702,7 +1702,7 @@ df_window_frame(DF_Window *ws)
DF_Entity *entity = d_entity_from_handle(ws->entity_ctx_menu_entity); DF_Entity *entity = d_entity_from_handle(ws->entity_ctx_menu_entity);
CTRL_Entity *entity_ctrl = ctrl_entity_from_handle(d_state->ctrl_entity_store, entity->ctrl_handle); CTRL_Entity *entity_ctrl = ctrl_entity_from_handle(d_state->ctrl_entity_store, entity->ctrl_handle);
DF_IconKind entity_icon = df_entity_kind_icon_kind_table[entity->kind]; DF_IconKind entity_icon = df_entity_kind_icon_kind_table[entity->kind];
D_EntityKindFlags kind_flags = d_entity_kind_flags_table[entity->kind]; DF_EntityKindFlags kind_flags = d_entity_kind_flags_table[entity->kind];
String8 display_name = d_display_string_from_entity(scratch.arena, entity); String8 display_name = d_display_string_from_entity(scratch.arena, entity);
// rjf: title // rjf: title
@@ -1727,7 +1727,7 @@ df_window_frame(DF_Window *ws)
} }
UI_Palette(palette) UI_Palette(palette)
UI_PrefWidth(ui_text_dim(10, 1)) UI_PrefWidth(ui_text_dim(10, 1))
DF_Font((kind_flags & D_EntityKindFlag_NameIsCode) ? DF_FontSlot_Code : DF_FontSlot_Main) DF_Font((kind_flags & DF_EntityKindFlag_NameIsCode) ? DF_FontSlot_Code : DF_FontSlot_Main)
ui_label(display_name); ui_label(display_name);
} }
} }
@@ -1735,7 +1735,7 @@ df_window_frame(DF_Window *ws)
DF_Palette(DF_PaletteCode_Floating) ui_divider(ui_em(1.f, 1.f)); DF_Palette(DF_PaletteCode_Floating) ui_divider(ui_em(1.f, 1.f));
// rjf: name editor // rjf: name editor
if(kind_flags & D_EntityKindFlag_CanRename) UI_TextPadding(ui_top_font_size()*1.5f) if(kind_flags & DF_EntityKindFlag_CanRename) UI_TextPadding(ui_top_font_size()*1.5f)
{ {
UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, entity->string, "%S###entity_name_edit_%p", d_entity_kind_name_label_table[entity->kind], entity); UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, entity->string, "%S###entity_name_edit_%p", d_entity_kind_name_label_table[entity->kind], entity);
if(ui_committed(sig)) if(ui_committed(sig))
@@ -1747,11 +1747,11 @@ df_window_frame(DF_Window *ws)
} }
// rjf: condition editor // rjf: condition editor
if(kind_flags & D_EntityKindFlag_CanCondition) if(kind_flags & DF_EntityKindFlag_CanCondition)
DF_Font(DF_FontSlot_Code) DF_Font(DF_FontSlot_Code)
UI_TextPadding(ui_top_font_size()*1.5f) UI_TextPadding(ui_top_font_size()*1.5f)
{ {
DF_Entity *condition = d_entity_child_from_kind(entity, D_EntityKind_Condition); DF_Entity *condition = d_entity_child_from_kind(entity, DF_EntityKind_Condition);
UI_Signal sig = df_line_editf(DF_LineEditFlag_Border|DF_LineEditFlag_CodeContents, 0, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, condition->string, "Condition###entity_cond_edit_%p", entity); UI_Signal sig = df_line_editf(DF_LineEditFlag_Border|DF_LineEditFlag_CodeContents, 0, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, condition->string, "Condition###entity_cond_edit_%p", entity);
if(ui_committed(sig)) if(ui_committed(sig))
{ {
@@ -1760,7 +1760,7 @@ df_window_frame(DF_Window *ws)
{ {
if(d_entity_is_nil(condition)) if(d_entity_is_nil(condition))
{ {
condition = d_entity_alloc(entity, D_EntityKind_Condition); condition = d_entity_alloc(entity, DF_EntityKind_Condition);
} }
df_cmd(DF_CmdKind_NameEntity, .entity = d_handle_from_entity(condition), .string = new_string); df_cmd(DF_CmdKind_NameEntity, .entity = d_handle_from_entity(condition), .string = new_string);
} }
@@ -1772,9 +1772,9 @@ df_window_frame(DF_Window *ws)
} }
// rjf: exe editor // rjf: exe editor
if(entity->kind == D_EntityKind_Target) UI_TextPadding(ui_top_font_size()*1.5f) if(entity->kind == DF_EntityKind_Target) UI_TextPadding(ui_top_font_size()*1.5f)
{ {
DF_Entity *exe = d_entity_child_from_kind(entity, D_EntityKind_Executable); DF_Entity *exe = d_entity_child_from_kind(entity, DF_EntityKind_Executable);
UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, exe->string, "Executable###entity_exe_edit_%p", entity); UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, exe->string, "Executable###entity_exe_edit_%p", entity);
if(ui_committed(sig)) if(ui_committed(sig))
{ {
@@ -1783,7 +1783,7 @@ df_window_frame(DF_Window *ws)
{ {
if(d_entity_is_nil(exe)) if(d_entity_is_nil(exe))
{ {
exe = d_entity_alloc(entity, D_EntityKind_Executable); exe = d_entity_alloc(entity, DF_EntityKind_Executable);
} }
df_cmd(DF_CmdKind_NameEntity, .entity = d_handle_from_entity(exe), .string = new_string); df_cmd(DF_CmdKind_NameEntity, .entity = d_handle_from_entity(exe), .string = new_string);
} }
@@ -1795,9 +1795,9 @@ df_window_frame(DF_Window *ws)
} }
// rjf: arguments editors // rjf: arguments editors
if(entity->kind == D_EntityKind_Target) UI_TextPadding(ui_top_font_size()*1.5f) if(entity->kind == DF_EntityKind_Target) UI_TextPadding(ui_top_font_size()*1.5f)
{ {
DF_Entity *args = d_entity_child_from_kind(entity, D_EntityKind_Arguments); DF_Entity *args = d_entity_child_from_kind(entity, DF_EntityKind_Arguments);
UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, args->string, "Arguments###entity_args_edit_%p", entity); UI_Signal sig = df_line_editf(DF_LineEditFlag_Border, 0, 0, &ws->entity_ctx_menu_input_cursor, &ws->entity_ctx_menu_input_mark, ws->entity_ctx_menu_input_buffer, sizeof(ws->entity_ctx_menu_input_buffer), &ws->entity_ctx_menu_input_size, 0, args->string, "Arguments###entity_args_edit_%p", entity);
if(ui_committed(sig)) if(ui_committed(sig))
{ {
@@ -1806,7 +1806,7 @@ df_window_frame(DF_Window *ws)
{ {
if(d_entity_is_nil(args)) if(d_entity_is_nil(args))
{ {
args = d_entity_alloc(entity, D_EntityKind_Arguments); args = d_entity_alloc(entity, DF_EntityKind_Arguments);
} }
df_cmd(DF_CmdKind_NameEntity, .entity = d_handle_from_entity(args), .string = new_string); df_cmd(DF_CmdKind_NameEntity, .entity = d_handle_from_entity(args), .string = new_string);
} }
@@ -1831,28 +1831,28 @@ df_window_frame(DF_Window *ws)
} }
// rjf: duplicate // rjf: duplicate
if(kind_flags & D_EntityKindFlag_CanDuplicate && ui_clicked(df_icon_buttonf(DF_IconKind_XSplit, 0, "Duplicate"))) if(kind_flags & DF_EntityKindFlag_CanDuplicate && ui_clicked(df_icon_buttonf(DF_IconKind_XSplit, 0, "Duplicate")))
{ {
df_cmd(DF_CmdKind_DuplicateEntity, .entity = d_handle_from_entity(entity)); df_cmd(DF_CmdKind_DuplicateEntity, .entity = d_handle_from_entity(entity));
ui_ctx_menu_close(); ui_ctx_menu_close();
} }
// rjf: edit // rjf: edit
if(kind_flags & D_EntityKindFlag_CanEdit && ui_clicked(df_icon_buttonf(DF_IconKind_Pencil, 0, "Edit"))) if(kind_flags & DF_EntityKindFlag_CanEdit && ui_clicked(df_icon_buttonf(DF_IconKind_Pencil, 0, "Edit")))
{ {
df_cmd(DF_CmdKind_EditEntity, .entity = d_handle_from_entity(entity)); df_cmd(DF_CmdKind_EditEntity, .entity = d_handle_from_entity(entity));
ui_ctx_menu_close(); ui_ctx_menu_close();
} }
// rjf: deletion // rjf: deletion
if(kind_flags & D_EntityKindFlag_CanDelete && ui_clicked(df_icon_buttonf(DF_IconKind_Trash, 0, "Delete"))) if(kind_flags & DF_EntityKindFlag_CanDelete && ui_clicked(df_icon_buttonf(DF_IconKind_Trash, 0, "Delete")))
{ {
df_cmd(DF_CmdKind_RemoveEntity, .entity = d_handle_from_entity(entity)); df_cmd(DF_CmdKind_RemoveEntity, .entity = d_handle_from_entity(entity));
ui_ctx_menu_close(); ui_ctx_menu_close();
} }
// rjf: enabling // rjf: enabling
if(kind_flags & D_EntityKindFlag_CanEnable) if(kind_flags & DF_EntityKindFlag_CanEnable)
{ {
B32 is_enabled = !entity->disabled; B32 is_enabled = !entity->disabled;
if(!is_enabled && ui_clicked(df_icon_buttonf(DF_IconKind_CheckHollow, 0, "Enable###enabler"))) if(!is_enabled && ui_clicked(df_icon_buttonf(DF_IconKind_CheckHollow, 0, "Enable###enabler")))
@@ -1866,7 +1866,7 @@ df_window_frame(DF_Window *ws)
} }
// rjf: freezing // rjf: freezing
if(kind_flags & D_EntityKindFlag_CanFreeze) if(kind_flags & DF_EntityKindFlag_CanFreeze)
{ {
B32 is_frozen = ctrl_entity_tree_is_frozen(entity_ctrl); B32 is_frozen = ctrl_entity_tree_is_frozen(entity_ctrl);
ui_set_next_palette(df_palette_from_code(is_frozen ? DF_PaletteCode_NegativePopButton : DF_PaletteCode_PositivePopButton)); ui_set_next_palette(df_palette_from_code(is_frozen ? DF_PaletteCode_NegativePopButton : DF_PaletteCode_PositivePopButton));
@@ -1882,7 +1882,7 @@ df_window_frame(DF_Window *ws)
// rjf: go-to-location // rjf: go-to-location
{ {
DF_Entity *loc = d_entity_child_from_kind(entity, D_EntityKind_Location); DF_Entity *loc = d_entity_child_from_kind(entity, DF_EntityKind_Location);
if(!d_entity_is_nil(loc) && ui_clicked(df_icon_buttonf(DF_IconKind_FileOutline, 0, "Go To Location"))) if(!d_entity_is_nil(loc) && ui_clicked(df_icon_buttonf(DF_IconKind_FileOutline, 0, "Go To Location")))
{ {
df_cmd(DF_CmdKind_FindCodeLocation, df_cmd(DF_CmdKind_FindCodeLocation,
@@ -1900,10 +1900,10 @@ df_window_frame(DF_Window *ws)
{ {
}break; }break;
case D_EntityKind_Process: case DF_EntityKind_Process:
case D_EntityKind_Thread: case DF_EntityKind_Thread:
{ {
if(entity->kind == D_EntityKind_Thread) if(entity->kind == DF_EntityKind_Thread)
{ {
CTRL_Entity *entity_ctrl = ctrl_entity_from_handle(d_state->ctrl_entity_store, entity->ctrl_handle); CTRL_Entity *entity_ctrl = ctrl_entity_from_handle(d_state->ctrl_entity_store, entity->ctrl_handle);
B32 is_selected = ctrl_handle_match(df_base_regs()->thread, entity_ctrl->handle); B32 is_selected = ctrl_handle_match(df_base_regs()->thread, entity_ctrl->handle);
@@ -1926,7 +1926,7 @@ df_window_frame(DF_Window *ws)
ui_ctx_menu_close(); ui_ctx_menu_close();
} }
if(entity->kind == D_EntityKind_Thread) if(entity->kind == DF_EntityKind_Thread)
{ {
if(ui_clicked(df_icon_buttonf(DF_IconKind_Clipboard, 0, "Copy Instruction Pointer Address"))) if(ui_clicked(df_icon_buttonf(DF_IconKind_Clipboard, 0, "Copy Instruction Pointer Address")))
{ {
@@ -1938,7 +1938,7 @@ df_window_frame(DF_Window *ws)
} }
} }
if(entity->kind == D_EntityKind_Thread) if(entity->kind == DF_EntityKind_Thread)
{ {
if(ui_clicked(df_icon_buttonf(DF_IconKind_Clipboard, 0, "Copy Call Stack"))) if(ui_clicked(df_icon_buttonf(DF_IconKind_Clipboard, 0, "Copy Call Stack")))
{ {
@@ -1988,7 +1988,7 @@ df_window_frame(DF_Window *ws)
} }
} }
if(entity->kind == D_EntityKind_Thread) if(entity->kind == DF_EntityKind_Thread)
{ {
if(ui_clicked(df_icon_buttonf(DF_IconKind_FileOutline, 0, "Find"))) if(ui_clicked(df_icon_buttonf(DF_IconKind_FileOutline, 0, "Find")))
{ {
@@ -1998,7 +1998,7 @@ df_window_frame(DF_Window *ws)
} }
}break; }break;
case D_EntityKind_Module: case DF_EntityKind_Module:
{ {
UI_Signal copy_full_path_sig = df_icon_buttonf(DF_IconKind_Clipboard, 0, "Copy Full Path"); UI_Signal copy_full_path_sig = df_icon_buttonf(DF_IconKind_Clipboard, 0, "Copy Full Path");
if(ui_clicked(copy_full_path_sig)) if(ui_clicked(copy_full_path_sig))
@@ -2028,7 +2028,7 @@ df_window_frame(DF_Window *ws)
} }
}break; }break;
case D_EntityKind_Target: case DF_EntityKind_Target:
{ {
if(ui_clicked(df_icon_buttonf(DF_IconKind_Play, 0, "Launch And Run"))) if(ui_clicked(df_icon_buttonf(DF_IconKind_Play, 0, "Launch And Run")))
{ {
@@ -2850,7 +2850,7 @@ df_window_frame(DF_Window *ws)
Assert(ArrayCount(codepoints) == ArrayCount(cmds)); Assert(ArrayCount(codepoints) == ArrayCount(cmds));
df_cmd_list_menu_buttons(ArrayCount(cmds), cmds, codepoints); df_cmd_list_menu_buttons(ArrayCount(cmds), cmds, codepoints);
DF_Palette(DF_PaletteCode_Floating) ui_divider(ui_em(1.f, 1.f)); DF_Palette(DF_PaletteCode_Floating) ui_divider(ui_em(1.f, 1.f));
D_EntityList targets_list = d_query_cached_entity_list_with_kind(D_EntityKind_Target); D_EntityList targets_list = d_query_cached_entity_list_with_kind(DF_EntityKind_Target);
for(D_EntityNode *n = targets_list.first; n != 0; n = n->next) for(D_EntityNode *n = targets_list.first; n != 0; n = n->next)
{ {
DF_Entity *target = n->entity; DF_Entity *target = n->entity;
@@ -3055,7 +3055,7 @@ df_window_frame(DF_Window *ws)
DF_Palette(DF_PaletteCode_NeutralPopButton) DF_Palette(DF_PaletteCode_NeutralPopButton)
{ {
Temp scratch = scratch_begin(0, 0); Temp scratch = scratch_begin(0, 0);
D_EntityList tasks = d_query_cached_entity_list_with_kind(D_EntityKind_ConversionTask); D_EntityList tasks = d_query_cached_entity_list_with_kind(DF_EntityKind_ConversionTask);
for(D_EntityNode *n = tasks.first; n != 0; n = n->next) for(D_EntityNode *n = tasks.first; n != 0; n = n->next)
{ {
DF_Entity *task = n->entity; DF_Entity *task = n->entity;
@@ -3087,7 +3087,7 @@ df_window_frame(DF_Window *ws)
{ {
Temp scratch = scratch_begin(0, 0); Temp scratch = scratch_begin(0, 0);
D_EntityList targets = d_push_active_target_list(scratch.arena); D_EntityList targets = d_push_active_target_list(scratch.arena);
D_EntityList processes = d_query_cached_entity_list_with_kind(D_EntityKind_Process); D_EntityList processes = d_query_cached_entity_list_with_kind(DF_EntityKind_Process);
B32 have_targets = targets.count != 0; B32 have_targets = targets.count != 0;
B32 can_send_signal = !d_ctrl_targets_running(); B32 can_send_signal = !d_ctrl_targets_running();
B32 can_play = (have_targets && (can_send_signal || d_ctrl_last_run_frame_idx()+4 > df_state->frame_index)); B32 can_play = (have_targets && (can_send_signal || d_ctrl_last_run_frame_idx()+4 > df_state->frame_index));
@@ -3151,7 +3151,7 @@ df_window_frame(DF_Window *ws)
{ {
ui_labelf("Restart all running targets:"); ui_labelf("Restart all running targets:");
{ {
D_EntityList processes = d_query_cached_entity_list_with_kind(D_EntityKind_Process); D_EntityList processes = d_query_cached_entity_list_with_kind(DF_EntityKind_Process);
for(D_EntityNode *n = processes.first; n != 0; n = n->next) for(D_EntityNode *n = processes.first; n != 0; n = n->next)
{ {
DF_Entity *process = n->entity; DF_Entity *process = n->entity;
@@ -3892,7 +3892,7 @@ df_window_frame(DF_Window *ws)
EV_Key key = ev_key_make(ev_hash_from_key(parent_key), 1); EV_Key key = ev_key_make(ev_hash_from_key(parent_key), 1);
EV_BlockList viz_blocks = ev_block_list_from_view_expr_keys(scratch.arena, ev_view, &top_level_view_rules, expr, parent_key, key); EV_BlockList viz_blocks = ev_block_list_from_view_expr_keys(scratch.arena, ev_view, &top_level_view_rules, expr, parent_key, key);
DF_Entity *entity = d_entity_from_eval_space(eval.space); DF_Entity *entity = d_entity_from_eval_space(eval.space);
U32 default_radix = (entity->kind == D_EntityKind_Thread ? 16 : 10); U32 default_radix = (entity->kind == DF_EntityKind_Thread ? 16 : 10);
EV_WindowedRowList viz_rows = ev_windowed_row_list_from_block_list(scratch.arena, ev_view, r1s64(0, 50), &viz_blocks); EV_WindowedRowList viz_rows = ev_windowed_row_list_from_block_list(scratch.arena, ev_view, r1s64(0, 50), &viz_blocks);
//- rjf: animate //- rjf: animate
@@ -3999,7 +3999,7 @@ df_window_frame(DF_Window *ws)
case E_Mode_Offset: case E_Mode_Offset:
{ {
DF_Entity *space_entity = d_entity_from_eval_space(row_eval.space); DF_Entity *space_entity = d_entity_from_eval_space(row_eval.space);
if(space_entity->kind == D_EntityKind_Process) if(space_entity->kind == DF_EntityKind_Process)
{ {
U64 size = e_type_byte_size_from_key(row_eval.type_key); U64 size = e_type_byte_size_from_key(row_eval.type_key);
size = Min(size, 64); size = Min(size, 64);
@@ -7256,8 +7256,8 @@ df_stop_explanation_string_icon_from_ctrl_event(Arena *arena, CTRL_Event *event,
DF_Entity *thread = d_entity_from_ctrl_handle(event->entity); DF_Entity *thread = d_entity_from_ctrl_handle(event->entity);
String8 thread_display_string = d_display_string_from_entity(scratch.arena, thread); String8 thread_display_string = d_display_string_from_entity(scratch.arena, thread);
String8 process_thread_string = thread_display_string; String8 process_thread_string = thread_display_string;
DF_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); DF_Entity *process = d_entity_ancestor_from_kind(thread, DF_EntityKind_Process);
if(process->kind == D_EntityKind_Process) if(process->kind == DF_EntityKind_Process)
{ {
String8 process_display_string = d_display_string_from_entity(scratch.arena, process); String8 process_display_string = d_display_string_from_entity(scratch.arena, process);
process_thread_string = push_str8f(scratch.arena, "%S: %S", process_display_string, thread_display_string); process_thread_string = push_str8f(scratch.arena, "%S: %S", process_display_string, thread_display_string);
@@ -8143,11 +8143,11 @@ df_frame(void)
.name = str8_lit("Entity"), .name = str8_lit("Entity"),
.members = entity_members_array.v, .members = entity_members_array.v,
.count = entity_members_array.count); .count = entity_members_array.count);
D_EntityKind evallable_kinds[] = DF_EntityKind evallable_kinds[] =
{ {
D_EntityKind_Breakpoint, DF_EntityKind_Breakpoint,
D_EntityKind_WatchPin, DF_EntityKind_WatchPin,
D_EntityKind_Target, DF_EntityKind_Target,
}; };
for(U64 idx = 0; idx < ArrayCount(evallable_kinds); idx += 1) for(U64 idx = 0; idx < ArrayCount(evallable_kinds); idx += 1)
{ {
@@ -8169,7 +8169,7 @@ df_frame(void)
} }
//- rjf: add macros for all watches which define identifiers //- rjf: add macros for all watches which define identifiers
D_EntityList watches = d_query_cached_entity_list_with_kind(D_EntityKind_Watch); D_EntityList watches = d_query_cached_entity_list_with_kind(DF_EntityKind_Watch);
for(D_EntityNode *n = watches.first; n != 0; n = n->next) for(D_EntityNode *n = watches.first; n != 0; n = n->next)
{ {
DF_Entity *watch = n->entity; DF_Entity *watch = n->entity;
@@ -8433,7 +8433,7 @@ df_frame(void)
case DF_CmdKind_OpenRecentProject: case DF_CmdKind_OpenRecentProject:
{ {
DF_Entity *entity = d_entity_from_handle(df_regs()->entity); DF_Entity *entity = d_entity_from_handle(df_regs()->entity);
if(entity->kind == D_EntityKind_RecentProject) if(entity->kind == DF_EntityKind_RecentProject)
{ {
df_cmd(DF_CmdKind_OpenProject, .file_path = entity->string); df_cmd(DF_CmdKind_OpenProject, .file_path = entity->string);
} }
@@ -8607,7 +8607,7 @@ df_frame(void)
//- rjf: keep track of recent projects //- rjf: keep track of recent projects
if(src == D_CfgSrc_Project) if(src == D_CfgSrc_Project)
{ {
D_EntityList recent_projects = d_query_cached_entity_list_with_kind(D_EntityKind_RecentProject); D_EntityList recent_projects = d_query_cached_entity_list_with_kind(DF_EntityKind_RecentProject);
DF_Entity *recent_project = &d_nil_entity; DF_Entity *recent_project = &d_nil_entity;
for(D_EntityNode *n = recent_projects.first; n != 0; n = n->next) for(D_EntityNode *n = recent_projects.first; n != 0; n = n->next)
{ {
@@ -8619,7 +8619,7 @@ df_frame(void)
} }
if(d_entity_is_nil(recent_project)) if(d_entity_is_nil(recent_project))
{ {
recent_project = d_entity_alloc(d_entity_root(), D_EntityKind_RecentProject); recent_project = d_entity_alloc(d_entity_root(), DF_EntityKind_RecentProject);
d_entity_equip_name(recent_project, path_normalized_from_string(scratch.arena, cfg_path)); d_entity_equip_name(recent_project, path_normalized_from_string(scratch.arena, cfg_path));
d_entity_equip_cfg_src(recent_project, D_CfgSrc_User); d_entity_equip_cfg_src(recent_project, D_CfgSrc_User);
} }
@@ -8627,10 +8627,10 @@ df_frame(void)
//- rjf: eliminate all existing entities which are derived from config //- rjf: eliminate all existing entities which are derived from config
{ {
for(EachEnumVal(D_EntityKind, k)) for(EachEnumVal(DF_EntityKind, k))
{ {
D_EntityKindFlags k_flags = d_entity_kind_flags_table[k]; DF_EntityKindFlags k_flags = d_entity_kind_flags_table[k];
if(k_flags & D_EntityKindFlag_IsSerializedToConfig) if(k_flags & DF_EntityKindFlag_IsSerializedToConfig)
{ {
D_EntityList entities = d_query_cached_entity_list_with_kind(k); D_EntityList entities = d_query_cached_entity_list_with_kind(k);
for(D_EntityNode *n = entities.first; n != 0; n = n->next) for(D_EntityNode *n = entities.first; n != 0; n = n->next)
@@ -8646,10 +8646,10 @@ df_frame(void)
//- rjf: apply all entities //- rjf: apply all entities
{ {
for(EachEnumVal(D_EntityKind, k)) for(EachEnumVal(DF_EntityKind, k))
{ {
D_EntityKindFlags k_flags = d_entity_kind_flags_table[k]; DF_EntityKindFlags k_flags = d_entity_kind_flags_table[k];
if(k_flags & D_EntityKindFlag_IsSerializedToConfig) if(k_flags & DF_EntityKindFlag_IsSerializedToConfig)
{ {
D_CfgVal *k_val = d_cfg_val_from_string(table, d_entity_kind_name_lower_table[k]); D_CfgVal *k_val = d_cfg_val_from_string(table, d_entity_kind_name_lower_table[k]);
for(D_CfgTree *k_tree = k_val->first; for(D_CfgTree *k_tree = k_val->first;
@@ -8683,7 +8683,7 @@ df_frame(void)
if(child->flags & MD_NodeFlag_StringLiteral && child->first == &md_nil_node) if(child->flags & MD_NodeFlag_StringLiteral && child->first == &md_nil_node)
{ {
String8 string = d_cfg_raw_from_escaped_string(scratch.arena, child->string); String8 string = d_cfg_raw_from_escaped_string(scratch.arena, child->string);
if(d_entity_kind_flags_table[t->entity->kind] & D_EntityKindFlag_NameIsPath) if(d_entity_kind_flags_table[t->entity->kind] & DF_EntityKindFlag_NameIsPath)
{ {
string = path_absolute_dst_from_relative_dst_src(scratch.arena, string, cfg_folder); string = path_absolute_dst_from_relative_dst_src(scratch.arena, string, cfg_folder);
} }
@@ -8694,7 +8694,7 @@ df_frame(void)
if(child->flags & MD_NodeFlag_StringLiteral && child->first->flags & MD_NodeFlag_Numeric && child->first->first == &md_nil_node) if(child->flags & MD_NodeFlag_StringLiteral && child->first->flags & MD_NodeFlag_Numeric && child->first->first == &md_nil_node)
{ {
String8 string = d_cfg_raw_from_escaped_string(scratch.arena, child->string); String8 string = d_cfg_raw_from_escaped_string(scratch.arena, child->string);
if(d_entity_kind_flags_table[t->entity->kind] & D_EntityKindFlag_NameIsPath) if(d_entity_kind_flags_table[t->entity->kind] & DF_EntityKindFlag_NameIsPath)
{ {
string = path_absolute_dst_from_relative_dst_src(scratch.arena, string, cfg_folder); string = path_absolute_dst_from_relative_dst_src(scratch.arena, string, cfg_folder);
} }
@@ -8719,7 +8719,7 @@ df_frame(void)
child->first != &md_nil_node) child->first != &md_nil_node)
{ {
String8 string = d_cfg_raw_from_escaped_string(scratch.arena, child->first->string); String8 string = d_cfg_raw_from_escaped_string(scratch.arena, child->first->string);
if(d_entity_kind_flags_table[t->entity->kind] & D_EntityKindFlag_NameIsPath) if(d_entity_kind_flags_table[t->entity->kind] & DF_EntityKindFlag_NameIsPath)
{ {
string = path_absolute_dst_from_relative_dst_src(scratch.arena, string, cfg_folder); string = path_absolute_dst_from_relative_dst_src(scratch.arena, string, cfg_folder);
} }
@@ -8767,12 +8767,12 @@ df_frame(void)
} }
// rjf: sub-entity -> create new task // rjf: sub-entity -> create new task
D_EntityKind sub_entity_kind = D_EntityKind_Nil; DF_EntityKind sub_entity_kind = DF_EntityKind_Nil;
for(EachEnumVal(D_EntityKind, k2)) for(EachEnumVal(DF_EntityKind, k2))
{ {
if(child->flags & MD_NodeFlag_Identifier && child->first != &md_nil_node && if(child->flags & MD_NodeFlag_Identifier && child->first != &md_nil_node &&
(str8_match(child->string, d_entity_kind_name_lower_table[k2], StringMatchFlag_CaseInsensitive) || (str8_match(child->string, d_entity_kind_name_lower_table[k2], StringMatchFlag_CaseInsensitive) ||
(k2 == D_EntityKind_Executable && str8_match(child->string, str8_lit("exe"), StringMatchFlag_CaseInsensitive)))) (k2 == DF_EntityKind_Executable && str8_match(child->string, str8_lit("exe"), StringMatchFlag_CaseInsensitive))))
{ {
Task *task = push_array(scratch.arena, Task, 1); Task *task = push_array(scratch.arena, Task, 1);
task->next = t->next; task->next = t->next;
@@ -9775,7 +9775,7 @@ df_frame(void)
DF_Entity *map_parent = (df_regs()->file_path.size != 0) ? d_entity_from_path(path_folder, D_EntityFromPathFlag_OpenAsNeeded|D_EntityFromPathFlag_OpenMissing) : d_entity_root(); DF_Entity *map_parent = (df_regs()->file_path.size != 0) ? d_entity_from_path(path_folder, D_EntityFromPathFlag_OpenAsNeeded|D_EntityFromPathFlag_OpenMissing) : d_entity_root();
if(d_entity_is_nil(map)) if(d_entity_is_nil(map))
{ {
map = d_entity_alloc(map_parent, D_EntityKind_FilePathMap); map = d_entity_alloc(map_parent, DF_EntityKind_FilePathMap);
} }
else else
{ {
@@ -9787,7 +9787,7 @@ df_frame(void)
{ {
if(d_entity_is_nil(map)) if(d_entity_is_nil(map))
{ {
map = d_entity_alloc(d_entity_root(), D_EntityKind_FilePathMap); map = d_entity_alloc(d_entity_root(), DF_EntityKind_FilePathMap);
} }
DF_Entity *map_dst_entity = &d_nil_entity; DF_Entity *map_dst_entity = &d_nil_entity;
if(df_regs()->file_path.size != 0) if(df_regs()->file_path.size != 0)
@@ -9836,10 +9836,10 @@ df_frame(void)
for(;!d_entity_is_nil(first_diff_src) && !d_entity_is_nil(first_diff_dst);) for(;!d_entity_is_nil(first_diff_src) && !d_entity_is_nil(first_diff_dst);)
{ {
if(!str8_match(first_diff_src->string, first_diff_dst->string, StringMatchFlag_CaseInsensitive) || if(!str8_match(first_diff_src->string, first_diff_dst->string, StringMatchFlag_CaseInsensitive) ||
first_diff_src->parent->kind != D_EntityKind_File || first_diff_src->parent->kind != DF_EntityKind_File ||
first_diff_src->parent->parent->kind != D_EntityKind_File || first_diff_src->parent->parent->kind != DF_EntityKind_File ||
first_diff_dst->parent->kind != D_EntityKind_File || first_diff_dst->parent->kind != DF_EntityKind_File ||
first_diff_dst->parent->parent->kind != D_EntityKind_File) first_diff_dst->parent->parent->kind != DF_EntityKind_File)
{ {
break; break;
} }
@@ -9850,10 +9850,10 @@ df_frame(void)
//- rjf: override first different //- rjf: override first different
if(!d_entity_is_nil(first_diff_src) && !d_entity_is_nil(first_diff_dst)) if(!d_entity_is_nil(first_diff_src) && !d_entity_is_nil(first_diff_dst))
{ {
DF_Entity *link = d_entity_child_from_string_and_kind(first_diff_src->parent, first_diff_src->name, D_EntityKind_FilePathMap); DF_Entity *link = d_entity_child_from_string_and_kind(first_diff_src->parent, first_diff_src->name, DF_EntityKind_FilePathMap);
if(d_entity_is_nil(link)) if(d_entity_is_nil(link))
{ {
link = d_entity_alloc(first_diff_src->parent, D_EntityKind_FilePathMap); link = d_entity_alloc(first_diff_src->parent, DF_EntityKind_FilePathMap);
d_entity_equip_name(link, first_diff_src->name); d_entity_equip_name(link, first_diff_src->name);
} }
d_entity_equip_entity_handle(link, d_handle_from_entity(first_diff_dst)); d_entity_equip_entity_handle(link, d_handle_from_entity(first_diff_dst));
@@ -10683,13 +10683,13 @@ df_frame(void)
// rjf: try to find root folder as if it's a path we've already loaded // rjf: try to find root folder as if it's a path we've already loaded
if(d_entity_is_nil(root_folder)) if(d_entity_is_nil(root_folder))
{ {
root_folder = d_entity_from_name_and_kind(first_folder_name, D_EntityKind_File); root_folder = d_entity_from_name_and_kind(first_folder_name, DF_EntityKind_File);
} }
// rjf: try to find root folder as if it's inside of a path we've already loaded // rjf: try to find root folder as if it's inside of a path we've already loaded
if(d_entity_is_nil(root_folder)) if(d_entity_is_nil(root_folder))
{ {
D_EntityList all_files = d_query_cached_entity_list_with_kind(D_EntityKind_File); D_EntityList all_files = d_query_cached_entity_list_with_kind(DF_EntityKind_File);
for(D_EntityNode *n = all_files.first; n != 0; n = n->next) for(D_EntityNode *n = all_files.first; n != 0; n = n->next)
{ {
if(n->entity->flags & D_EntityFlag_IsFolder) if(n->entity->flags & D_EntityFlag_IsFolder)
@@ -10724,9 +10724,9 @@ df_frame(void)
} }
// rjf: no folders specified => just try the local folder, then try globally // rjf: no folders specified => just try the local folder, then try globally
else if(src_entity->kind == D_EntityKind_File) else if(src_entity->kind == DF_EntityKind_File)
{ {
file = d_entity_from_name_and_kind(file_name, D_EntityKind_File); file = d_entity_from_name_and_kind(file_name, DF_EntityKind_File);
if(d_entity_is_nil(file)) if(d_entity_is_nil(file))
{ {
String8 src_entity_full_path = d_full_path_from_entity(scratch.arena, src_entity); String8 src_entity_full_path = d_full_path_from_entity(scratch.arena, src_entity);
@@ -10795,7 +10795,7 @@ df_frame(void)
switch(entity->kind) switch(entity->kind)
{ {
default: break; default: break;
case D_EntityKind_Target: case DF_EntityKind_Target:
{ {
df_push_cmd(df_cmd_spec_from_kind(DF_CmdKind_EditTarget), params); df_push_cmd(df_cmd_spec_from_kind(DF_CmdKind_EditTarget), params);
}break; }break;
@@ -10808,7 +10808,7 @@ df_frame(void)
{ {
#if 0 // TODO(rjf): @msgs #if 0 // TODO(rjf): @msgs
DF_Entity *entity = d_entity_from_handle(df_regs()->entity); DF_Entity *entity = d_entity_from_handle(df_regs()->entity);
if(!d_entity_is_nil(entity) && entity->kind == D_EntityKind_Target) if(!d_entity_is_nil(entity) && entity->kind == DF_EntityKind_Target)
{ {
df_push_cmd(df_cmd_spec_from_kind(DF_CmdKind_Target), params); df_push_cmd(df_cmd_spec_from_kind(DF_CmdKind_Target), params);
} }
@@ -10829,11 +10829,11 @@ df_frame(void)
{ {
df_cmd(DF_CmdKind_SpawnEntityView, .entity = d_handle_from_entity(entity)); df_cmd(DF_CmdKind_SpawnEntityView, .entity = d_handle_from_entity(entity));
}break; }break;
case D_EntityKind_Thread: case DF_EntityKind_Thread:
{ {
df_cmd(DF_CmdKind_SelectThread, .entity = d_handle_from_entity(entity)); df_cmd(DF_CmdKind_SelectThread, .entity = d_handle_from_entity(entity));
}break; }break;
case D_EntityKind_Target: case DF_EntityKind_Target:
{ {
df_cmd(DF_CmdKind_SelectTarget, .entity = d_handle_from_entity(entity)); df_cmd(DF_CmdKind_SelectTarget, .entity = d_handle_from_entity(entity));
}break; }break;
@@ -10849,7 +10849,7 @@ df_frame(void)
{ {
default:{}break; default:{}break;
case D_EntityKind_Target: case DF_EntityKind_Target:
{ {
D_CmdParams params = df_cmd_params_from_panel(ws, panel); D_CmdParams params = df_cmd_params_from_panel(ws, panel);
params.entity = d_handle_from_entity(entity); params.entity = d_handle_from_entity(entity);
@@ -11264,8 +11264,8 @@ df_frame(void)
case DF_CmdKind_RemoveTarget: case DF_CmdKind_RemoveTarget:
{ {
DF_Entity *entity = d_entity_from_handle(df_regs()->entity); DF_Entity *entity = d_entity_from_handle(df_regs()->entity);
D_EntityKindFlags kind_flags = d_entity_kind_flags_table[entity->kind]; DF_EntityKindFlags kind_flags = d_entity_kind_flags_table[entity->kind];
if(kind_flags & D_EntityKindFlag_CanDelete) if(kind_flags & DF_EntityKindFlag_CanDelete)
{ {
d_entity_mark_for_deletion(entity); d_entity_mark_for_deletion(entity);
} }
@@ -11316,10 +11316,10 @@ df_frame(void)
case DF_CmdKind_RelocateEntity: case DF_CmdKind_RelocateEntity:
{ {
DF_Entity *entity = d_entity_from_handle(df_regs()->entity); DF_Entity *entity = d_entity_from_handle(df_regs()->entity);
DF_Entity *location = d_entity_child_from_kind(entity, D_EntityKind_Location); DF_Entity *location = d_entity_child_from_kind(entity, DF_EntityKind_Location);
if(d_entity_is_nil(location)) if(d_entity_is_nil(location))
{ {
location = d_entity_alloc(entity, D_EntityKind_Location); location = d_entity_alloc(entity, DF_EntityKind_Location);
} }
location->flags &= ~D_EntityFlag_HasTextPoint; location->flags &= ~D_EntityFlag_HasTextPoint;
location->flags &= ~D_EntityFlag_HasVAddr; location->flags &= ~D_EntityFlag_HasVAddr;
@@ -11348,11 +11348,11 @@ df_frame(void)
B32 removed_already_existing = 0; B32 removed_already_existing = 0;
if(kind == DF_CmdKind_ToggleBreakpoint) if(kind == DF_CmdKind_ToggleBreakpoint)
{ {
D_EntityList bps = d_query_cached_entity_list_with_kind(D_EntityKind_Breakpoint); D_EntityList bps = d_query_cached_entity_list_with_kind(DF_EntityKind_Breakpoint);
for(D_EntityNode *n = bps.first; n != 0; n = n->next) for(D_EntityNode *n = bps.first; n != 0; n = n->next)
{ {
DF_Entity *bp = n->entity; DF_Entity *bp = n->entity;
DF_Entity *loc = d_entity_child_from_kind(bp, D_EntityKind_Location); DF_Entity *loc = d_entity_child_from_kind(bp, DF_EntityKind_Location);
if((loc->flags & D_EntityFlag_HasTextPoint && path_match_normalized(loc->string, file_path) && loc->text_point.line == pt.line) || if((loc->flags & D_EntityFlag_HasTextPoint && path_match_normalized(loc->string, file_path) && loc->text_point.line == pt.line) ||
(loc->flags & D_EntityFlag_HasVAddr && loc->vaddr == vaddr) || (loc->flags & D_EntityFlag_HasVAddr && loc->vaddr == vaddr) ||
(!(loc->flags & D_EntityFlag_HasTextPoint) && str8_match(loc->string, string, 0))) (!(loc->flags & D_EntityFlag_HasTextPoint) && str8_match(loc->string, string, 0)))
@@ -11365,9 +11365,9 @@ df_frame(void)
} }
if(!removed_already_existing) if(!removed_already_existing)
{ {
DF_Entity *bp = d_entity_alloc(d_entity_root(), D_EntityKind_Breakpoint); DF_Entity *bp = d_entity_alloc(d_entity_root(), DF_EntityKind_Breakpoint);
d_entity_equip_cfg_src(bp, D_CfgSrc_Project); d_entity_equip_cfg_src(bp, D_CfgSrc_Project);
DF_Entity *loc = d_entity_alloc(bp, D_EntityKind_Location); DF_Entity *loc = d_entity_alloc(bp, DF_EntityKind_Location);
if(file_path.size != 0 && pt.line != 0) if(file_path.size != 0 && pt.line != 0)
{ {
d_entity_equip_name(loc, file_path); d_entity_equip_name(loc, file_path);
@@ -11400,11 +11400,11 @@ df_frame(void)
B32 removed_already_existing = 0; B32 removed_already_existing = 0;
if(kind == DF_CmdKind_ToggleWatchPin) if(kind == DF_CmdKind_ToggleWatchPin)
{ {
D_EntityList wps = d_query_cached_entity_list_with_kind(D_EntityKind_WatchPin); D_EntityList wps = d_query_cached_entity_list_with_kind(DF_EntityKind_WatchPin);
for(D_EntityNode *n = wps.first; n != 0; n = n->next) for(D_EntityNode *n = wps.first; n != 0; n = n->next)
{ {
DF_Entity *wp = n->entity; DF_Entity *wp = n->entity;
DF_Entity *loc = d_entity_child_from_kind(wp, D_EntityKind_Location); DF_Entity *loc = d_entity_child_from_kind(wp, DF_EntityKind_Location);
if((loc->flags & D_EntityFlag_HasTextPoint && path_match_normalized(loc->string, file_path) && loc->text_point.line == pt.line) || if((loc->flags & D_EntityFlag_HasTextPoint && path_match_normalized(loc->string, file_path) && loc->text_point.line == pt.line) ||
(loc->flags & D_EntityFlag_HasVAddr && loc->vaddr == vaddr) || (loc->flags & D_EntityFlag_HasVAddr && loc->vaddr == vaddr) ||
(!(loc->flags & D_EntityFlag_HasTextPoint) && str8_match(loc->string, string, 0))) (!(loc->flags & D_EntityFlag_HasTextPoint) && str8_match(loc->string, string, 0)))
@@ -11417,10 +11417,10 @@ df_frame(void)
} }
if(!removed_already_existing) if(!removed_already_existing)
{ {
DF_Entity *wp = d_entity_alloc(d_entity_root(), D_EntityKind_WatchPin); DF_Entity *wp = d_entity_alloc(d_entity_root(), DF_EntityKind_WatchPin);
d_entity_equip_name(wp, string); d_entity_equip_name(wp, string);
d_entity_equip_cfg_src(wp, D_CfgSrc_Project); d_entity_equip_cfg_src(wp, D_CfgSrc_Project);
DF_Entity *loc = d_entity_alloc(wp, D_EntityKind_Location); DF_Entity *loc = d_entity_alloc(wp, DF_EntityKind_Location);
if(file_path.size != 0 && pt.line != 0) if(file_path.size != 0 && pt.line != 0)
{ {
d_entity_equip_name(loc, file_path); d_entity_equip_name(loc, file_path);
@@ -11437,11 +11437,11 @@ df_frame(void)
case DF_CmdKind_ToggleWatchExpression: case DF_CmdKind_ToggleWatchExpression:
if(df_regs()->string.size != 0) if(df_regs()->string.size != 0)
{ {
DF_Entity *existing_watch = d_entity_from_name_and_kind(df_regs()->string, D_EntityKind_Watch); DF_Entity *existing_watch = d_entity_from_name_and_kind(df_regs()->string, DF_EntityKind_Watch);
if(d_entity_is_nil(existing_watch)) if(d_entity_is_nil(existing_watch))
{ {
DF_Entity *watch = &d_nil_entity; DF_Entity *watch = &d_nil_entity;
watch = d_entity_alloc(d_entity_root(), D_EntityKind_Watch); watch = d_entity_alloc(d_entity_root(), DF_EntityKind_Watch);
d_entity_equip_cfg_src(watch, D_CfgSrc_Project); d_entity_equip_cfg_src(watch, D_CfgSrc_Project);
d_entity_equip_name(watch, df_regs()->string); d_entity_equip_name(watch, df_regs()->string);
} }
@@ -11540,16 +11540,16 @@ df_frame(void)
{ {
// rjf: build target // rjf: build target
DF_Entity *entity = &d_nil_entity; DF_Entity *entity = &d_nil_entity;
entity = d_entity_alloc(d_entity_root(), D_EntityKind_Target); entity = d_entity_alloc(d_entity_root(), DF_EntityKind_Target);
d_entity_equip_disabled(entity, 1); d_entity_equip_disabled(entity, 1);
d_entity_equip_cfg_src(entity, D_CfgSrc_Project); d_entity_equip_cfg_src(entity, D_CfgSrc_Project);
DF_Entity *exe = d_entity_alloc(entity, D_EntityKind_Executable); DF_Entity *exe = d_entity_alloc(entity, DF_EntityKind_Executable);
d_entity_equip_name(exe, df_regs()->file_path); d_entity_equip_name(exe, df_regs()->file_path);
String8 working_dir = str8_chop_last_slash(df_regs()->file_path); String8 working_dir = str8_chop_last_slash(df_regs()->file_path);
if(working_dir.size != 0) if(working_dir.size != 0)
{ {
String8 working_dir_path = push_str8f(scratch.arena, "%S/", working_dir); String8 working_dir_path = push_str8f(scratch.arena, "%S/", working_dir);
DF_Entity *execution_path = d_entity_alloc(entity, D_EntityKind_WorkingDirectory); DF_Entity *execution_path = d_entity_alloc(entity, DF_EntityKind_WorkingDirectory);
d_entity_equip_name(execution_path, working_dir_path); d_entity_equip_name(execution_path, working_dir_path);
} }
df_cmd(DF_CmdKind_EditTarget, .entity = d_handle_from_entity(entity)); df_cmd(DF_CmdKind_EditTarget, .entity = d_handle_from_entity(entity));
@@ -11558,9 +11558,9 @@ df_frame(void)
case DF_CmdKind_SelectTarget: case DF_CmdKind_SelectTarget:
{ {
DF_Entity *entity = d_entity_from_handle(df_regs()->entity); DF_Entity *entity = d_entity_from_handle(df_regs()->entity);
if(entity->kind == D_EntityKind_Target) if(entity->kind == DF_EntityKind_Target)
{ {
D_EntityList all_targets = d_query_cached_entity_list_with_kind(D_EntityKind_Target); D_EntityList all_targets = d_query_cached_entity_list_with_kind(DF_EntityKind_Target);
B32 is_selected = !entity->disabled; B32 is_selected = !entity->disabled;
for(D_EntityNode *n = all_targets.first; n != 0; n = n->next) for(D_EntityNode *n = all_targets.first; n != 0; n = n->next)
{ {
@@ -12165,17 +12165,17 @@ df_frame(void)
// //
D_TargetArray targets = {0}; D_TargetArray targets = {0};
{ {
D_EntityList target_entities = d_query_cached_entity_list_with_kind(D_EntityKind_Target); D_EntityList target_entities = d_query_cached_entity_list_with_kind(DF_EntityKind_Target);
targets.count = target_entities.count; targets.count = target_entities.count;
targets.v = push_array(scratch.arena, D_Target, targets.count); targets.v = push_array(scratch.arena, D_Target, targets.count);
U64 idx = 0; U64 idx = 0;
for(D_EntityNode *n = target_entities.first; n != 0; n = n->next, idx += 1) for(D_EntityNode *n = target_entities.first; n != 0; n = n->next, idx += 1)
{ {
DF_Entity *src_target = n->entity; DF_Entity *src_target = n->entity;
DF_Entity *src_target_exe = d_entity_child_from_kind(src_target, D_EntityKind_Executable); DF_Entity *src_target_exe = d_entity_child_from_kind(src_target, DF_EntityKind_Executable);
DF_Entity *src_target_args = d_entity_child_from_kind(src_target, D_EntityKind_Arguments); DF_Entity *src_target_args = d_entity_child_from_kind(src_target, DF_EntityKind_Arguments);
DF_Entity *src_target_wdir = d_entity_child_from_kind(src_target, D_EntityKind_WorkingDirectory); DF_Entity *src_target_wdir = d_entity_child_from_kind(src_target, DF_EntityKind_WorkingDirectory);
DF_Entity *src_target_entry = d_entity_child_from_kind(src_target, D_EntityKind_EntryPoint); DF_Entity *src_target_entry = d_entity_child_from_kind(src_target, DF_EntityKind_EntryPoint);
D_Target *dst_target = &targets.v[idx]; D_Target *dst_target = &targets.v[idx];
dst_target->exe = src_target_exe->string; dst_target->exe = src_target_exe->string;
dst_target->args = src_target_args->string; dst_target->args = src_target_args->string;
@@ -12189,7 +12189,7 @@ df_frame(void)
// //
D_BreakpointArray breakpoints = {0}; D_BreakpointArray breakpoints = {0};
{ {
D_EntityList bp_entities = d_query_cached_entity_list_with_kind(D_EntityKind_Breakpoint); D_EntityList bp_entities = d_query_cached_entity_list_with_kind(DF_EntityKind_Breakpoint);
breakpoints.count = bp_entities.count; breakpoints.count = bp_entities.count;
breakpoints.v = push_array(scratch.arena, D_Breakpoint, breakpoints.count); breakpoints.v = push_array(scratch.arena, D_Breakpoint, breakpoints.count);
U64 idx = 0; U64 idx = 0;
@@ -12201,8 +12201,8 @@ df_frame(void)
breakpoints.count -= 1; breakpoints.count -= 1;
continue; continue;
} }
DF_Entity *src_bp_loc = d_entity_child_from_kind(src_bp, D_EntityKind_Location); DF_Entity *src_bp_loc = d_entity_child_from_kind(src_bp, DF_EntityKind_Location);
DF_Entity *src_bp_cnd = d_entity_child_from_kind(src_bp, D_EntityKind_Condition); DF_Entity *src_bp_cnd = d_entity_child_from_kind(src_bp, DF_EntityKind_Condition);
D_Breakpoint *dst_bp = &breakpoints.v[idx]; D_Breakpoint *dst_bp = &breakpoints.v[idx];
dst_bp->file_path = src_bp_loc->string; dst_bp->file_path = src_bp_loc->string;
dst_bp->pt = src_bp_loc->text_point; dst_bp->pt = src_bp_loc->text_point;
@@ -12213,10 +12213,18 @@ df_frame(void)
} }
} }
//////////////////////////////
//- rjf: gather path maps
//
D_PathMapArray path_maps = {0};
{
// TODO(rjf)
}
////////////////////////////// //////////////////////////////
//- rjf: tick debug engine //- rjf: tick debug engine
// //
D_EventList engine_events = d_tick(scratch.arena, &targets, &breakpoints); D_EventList engine_events = d_tick(scratch.arena, &targets, &breakpoints, &path_maps);
////////////////////////////// //////////////////////////////
//- rjf: no selected thread? -> try to snap to any existing thread //- rjf: no selected thread? -> try to snap to any existing thread
@@ -12274,11 +12282,11 @@ df_frame(void)
// rjf: increment breakpoint hit counts // rjf: increment breakpoint hit counts
if(evt->cause == D_EventCause_UserBreakpoint) if(evt->cause == D_EventCause_UserBreakpoint)
{ {
D_EntityList user_bps = d_query_cached_entity_list_with_kind(D_EntityKind_Breakpoint); D_EntityList user_bps = d_query_cached_entity_list_with_kind(DF_EntityKind_Breakpoint);
for(D_EntityNode *n = user_bps.first; n != 0; n = n->next) for(D_EntityNode *n = user_bps.first; n != 0; n = n->next)
{ {
DF_Entity *bp = n->entity; DF_Entity *bp = n->entity;
DF_Entity *loc = d_entity_child_from_kind(bp, D_EntityKind_Location); DF_Entity *loc = d_entity_child_from_kind(bp, DF_EntityKind_Location);
D_LineList loc_lines = d_lines_from_file_path_line_num(scratch.arena, loc->string, loc->text_point.line); D_LineList loc_lines = d_lines_from_file_path_line_num(scratch.arena, loc->string, loc->text_point.line);
if(loc_lines.first != 0) if(loc_lines.first != 0)
{ {
+65 -65
View File
@@ -199,11 +199,11 @@ df_code_view_build(Arena *arena, DF_View *view, DF_CodeViewState *cv, DF_CodeVie
// rjf: find visible breakpoints for source code // rjf: find visible breakpoints for source code
ProfScope("find visible breakpoints") ProfScope("find visible breakpoints")
{ {
D_EntityList bps = d_query_cached_entity_list_with_kind(D_EntityKind_Breakpoint); D_EntityList bps = d_query_cached_entity_list_with_kind(DF_EntityKind_Breakpoint);
for(D_EntityNode *n = bps.first; n != 0; n = n->next) for(D_EntityNode *n = bps.first; n != 0; n = n->next)
{ {
DF_Entity *bp = n->entity; DF_Entity *bp = n->entity;
DF_Entity *loc = d_entity_child_from_kind(bp, D_EntityKind_Location); DF_Entity *loc = d_entity_child_from_kind(bp, DF_EntityKind_Location);
if(path_match_normalized(loc->string, df_regs()->file_path) && if(path_match_normalized(loc->string, df_regs()->file_path) &&
visible_line_num_range.min <= loc->text_point.line && loc->text_point.line <= visible_line_num_range.max) visible_line_num_range.min <= loc->text_point.line && loc->text_point.line <= visible_line_num_range.max)
{ {
@@ -245,11 +245,11 @@ df_code_view_build(Arena *arena, DF_View *view, DF_CodeViewState *cv, DF_CodeVie
// rjf: find visible watch pins for source code // rjf: find visible watch pins for source code
ProfScope("find visible watch pins") ProfScope("find visible watch pins")
{ {
D_EntityList wps = d_query_cached_entity_list_with_kind(D_EntityKind_WatchPin); D_EntityList wps = d_query_cached_entity_list_with_kind(DF_EntityKind_WatchPin);
for(D_EntityNode *n = wps.first; n != 0; n = n->next) for(D_EntityNode *n = wps.first; n != 0; n = n->next)
{ {
DF_Entity *wp = n->entity; DF_Entity *wp = n->entity;
DF_Entity *loc = d_entity_child_from_kind(wp, D_EntityKind_Location); DF_Entity *loc = d_entity_child_from_kind(wp, DF_EntityKind_Location);
if(path_match_normalized(loc->string, df_regs()->file_path) && if(path_match_normalized(loc->string, df_regs()->file_path) &&
visible_line_num_range.min <= loc->text_point.line && loc->text_point.line <= visible_line_num_range.max) visible_line_num_range.min <= loc->text_point.line && loc->text_point.line <= visible_line_num_range.max)
{ {
@@ -297,11 +297,11 @@ df_code_view_build(Arena *arena, DF_View *view, DF_CodeViewState *cv, DF_CodeVie
// rjf: find breakpoints mapping to this disasm // rjf: find breakpoints mapping to this disasm
if(dasm_lines) ProfScope("find breakpoints mapping to this disassembly") if(dasm_lines) ProfScope("find breakpoints mapping to this disassembly")
{ {
D_EntityList bps = d_query_cached_entity_list_with_kind(D_EntityKind_Breakpoint); D_EntityList bps = d_query_cached_entity_list_with_kind(DF_EntityKind_Breakpoint);
for(D_EntityNode *n = bps.first; n != 0; n = n->next) for(D_EntityNode *n = bps.first; n != 0; n = n->next)
{ {
DF_Entity *bp = n->entity; DF_Entity *bp = n->entity;
DF_Entity *loc = d_entity_child_from_kind(bp, D_EntityKind_Location); DF_Entity *loc = d_entity_child_from_kind(bp, DF_EntityKind_Location);
if(loc->flags & D_EntityFlag_HasVAddr && contains_1u64(dasm_vaddr_range, loc->vaddr)) if(loc->flags & D_EntityFlag_HasVAddr && contains_1u64(dasm_vaddr_range, loc->vaddr))
{ {
U64 off = loc->vaddr-dasm_vaddr_range.min; U64 off = loc->vaddr-dasm_vaddr_range.min;
@@ -319,11 +319,11 @@ df_code_view_build(Arena *arena, DF_View *view, DF_CodeViewState *cv, DF_CodeVie
// rjf: find watch pins mapping to this disasm // rjf: find watch pins mapping to this disasm
if(dasm_lines) ProfScope("find watch pins mapping to this disassembly") if(dasm_lines) ProfScope("find watch pins mapping to this disassembly")
{ {
D_EntityList pins = d_query_cached_entity_list_with_kind(D_EntityKind_WatchPin); D_EntityList pins = d_query_cached_entity_list_with_kind(DF_EntityKind_WatchPin);
for(D_EntityNode *n = pins.first; n != 0; n = n->next) for(D_EntityNode *n = pins.first; n != 0; n = n->next)
{ {
DF_Entity *pin = n->entity; DF_Entity *pin = n->entity;
DF_Entity *loc = d_entity_child_from_kind(pin, D_EntityKind_Location); DF_Entity *loc = d_entity_child_from_kind(pin, DF_EntityKind_Location);
if(loc->flags & D_EntityFlag_HasVAddr && contains_1u64(dasm_vaddr_range, loc->vaddr)) if(loc->flags & D_EntityFlag_HasVAddr && contains_1u64(dasm_vaddr_range, loc->vaddr))
{ {
U64 off = loc->vaddr-dasm_vaddr_range.min; U64 off = loc->vaddr-dasm_vaddr_range.min;
@@ -943,7 +943,7 @@ df_watch_view_build(DF_View *view, DF_WatchViewState *ewv, B32 modifiable, U32 d
String8 filter = str8(view->query_buffer, view->query_string_size); String8 filter = str8(view->query_buffer, view->query_string_size);
F32 row_height_px = floor_f32(ui_top_font_size()*2.5f); F32 row_height_px = floor_f32(ui_top_font_size()*2.5f);
S64 num_possible_visible_rows = (S64)(dim_2f32(rect).y/row_height_px); S64 num_possible_visible_rows = (S64)(dim_2f32(rect).y/row_height_px);
D_EntityKind mutable_entity_kind = D_EntityKind_Nil; DF_EntityKind mutable_entity_kind = DF_EntityKind_Nil;
F32 row_string_max_size_px = dim_2f32(rect).x; F32 row_string_max_size_px = dim_2f32(rect).x;
////////////////////////////// //////////////////////////////
@@ -1006,7 +1006,7 @@ df_watch_view_build(DF_View *view, DF_WatchViewState *ewv, B32 modifiable, U32 d
default: default:
case DF_WatchViewFillKind_Watch: case DF_WatchViewFillKind_Watch:
{ {
mutable_entity_kind = D_EntityKind_Watch; mutable_entity_kind = DF_EntityKind_Watch;
D_EntityList watches = d_query_cached_entity_list_with_kind(mutable_entity_kind); D_EntityList watches = d_query_cached_entity_list_with_kind(mutable_entity_kind);
for(D_EntityNode *n = watches.first; n != 0; n = n->next) for(D_EntityNode *n = watches.first; n != 0; n = n->next)
{ {
@@ -1017,7 +1017,7 @@ df_watch_view_build(DF_View *view, DF_WatchViewState *ewv, B32 modifiable, U32 d
} }
EV_Key parent_key = d_parent_ev_key_from_entity(watch); EV_Key parent_key = d_parent_ev_key_from_entity(watch);
EV_Key key = d_ev_key_from_entity(watch); EV_Key key = d_ev_key_from_entity(watch);
DF_Entity *view_rule = d_entity_child_from_kind(watch, D_EntityKind_ViewRule); DF_Entity *view_rule = d_entity_child_from_kind(watch, DF_EntityKind_ViewRule);
ev_key_set_view_rule(eval_view, key, view_rule->string); ev_key_set_view_rule(eval_view, key, view_rule->string);
String8 expr_string = watch->string; String8 expr_string = watch->string;
FuzzyMatchRangeList matches = fuzzy_match_find(scratch.arena, filter, expr_string); FuzzyMatchRangeList matches = fuzzy_match_find(scratch.arena, filter, expr_string);
@@ -1034,7 +1034,7 @@ df_watch_view_build(DF_View *view, DF_WatchViewState *ewv, B32 modifiable, U32 d
// //
case DF_WatchViewFillKind_Breakpoints: case DF_WatchViewFillKind_Breakpoints:
{ {
mutable_entity_kind = D_EntityKind_Breakpoint; mutable_entity_kind = DF_EntityKind_Breakpoint;
ev_view_rule_list_push_string(scratch.arena, &top_level_view_rules, str8_lit("no_addr")); ev_view_rule_list_push_string(scratch.arena, &top_level_view_rules, str8_lit("no_addr"));
D_EntityList bps = d_query_cached_entity_list_with_kind(mutable_entity_kind); D_EntityList bps = d_query_cached_entity_list_with_kind(mutable_entity_kind);
for(D_EntityNode *n = bps.first; n != 0; n = n->next) for(D_EntityNode *n = bps.first; n != 0; n = n->next)
@@ -1074,7 +1074,7 @@ df_watch_view_build(DF_View *view, DF_WatchViewState *ewv, B32 modifiable, U32 d
// //
case DF_WatchViewFillKind_WatchPins: case DF_WatchViewFillKind_WatchPins:
{ {
mutable_entity_kind = D_EntityKind_WatchPin; mutable_entity_kind = DF_EntityKind_WatchPin;
D_EntityList wps = d_query_cached_entity_list_with_kind(mutable_entity_kind); D_EntityList wps = d_query_cached_entity_list_with_kind(mutable_entity_kind);
for(D_EntityNode *n = wps.first; n != 0; n = n->next) for(D_EntityNode *n = wps.first; n != 0; n = n->next)
{ {
@@ -1774,10 +1774,10 @@ df_watch_view_build(DF_View *view, DF_WatchViewState *ewv, B32 modifiable, U32 d
DF_WatchViewPoint pt = df_watch_view_point_from_tbl(&blocks, tbl); DF_WatchViewPoint pt = df_watch_view_point_from_tbl(&blocks, tbl);
ev_key_set_view_rule(eval_view, pt.key, new_string); ev_key_set_view_rule(eval_view, pt.key, new_string);
DF_Entity *watch = d_entity_from_ev_key_and_kind(pt.key, mutable_entity_kind); DF_Entity *watch = d_entity_from_ev_key_and_kind(pt.key, mutable_entity_kind);
DF_Entity *view_rule = d_entity_child_from_kind(watch, D_EntityKind_ViewRule); DF_Entity *view_rule = d_entity_child_from_kind(watch, DF_EntityKind_ViewRule);
if(new_string.size != 0 && d_entity_is_nil(view_rule)) if(new_string.size != 0 && d_entity_is_nil(view_rule))
{ {
view_rule = d_entity_alloc(watch, D_EntityKind_ViewRule); view_rule = d_entity_alloc(watch, DF_EntityKind_ViewRule);
} }
else if(new_string.size == 0 && !d_entity_is_nil(view_rule)) else if(new_string.size == 0 && !d_entity_is_nil(view_rule))
{ {
@@ -1890,7 +1890,7 @@ df_watch_view_build(DF_View *view, DF_WatchViewState *ewv, B32 modifiable, U32 d
else if(selection_tbl.min.x <= DF_WatchViewColumnKind_ViewRule && DF_WatchViewColumnKind_ViewRule <= selection_tbl.max.x) else if(selection_tbl.min.x <= DF_WatchViewColumnKind_ViewRule && DF_WatchViewColumnKind_ViewRule <= selection_tbl.max.x)
{ {
DF_Entity *watch = d_entity_from_ev_key_and_kind(pt.key, mutable_entity_kind); DF_Entity *watch = d_entity_from_ev_key_and_kind(pt.key, mutable_entity_kind);
DF_Entity *view_rule = d_entity_child_from_kind(watch, D_EntityKind_ViewRule); DF_Entity *view_rule = d_entity_child_from_kind(watch, DF_EntityKind_ViewRule);
d_entity_mark_for_deletion(view_rule); d_entity_mark_for_deletion(view_rule);
ev_key_set_view_rule(eval_view, pt.key, str8_zero()); ev_key_set_view_rule(eval_view, pt.key, str8_zero());
} }
@@ -2218,7 +2218,7 @@ df_watch_view_build(DF_View *view, DF_WatchViewState *ewv, B32 modifiable, U32 d
case E_Mode_Offset: case E_Mode_Offset:
{ {
DF_Entity *space_entity = d_entity_from_eval_space(row_eval.space); DF_Entity *space_entity = d_entity_from_eval_space(row_eval.space);
if(space_entity->kind == D_EntityKind_Process) if(space_entity->kind == DF_EntityKind_Process)
{ {
U64 size = e_type_byte_size_from_key(row_eval.type_key); U64 size = e_type_byte_size_from_key(row_eval.type_key);
size = Min(size, 64); size = Min(size, 64);
@@ -2912,7 +2912,7 @@ DF_VIEW_UI_FUNCTION_DEF(getting_started)
UI_Padding(ui_pct(1, 0)) UI_Focus(UI_FocusKind_Null) UI_Padding(ui_pct(1, 0)) UI_Focus(UI_FocusKind_Null)
{ {
D_EntityList targets = d_push_active_target_list(scratch.arena); D_EntityList targets = d_push_active_target_list(scratch.arena);
D_EntityList processes = d_query_cached_entity_list_with_kind(D_EntityKind_Process); D_EntityList processes = d_query_cached_entity_list_with_kind(DF_EntityKind_Process);
//- rjf: icon & info //- rjf: icon & info
UI_Padding(ui_em(2.f, 1.f)) UI_Padding(ui_em(2.f, 1.f))
@@ -3952,7 +3952,7 @@ df_process_info_list_from_query(Arena *arena, String8 query)
U64 attached_process_count = 0; U64 attached_process_count = 0;
U32 *attached_process_pids = 0; U32 *attached_process_pids = 0;
{ {
D_EntityList processes = d_query_cached_entity_list_with_kind(D_EntityKind_Process); D_EntityList processes = d_query_cached_entity_list_with_kind(DF_EntityKind_Process);
attached_process_count = processes.count; attached_process_count = processes.count;
attached_process_pids = push_array(scratch.arena, U32, attached_process_count); attached_process_pids = push_array(scratch.arena, U32, attached_process_count);
U64 idx = 0; U64 idx = 0;
@@ -4262,7 +4262,7 @@ struct DF_EntityListerItemArray
}; };
internal DF_EntityListerItemList internal DF_EntityListerItemList
df_entity_lister_item_list_from_needle(Arena *arena, D_EntityKind kind, D_EntityFlags omit_flags, String8 needle) df_entity_lister_item_list_from_needle(Arena *arena, DF_EntityKind kind, D_EntityFlags omit_flags, String8 needle)
{ {
Temp scratch = scratch_begin(&arena, 1); Temp scratch = scratch_begin(&arena, 1);
DF_EntityListerItemList result = {0}; DF_EntityListerItemList result = {0};
@@ -4333,7 +4333,7 @@ DF_VIEW_UI_FUNCTION_DEF(entity_lister)
Temp scratch = scratch_begin(0, 0); Temp scratch = scratch_begin(0, 0);
DF_Window *window = df_window_from_handle(df_regs()->window); DF_Window *window = df_window_from_handle(df_regs()->window);
DF_CmdKindInfo *cmd_kind_info = df_cmd_kind_info_from_string(window->query_cmd_name); DF_CmdKindInfo *cmd_kind_info = df_cmd_kind_info_from_string(window->query_cmd_name);
D_EntityKind entity_kind = cmd_kind_info->query.entity_kind; DF_EntityKind entity_kind = cmd_kind_info->query.entity_kind;
D_EntityFlags entity_flags_omit = D_EntityFlag_IsFolder; D_EntityFlags entity_flags_omit = D_EntityFlag_IsFolder;
F32 row_height_px = floor_f32(ui_top_font_size()*2.5f); F32 row_height_px = floor_f32(ui_top_font_size()*2.5f);
F32 scroll_bar_dim = floor_f32(ui_top_font_size()*1.5f); F32 scroll_bar_dim = floor_f32(ui_top_font_size()*1.5f);
@@ -4644,7 +4644,7 @@ struct DF_TargetViewState
B32 initialized; B32 initialized;
// rjf: pick file kind // rjf: pick file kind
D_EntityKind pick_dst_kind; DF_EntityKind pick_dst_kind;
// rjf: selection cursor // rjf: selection cursor
Vec2S64 cursor; Vec2S64 cursor;
@@ -4691,7 +4691,7 @@ DF_VIEW_CMD_FUNCTION_DEF(target)
{ {
String8 pick_string = cmd->params.file_path; String8 pick_string = cmd->params.file_path;
DF_Entity *storage_entity = entity; DF_Entity *storage_entity = entity;
if(tv->pick_dst_kind != D_EntityKind_Nil) if(tv->pick_dst_kind != DF_EntityKind_Nil)
{ {
DF_Entity *child = d_entity_child_from_kind(entity, tv->pick_dst_kind); DF_Entity *child = d_entity_child_from_kind(entity, tv->pick_dst_kind);
if(d_entity_is_nil(child)) if(d_entity_is_nil(child))
@@ -4712,7 +4712,7 @@ DF_VIEW_UI_FUNCTION_DEF(target)
ProfBeginFunction(); ProfBeginFunction();
Temp scratch = scratch_begin(0, 0); Temp scratch = scratch_begin(0, 0);
DF_Entity *entity = d_entity_from_eval_string(string); DF_Entity *entity = d_entity_from_eval_string(string);
D_EntityList custom_entry_points = d_push_entity_child_list_with_kind(scratch.arena, entity, D_EntityKind_EntryPoint); D_EntityList custom_entry_points = d_push_entity_child_list_with_kind(scratch.arena, entity, DF_EntityKind_EntryPoint);
F32 row_height_px = floor_f32(ui_top_font_size()*2.5f); F32 row_height_px = floor_f32(ui_top_font_size()*2.5f);
//- rjf: grab state //- rjf: grab state
@@ -4731,16 +4731,16 @@ DF_VIEW_UI_FUNCTION_DEF(target)
B32 fill_with_folder; B32 fill_with_folder;
B32 use_code_font; B32 use_code_font;
String8 key; String8 key;
D_EntityKind storage_child_kind; DF_EntityKind storage_child_kind;
String8 current_text; String8 current_text;
} }
kv_info[] = kv_info[] =
{ {
{ 0, 0, 0, str8_lit("Label"), D_EntityKind_Nil, entity->string }, { 0, 0, 0, str8_lit("Label"), DF_EntityKind_Nil, entity->string },
{ 1, 0, 0, str8_lit("Executable"), D_EntityKind_Executable, d_entity_child_from_kind(entity, D_EntityKind_Executable)->string }, { 1, 0, 0, str8_lit("Executable"), DF_EntityKind_Executable, d_entity_child_from_kind(entity, DF_EntityKind_Executable)->string },
{ 0, 0, 0, str8_lit("Arguments"), D_EntityKind_Arguments, d_entity_child_from_kind(entity, D_EntityKind_Arguments)->string }, { 0, 0, 0, str8_lit("Arguments"), DF_EntityKind_Arguments, d_entity_child_from_kind(entity, DF_EntityKind_Arguments)->string },
{ 0, 1, 0, str8_lit("Working Directory"), D_EntityKind_WorkingDirectory, d_entity_child_from_kind(entity, D_EntityKind_WorkingDirectory)->string }, { 0, 1, 0, str8_lit("Working Directory"), DF_EntityKind_WorkingDirectory, d_entity_child_from_kind(entity, DF_EntityKind_WorkingDirectory)->string },
{ 0, 0, 1, str8_lit("Entry Point Override"), D_EntityKind_EntryPoint, d_entity_child_from_kind(entity, D_EntityKind_EntryPoint)->string }, { 0, 0, 1, str8_lit("Entry Point Override"), DF_EntityKind_EntryPoint, d_entity_child_from_kind(entity, DF_EntityKind_EntryPoint)->string },
}; };
//- rjf: take controls to start/end editing //- rjf: take controls to start/end editing
@@ -4796,7 +4796,7 @@ DF_VIEW_UI_FUNCTION_DEF(target)
scroll_list_params.item_range = r1s64(0, (S64)ArrayCount(kv_info)); scroll_list_params.item_range = r1s64(0, (S64)ArrayCount(kv_info));
scroll_list_params.cursor_min_is_empty_selection[Axis2_Y] = 1; scroll_list_params.cursor_min_is_empty_selection[Axis2_Y] = 1;
} }
D_EntityKind commit_storage_child_kind = D_EntityKind_Nil; DF_EntityKind commit_storage_child_kind = DF_EntityKind_Nil;
Vec2S64 next_cursor = tv->cursor; Vec2S64 next_cursor = tv->cursor;
UI_ScrollListSignal scroll_list_sig = {0}; UI_ScrollListSignal scroll_list_sig = {0};
UI_Focus(UI_FocusKind_On) UI_Focus(UI_FocusKind_On)
@@ -4825,7 +4825,7 @@ DF_VIEW_UI_FUNCTION_DEF(target)
//- rjf: key (label) //- rjf: key (label)
UI_TableCell UI_FlagsAdd(UI_BoxFlag_DrawTextWeak) UI_TableCell UI_FlagsAdd(UI_BoxFlag_DrawTextWeak)
{ {
if(kv_info[idx].storage_child_kind == D_EntityKind_EntryPoint) if(kv_info[idx].storage_child_kind == DF_EntityKind_EntryPoint)
{ {
if(df_help_label(str8_lit("Custom Entry Point"))) UI_Tooltip if(df_help_label(str8_lit("Custom Entry Point"))) UI_Tooltip
{ {
@@ -4948,7 +4948,7 @@ DF_VIEW_UI_FUNCTION_DEF(target)
} }
d_entity_equip_name(child, new_string); d_entity_equip_name(child, new_string);
}break; }break;
case D_EntityKind_Nil: case DF_EntityKind_Nil:
{ {
d_entity_equip_name(entity, new_string); d_entity_equip_name(entity, new_string);
}break; }break;
@@ -4981,7 +4981,7 @@ DF_VIEW_UI_FUNCTION_DEF(targets)
{ {
ProfBeginFunction(); ProfBeginFunction();
Temp scratch = scratch_begin(0, 0); Temp scratch = scratch_begin(0, 0);
D_EntityList targets_list = d_query_cached_entity_list_with_kind(D_EntityKind_Target); D_EntityList targets_list = d_query_cached_entity_list_with_kind(DF_EntityKind_Target);
D_EntityFuzzyItemArray targets = d_entity_fuzzy_item_array_from_entity_list_needle(scratch.arena, &targets_list, string); D_EntityFuzzyItemArray targets = d_entity_fuzzy_item_array_from_entity_list_needle(scratch.arena, &targets_list, string);
F32 row_height_px = floor_f32(ui_top_font_size()*2.5f); F32 row_height_px = floor_f32(ui_top_font_size()*2.5f);
@@ -5194,7 +5194,7 @@ DF_VIEW_UI_FUNCTION_DEF(file_path_map)
{ {
ProfBeginFunction(); ProfBeginFunction();
Temp scratch = scratch_begin(0, 0); Temp scratch = scratch_begin(0, 0);
D_EntityList maps_list = d_query_cached_entity_list_with_kind(D_EntityKind_FilePathMap); D_EntityList maps_list = d_query_cached_entity_list_with_kind(DF_EntityKind_FilePathMap);
D_EntityArray maps = d_entity_array_from_list(scratch.arena, &maps_list); D_EntityArray maps = d_entity_array_from_list(scratch.arena, &maps_list);
F32 row_height_px = floor_f32(ui_top_font_size()*2.5f); F32 row_height_px = floor_f32(ui_top_font_size()*2.5f);
@@ -5284,8 +5284,8 @@ DF_VIEW_UI_FUNCTION_DEF(file_path_map)
{ {
U64 map_idx = row_idx-1; U64 map_idx = row_idx-1;
DF_Entity *map = (map_idx < maps.count ? maps.v[map_idx] : &d_nil_entity); DF_Entity *map = (map_idx < maps.count ? maps.v[map_idx] : &d_nil_entity);
DF_Entity *map_src = d_entity_child_from_kind(map, D_EntityKind_Source); DF_Entity *map_src = d_entity_child_from_kind(map, DF_EntityKind_Source);
DF_Entity *map_dst = d_entity_child_from_kind(map, D_EntityKind_Dest); DF_Entity *map_dst = d_entity_child_from_kind(map, DF_EntityKind_Dest);
String8 map_src_path = map_src->string; String8 map_src_path = map_src->string;
String8 map_dst_path = map_dst->string; String8 map_dst_path = map_dst->string;
B32 row_selected = (fpms->cursor.y == row_idx); B32 row_selected = (fpms->cursor.y == row_idx);
@@ -5533,9 +5533,9 @@ DF_VIEW_UI_FUNCTION_DEF(scheduler)
DF_SchedulerViewState *sv = df_view_user_state(view, DF_SchedulerViewState); DF_SchedulerViewState *sv = df_view_user_state(view, DF_SchedulerViewState);
//- rjf: get entities //- rjf: get entities
D_EntityList machines = d_query_cached_entity_list_with_kind(D_EntityKind_Machine); D_EntityList machines = d_query_cached_entity_list_with_kind(DF_EntityKind_Machine);
D_EntityList processes = d_query_cached_entity_list_with_kind(D_EntityKind_Process); D_EntityList processes = d_query_cached_entity_list_with_kind(DF_EntityKind_Process);
D_EntityList threads = d_query_cached_entity_list_with_kind(D_EntityKind_Thread); D_EntityList threads = d_query_cached_entity_list_with_kind(DF_EntityKind_Thread);
//- rjf: produce list of items; no query -> all entities, in tree; query -> only show threads //- rjf: produce list of items; no query -> all entities, in tree; query -> only show threads
D_EntityFuzzyItemArray items = {0}; D_EntityFuzzyItemArray items = {0};
@@ -5557,7 +5557,7 @@ DF_VIEW_UI_FUNCTION_DEF(scheduler)
for(D_EntityNode *process_n = processes.first; process_n != 0; process_n = process_n->next) for(D_EntityNode *process_n = processes.first; process_n != 0; process_n = process_n->next)
{ {
DF_Entity *process = process_n->entity; DF_Entity *process = process_n->entity;
if(d_entity_ancestor_from_kind(process, D_EntityKind_Machine) != machine) if(d_entity_ancestor_from_kind(process, DF_EntityKind_Machine) != machine)
{ {
continue; continue;
} }
@@ -5566,7 +5566,7 @@ DF_VIEW_UI_FUNCTION_DEF(scheduler)
for(D_EntityNode *thread_n = threads.first; thread_n != 0; thread_n = thread_n->next) for(D_EntityNode *thread_n = threads.first; thread_n != 0; thread_n = thread_n->next)
{ {
DF_Entity *thread = thread_n->entity; DF_Entity *thread = thread_n->entity;
if(d_entity_ancestor_from_kind(thread, D_EntityKind_Process) != process) if(d_entity_ancestor_from_kind(thread, DF_EntityKind_Process) != process)
{ {
continue; continue;
} }
@@ -5631,17 +5631,17 @@ DF_VIEW_UI_FUNCTION_DEF(scheduler)
if(query.size == 0) switch(entity->kind) if(query.size == 0) switch(entity->kind)
{ {
default:{}break; default:{}break;
case D_EntityKind_Machine:{depth = 0.f;}break; case DF_EntityKind_Machine:{depth = 0.f;}break;
case D_EntityKind_Process:{depth = 1.f;}break; case DF_EntityKind_Process:{depth = 1.f;}break;
case D_EntityKind_Thread: {depth = 2.f;}break; case DF_EntityKind_Thread: {depth = 2.f;}break;
} }
Rng1S64 desc_col_rng = r1s64(1, 1); Rng1S64 desc_col_rng = r1s64(1, 1);
switch(entity->kind) switch(entity->kind)
{ {
default:{}break; default:{}break;
case D_EntityKind_Machine:{desc_col_rng = r1s64(1, 4);}break; case DF_EntityKind_Machine:{desc_col_rng = r1s64(1, 4);}break;
case D_EntityKind_Process:{desc_col_rng = r1s64(1, 1);}break; case DF_EntityKind_Process:{desc_col_rng = r1s64(1, 1);}break;
case D_EntityKind_Thread: {desc_col_rng = r1s64(1, 1);}break; case DF_EntityKind_Thread: {desc_col_rng = r1s64(1, 1);}break;
} }
UI_NamedTableVectorF("entity_row_%p", entity) UI_NamedTableVectorF("entity_row_%p", entity)
{ {
@@ -5674,11 +5674,11 @@ DF_VIEW_UI_FUNCTION_DEF(scheduler)
switch(entity->kind) switch(entity->kind)
{ {
default:{}break; default:{}break;
case D_EntityKind_Machine: case DF_EntityKind_Machine:
{ {
}break; }break;
case D_EntityKind_Process: case DF_EntityKind_Process:
{ {
UI_TableCellSized(ui_children_sum(1.f)) UI_FocusHot((row_is_selected && cursor.x == 2) ? UI_FocusKind_On : UI_FocusKind_Off) UI_TableCellSized(ui_children_sum(1.f)) UI_FocusHot((row_is_selected && cursor.x == 2) ? UI_FocusKind_On : UI_FocusKind_Off)
{ {
@@ -5705,12 +5705,12 @@ DF_VIEW_UI_FUNCTION_DEF(scheduler)
} }
} }
}break; }break;
case D_EntityKind_Thread: case DF_EntityKind_Thread:
{ {
UI_TableCellSized(ui_children_sum(1.f)) UI_FocusHot((row_is_selected && cursor.x >= 2) ? UI_FocusKind_On : UI_FocusKind_Off) UI_TableCellSized(ui_children_sum(1.f)) UI_FocusHot((row_is_selected && cursor.x >= 2) ? UI_FocusKind_On : UI_FocusKind_Off)
{ {
CTRL_Entity *entity_ctrl = ctrl_entity_from_handle(d_state->ctrl_entity_store, entity->ctrl_handle); CTRL_Entity *entity_ctrl = ctrl_entity_from_handle(d_state->ctrl_entity_store, entity->ctrl_handle);
CTRL_Entity *process = ctrl_entity_ancestor_from_kind(entity_ctrl, D_EntityKind_Process); CTRL_Entity *process = ctrl_entity_ancestor_from_kind(entity_ctrl, DF_EntityKind_Process);
U64 rip_vaddr = d_query_cached_rip_from_thread(entity_ctrl); U64 rip_vaddr = d_query_cached_rip_from_thread(entity_ctrl);
CTRL_Entity *module = ctrl_module_from_process_vaddr(process, rip_vaddr); CTRL_Entity *module = ctrl_module_from_process_vaddr(process, rip_vaddr);
U64 rip_voff = ctrl_voff_from_vaddr(module, rip_vaddr); U64 rip_voff = ctrl_voff_from_vaddr(module, rip_vaddr);
@@ -5817,7 +5817,7 @@ DF_VIEW_CMD_FUNCTION_DEF(modules)
Temp scratch = scratch_begin(0, 0); Temp scratch = scratch_begin(0, 0);
String8 pick_string = cmd->regs->file_path; String8 pick_string = cmd->regs->file_path;
DF_Entity *module = d_entity_from_handle(mv->pick_file_dst_entity); DF_Entity *module = d_entity_from_handle(mv->pick_file_dst_entity);
if(module->kind == D_EntityKind_Module) if(module->kind == DF_EntityKind_Module)
{ {
String8 exe_path = module->string; String8 exe_path = module->string;
String8 dbg_path = pick_string; String8 dbg_path = pick_string;
@@ -5843,8 +5843,8 @@ DF_VIEW_UI_FUNCTION_DEF(modules)
F32 *col_pcts[] = {&mv->idx_col_pct, &mv->desc_col_pct, &mv->range_col_pct, &mv->dbg_col_pct}; F32 *col_pcts[] = {&mv->idx_col_pct, &mv->desc_col_pct, &mv->range_col_pct, &mv->dbg_col_pct};
//- rjf: get entities //- rjf: get entities
D_EntityList processes = d_query_cached_entity_list_with_kind(D_EntityKind_Process); D_EntityList processes = d_query_cached_entity_list_with_kind(DF_EntityKind_Process);
D_EntityList modules = d_query_cached_entity_list_with_kind(D_EntityKind_Module); D_EntityList modules = d_query_cached_entity_list_with_kind(DF_EntityKind_Module);
//- rjf: make filtered item array //- rjf: make filtered item array
D_EntityFuzzyItemArray items = {0}; D_EntityFuzzyItemArray items = {0};
@@ -5863,7 +5863,7 @@ DF_VIEW_UI_FUNCTION_DEF(modules)
for(D_EntityNode *module_n = modules.first; module_n != 0; module_n = module_n->next) for(D_EntityNode *module_n = modules.first; module_n != 0; module_n = module_n->next)
{ {
DF_Entity *module = module_n->entity; DF_Entity *module = module_n->entity;
if(d_entity_ancestor_from_kind(module, D_EntityKind_Process) != process) if(d_entity_ancestor_from_kind(module, DF_EntityKind_Process) != process)
{ {
continue; continue;
} }
@@ -5956,13 +5956,13 @@ DF_VIEW_UI_FUNCTION_DEF(modules)
{ {
DF_Entity *entity = items.v[idx].entity; DF_Entity *entity = items.v[idx].entity;
B32 row_is_selected = (cursor.y == (S64)(idx+1)); B32 row_is_selected = (cursor.y == (S64)(idx+1));
idx_in_process += (entity->kind == D_EntityKind_Module); idx_in_process += (entity->kind == DF_EntityKind_Module);
if(visible_row_range.min <= idx && idx <= visible_row_range.max) if(visible_row_range.min <= idx && idx <= visible_row_range.max)
{ {
switch(entity->kind) switch(entity->kind)
{ {
default:{}break; default:{}break;
case D_EntityKind_Process: case DF_EntityKind_Process:
{ {
UI_NamedTableVectorF("process_%p", entity) UI_NamedTableVectorF("process_%p", entity)
{ {
@@ -5973,7 +5973,7 @@ DF_VIEW_UI_FUNCTION_DEF(modules)
} }
idx_in_process = 0; idx_in_process = 0;
}break; }break;
case D_EntityKind_Module: case DF_EntityKind_Module:
UI_NamedTableVectorF("module_%p", entity) UI_NamedTableVectorF("module_%p", entity)
{ {
UI_TableCell UI_TextAlignment(UI_TextAlign_Center) UI_FlagsAdd(UI_BoxFlag_DrawTextWeak) UI_TableCell UI_TextAlignment(UI_TextAlign_Center) UI_FlagsAdd(UI_BoxFlag_DrawTextWeak)
@@ -6750,15 +6750,15 @@ DF_VIEW_CMD_FUNCTION_DEF(disasm)
{ {
DF_Entity *entity = d_entity_from_handle(cmd->regs->entity); DF_Entity *entity = d_entity_from_handle(cmd->regs->entity);
if(!d_entity_is_nil(entity) && if(!d_entity_is_nil(entity) &&
(entity->kind == D_EntityKind_Process || (entity->kind == DF_EntityKind_Process ||
entity->kind == D_EntityKind_Thread || entity->kind == DF_EntityKind_Thread ||
entity->kind == D_EntityKind_Module)) entity->kind == DF_EntityKind_Module))
{ {
process = entity; process = entity;
if(entity->kind == D_EntityKind_Thread || if(entity->kind == DF_EntityKind_Thread ||
entity->kind == D_EntityKind_Module) entity->kind == DF_EntityKind_Module)
{ {
process = d_entity_ancestor_from_kind(process, D_EntityKind_Process); process = d_entity_ancestor_from_kind(process, DF_EntityKind_Process);
} }
} }
} }
+24 -24
View File
@@ -421,13 +421,13 @@ df_entity_tooltips(DF_Entity *entity)
DF_Palette(DF_PaletteCode_Floating) switch(entity->kind) DF_Palette(DF_PaletteCode_Floating) switch(entity->kind)
{ {
default:{}break; default:{}break;
case D_EntityKind_File: case DF_EntityKind_File:
UI_Tooltip UI_PrefWidth(ui_text_dim(10, 1)) UI_Tooltip UI_PrefWidth(ui_text_dim(10, 1))
{ {
String8 full_path = d_full_path_from_entity(scratch.arena, entity); String8 full_path = d_full_path_from_entity(scratch.arena, entity);
ui_label(full_path); ui_label(full_path);
}break; }break;
case D_EntityKind_Thread: UI_Flags(0) case DF_EntityKind_Thread: UI_Flags(0)
UI_Tooltip UI_PrefWidth(ui_text_dim(10, 1)) UI_Tooltip UI_PrefWidth(ui_text_dim(10, 1))
{ {
String8 display_string = d_display_string_from_entity(scratch.arena, entity); String8 display_string = d_display_string_from_entity(scratch.arena, entity);
@@ -539,7 +539,7 @@ df_entity_tooltips(DF_Entity *entity)
} }
di_scope_close(di_scope); di_scope_close(di_scope);
}break; }break;
case D_EntityKind_Breakpoint: UI_Flags(0) case DF_EntityKind_Breakpoint: UI_Flags(0)
UI_Tooltip UI_PrefWidth(ui_text_dim(10, 1)) UI_Tooltip UI_PrefWidth(ui_text_dim(10, 1))
{ {
if(entity->flags & D_EntityFlag_HasColor) if(entity->flags & D_EntityFlag_HasColor)
@@ -550,7 +550,7 @@ df_entity_tooltips(DF_Entity *entity)
UI_PrefWidth(ui_text_dim(10, 1)) ui_label(display_string); UI_PrefWidth(ui_text_dim(10, 1)) ui_label(display_string);
UI_PrefWidth(ui_children_sum(1)) UI_Row UI_PrefWidth(ui_children_sum(1)) UI_Row
{ {
String8 stop_condition = d_entity_child_from_kind(entity, D_EntityKind_Condition)->string; String8 stop_condition = d_entity_child_from_kind(entity, DF_EntityKind_Condition)->string;
if(stop_condition.size == 0) if(stop_condition.size == 0)
{ {
stop_condition = str8_lit("true"); stop_condition = str8_lit("true");
@@ -566,7 +566,7 @@ df_entity_tooltips(DF_Entity *entity)
UI_PrefWidth(ui_text_dim(10, 1)) DF_Font(DF_FontSlot_Code) df_code_label(1.f, 1, df_rgba_from_theme_color(DF_ThemeColor_CodeDefault), hit_count_text); UI_PrefWidth(ui_text_dim(10, 1)) DF_Font(DF_FontSlot_Code) df_code_label(1.f, 1, df_rgba_from_theme_color(DF_ThemeColor_CodeDefault), hit_count_text);
} }
}break; }break;
case D_EntityKind_WatchPin: case DF_EntityKind_WatchPin:
DF_Font(DF_FontSlot_Code) DF_Font(DF_FontSlot_Code)
UI_Tooltip UI_PrefWidth(ui_text_dim(10, 1)) UI_Tooltip UI_PrefWidth(ui_text_dim(10, 1))
{ {
@@ -587,7 +587,7 @@ df_entity_desc_button(DF_Entity *entity, FuzzyMatchRangeList *name_matches, Stri
ProfBeginFunction(); ProfBeginFunction();
Temp scratch = scratch_begin(0, 0); Temp scratch = scratch_begin(0, 0);
UI_Palette *palette = ui_top_palette(); UI_Palette *palette = ui_top_palette();
if(entity->kind == D_EntityKind_Thread) if(entity->kind == DF_EntityKind_Thread)
{ {
CTRL_Event stop_event = d_ctrl_last_stop_event(); CTRL_Event stop_event = d_ctrl_last_stop_event();
CTRL_Entity *entity_ctrl = ctrl_entity_from_handle(d_state->ctrl_entity_store, entity->ctrl_handle); CTRL_Entity *entity_ctrl = ctrl_entity_from_handle(d_state->ctrl_entity_store, entity->ctrl_handle);
@@ -610,7 +610,7 @@ df_entity_desc_button(DF_Entity *entity, FuzzyMatchRangeList *name_matches, Stri
{ {
palette = df_palette_from_code(DF_PaletteCode_NeutralPopButton); palette = df_palette_from_code(DF_PaletteCode_NeutralPopButton);
} }
else if(entity->kind == D_EntityKind_Target && !entity->disabled) else if(entity->kind == DF_EntityKind_Target && !entity->disabled)
{ {
palette = df_palette_from_code(DF_PaletteCode_NeutralPopButton); palette = df_palette_from_code(DF_PaletteCode_NeutralPopButton);
} }
@@ -626,7 +626,7 @@ df_entity_desc_button(DF_Entity *entity, FuzzyMatchRangeList *name_matches, Stri
//- rjf: build contents //- rjf: build contents
UI_Parent(box) UI_PrefWidth(ui_text_dim(10, 0)) UI_Padding(ui_em(1.f, 1.f)) UI_Parent(box) UI_PrefWidth(ui_text_dim(10, 0)) UI_Padding(ui_em(1.f, 1.f))
{ {
D_EntityKindFlags kind_flags = d_entity_kind_flags_table[entity->kind]; DF_EntityKindFlags kind_flags = d_entity_kind_flags_table[entity->kind];
DF_IconKind icon = df_entity_kind_icon_kind_table[entity->kind]; DF_IconKind icon = df_entity_kind_icon_kind_table[entity->kind];
Vec4F32 entity_color = palette->colors[UI_ColorCode_Text]; Vec4F32 entity_color = palette->colors[UI_ColorCode_Text];
Vec4F32 entity_color_weak = palette->colors[UI_ColorCode_TextWeak]; Vec4F32 entity_color_weak = palette->colors[UI_ColorCode_TextWeak];
@@ -662,10 +662,10 @@ df_entity_desc_button(DF_Entity *entity, FuzzyMatchRangeList *name_matches, Stri
} }
String8 label = d_display_string_from_entity(scratch.arena, entity); String8 label = d_display_string_from_entity(scratch.arena, entity);
UI_Palette(ui_build_palette(ui_top_palette(), .text = entity_color)) UI_Palette(ui_build_palette(ui_top_palette(), .text = entity_color))
DF_Font(kind_flags&D_EntityKindFlag_NameIsCode ? DF_FontSlot_Code : DF_FontSlot_Main) DF_Font(kind_flags&DF_EntityKindFlag_NameIsCode ? DF_FontSlot_Code : DF_FontSlot_Main)
UI_Flags((entity->kind == D_EntityKind_Thread || UI_Flags((entity->kind == DF_EntityKind_Thread ||
entity->kind == D_EntityKind_Breakpoint || entity->kind == DF_EntityKind_Breakpoint ||
entity->kind == D_EntityKind_WatchPin) entity->kind == DF_EntityKind_WatchPin)
? UI_BoxFlag_DisableTruncatedHover ? UI_BoxFlag_DisableTruncatedHover
: 0) : 0)
{ {
@@ -675,16 +675,16 @@ df_entity_desc_button(DF_Entity *entity, FuzzyMatchRangeList *name_matches, Stri
ui_box_equip_fuzzy_match_ranges(label_sig.box, name_matches); ui_box_equip_fuzzy_match_ranges(label_sig.box, name_matches);
} }
} }
if(entity->kind == D_EntityKind_Target) UI_FlagsAdd(UI_BoxFlag_DrawTextWeak) UI_FontSize(ui_top_font_size()*0.95f) if(entity->kind == DF_EntityKind_Target) UI_FlagsAdd(UI_BoxFlag_DrawTextWeak) UI_FontSize(ui_top_font_size()*0.95f)
{ {
DF_Entity *args = d_entity_child_from_kind(entity, D_EntityKind_Arguments); DF_Entity *args = d_entity_child_from_kind(entity, DF_EntityKind_Arguments);
ui_label(args->string); ui_label(args->string);
} }
if(kind_flags & D_EntityKindFlag_CanEnable && entity->disabled) UI_FlagsAdd(UI_BoxFlag_DrawTextWeak) UI_FontSize(ui_top_font_size()*0.95f) UI_HeightFill if(kind_flags & DF_EntityKindFlag_CanEnable && entity->disabled) UI_FlagsAdd(UI_BoxFlag_DrawTextWeak) UI_FontSize(ui_top_font_size()*0.95f) UI_HeightFill
{ {
ui_label(str8_lit("(Disabled)")); ui_label(str8_lit("(Disabled)"));
} }
if(entity->kind == D_EntityKind_Thread) if(entity->kind == DF_EntityKind_Thread)
UI_FontSize(ui_top_font_size()*0.75f) UI_FontSize(ui_top_font_size()*0.75f)
DF_Font(DF_FontSlot_Code) DF_Font(DF_FontSlot_Code)
UI_Palette(ui_build_palette(ui_top_palette(), .text = df_rgba_from_theme_color(DF_ThemeColor_CodeSymbol))) UI_Palette(ui_build_palette(ui_top_palette(), .text = df_rgba_from_theme_color(DF_ThemeColor_CodeSymbol)))
@@ -1055,7 +1055,7 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
} }
U64 unwind_count = (thread == selected_thread) ? df_regs()->unwind_count : 0; U64 unwind_count = (thread == selected_thread) ? df_regs()->unwind_count : 0;
U64 thread_rip_vaddr = d_query_cached_rip_from_thread_unwind(thread, unwind_count); U64 thread_rip_vaddr = d_query_cached_rip_from_thread_unwind(thread, unwind_count);
CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, D_EntityKind_Process); CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, DF_EntityKind_Process);
CTRL_Entity *module = ctrl_module_from_process_vaddr(process, thread_rip_vaddr); CTRL_Entity *module = ctrl_module_from_process_vaddr(process, thread_rip_vaddr);
DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); DI_Key dbgi_key = ctrl_dbgi_key_from_module(module);
U64 thread_rip_voff = ctrl_voff_from_vaddr(module, thread_rip_vaddr); U64 thread_rip_voff = ctrl_voff_from_vaddr(module, thread_rip_vaddr);
@@ -1215,7 +1215,7 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
} }
U64 unwind_count = (thread == selected_thread) ? df_regs()->unwind_count : 0; U64 unwind_count = (thread == selected_thread) ? df_regs()->unwind_count : 0;
U64 thread_rip_vaddr = d_query_cached_rip_from_thread_unwind(thread, unwind_count); U64 thread_rip_vaddr = d_query_cached_rip_from_thread_unwind(thread, unwind_count);
CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, D_EntityKind_Process); CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, DF_EntityKind_Process);
CTRL_Entity *module = ctrl_module_from_process_vaddr(process, thread_rip_vaddr); CTRL_Entity *module = ctrl_module_from_process_vaddr(process, thread_rip_vaddr);
DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); DI_Key dbgi_key = ctrl_dbgi_key_from_module(module);
U64 thread_rip_voff = ctrl_voff_from_vaddr(module, thread_rip_vaddr); U64 thread_rip_voff = ctrl_voff_from_vaddr(module, thread_rip_vaddr);
@@ -1861,9 +1861,9 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
{ {
DF_DragDropPayload *payload = &df_drag_drop_payload; DF_DragDropPayload *payload = &df_drag_drop_payload;
DF_Entity *entity = d_entity_from_handle(payload->entity); DF_Entity *entity = d_entity_from_handle(payload->entity);
if(entity->kind == D_EntityKind_Thread || if(entity->kind == DF_EntityKind_Thread ||
entity->kind == D_EntityKind_WatchPin || entity->kind == DF_EntityKind_WatchPin ||
entity->kind == D_EntityKind_Breakpoint) entity->kind == DF_EntityKind_Breakpoint)
{ {
line_drag_entity = entity; line_drag_entity = entity;
} }
@@ -1881,8 +1881,8 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
switch(dropped_entity->kind) switch(dropped_entity->kind)
{ {
default:{}break; default:{}break;
case D_EntityKind_Breakpoint: case DF_EntityKind_Breakpoint:
case D_EntityKind_WatchPin: case DF_EntityKind_WatchPin:
{ {
df_cmd(DF_CmdKind_RelocateEntity, df_cmd(DF_CmdKind_RelocateEntity,
.entity = d_handle_from_entity(dropped_entity), .entity = d_handle_from_entity(dropped_entity),
@@ -1890,7 +1890,7 @@ df_code_slice(DF_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
.cursor = txt_pt(line_num, 1), .cursor = txt_pt(line_num, 1),
.vaddr = line_vaddr); .vaddr = line_vaddr);
}break; }break;
case D_EntityKind_Thread: case DF_EntityKind_Thread:
{ {
CTRL_Entity *thread = ctrl_entity_from_handle(d_state->ctrl_entity_store, dropped_entity->ctrl_handle); CTRL_Entity *thread = ctrl_entity_from_handle(d_state->ctrl_entity_store, dropped_entity->ctrl_handle);
U64 new_rip_vaddr = line_vaddr; U64 new_rip_vaddr = line_vaddr;
+218 -218
View File
@@ -67,224 +67,224 @@ Rng1U64 df_reg_slot_range_table[32] =
DF_CmdKindInfo df_cmd_kind_info_table[219] = DF_CmdKindInfo df_cmd_kind_info_table[219] =
{ {
{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("Launch and Run"), DF_IconKind_Play, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_EntityList, str8_lit_comp(""), D_EntityKind_Target}}, { 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("Launch and Run"), DF_IconKind_Play, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_EntityList, str8_lit_comp(""), DF_EntityKind_Target}},
{ str8_lit_comp("launch_and_init"), str8_lit_comp("Starts debugging a new instance of a target, then stops at the program's entry point."), str8_lit_comp("launch,start,entry,point"), str8_lit_comp("Launch and Initialize"), DF_IconKind_PlayStepForward, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_EntityList, str8_lit_comp(""), D_EntityKind_Target}}, { str8_lit_comp("launch_and_init"), str8_lit_comp("Starts debugging a new instance of a target, then stops at the program's entry point."), str8_lit_comp("launch,start,entry,point"), str8_lit_comp("Launch and Initialize"), DF_IconKind_PlayStepForward, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_EntityList, str8_lit_comp(""), DF_EntityKind_Target}},
{ str8_lit_comp("kill"), str8_lit_comp("Kills the specified existing debugged process(es)."), str8_lit_comp("stop,kill"), str8_lit_comp("Kill"), DF_IconKind_Stop, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_EntityList, str8_lit_comp(""), D_EntityKind_Process}}, { str8_lit_comp("kill"), str8_lit_comp("Kills the specified existing debugged process(es)."), str8_lit_comp("stop,kill"), str8_lit_comp("Kill"), DF_IconKind_Stop, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_EntityList, str8_lit_comp(""), DF_EntityKind_Process}},
{ str8_lit_comp("kill_all"), str8_lit_comp("Kills all debugged child processes."), str8_lit_comp("stop,kill,all"), str8_lit_comp("Kill All"), DF_IconKind_Stop, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("kill_all"), str8_lit_comp("Kills all debugged child processes."), str8_lit_comp("stop,kill,all"), str8_lit_comp("Kill All"), DF_IconKind_Stop, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("detach"), str8_lit_comp("Detaches the specified debugged process."), str8_lit_comp("detach"), str8_lit_comp("Detach"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_EntityList, str8_lit_comp(""), D_EntityKind_Process}}, { str8_lit_comp("detach"), str8_lit_comp("Detaches the specified debugged process."), str8_lit_comp("detach"), str8_lit_comp("Detach"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_EntityList, str8_lit_comp(""), DF_EntityKind_Process}},
{ str8_lit_comp("continue"), str8_lit_comp("Continues all halted threads."), str8_lit_comp(""), str8_lit_comp("Continue"), DF_IconKind_Play, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("continue"), str8_lit_comp("Continues all halted threads."), str8_lit_comp(""), str8_lit_comp("Continue"), DF_IconKind_Play, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("step_into_inst"), str8_lit_comp("Performs a step that goes into calls, at the instruction level."), str8_lit_comp("single,step,thread"), str8_lit_comp("Step Into (Assembly)"), DF_IconKind_StepInto, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("step_into_inst"), str8_lit_comp("Performs a step that goes into calls, at the instruction level."), str8_lit_comp("single,step,thread"), str8_lit_comp("Step Into (Assembly)"), DF_IconKind_StepInto, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("step_over_inst"), str8_lit_comp("Performs a step that skips calls, at the instruction level."), str8_lit_comp("single,step,thread"), str8_lit_comp("Step Over (Assembly)"), DF_IconKind_StepOver, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("step_over_inst"), str8_lit_comp("Performs a step that skips calls, at the instruction level."), str8_lit_comp("single,step,thread"), str8_lit_comp("Step Over (Assembly)"), DF_IconKind_StepOver, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("step_into_line"), str8_lit_comp("Performs a step that goes into calls, at the source code line level."), str8_lit_comp("step,thread"), str8_lit_comp("Step Into (Line)"), DF_IconKind_StepInto, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("step_into_line"), str8_lit_comp("Performs a step that goes into calls, at the source code line level."), str8_lit_comp("step,thread"), str8_lit_comp("Step Into (Line)"), DF_IconKind_StepInto, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("step_over_line"), str8_lit_comp("Performs a step that skips calls, at the source code line level."), str8_lit_comp("step,thread"), str8_lit_comp("Step Over (Line)"), DF_IconKind_StepOver, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("step_over_line"), str8_lit_comp("Performs a step that skips calls, at the source code line level."), str8_lit_comp("step,thread"), str8_lit_comp("Step Over (Line)"), DF_IconKind_StepOver, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("step_out"), str8_lit_comp("Runs to the end of the current function and exits it."), str8_lit_comp(""), str8_lit_comp("Step Out"), DF_IconKind_StepOut, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("step_out"), str8_lit_comp("Runs to the end of the current function and exits it."), str8_lit_comp(""), str8_lit_comp("Step Out"), DF_IconKind_StepOut, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("halt"), str8_lit_comp("Halts all running processes."), str8_lit_comp("pause"), str8_lit_comp("Halt"), DF_IconKind_Pause, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("halt"), str8_lit_comp("Halts all running processes."), str8_lit_comp("pause"), str8_lit_comp("Halt"), DF_IconKind_Pause, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("soft_halt_refresh"), str8_lit_comp("Interrupts all running processes to collect data, and then resumes them."), str8_lit_comp(""), str8_lit_comp("Soft Halt Refresh"), DF_IconKind_Refresh, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("soft_halt_refresh"), str8_lit_comp("Interrupts all running processes to collect data, and then resumes them."), str8_lit_comp(""), str8_lit_comp("Soft Halt Refresh"), DF_IconKind_Refresh, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("set_thread_ip"), str8_lit_comp("Sets the passed thread's instruction pointer at the passed address."), str8_lit_comp(""), str8_lit_comp("Set Thread IP"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Vaddr, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("set_thread_ip"), str8_lit_comp("Sets the passed thread's instruction pointer at the passed address."), str8_lit_comp(""), str8_lit_comp("Set Thread IP"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Vaddr, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("run_to_line"), str8_lit_comp("Runs until a particular source line is hit."), str8_lit_comp(""), str8_lit_comp("Run To Line"), DF_IconKind_Play, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("run_to_line"), str8_lit_comp("Runs until a particular source line is hit."), str8_lit_comp(""), str8_lit_comp("Run To Line"), DF_IconKind_Play, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("run_to_address"), str8_lit_comp("Runs until a particular address is hit."), str8_lit_comp(""), str8_lit_comp("Run To Address"), DF_IconKind_PlayStepForward, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Vaddr, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("run_to_address"), str8_lit_comp("Runs until a particular address is hit."), str8_lit_comp(""), str8_lit_comp("Run To Address"), DF_IconKind_PlayStepForward, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Vaddr, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("run"), str8_lit_comp("Runs all targets after starting them if they have not been started yet."), str8_lit_comp("play"), str8_lit_comp("Run"), DF_IconKind_Play, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("run"), str8_lit_comp("Runs all targets after starting them if they have not been started yet."), str8_lit_comp("play"), str8_lit_comp("Run"), DF_IconKind_Play, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("restart"), str8_lit_comp("Kills all running processes, then restarts the targets which were used to launch all current processes (if any)."), str8_lit_comp("restart,retry"), str8_lit_comp("Restart"), DF_IconKind_Redo, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("restart"), str8_lit_comp("Kills all running processes, then restarts the targets which were used to launch all current processes (if any)."), str8_lit_comp("restart,retry"), str8_lit_comp("Restart"), DF_IconKind_Redo, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("step_into"), str8_lit_comp("Steps once, possibly into function calls, for either line or instructions."), str8_lit_comp(""), str8_lit_comp("Step Into"), DF_IconKind_StepInto, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("step_into"), str8_lit_comp("Steps once, possibly into function calls, for either line or instructions."), str8_lit_comp(""), str8_lit_comp("Step Into"), DF_IconKind_StepInto, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("step_over"), str8_lit_comp("Steps once, always over function calls, for either line or instructions."), str8_lit_comp(""), str8_lit_comp("Step Over"), DF_IconKind_StepOver, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("step_over"), str8_lit_comp("Steps once, always over function calls, for either line or instructions."), str8_lit_comp(""), str8_lit_comp("Step Over"), DF_IconKind_StepOver, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("freeze_thread"), str8_lit_comp("Freezes the passed thread."), str8_lit_comp("callstack,unwind"), str8_lit_comp("Freeze Thread"), DF_IconKind_Locked, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Thread}}, { str8_lit_comp("freeze_thread"), str8_lit_comp("Freezes the passed thread."), str8_lit_comp("callstack,unwind"), str8_lit_comp("Freeze Thread"), DF_IconKind_Locked, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Thread}},
{ str8_lit_comp("thaw_thread"), str8_lit_comp("Thaws the passed thread."), str8_lit_comp(""), str8_lit_comp("Thaw Thread"), DF_IconKind_Unlocked, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Thread}}, { str8_lit_comp("thaw_thread"), str8_lit_comp("Thaws the passed thread."), str8_lit_comp(""), str8_lit_comp("Thaw Thread"), DF_IconKind_Unlocked, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Thread}},
{ str8_lit_comp("freeze_process"), str8_lit_comp("Freezes the passed process."), str8_lit_comp(""), str8_lit_comp("Freeze Process"), DF_IconKind_Locked, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Process}}, { str8_lit_comp("freeze_process"), str8_lit_comp("Freezes the passed process."), str8_lit_comp(""), str8_lit_comp("Freeze Process"), DF_IconKind_Locked, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Process}},
{ str8_lit_comp("thaw_process"), str8_lit_comp("Thaws the passed process."), str8_lit_comp(""), str8_lit_comp("Thaw Process"), DF_IconKind_Unlocked, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Process}}, { str8_lit_comp("thaw_process"), str8_lit_comp("Thaws the passed process."), str8_lit_comp(""), str8_lit_comp("Thaw Process"), DF_IconKind_Unlocked, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Process}},
{ str8_lit_comp("freeze_machine"), str8_lit_comp("Freezes the passed machine."), str8_lit_comp(""), str8_lit_comp("Freeze Machine"), DF_IconKind_Locked, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Machine}}, { str8_lit_comp("freeze_machine"), str8_lit_comp("Freezes the passed machine."), str8_lit_comp(""), str8_lit_comp("Freeze Machine"), DF_IconKind_Locked, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Machine}},
{ str8_lit_comp("thaw_machine"), str8_lit_comp("Thaws the passed machine."), str8_lit_comp(""), str8_lit_comp("Thaw Machine"), DF_IconKind_Unlocked, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Machine}}, { str8_lit_comp("thaw_machine"), str8_lit_comp("Thaws the passed machine."), str8_lit_comp(""), str8_lit_comp("Thaw Machine"), DF_IconKind_Unlocked, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Machine}},
{ str8_lit_comp("freeze_local_machine"), str8_lit_comp("Freezes the local machine."), str8_lit_comp(""), str8_lit_comp("Freeze Local Machine"), DF_IconKind_Machine, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("freeze_local_machine"), str8_lit_comp("Freezes the local machine."), str8_lit_comp(""), str8_lit_comp("Freeze Local Machine"), DF_IconKind_Machine, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("thaw_local_machine"), str8_lit_comp("Thaws the local machine."), str8_lit_comp(""), str8_lit_comp("Thaw Local Machine"), DF_IconKind_Machine, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("thaw_local_machine"), str8_lit_comp("Thaws the local machine."), str8_lit_comp(""), str8_lit_comp("Thaw Local Machine"), DF_IconKind_Machine, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("freeze_entity"), str8_lit_comp("Freezes an entity."), str8_lit_comp(""), str8_lit_comp("Freeze Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("freeze_entity"), str8_lit_comp("Freezes an entity."), str8_lit_comp(""), str8_lit_comp("Freeze Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("thaw_entity"), str8_lit_comp("Thaws an entity."), str8_lit_comp(""), str8_lit_comp("Thaw Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("thaw_entity"), str8_lit_comp("Thaws an entity."), str8_lit_comp(""), str8_lit_comp("Thaw Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("attach"), str8_lit_comp("Attaches to a process that is already running on the local machine."), str8_lit_comp(""), str8_lit_comp("Attach"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_PID, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("attach"), str8_lit_comp("Attaches to a process that is already running on the local machine."), str8_lit_comp(""), str8_lit_comp("Attach"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_PID, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("exit"), str8_lit_comp("Exits the debugger."), str8_lit_comp("quit,close,abort"), str8_lit_comp("Exit"), DF_IconKind_X, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("exit"), str8_lit_comp("Exits the debugger."), str8_lit_comp("quit,close,abort"), str8_lit_comp("Exit"), DF_IconKind_X, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("run_command"), str8_lit_comp("Runs a command from the command palette."), str8_lit_comp("help,cmd"), str8_lit_comp("Run Command"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_String, str8_lit_comp("commands"), D_EntityKind_Nil}}, { str8_lit_comp("run_command"), str8_lit_comp("Runs a command from the command palette."), str8_lit_comp("help,cmd"), str8_lit_comp("Run Command"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_String, str8_lit_comp("commands"), DF_EntityKind_Nil}},
{ str8_lit_comp("os_event"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("OS Event"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("os_event"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("OS Event"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("select_thread"), str8_lit_comp("Selects a thread."), str8_lit_comp(""), str8_lit_comp("Select Thread"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Thread}}, { str8_lit_comp("select_thread"), str8_lit_comp("Selects a thread."), str8_lit_comp(""), str8_lit_comp("Select Thread"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Thread}},
{ str8_lit_comp("select_unwind"), str8_lit_comp("Selects an unwind frame number for the selected thread."), str8_lit_comp(""), str8_lit_comp("Select Unwind"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("select_unwind"), str8_lit_comp("Selects an unwind frame number for the selected thread."), str8_lit_comp(""), str8_lit_comp("Select Unwind"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("up_one_frame"), str8_lit_comp("Selects the call stack frame above the currently selected."), str8_lit_comp(""), str8_lit_comp("Up One Frame"), DF_IconKind_UpArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("up_one_frame"), str8_lit_comp("Selects the call stack frame above the currently selected."), str8_lit_comp(""), str8_lit_comp("Up One Frame"), DF_IconKind_UpArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("down_one_frame"), str8_lit_comp("Selects the call stack frame below the currently selected."), str8_lit_comp("callstack,unwind"), str8_lit_comp("Down One Frame"), DF_IconKind_DownArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("down_one_frame"), str8_lit_comp("Selects the call stack frame below the currently selected."), str8_lit_comp("callstack,unwind"), str8_lit_comp("Down One Frame"), DF_IconKind_DownArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("inc_ui_font_scale"), str8_lit_comp("Increases the font size used for UI."), str8_lit_comp(""), str8_lit_comp("Increase UI Font Scale"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("inc_ui_font_scale"), str8_lit_comp("Increases the font size used for UI."), str8_lit_comp(""), str8_lit_comp("Increase UI Font Scale"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("dec_ui_font_scale"), str8_lit_comp("Decreases the font size used for UI."), str8_lit_comp(""), str8_lit_comp("Decrease UI Font Scale"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("dec_ui_font_scale"), str8_lit_comp("Decreases the font size used for UI."), str8_lit_comp(""), str8_lit_comp("Decrease UI Font Scale"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("inc_code_font_scale"), str8_lit_comp("Increases the font size used for code."), str8_lit_comp(""), str8_lit_comp("Increase Code Font Scale"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("inc_code_font_scale"), str8_lit_comp("Increases the font size used for code."), str8_lit_comp(""), str8_lit_comp("Increase Code Font Scale"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("dec_code_font_scale"), str8_lit_comp("Decreases the font size used for code."), str8_lit_comp(""), str8_lit_comp("Decrease Code Font Scale"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("dec_code_font_scale"), str8_lit_comp("Decreases the font size used for code."), str8_lit_comp(""), str8_lit_comp("Decrease Code Font Scale"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("open_window"), str8_lit_comp("Opens a new window."), str8_lit_comp(""), str8_lit_comp("Open New Window"), DF_IconKind_Window, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("open_window"), str8_lit_comp("Opens a new window."), str8_lit_comp(""), str8_lit_comp("Open New Window"), DF_IconKind_Window, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("close_window"), str8_lit_comp("Closes an opened window."), str8_lit_comp(""), str8_lit_comp("Close Window"), DF_IconKind_Window, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("close_window"), str8_lit_comp("Closes an opened window."), str8_lit_comp(""), str8_lit_comp("Close Window"), DF_IconKind_Window, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("toggle_fullscreen"), str8_lit_comp("Toggles fullscreen view on the active window."), str8_lit_comp(""), str8_lit_comp("Toggle Fullscreen"), DF_IconKind_Window, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("toggle_fullscreen"), str8_lit_comp("Toggles fullscreen view on the active window."), str8_lit_comp(""), str8_lit_comp("Toggle Fullscreen"), DF_IconKind_Window, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("confirm_accept"), str8_lit_comp("Accepts the active confirmation prompt."), str8_lit_comp(""), str8_lit_comp("Confirm Accept"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("confirm_accept"), str8_lit_comp("Accepts the active confirmation prompt."), str8_lit_comp(""), str8_lit_comp("Confirm Accept"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("confirm_cancel"), str8_lit_comp("Cancels the active confirmation prompt."), str8_lit_comp(""), str8_lit_comp("Confirm Cancel"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("confirm_cancel"), str8_lit_comp("Cancels the active confirmation prompt."), str8_lit_comp(""), str8_lit_comp("Confirm Cancel"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("reset_to_default_panels"), str8_lit_comp("Resets the window to the default panel layout."), str8_lit_comp("panel"), str8_lit_comp("Reset To Default Panel Layout"), DF_IconKind_Window, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("reset_to_default_panels"), str8_lit_comp("Resets the window to the default panel layout."), str8_lit_comp("panel"), str8_lit_comp("Reset To Default Panel Layout"), DF_IconKind_Window, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("reset_to_compact_panels"), str8_lit_comp("Resets the window to the compact panel layout."), str8_lit_comp("panel"), str8_lit_comp("Reset To Compact Panel Layout"), DF_IconKind_Window, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("reset_to_compact_panels"), str8_lit_comp("Resets the window to the compact panel layout."), str8_lit_comp("panel"), str8_lit_comp("Reset To Compact Panel Layout"), DF_IconKind_Window, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("new_panel_left"), str8_lit_comp("Creates a new panel to the left of the active panel."), str8_lit_comp("panel"), str8_lit_comp("Split Panel Left"), DF_IconKind_XSplit, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("new_panel_left"), str8_lit_comp("Creates a new panel to the left of the active panel."), str8_lit_comp("panel"), str8_lit_comp("Split Panel Left"), DF_IconKind_XSplit, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("new_panel_up"), str8_lit_comp("Creates a new panel at the top of the active panel."), str8_lit_comp("panel"), str8_lit_comp("Split Panel Up"), DF_IconKind_YSplit, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("new_panel_up"), str8_lit_comp("Creates a new panel at the top of the active panel."), str8_lit_comp("panel"), str8_lit_comp("Split Panel Up"), DF_IconKind_YSplit, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("new_panel_right"), str8_lit_comp("Creates a new panel to the right of the active panel."), str8_lit_comp("panel"), str8_lit_comp("Split Panel Right"), DF_IconKind_XSplit, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("new_panel_right"), str8_lit_comp("Creates a new panel to the right of the active panel."), str8_lit_comp("panel"), str8_lit_comp("Split Panel Right"), DF_IconKind_XSplit, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("new_panel_down"), str8_lit_comp("Creates a new panel at the bottom of the active panel."), str8_lit_comp("panel"), str8_lit_comp("Split Panel Down"), DF_IconKind_YSplit, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("new_panel_down"), str8_lit_comp("Creates a new panel at the bottom of the active panel."), str8_lit_comp("panel"), str8_lit_comp("Split Panel Down"), DF_IconKind_YSplit, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("split_panel"), str8_lit_comp("Creates a new panel in a given direction, and moves a tab to it, if specified."), str8_lit_comp(""), str8_lit_comp("Split Panel"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("split_panel"), str8_lit_comp("Creates a new panel in a given direction, and moves a tab to it, if specified."), str8_lit_comp(""), str8_lit_comp("Split Panel"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("rotate_panel_columns"), str8_lit_comp("Rotates all panels at the closest column level of the panel hierarchy."), str8_lit_comp(""), str8_lit_comp("Rotate Panel Columns"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("rotate_panel_columns"), str8_lit_comp("Rotates all panels at the closest column level of the panel hierarchy."), str8_lit_comp(""), str8_lit_comp("Rotate Panel Columns"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("next_panel"), str8_lit_comp("Cycles the active panel forward."), str8_lit_comp(""), str8_lit_comp("Focus Next Panel"), DF_IconKind_RightArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("next_panel"), str8_lit_comp("Cycles the active panel forward."), str8_lit_comp(""), str8_lit_comp("Focus Next Panel"), DF_IconKind_RightArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("prev_panel"), str8_lit_comp("Cycles the active panel backwards."), str8_lit_comp(""), str8_lit_comp("Focus Previous Panel"), DF_IconKind_LeftArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("prev_panel"), str8_lit_comp("Cycles the active panel backwards."), str8_lit_comp(""), str8_lit_comp("Focus Previous Panel"), DF_IconKind_LeftArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("focus_panel"), str8_lit_comp("Focuses a new panel."), str8_lit_comp(""), str8_lit_comp("Focus Panel"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("focus_panel"), str8_lit_comp("Focuses a new panel."), str8_lit_comp(""), str8_lit_comp("Focus Panel"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("focus_panel_right"), str8_lit_comp("Focuses a panel rightward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp("Focus Panel Right"), DF_IconKind_RightArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("focus_panel_right"), str8_lit_comp("Focuses a panel rightward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp("Focus Panel Right"), DF_IconKind_RightArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("focus_panel_left"), str8_lit_comp("Focuses a panel leftward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp("Focus Panel Left"), DF_IconKind_LeftArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("focus_panel_left"), str8_lit_comp("Focuses a panel leftward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp("Focus Panel Left"), DF_IconKind_LeftArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("focus_panel_up"), str8_lit_comp("Focuses a panel upward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp("Focus Panel Up"), DF_IconKind_UpArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("focus_panel_up"), str8_lit_comp("Focuses a panel upward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp("Focus Panel Up"), DF_IconKind_UpArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("focus_panel_down"), str8_lit_comp("Focuses a panel downward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp("Focus Panel Down"), DF_IconKind_DownArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("focus_panel_down"), str8_lit_comp("Focuses a panel downward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp("Focus Panel Down"), DF_IconKind_DownArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("undo"), str8_lit_comp("Undoes the previous action."), str8_lit_comp(""), str8_lit_comp("Undo"), DF_IconKind_Undo, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("undo"), str8_lit_comp("Undoes the previous action."), str8_lit_comp(""), str8_lit_comp("Undo"), DF_IconKind_Undo, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("redo"), str8_lit_comp("Redoes the first previously undone action."), str8_lit_comp(""), str8_lit_comp("Redo"), DF_IconKind_Redo, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("redo"), str8_lit_comp("Redoes the first previously undone action."), str8_lit_comp(""), str8_lit_comp("Redo"), DF_IconKind_Redo, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("go_back"), str8_lit_comp("Returns to the previously selected panel and tab in recorded history."), str8_lit_comp(""), str8_lit_comp("Go Back"), DF_IconKind_LeftArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("go_back"), str8_lit_comp("Returns to the previously selected panel and tab in recorded history."), str8_lit_comp(""), str8_lit_comp("Go Back"), DF_IconKind_LeftArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("go_forward"), str8_lit_comp("Returns to the next selected panel and tab in recorded history."), str8_lit_comp(""), str8_lit_comp("Go Forward"), DF_IconKind_RightArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("go_forward"), str8_lit_comp("Returns to the next selected panel and tab in recorded history."), str8_lit_comp(""), str8_lit_comp("Go Forward"), DF_IconKind_RightArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("close_panel"), str8_lit_comp("Closes the currently active panel."), str8_lit_comp(""), str8_lit_comp("Close Panel"), DF_IconKind_ClosePanel, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("close_panel"), str8_lit_comp("Closes the currently active panel."), str8_lit_comp(""), str8_lit_comp("Close Panel"), DF_IconKind_ClosePanel, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("next_tab"), str8_lit_comp("Focuses the next tab on the active panel."), str8_lit_comp(""), str8_lit_comp("Focus Next Tab"), DF_IconKind_RightArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("next_tab"), str8_lit_comp("Focuses the next tab on the active panel."), str8_lit_comp(""), str8_lit_comp("Focus Next Tab"), DF_IconKind_RightArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("prev_tab"), str8_lit_comp("Focuses the previous tab on the active panel."), str8_lit_comp(""), str8_lit_comp("Focus Previous Tab"), DF_IconKind_LeftArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("prev_tab"), str8_lit_comp("Focuses the previous tab on the active panel."), str8_lit_comp(""), str8_lit_comp("Focus Previous Tab"), DF_IconKind_LeftArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_tab_right"), str8_lit_comp("Moves the selected tab right one slot."), str8_lit_comp(""), str8_lit_comp("Move Tab Right"), DF_IconKind_RightArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_tab_right"), str8_lit_comp("Moves the selected tab right one slot."), str8_lit_comp(""), str8_lit_comp("Move Tab Right"), DF_IconKind_RightArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_tab_left"), str8_lit_comp("Moves the selected tab left one slot."), str8_lit_comp(""), str8_lit_comp("Move Tab Left"), DF_IconKind_LeftArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_tab_left"), str8_lit_comp("Moves the selected tab left one slot."), str8_lit_comp(""), str8_lit_comp("Move Tab Left"), DF_IconKind_LeftArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("open_tab"), str8_lit_comp("Opens a new tab with the parameterized view specification."), str8_lit_comp(""), str8_lit_comp("Open Tab"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("open_tab"), str8_lit_comp("Opens a new tab with the parameterized view specification."), str8_lit_comp(""), str8_lit_comp("Open Tab"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("close_tab"), str8_lit_comp("Closes the currently opened tab."), str8_lit_comp(""), str8_lit_comp("Close Tab"), DF_IconKind_X, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("close_tab"), str8_lit_comp("Closes the currently opened tab."), str8_lit_comp(""), str8_lit_comp("Close Tab"), DF_IconKind_X, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_tab"), str8_lit_comp("Moves a tab to a new panel."), str8_lit_comp(""), str8_lit_comp("Move Tab"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_tab"), str8_lit_comp("Moves a tab to a new panel."), str8_lit_comp(""), str8_lit_comp("Move Tab"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("tab_bar_top"), str8_lit_comp("Anchors a panel's tab bar to the top of the panel."), str8_lit_comp(""), str8_lit_comp("Anchor Tab Bar To Top"), DF_IconKind_UpArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("tab_bar_top"), str8_lit_comp("Anchors a panel's tab bar to the top of the panel."), str8_lit_comp(""), str8_lit_comp("Anchor Tab Bar To Top"), DF_IconKind_UpArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("tab_bar_bottom"), str8_lit_comp("Anchors a panel's tab bar to the bottom of the panel."), str8_lit_comp(""), str8_lit_comp("Anchor Tab Bar To Bottom"), DF_IconKind_DownArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("tab_bar_bottom"), str8_lit_comp("Anchors a panel's tab bar to the bottom of the panel."), str8_lit_comp(""), str8_lit_comp("Anchor Tab Bar To Bottom"), DF_IconKind_DownArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("set_current_path"), str8_lit_comp("Sets the debugger's current path, which is used as a starting point when browsing for files."), str8_lit_comp(""), str8_lit_comp("Set Current Path"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("set_current_path"), str8_lit_comp("Sets the debugger's current path, which is used as a starting point when browsing for files."), str8_lit_comp(""), str8_lit_comp("Set Current Path"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("open"), str8_lit_comp("Opens a file."), str8_lit_comp("code,source,file"), str8_lit_comp("Open"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*1)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("open"), str8_lit_comp("Opens a file."), str8_lit_comp("code,source,file"), str8_lit_comp("Open"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*1)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("switch"), str8_lit_comp("Switches to a loaded file."), str8_lit_comp("code,source,file"), str8_lit_comp("Switch"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_File}}, { str8_lit_comp("switch"), str8_lit_comp("Switches to a loaded file."), str8_lit_comp("code,source,file"), str8_lit_comp("Switch"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_File}},
{ str8_lit_comp("switch_to_partner_file"), str8_lit_comp("Switches to the focused file's partner; or from header to implementation or vice versa."), str8_lit_comp("code,source,file"), str8_lit_comp("Switch To Partner File"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("switch_to_partner_file"), str8_lit_comp("Switches to the focused file's partner; or from header to implementation or vice versa."), str8_lit_comp("code,source,file"), str8_lit_comp("Switch To Partner File"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("go_to_disassembly"), str8_lit_comp("Goes to the disassembly, if any, for a given source code line."), str8_lit_comp("code,source,disassembly,disasm"), str8_lit_comp("Go To Disassembly"), DF_IconKind_Glasses, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("go_to_disassembly"), str8_lit_comp("Goes to the disassembly, if any, for a given source code line."), str8_lit_comp("code,source,disassembly,disasm"), str8_lit_comp("Go To Disassembly"), DF_IconKind_Glasses, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("go_to_source"), str8_lit_comp("Goes to the source code, if any, for a given disassembly line."), str8_lit_comp("code,source,disassembly,disasm"), str8_lit_comp("Go To Source"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("go_to_source"), str8_lit_comp("Goes to the source code, if any, for a given disassembly line."), str8_lit_comp("code,source,disassembly,disasm"), str8_lit_comp("Go To Source"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("set_file_override_link_src"), str8_lit_comp("Sets the source path for an override file link."), str8_lit_comp(""), str8_lit_comp("Set File Override Link Source"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("set_file_override_link_src"), str8_lit_comp("Sets the source path for an override file link."), str8_lit_comp(""), str8_lit_comp("Set File Override Link Source"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("set_file_override_link_dst"), str8_lit_comp("Sets the destination path for an override file link."), str8_lit_comp(""), str8_lit_comp("Set File Override Link Destination"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("set_file_override_link_dst"), str8_lit_comp("Sets the destination path for an override file link."), str8_lit_comp(""), str8_lit_comp("Set File Override Link Destination"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("set_file_replacement_path"), str8_lit_comp("Sets the path which should be used as the replacement for the passed file."), str8_lit_comp(""), str8_lit_comp("Set File Replacement Path"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("set_file_replacement_path"), str8_lit_comp("Sets the path which should be used as the replacement for the passed file."), str8_lit_comp(""), str8_lit_comp("Set File Replacement Path"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("set_auto_view_rule_type"), str8_lit_comp("Sets the type for an auto view rule."), str8_lit_comp(""), str8_lit_comp("Set Auto View Rule Type"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("set_auto_view_rule_type"), str8_lit_comp("Sets the type for an auto view rule."), str8_lit_comp(""), str8_lit_comp("Set Auto View Rule Type"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("set_auto_view_rule_view_rule"), str8_lit_comp("Sets the view rule string for an auto view rule."), str8_lit_comp(""), str8_lit_comp("Set Auto View Rule View Rule"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("set_auto_view_rule_view_rule"), str8_lit_comp("Sets the view rule string for an auto view rule."), str8_lit_comp(""), str8_lit_comp("Set Auto View Rule View Rule"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("open_user"), str8_lit_comp("Opens a user file path, immediately loading it, and begins autosaving to it."), str8_lit_comp("load,user,project,layout"), str8_lit_comp("Open User"), DF_IconKind_Person, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*1)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("open_user"), str8_lit_comp("Opens a user file path, immediately loading it, and begins autosaving to it."), str8_lit_comp("load,user,project,layout"), str8_lit_comp("Open User"), DF_IconKind_Person, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*1)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("open_project"), str8_lit_comp("Opens a project file path, immediately loading it, and begins autosaving to it."), str8_lit_comp("project,project,session"), str8_lit_comp("Open Project"), DF_IconKind_Briefcase, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*1)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("open_project"), str8_lit_comp("Opens a project file path, immediately loading it, and begins autosaving to it."), str8_lit_comp("project,project,session"), str8_lit_comp("Open Project"), DF_IconKind_Briefcase, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*1)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("open_recent_project"), str8_lit_comp("Opens a recently used project file."), str8_lit_comp("project,project,session"), str8_lit_comp("Open Recent Project"), DF_IconKind_Briefcase, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_RecentProject}}, { str8_lit_comp("open_recent_project"), str8_lit_comp("Opens a recently used project file."), str8_lit_comp("project,project,session"), str8_lit_comp("Open Recent Project"), DF_IconKind_Briefcase, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_RecentProject}},
{ str8_lit_comp("apply_user_data"), str8_lit_comp("Applies user data from the active user file."), str8_lit_comp(""), str8_lit_comp("Apply User Data"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("apply_user_data"), str8_lit_comp("Applies user data from the active user file."), str8_lit_comp(""), str8_lit_comp("Apply User Data"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("apply_project_data"), str8_lit_comp("Applies project data from the active project file."), str8_lit_comp(""), str8_lit_comp("Apply Project Data"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("apply_project_data"), str8_lit_comp("Applies project data from the active project file."), str8_lit_comp(""), str8_lit_comp("Apply Project Data"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("write_user_data"), str8_lit_comp("Writes user data to the active user file."), str8_lit_comp(""), str8_lit_comp("Write User Data"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("write_user_data"), str8_lit_comp("Writes user data to the active user file."), str8_lit_comp(""), str8_lit_comp("Write User Data"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("write_project_data"), str8_lit_comp("Writes project data to the active project file."), str8_lit_comp(""), str8_lit_comp("Write Project Data"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("write_project_data"), str8_lit_comp("Writes project data to the active project file."), str8_lit_comp(""), str8_lit_comp("Write Project Data"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("edit"), str8_lit_comp("Edits the current selection."), str8_lit_comp(""), str8_lit_comp("Edit"), DF_IconKind_Pencil, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("edit"), str8_lit_comp("Edits the current selection."), str8_lit_comp(""), str8_lit_comp("Edit"), DF_IconKind_Pencil, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("accept"), str8_lit_comp("Accepts current changes, or answers prompts in the affirmative."), str8_lit_comp(""), str8_lit_comp("Accept"), DF_IconKind_CheckFilled, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("accept"), str8_lit_comp("Accepts current changes, or answers prompts in the affirmative."), str8_lit_comp(""), str8_lit_comp("Accept"), DF_IconKind_CheckFilled, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("cancel"), str8_lit_comp("Rejects current changes, exits temporary menus, or answers prompts in the negative."), str8_lit_comp(""), str8_lit_comp("Cancel"), DF_IconKind_X, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("cancel"), str8_lit_comp("Rejects current changes, exits temporary menus, or answers prompts in the negative."), str8_lit_comp(""), str8_lit_comp("Cancel"), DF_IconKind_X, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_left"), str8_lit_comp("Moves the cursor or selection left."), str8_lit_comp(""), str8_lit_comp("Move Left"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_left"), str8_lit_comp("Moves the cursor or selection left."), str8_lit_comp(""), str8_lit_comp("Move Left"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_right"), str8_lit_comp("Moves the cursor or selection right."), str8_lit_comp(""), str8_lit_comp("Move Right"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_right"), str8_lit_comp("Moves the cursor or selection right."), str8_lit_comp(""), str8_lit_comp("Move Right"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_up"), str8_lit_comp("Moves the cursor or selection up."), str8_lit_comp(""), str8_lit_comp("Move Up"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_up"), str8_lit_comp("Moves the cursor or selection up."), str8_lit_comp(""), str8_lit_comp("Move Up"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_down"), str8_lit_comp("Moves the cursor or selection down."), str8_lit_comp(""), str8_lit_comp("Move Down"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_down"), str8_lit_comp("Moves the cursor or selection down."), str8_lit_comp(""), str8_lit_comp("Move Down"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_left_select"), str8_lit_comp("Moves the cursor or selection left, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Left Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_left_select"), str8_lit_comp("Moves the cursor or selection left, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Left Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_right_select"), str8_lit_comp("Moves the cursor or selection right, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Right Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_right_select"), str8_lit_comp("Moves the cursor or selection right, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Right Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_up_select"), str8_lit_comp("Moves the cursor or selection up, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Up Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_up_select"), str8_lit_comp("Moves the cursor or selection up, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Up Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_down_select"), str8_lit_comp("Moves the cursor or selection down, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Down Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_down_select"), str8_lit_comp("Moves the cursor or selection down, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Down Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_left_chunk"), str8_lit_comp("Moves the cursor or selection left one chunk."), str8_lit_comp(""), str8_lit_comp("Move Left Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_left_chunk"), str8_lit_comp("Moves the cursor or selection left one chunk."), str8_lit_comp(""), str8_lit_comp("Move Left Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_right_chunk"), str8_lit_comp("Moves the cursor or selection right one chunk."), str8_lit_comp(""), str8_lit_comp("Move Right Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_right_chunk"), str8_lit_comp("Moves the cursor or selection right one chunk."), str8_lit_comp(""), str8_lit_comp("Move Right Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_up_chunk"), str8_lit_comp("Moves the cursor or selection up one chunk."), str8_lit_comp(""), str8_lit_comp("Move Up Chunk"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_up_chunk"), str8_lit_comp("Moves the cursor or selection up one chunk."), str8_lit_comp(""), str8_lit_comp("Move Up Chunk"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_down_chunk"), str8_lit_comp("Moves the cursor or selection down one chunk."), str8_lit_comp(""), str8_lit_comp("Move Down Chunk"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_down_chunk"), str8_lit_comp("Moves the cursor or selection down one chunk."), str8_lit_comp(""), str8_lit_comp("Move Down Chunk"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_up_page"), str8_lit_comp("Moves the cursor or selection up one page."), str8_lit_comp(""), str8_lit_comp("Move Up Page"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_up_page"), str8_lit_comp("Moves the cursor or selection up one page."), str8_lit_comp(""), str8_lit_comp("Move Up Page"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_down_page"), str8_lit_comp("Moves the cursor or selection down one page."), str8_lit_comp(""), str8_lit_comp("Move Down Page"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_down_page"), str8_lit_comp("Moves the cursor or selection down one page."), str8_lit_comp(""), str8_lit_comp("Move Down Page"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_up_whole"), str8_lit_comp("Moves the cursor or selection to the beginning of the relevant content."), str8_lit_comp(""), str8_lit_comp("Move Up Whole"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_up_whole"), str8_lit_comp("Moves the cursor or selection to the beginning of the relevant content."), str8_lit_comp(""), str8_lit_comp("Move Up Whole"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_down_whole"), str8_lit_comp("Moves the cursor or selection to the end of the relevant content."), str8_lit_comp(""), str8_lit_comp("Move Down Whole"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_down_whole"), str8_lit_comp("Moves the cursor or selection to the end of the relevant content."), str8_lit_comp(""), str8_lit_comp("Move Down Whole"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_left_chunk_select"), str8_lit_comp("Moves the cursor or selection left one chunk."), str8_lit_comp(""), str8_lit_comp("Move Left Chunk Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_left_chunk_select"), str8_lit_comp("Moves the cursor or selection left one chunk."), str8_lit_comp(""), str8_lit_comp("Move Left Chunk Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_right_chunk_select"), str8_lit_comp("Moves the cursor or selection right one chunk."), str8_lit_comp(""), str8_lit_comp("Move Right Chunk Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_right_chunk_select"), str8_lit_comp("Moves the cursor or selection right one chunk."), str8_lit_comp(""), str8_lit_comp("Move Right Chunk Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_up_chunk_select"), str8_lit_comp("Moves the cursor or selection up one chunk."), str8_lit_comp(""), str8_lit_comp("Move Up Chunk Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_up_chunk_select"), str8_lit_comp("Moves the cursor or selection up one chunk."), str8_lit_comp(""), str8_lit_comp("Move Up Chunk Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_down_chunk_select"), str8_lit_comp("Moves the cursor or selection down one chunk."), str8_lit_comp(""), str8_lit_comp("Move Down Chunk Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_down_chunk_select"), str8_lit_comp("Moves the cursor or selection down one chunk."), str8_lit_comp(""), str8_lit_comp("Move Down Chunk Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_up_page_select"), str8_lit_comp("Moves the cursor or selection up one page, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Up Page Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_up_page_select"), str8_lit_comp("Moves the cursor or selection up one page, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Up Page Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_down_page_select"), str8_lit_comp("Moves the cursor or selection down one page, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Down Page Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_down_page_select"), str8_lit_comp("Moves the cursor or selection down one page, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Down Page Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_up_whole_select"), str8_lit_comp("Moves the cursor or selection to the beginning of the relevant content, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Up Whole Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_up_whole_select"), str8_lit_comp("Moves the cursor or selection to the beginning of the relevant content, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Up Whole Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_down_whole_select"), str8_lit_comp("Moves the cursor or selection to the end of the relevant content, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Down Whole Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_down_whole_select"), str8_lit_comp("Moves the cursor or selection to the end of the relevant content, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Down Whole Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_up_reorder"), str8_lit_comp("Moves the cursor or selection up, while swapping the currently selected element with that upward."), str8_lit_comp(""), str8_lit_comp("Move Up Reorder"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_up_reorder"), str8_lit_comp("Moves the cursor or selection up, while swapping the currently selected element with that upward."), str8_lit_comp(""), str8_lit_comp("Move Up Reorder"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_down_reorder"), str8_lit_comp("Moves the cursor or selection down, while swapping the currently selected element with that downward."), str8_lit_comp(""), str8_lit_comp("Move Down Reorder"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_down_reorder"), str8_lit_comp("Moves the cursor or selection down, while swapping the currently selected element with that downward."), str8_lit_comp(""), str8_lit_comp("Move Down Reorder"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_home"), str8_lit_comp("Moves the cursor to the beginning of the line."), str8_lit_comp(""), str8_lit_comp("Move Home"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_home"), str8_lit_comp("Moves the cursor to the beginning of the line."), str8_lit_comp(""), str8_lit_comp("Move Home"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_end"), str8_lit_comp("Moves the cursor to the end of the line."), str8_lit_comp(""), str8_lit_comp("Move End"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_end"), str8_lit_comp("Moves the cursor to the end of the line."), str8_lit_comp(""), str8_lit_comp("Move End"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_home_select"), str8_lit_comp("Moves the cursor to the beginning of the line, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Home Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_home_select"), str8_lit_comp("Moves the cursor to the beginning of the line, while selecting."), str8_lit_comp(""), str8_lit_comp("Move Home Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("move_end_select"), str8_lit_comp("Moves the cursor to the end of the line, while selecting."), str8_lit_comp(""), str8_lit_comp("Move End Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("move_end_select"), str8_lit_comp("Moves the cursor to the end of the line, while selecting."), str8_lit_comp(""), str8_lit_comp("Move End Select"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("select_all"), str8_lit_comp("Selects everything possible."), str8_lit_comp(""), str8_lit_comp("Select All"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("select_all"), str8_lit_comp("Selects everything possible."), str8_lit_comp(""), str8_lit_comp("Select All"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("delete_single"), str8_lit_comp("Deletes a single element to the right of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp("Delete Single"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("delete_single"), str8_lit_comp("Deletes a single element to the right of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp("Delete Single"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("delete_chunk"), str8_lit_comp("Deletes a chunk to the right of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp("Delete Chunk"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("delete_chunk"), str8_lit_comp("Deletes a chunk to the right of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp("Delete Chunk"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("backspace_single"), str8_lit_comp("Deletes a single element to the left of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp("Backspace Single"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("backspace_single"), str8_lit_comp("Deletes a single element to the left of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp("Backspace Single"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("backspace_chunk"), str8_lit_comp("Deletes a chunk to the left of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp("Backspace Chunk"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("backspace_chunk"), str8_lit_comp("Deletes a chunk to the left of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp("Backspace Chunk"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("copy"), str8_lit_comp("Copies the active selection to the clipboard."), str8_lit_comp(""), str8_lit_comp("Copy"), DF_IconKind_Clipboard, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("copy"), str8_lit_comp("Copies the active selection to the clipboard."), str8_lit_comp(""), str8_lit_comp("Copy"), DF_IconKind_Clipboard, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("cut"), str8_lit_comp("Copies the active selection to the clipboard, then deletes it."), str8_lit_comp(""), str8_lit_comp("Cut"), DF_IconKind_Clipboard, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("cut"), str8_lit_comp("Copies the active selection to the clipboard, then deletes it."), str8_lit_comp(""), str8_lit_comp("Cut"), DF_IconKind_Clipboard, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("paste"), str8_lit_comp("Pastes the current contents of the clipboard."), str8_lit_comp(""), str8_lit_comp("Paste"), DF_IconKind_Clipboard, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("paste"), str8_lit_comp("Pastes the current contents of the clipboard."), str8_lit_comp(""), str8_lit_comp("Paste"), DF_IconKind_Clipboard, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("insert_text"), str8_lit_comp("Inserts the text that was used to cause this command."), str8_lit_comp(""), str8_lit_comp("Insert Text"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("insert_text"), str8_lit_comp("Inserts the text that was used to cause this command."), str8_lit_comp(""), str8_lit_comp("Insert Text"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("goto_line"), str8_lit_comp("Jumps to a line number in the current code file."), str8_lit_comp(""), str8_lit_comp("Go To Line"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Cursor, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("goto_line"), str8_lit_comp("Jumps to a line number in the current code file."), str8_lit_comp(""), str8_lit_comp("Go To Line"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Cursor, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("goto_address"), str8_lit_comp("Jumps to an address in the current memory or disassembly view."), str8_lit_comp(""), str8_lit_comp("Go To Address"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Vaddr, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("goto_address"), str8_lit_comp("Jumps to an address in the current memory or disassembly view."), str8_lit_comp(""), str8_lit_comp("Go To Address"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Vaddr, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("center_cursor"), str8_lit_comp("Snaps the current code view to center the cursor."), str8_lit_comp(""), str8_lit_comp("Center Cursor"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("center_cursor"), str8_lit_comp("Snaps the current code view to center the cursor."), str8_lit_comp(""), str8_lit_comp("Center Cursor"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("contain_cursor"), str8_lit_comp("Snaps the current code view to contain the cursor."), str8_lit_comp(""), str8_lit_comp("Contain Cursor"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("contain_cursor"), str8_lit_comp("Snaps the current code view to contain the cursor."), str8_lit_comp(""), str8_lit_comp("Contain Cursor"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("find_text_forward"), str8_lit_comp("Searches the current code file forward (from the cursor) for a string."), str8_lit_comp(""), str8_lit_comp("Find Text (Forward)"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*1)|(DF_QueryFlag_SelectOldInput*1)|(DF_QueryFlag_Required*1), DF_RegSlot_String, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("find_text_forward"), str8_lit_comp("Searches the current code file forward (from the cursor) for a string."), str8_lit_comp(""), str8_lit_comp("Find Text (Forward)"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*1)|(DF_QueryFlag_SelectOldInput*1)|(DF_QueryFlag_Required*1), DF_RegSlot_String, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("find_text_backward"), str8_lit_comp("Searches the current code file backwards (from the cursor) for a string."), str8_lit_comp(""), str8_lit_comp("Find Text (Backwards)"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*1)|(DF_QueryFlag_SelectOldInput*1)|(DF_QueryFlag_Required*1), DF_RegSlot_String, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("find_text_backward"), str8_lit_comp("Searches the current code file backwards (from the cursor) for a string."), str8_lit_comp(""), str8_lit_comp("Find Text (Backwards)"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*1)|(DF_QueryFlag_SelectOldInput*1)|(DF_QueryFlag_Required*1), DF_RegSlot_String, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("find_next"), str8_lit_comp("Searches the current code file forward (from the cursor) for the last searched string."), str8_lit_comp(""), str8_lit_comp("Find Next"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*1)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("find_next"), str8_lit_comp("Searches the current code file forward (from the cursor) for the last searched string."), str8_lit_comp(""), str8_lit_comp("Find Next"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*1)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("find_prev"), str8_lit_comp("Searches the current code file backwards (from the cursor) for the last searched string."), str8_lit_comp(""), str8_lit_comp("Find Previous"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*1)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("find_prev"), str8_lit_comp("Searches the current code file backwards (from the cursor) for the last searched string."), str8_lit_comp(""), str8_lit_comp("Find Previous"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*1)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("find_thread"), str8_lit_comp("Jumps to the passed thread in either source code, disassembly, or both if they're already open."), str8_lit_comp(""), str8_lit_comp("Find Thread"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Thread}}, { str8_lit_comp("find_thread"), str8_lit_comp("Jumps to the passed thread in either source code, disassembly, or both if they're already open."), str8_lit_comp(""), str8_lit_comp("Find Thread"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Thread}},
{ str8_lit_comp("find_selected_thread"), str8_lit_comp("Jumps to the selected thread in either source code, disassembly, or both if they're already open."), str8_lit_comp(""), str8_lit_comp("Find Selected Thread"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("find_selected_thread"), str8_lit_comp("Jumps to the selected thread in either source code, disassembly, or both if they're already open."), str8_lit_comp(""), str8_lit_comp("Find Selected Thread"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("goto_name"), str8_lit_comp("Searches for the passed string as a file, a symbol in debug info, and more, then jumps to it if possible."), str8_lit_comp(""), str8_lit_comp("Go To Name"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_String, str8_lit_comp("symbol_lister"), D_EntityKind_Nil}}, { str8_lit_comp("goto_name"), str8_lit_comp("Searches for the passed string as a file, a symbol in debug info, and more, then jumps to it if possible."), str8_lit_comp(""), str8_lit_comp("Go To Name"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_String, str8_lit_comp("symbol_lister"), DF_EntityKind_Nil}},
{ str8_lit_comp("goto_name_at_cursor"), str8_lit_comp("Searches for the text at the cursor as a file, a symbol in debug info, and more, then jumps to it if possible."), str8_lit_comp(""), str8_lit_comp("Go To Name At Cursor"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("goto_name_at_cursor"), str8_lit_comp("Searches for the text at the cursor as a file, a symbol in debug info, and more, then jumps to it if possible."), str8_lit_comp(""), str8_lit_comp("Go To Name At Cursor"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("toggle_watch_expr"), str8_lit_comp("Adds or removes an expression to an opened watch view."), str8_lit_comp(""), str8_lit_comp("Toggle Watch Expression"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("toggle_watch_expr"), str8_lit_comp("Adds or removes an expression to an opened watch view."), str8_lit_comp(""), str8_lit_comp("Toggle Watch Expression"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("toggle_watch_expr_at_cursor"), str8_lit_comp("Adds or removes the expression that the cursor or selection is currently over to an opened watch view."), str8_lit_comp(""), str8_lit_comp("Toggle Watch Expression At Cursor"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("toggle_watch_expr_at_cursor"), str8_lit_comp("Adds or removes the expression that the cursor or selection is currently over to an opened watch view."), str8_lit_comp(""), str8_lit_comp("Toggle Watch Expression At Cursor"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("toggle_watch_expr_at_mouse"), str8_lit_comp("Adds or removes the expression that the mouse is currently over to an opened watch view."), str8_lit_comp(""), str8_lit_comp("Toggle Watch Expression At Mouse"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("toggle_watch_expr_at_mouse"), str8_lit_comp("Adds or removes the expression that the mouse is currently over to an opened watch view."), str8_lit_comp(""), str8_lit_comp("Toggle Watch Expression At Mouse"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("set_columns"), str8_lit_comp("Sets the number of columns for a memory view."), str8_lit_comp(""), str8_lit_comp("Set Columns"), DF_IconKind_Thumbnails, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("set_columns"), str8_lit_comp("Sets the number of columns for a memory view."), str8_lit_comp(""), str8_lit_comp("Set Columns"), DF_IconKind_Thumbnails, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("toggle_address_visibility"), str8_lit_comp("Toggles the visibility of addresses in a disassembly view."), str8_lit_comp(""), str8_lit_comp("Toggle Address Visibility"), DF_IconKind_Thumbnails, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("toggle_address_visibility"), str8_lit_comp("Toggles the visibility of addresses in a disassembly view."), str8_lit_comp(""), str8_lit_comp("Toggle Address Visibility"), DF_IconKind_Thumbnails, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("toggle_code_bytes_visibility"), str8_lit_comp("Toggles the visibility of machine code bytes in a disassembly view."), str8_lit_comp(""), str8_lit_comp("Toggle Code Bytes Visibility"), DF_IconKind_Thumbnails, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("toggle_code_bytes_visibility"), str8_lit_comp("Toggles the visibility of machine code bytes in a disassembly view."), str8_lit_comp(""), str8_lit_comp("Toggle Code Bytes Visibility"), DF_IconKind_Thumbnails, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("enable_entity"), str8_lit_comp("Enables an entity."), str8_lit_comp(""), str8_lit_comp("Enable Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("enable_entity"), str8_lit_comp("Enables an entity."), str8_lit_comp(""), str8_lit_comp("Enable Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("disable_entity"), str8_lit_comp("Disables an entity."), str8_lit_comp(""), str8_lit_comp("Disable Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("disable_entity"), str8_lit_comp("Disables an entity."), str8_lit_comp(""), str8_lit_comp("Disable Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("remove_entity"), str8_lit_comp("Removes an entity."), str8_lit_comp(""), str8_lit_comp("Remove Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("remove_entity"), str8_lit_comp("Removes an entity."), str8_lit_comp(""), str8_lit_comp("Remove Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("name_entity"), str8_lit_comp("Equips an entity with a name."), str8_lit_comp(""), str8_lit_comp("Name Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("name_entity"), str8_lit_comp("Equips an entity with a name."), str8_lit_comp(""), str8_lit_comp("Name Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("edit_entity"), str8_lit_comp("Opens the editor for an entity."), str8_lit_comp(""), str8_lit_comp("Edit Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("edit_entity"), str8_lit_comp("Opens the editor for an entity."), str8_lit_comp(""), str8_lit_comp("Edit Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("duplicate_entity"), str8_lit_comp("Duplicates an entity."), str8_lit_comp(""), str8_lit_comp("Duplicate Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("duplicate_entity"), str8_lit_comp("Duplicates an entity."), str8_lit_comp(""), str8_lit_comp("Duplicate Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("relocate_entity"), str8_lit_comp("Relocates an entity."), str8_lit_comp(""), str8_lit_comp("Relocate Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("relocate_entity"), str8_lit_comp("Relocates an entity."), str8_lit_comp(""), str8_lit_comp("Relocate Entity"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("add_breakpoint"), str8_lit_comp("Places a breakpoint at a given location (file path and line number, address, or symbol name)."), str8_lit_comp(""), str8_lit_comp("Add Breakpoint"), DF_IconKind_CircleFilled, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("add_breakpoint"), str8_lit_comp("Places a breakpoint at a given location (file path and line number, address, or symbol name)."), str8_lit_comp(""), str8_lit_comp("Add Breakpoint"), DF_IconKind_CircleFilled, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("add_address_breakpoint"), str8_lit_comp("Places a breakpoint on the specified address."), str8_lit_comp(""), str8_lit_comp("Add Address Breakpoint"), DF_IconKind_CircleFilled, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Vaddr, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("add_address_breakpoint"), str8_lit_comp("Places a breakpoint on the specified address."), str8_lit_comp(""), str8_lit_comp("Add Address Breakpoint"), DF_IconKind_CircleFilled, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Vaddr, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("add_function_breakpoint"), str8_lit_comp("Places a breakpoint on the first address(es) of the specified function."), str8_lit_comp(""), str8_lit_comp("Add Function Breakpoint"), DF_IconKind_CircleFilled, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_String, str8_lit_comp("symbol_lister"), D_EntityKind_Nil}}, { str8_lit_comp("add_function_breakpoint"), str8_lit_comp("Places a breakpoint on the first address(es) of the specified function."), str8_lit_comp(""), str8_lit_comp("Add Function Breakpoint"), DF_IconKind_CircleFilled, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_String, str8_lit_comp("symbol_lister"), DF_EntityKind_Nil}},
{ str8_lit_comp("toggle_breakpoint"), str8_lit_comp("Places or removes a breakpoint at a given location (file path and line number, address, or symbol name)."), str8_lit_comp(""), str8_lit_comp("Toggle Breakpoint"), DF_IconKind_CircleFilled, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("toggle_breakpoint"), str8_lit_comp("Places or removes a breakpoint at a given location (file path and line number, address, or symbol name)."), str8_lit_comp(""), str8_lit_comp("Toggle Breakpoint"), DF_IconKind_CircleFilled, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("remove_breakpoint"), str8_lit_comp("Removes an existing breakpoint."), str8_lit_comp(""), str8_lit_comp("Remove Breakpoint"), DF_IconKind_Trash, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Breakpoint}}, { str8_lit_comp("remove_breakpoint"), str8_lit_comp("Removes an existing breakpoint."), str8_lit_comp(""), str8_lit_comp("Remove Breakpoint"), DF_IconKind_Trash, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Breakpoint}},
{ str8_lit_comp("enable_breakpoint"), str8_lit_comp("Enables a breakpoint."), str8_lit_comp(""), str8_lit_comp("Enable Breakpoint"), DF_IconKind_CheckFilled, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Breakpoint}}, { str8_lit_comp("enable_breakpoint"), str8_lit_comp("Enables a breakpoint."), str8_lit_comp(""), str8_lit_comp("Enable Breakpoint"), DF_IconKind_CheckFilled, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Breakpoint}},
{ str8_lit_comp("disable_breakpoint"), str8_lit_comp("Disables a breakpoint."), str8_lit_comp(""), str8_lit_comp("Disable Breakpoint"), DF_IconKind_CheckHollow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Breakpoint}}, { str8_lit_comp("disable_breakpoint"), str8_lit_comp("Disables a breakpoint."), str8_lit_comp(""), str8_lit_comp("Disable Breakpoint"), DF_IconKind_CheckHollow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Breakpoint}},
{ str8_lit_comp("add_watch_pin"), str8_lit_comp("Places a watch pin at a given location (file path and line number or address)."), str8_lit_comp(""), str8_lit_comp("Add Watch Pin"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("add_watch_pin"), str8_lit_comp("Places a watch pin at a given location (file path and line number or address)."), str8_lit_comp(""), str8_lit_comp("Add Watch Pin"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("toggle_watch_pin"), str8_lit_comp("Places or removes a watch pin at a given location (file path and line number or address)."), str8_lit_comp(""), str8_lit_comp("Toggle Watch Pin"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("toggle_watch_pin"), str8_lit_comp("Places or removes a watch pin at a given location (file path and line number or address)."), str8_lit_comp(""), str8_lit_comp("Toggle Watch Pin"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("toggle_breakpoint_cursor"), str8_lit_comp("Places or removes a breakpoint on the line on which the active cursor sits."), str8_lit_comp(""), str8_lit_comp("Toggle Breakpoint At Cursor"), DF_IconKind_CircleFilled, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("toggle_breakpoint_cursor"), str8_lit_comp("Places or removes a breakpoint on the line on which the active cursor sits."), str8_lit_comp(""), str8_lit_comp("Toggle Breakpoint At Cursor"), DF_IconKind_CircleFilled, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("toggle_watch_pin_at_cursor"), str8_lit_comp("Places or removes a watch pin at the cursor on the currently active file."), str8_lit_comp(""), str8_lit_comp("Toggle Watch Pin At Cursor"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_String, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("toggle_watch_pin_at_cursor"), str8_lit_comp("Places or removes a watch pin at the cursor on the currently active file."), str8_lit_comp(""), str8_lit_comp("Toggle Watch Pin At Cursor"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*1)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_String, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("run_to_cursor"), str8_lit_comp("Runs the selected thread to the current cursor."), str8_lit_comp("line"), str8_lit_comp("Run To Cursor"), DF_IconKind_Play, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("run_to_cursor"), str8_lit_comp("Runs the selected thread to the current cursor."), str8_lit_comp("line"), str8_lit_comp("Run To Cursor"), DF_IconKind_Play, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("set_next_statement"), str8_lit_comp("Sets the selected thread's instruction pointer to the cursor's position."), str8_lit_comp(""), str8_lit_comp("Set Next Statement"), DF_IconKind_RightArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("set_next_statement"), str8_lit_comp("Sets the selected thread's instruction pointer to the cursor's position."), str8_lit_comp(""), str8_lit_comp("Set Next Statement"), DF_IconKind_RightArrow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("add_target"), str8_lit_comp("Adds a new target."), str8_lit_comp("application,executable,debug"), str8_lit_comp("Add Target"), DF_IconKind_Target, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*1)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("add_target"), str8_lit_comp("Adds a new target."), str8_lit_comp("application,executable,debug"), str8_lit_comp("Add Target"), DF_IconKind_Target, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*1)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("remove_target"), str8_lit_comp("Removes an existing target."), str8_lit_comp("delete,remove,target"), str8_lit_comp("Remove Target"), DF_IconKind_Trash, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Target}}, { str8_lit_comp("remove_target"), str8_lit_comp("Removes an existing target."), str8_lit_comp("delete,remove,target"), str8_lit_comp("Remove Target"), DF_IconKind_Trash, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Target}},
{ str8_lit_comp("edit_target"), str8_lit_comp("Edits an existing target."), str8_lit_comp(""), str8_lit_comp("Edit Target"), DF_IconKind_Pencil, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Target}}, { str8_lit_comp("edit_target"), str8_lit_comp("Edits an existing target."), str8_lit_comp(""), str8_lit_comp("Edit Target"), DF_IconKind_Pencil, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Target}},
{ str8_lit_comp("select_target"), str8_lit_comp("Selects a target."), str8_lit_comp(""), str8_lit_comp("Select Target"), DF_IconKind_Target, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Target}}, { str8_lit_comp("select_target"), str8_lit_comp("Selects a target."), str8_lit_comp(""), str8_lit_comp("Select Target"), DF_IconKind_Target, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Target}},
{ str8_lit_comp("enable_target"), str8_lit_comp("Enables a target, in addition to all targets currently enabled."), str8_lit_comp(""), str8_lit_comp("Enable Target"), DF_IconKind_CheckFilled, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Target}}, { str8_lit_comp("enable_target"), str8_lit_comp("Enables a target, in addition to all targets currently enabled."), str8_lit_comp(""), str8_lit_comp("Enable Target"), DF_IconKind_CheckFilled, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Target}},
{ str8_lit_comp("disable_target"), str8_lit_comp("Disables a target."), str8_lit_comp(""), str8_lit_comp("Disable Target"), DF_IconKind_CheckHollow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), D_EntityKind_Target}}, { str8_lit_comp("disable_target"), str8_lit_comp("Disables a target."), str8_lit_comp(""), str8_lit_comp("Disable Target"), DF_IconKind_CheckHollow, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_Entity, str8_lit_comp(""), DF_EntityKind_Target}},
{ str8_lit_comp("register_as_jit_debugger"), str8_lit_comp("Registers the RAD debugger as the just-in-time (JIT) debugger used by the operating system."), str8_lit_comp(""), str8_lit_comp("Register As Just-In-Time (JIT) Debugger"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("register_as_jit_debugger"), str8_lit_comp("Registers the RAD debugger as the just-in-time (JIT) debugger used by the operating system."), str8_lit_comp(""), str8_lit_comp("Register As Just-In-Time (JIT) Debugger"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("entity_ref_fast_path"), str8_lit_comp("Activates the default behavior when clicking an entity reference."), str8_lit_comp(""), str8_lit_comp("Entity Reference Fast Path"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("entity_ref_fast_path"), str8_lit_comp("Activates the default behavior when clicking an entity reference."), str8_lit_comp(""), str8_lit_comp("Entity Reference Fast Path"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("spawn_entity_view"), str8_lit_comp("Spawns a new view, given an entity and other parameterizations."), str8_lit_comp(""), str8_lit_comp("Spawn Entity View"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("spawn_entity_view"), str8_lit_comp("Spawns a new view, given an entity and other parameterizations."), str8_lit_comp(""), str8_lit_comp("Spawn Entity View"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("find_code_location"), str8_lit_comp("Finds a specific source code location given file, line, and column coordinates. Opens the file if necessary."), str8_lit_comp(""), str8_lit_comp("Find Code Location"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("find_code_location"), str8_lit_comp("Finds a specific source code location given file, line, and column coordinates. Opens the file if necessary."), str8_lit_comp(""), str8_lit_comp("Find Code Location"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("filter"), str8_lit_comp("Begins filtering the active view."), str8_lit_comp("sort,search,filter,find"), str8_lit_comp("Filter"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("filter"), str8_lit_comp("Begins filtering the active view."), str8_lit_comp("sort,search,filter,find"), str8_lit_comp("Filter"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("apply_filter"), str8_lit_comp("Applies the typed filter to the active view."), str8_lit_comp("sort,search,filter,find,apply"), str8_lit_comp("Apply Filter"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("apply_filter"), str8_lit_comp("Applies the typed filter to the active view."), str8_lit_comp("sort,search,filter,find,apply"), str8_lit_comp("Apply Filter"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("clear_filter"), str8_lit_comp("Clears the filter applied to the active view."), str8_lit_comp("sort,search,filter,find,clear"), str8_lit_comp("Clear Filter"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("clear_filter"), str8_lit_comp("Clears the filter applied to the active view."), str8_lit_comp("sort,search,filter,find,clear"), str8_lit_comp("Clear Filter"), DF_IconKind_Find, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("getting_started"), str8_lit_comp("Opens the menu for information on getting started."), str8_lit_comp("tutorial,help"), str8_lit_comp("Getting Started"), DF_IconKind_QuestionMark, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("getting_started"), str8_lit_comp("Opens the menu for information on getting started."), str8_lit_comp("tutorial,help"), str8_lit_comp("Getting Started"), DF_IconKind_QuestionMark, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("commands"), str8_lit_comp("Opens the list of all commands."), str8_lit_comp(""), str8_lit_comp("Commands"), DF_IconKind_List, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("commands"), str8_lit_comp("Opens the list of all commands."), str8_lit_comp(""), str8_lit_comp("Commands"), DF_IconKind_List, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("target"), str8_lit_comp("Opens the editor for a target."), str8_lit_comp(""), str8_lit_comp("Target"), DF_IconKind_Target, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("target"), str8_lit_comp("Opens the editor for a target."), str8_lit_comp(""), str8_lit_comp("Target"), DF_IconKind_Target, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("targets"), str8_lit_comp("Opens the list of all targets."), str8_lit_comp(""), str8_lit_comp("Targets"), DF_IconKind_Target, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("targets"), str8_lit_comp("Opens the list of all targets."), str8_lit_comp(""), str8_lit_comp("Targets"), DF_IconKind_Target, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("file_path_map"), str8_lit_comp("Opens the file path mapping editor."), str8_lit_comp(""), str8_lit_comp("File Path Map"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("file_path_map"), str8_lit_comp("Opens the file path mapping editor."), str8_lit_comp(""), str8_lit_comp("File Path Map"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("auto_view_rules"), str8_lit_comp("Opens the auto view rule editor."), str8_lit_comp(""), str8_lit_comp("Auto View Rules"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("auto_view_rules"), str8_lit_comp("Opens the auto view rule editor."), str8_lit_comp(""), str8_lit_comp("Auto View Rules"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("breakpoints"), str8_lit_comp("Opens the breakpoints view."), str8_lit_comp(""), str8_lit_comp("Breakpoints"), DF_IconKind_CircleFilled, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("breakpoints"), str8_lit_comp("Opens the breakpoints view."), str8_lit_comp(""), str8_lit_comp("Breakpoints"), DF_IconKind_CircleFilled, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("watch_pins"), str8_lit_comp("Opens the watch pins view."), str8_lit_comp(""), str8_lit_comp("Watch Pins"), DF_IconKind_Pin, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("watch_pins"), str8_lit_comp("Opens the watch pins view."), str8_lit_comp(""), str8_lit_comp("Watch Pins"), DF_IconKind_Pin, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("scheduler"), str8_lit_comp("Opens the scheduler view, for process and thread controls."), str8_lit_comp("threads,processes,targets"), str8_lit_comp("Scheduler"), DF_IconKind_Scheduler, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("scheduler"), str8_lit_comp("Opens the scheduler view, for process and thread controls."), str8_lit_comp("threads,processes,targets"), str8_lit_comp("Scheduler"), DF_IconKind_Scheduler, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("call_stack"), str8_lit_comp("Opens the call stack view."), str8_lit_comp("callstack,thread,unwind"), str8_lit_comp("Call Stack"), DF_IconKind_Thread, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("call_stack"), str8_lit_comp("Opens the call stack view."), str8_lit_comp("callstack,thread,unwind"), str8_lit_comp("Call Stack"), DF_IconKind_Thread, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("modules"), str8_lit_comp("Opens the modules view."), str8_lit_comp(""), str8_lit_comp("Modules"), DF_IconKind_Module, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("modules"), str8_lit_comp("Opens the modules view."), str8_lit_comp(""), str8_lit_comp("Modules"), DF_IconKind_Module, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("watch"), str8_lit_comp("Opens a watch view."), str8_lit_comp(""), str8_lit_comp("Watch"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("watch"), str8_lit_comp("Opens a watch view."), str8_lit_comp(""), str8_lit_comp("Watch"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("locals"), str8_lit_comp("Opens a locals view."), str8_lit_comp(""), str8_lit_comp("Locals"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("locals"), str8_lit_comp("Opens a locals view."), str8_lit_comp(""), str8_lit_comp("Locals"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("registers"), str8_lit_comp("Opens a registers view."), str8_lit_comp(""), str8_lit_comp("Registers"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("registers"), str8_lit_comp("Opens a registers view."), str8_lit_comp(""), str8_lit_comp("Registers"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("globals"), str8_lit_comp("Opens a globals view."), str8_lit_comp(""), str8_lit_comp("Globals"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("globals"), str8_lit_comp("Opens a globals view."), str8_lit_comp(""), str8_lit_comp("Globals"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("thread_locals"), str8_lit_comp("Opens a thread locals view."), str8_lit_comp(""), str8_lit_comp("Thread Locals"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("thread_locals"), str8_lit_comp("Opens a thread locals view."), str8_lit_comp(""), str8_lit_comp("Thread Locals"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("types"), str8_lit_comp("Opens a types view."), str8_lit_comp(""), str8_lit_comp("Types"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("types"), str8_lit_comp("Opens a types view."), str8_lit_comp(""), str8_lit_comp("Types"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("procedures"), str8_lit_comp("Opens a procedures view."), str8_lit_comp(""), str8_lit_comp("Procedures"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("procedures"), str8_lit_comp("Opens a procedures view."), str8_lit_comp(""), str8_lit_comp("Procedures"), DF_IconKind_Binoculars, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("pending_file"), str8_lit_comp("Opens a view which asynchronously analyzes the file path parameter, then picks an appropriate viewer for it."), str8_lit_comp(""), str8_lit_comp("Pending File"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("pending_file"), str8_lit_comp("Opens a view which asynchronously analyzes the file path parameter, then picks an appropriate viewer for it."), str8_lit_comp(""), str8_lit_comp("Pending File"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("disassembly"), str8_lit_comp("Opens the disassembly view."), str8_lit_comp("disasm"), str8_lit_comp("Disassembly"), DF_IconKind_Glasses, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("disassembly"), str8_lit_comp("Opens the disassembly view."), str8_lit_comp("disasm"), str8_lit_comp("Disassembly"), DF_IconKind_Glasses, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("output"), str8_lit_comp("Opens an output view."), str8_lit_comp(""), str8_lit_comp("Output"), DF_IconKind_List, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("output"), str8_lit_comp("Opens an output view."), str8_lit_comp(""), str8_lit_comp("Output"), DF_IconKind_List, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("memory"), str8_lit_comp("Opens a memory view."), str8_lit_comp(""), str8_lit_comp("Memory"), DF_IconKind_Grid, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("memory"), str8_lit_comp("Opens a memory view."), str8_lit_comp(""), str8_lit_comp("Memory"), DF_IconKind_Grid, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("exception_filters"), str8_lit_comp("Opens the exception filters view."), str8_lit_comp("exceptions,filters"), str8_lit_comp("Exception Filters"), DF_IconKind_Gear, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("exception_filters"), str8_lit_comp("Opens the exception filters view."), str8_lit_comp("exceptions,filters"), str8_lit_comp("Exception Filters"), DF_IconKind_Gear, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("settings"), str8_lit_comp("Opens the settings view."), str8_lit_comp("theme,color,scheme,options"), str8_lit_comp("Settings"), DF_IconKind_Gear, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("settings"), str8_lit_comp("Opens the settings view."), str8_lit_comp("theme,color,scheme,options"), str8_lit_comp("Settings"), DF_IconKind_Gear, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("pick_file"), str8_lit_comp("Opens the file browser to pick a file."), str8_lit_comp(""), str8_lit_comp("Pick File"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*1)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("pick_file"), str8_lit_comp("Opens the file browser to pick a file."), str8_lit_comp(""), str8_lit_comp("Pick File"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*1)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("pick_folder"), str8_lit_comp("Opens the file browser to pick a folder."), str8_lit_comp(""), str8_lit_comp("Pick Folder"), DF_IconKind_FolderOpenFilled, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*1)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("pick_folder"), str8_lit_comp("Opens the file browser to pick a folder."), str8_lit_comp(""), str8_lit_comp("Pick Folder"), DF_IconKind_FolderOpenFilled, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*1)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("pick_file_or_folder"), str8_lit_comp("Opens the file browser to pick a file or folder."), str8_lit_comp(""), str8_lit_comp("Pick File/Folder"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*1)|(DF_QueryFlag_AllowFolders*1)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("pick_file_or_folder"), str8_lit_comp("Opens the file browser to pick a file or folder."), str8_lit_comp(""), str8_lit_comp("Pick File/Folder"), DF_IconKind_FileOutline, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*1)|(DF_QueryFlag_AllowFolders*1)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*1), DF_RegSlot_FilePath, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("complete_query"), str8_lit_comp("Completes a query."), str8_lit_comp(""), str8_lit_comp("Complete Query"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("complete_query"), str8_lit_comp("Completes a query."), str8_lit_comp(""), str8_lit_comp("Complete Query"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("cancel_query"), str8_lit_comp("Cancels a query."), str8_lit_comp(""), str8_lit_comp("Cancel Query"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("cancel_query"), str8_lit_comp("Cancels a query."), str8_lit_comp(""), str8_lit_comp("Cancel Query"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*0)|(DF_CmdKindFlag_ListInIPCDocs*0), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("toggle_dev_menu"), str8_lit_comp("Opens and closes the developer menu."), str8_lit_comp(""), str8_lit_comp("Toggle Developer Menu"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("toggle_dev_menu"), str8_lit_comp("Opens and closes the developer menu."), str8_lit_comp(""), str8_lit_comp("Toggle Developer Menu"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
{ str8_lit_comp("log_marker"), str8_lit_comp("Logs a marker in the application log, to denote specific points in time within the log."), str8_lit_comp(""), str8_lit_comp("Log Marker"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), D_EntityKind_Nil}}, { str8_lit_comp("log_marker"), str8_lit_comp("Logs a marker in the application log, to denote specific points in time within the log."), str8_lit_comp(""), str8_lit_comp("Log Marker"), DF_IconKind_Null, (DF_CmdKindFlag_ListInUI*1)|(DF_CmdKindFlag_ListInIPCDocs*1), {(DF_QueryFlag_AllowFiles*0)|(DF_QueryFlag_AllowFolders*0)|(DF_QueryFlag_CodeInput*0)|(DF_QueryFlag_KeepOldInput*0)|(DF_QueryFlag_SelectOldInput*0)|(DF_QueryFlag_Required*0), DF_RegSlot_Null, str8_lit_comp(""), DF_EntityKind_Nil}},
}; };
DF_StringBindingPair df_g_default_binding_table[110] = DF_StringBindingPair df_g_default_binding_table[110] =
@@ -540,7 +540,7 @@ struct DF_Query
DF_QueryFlags flags; DF_QueryFlags flags;
DF_RegSlot slot; DF_RegSlot slot;
String8 view_name; String8 view_name;
D_EntityKind entity_kind; DF_EntityKind entity_kind;
}; };
typedef struct DF_CmdKindInfo DF_CmdKindInfo; typedef struct DF_CmdKindInfo DF_CmdKindInfo;
+4 -4
View File
@@ -775,7 +775,7 @@ entry_point(CmdLine *cmd_line)
if(args.node_count > 0 && args.first->string.size != 0) if(args.node_count > 0 && args.first->string.size != 0)
{ {
Temp scratch = scratch_begin(0, 0); Temp scratch = scratch_begin(0, 0);
DF_Entity *target = d_entity_alloc(d_entity_root(), D_EntityKind_Target); DF_Entity *target = d_entity_alloc(d_entity_root(), DF_EntityKind_Target);
d_entity_equip_cfg_src(target, D_CfgSrc_CommandLine); d_entity_equip_cfg_src(target, D_CfgSrc_CommandLine);
String8List passthrough_args_list = {0}; String8List passthrough_args_list = {0};
for(String8Node *n = args.first->next; n != 0; n = n->next) for(String8Node *n = args.first->next; n != 0; n = n->next)
@@ -790,7 +790,7 @@ entry_point(CmdLine *cmd_line)
if(args.first->string.size != 0) if(args.first->string.size != 0)
{ {
String8 exe_name = args.first->string; String8 exe_name = args.first->string;
DF_Entity *exe = d_entity_alloc(target, D_EntityKind_Executable); DF_Entity *exe = d_entity_alloc(target, DF_EntityKind_Executable);
PathStyle style = path_style_from_str8(exe_name); PathStyle style = path_style_from_str8(exe_name);
if(style == PathStyle_Relative) if(style == PathStyle_Relative)
{ {
@@ -805,7 +805,7 @@ entry_point(CmdLine *cmd_line)
if(path_part_of_arg.size != 0) if(path_part_of_arg.size != 0)
{ {
String8 path = push_str8f(scratch.arena, "%S/", path_part_of_arg); String8 path = push_str8f(scratch.arena, "%S/", path_part_of_arg);
DF_Entity *wdir = d_entity_alloc(target, D_EntityKind_WorkingDirectory); DF_Entity *wdir = d_entity_alloc(target, DF_EntityKind_WorkingDirectory);
d_entity_equip_name(wdir, path); d_entity_equip_name(wdir, path);
} }
@@ -814,7 +814,7 @@ entry_point(CmdLine *cmd_line)
String8 args_str = str8_list_join(scratch.arena, &passthrough_args_list, &join); String8 args_str = str8_list_join(scratch.arena, &passthrough_args_list, &join);
if(args_str.size != 0) if(args_str.size != 0)
{ {
DF_Entity *args_entity = d_entity_alloc(target, D_EntityKind_Arguments); DF_Entity *args_entity = d_entity_alloc(target, DF_EntityKind_Arguments);
d_entity_equip_name(args_entity, args_str); d_entity_equip_name(args_entity, args_str);
} }
scratch_end(scratch); scratch_end(scratch);