From 79e9cfcf9691d281b68242e0c1d94c234399debf Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Tue, 3 Dec 2019 11:35:41 -0800 Subject: [PATCH] Command reverse lookup --- 4ed_api_implementation.cpp | 7 + 4ed_dynamic_variables.cpp | 23 + custom/4coder_base_commands.cpp | 51 -- custom/4coder_base_types.h | 1 + custom/4coder_command_map.cpp | 310 ++++++++--- custom/4coder_config.cpp | 158 +++--- custom/4coder_config.h | 8 - custom/4coder_default_bindings.cpp | 166 +++++- custom/4coder_default_colors.cpp | 114 ++-- custom/4coder_default_colors.h | 15 + custom/4coder_default_framework.cpp | 65 +++ custom/4coder_default_framework_variables.cpp | 13 +- custom/4coder_default_hooks.cpp | 66 +-- custom/4coder_lists.cpp | 139 ++++- custom/generated/command_metadata.h | 506 +++++++++--------- custom/generated/custom_api.cpp | 2 + custom/generated/custom_api.h | 5 + custom/generated/custom_api_master_list.h | 1 + custom/generated/managed_id_metadata.cpp | 3 + custom/generated/remapping.h | 161 ------ ship_files/themes/theme-4coder.4coder | 80 ++- ship_files/themes/theme-handmade-hero.4coder | 81 ++- ship_files/themes/theme-hjortshoej.4coder | 81 ++- ship_files/themes/theme-midnight.4coder | 80 ++- ship_files/themes/theme-stb-dark.4coder | 80 ++- ship_files/themes/theme-stb.4coder | 80 ++- ship_files/themes/theme-strange.4coder | 81 ++- ship_files/themes/theme-sunlight.4coder | 80 ++- ship_files/themes/theme-twilight.4coder | 80 ++- ship_files/themes/theme-wombat.4coder | 81 ++- 30 files changed, 1437 insertions(+), 1181 deletions(-) delete mode 100644 custom/generated/remapping.h diff --git a/4ed_api_implementation.cpp b/4ed_api_implementation.cpp index 7a58ce74..2e096c08 100644 --- a/4ed_api_implementation.cpp +++ b/4ed_api_implementation.cpp @@ -2031,6 +2031,13 @@ managed_id_declare(Application_Links *app, String_Const_u8 group, String_Const_u return(managed_ids_declare(set, group, name)); } +api(custom) function Managed_ID +managed_id_get(Application_Links *app, String_Const_u8 group, String_Const_u8 name){ + Models *models = (Models*)app->cmd_context; + Managed_ID_Set *set = &models->managed_id_set; + return(managed_ids_get(set, group, name)); +} + api(custom) function void* managed_scope_get_attachment(Application_Links *app, Managed_Scope scope, Managed_ID id, umem size){ Models *models = (Models*)app->cmd_context; diff --git a/4ed_dynamic_variables.cpp b/4ed_dynamic_variables.cpp index 4f0e537f..32536eef 100644 --- a/4ed_dynamic_variables.cpp +++ b/4ed_dynamic_variables.cpp @@ -65,6 +65,29 @@ managed_ids_declare(Managed_ID_Set *set, String_Const_u8 group_name, String_Cons return(result); } +function Managed_ID +managed_ids_get(Managed_ID_Set *set, String_Const_u8 group_name, String_Const_u8 name){ + Managed_ID_Group *group = 0; + { + Data data = make_data(group_name.str, group_name.size); + Table_Lookup lookup = table_lookup(&set->name_to_group_table, data); + if (lookup.found_match){ + u64 val = 0; + table_read(&set->name_to_group_table, lookup, &val); + group = (Managed_ID_Group*)IntAsPtr(val); + } + } + Managed_ID result = 0; + if (group != 0){ + Data data = make_data(name.str, name.size); + Table_Lookup lookup = table_lookup(&group->name_to_id_table, data); + if (lookup.found_match){ + table_read(&group->name_to_id_table, lookup, &result); + } + } + return(result); +} + //////////////////////////////// internal void diff --git a/custom/4coder_base_commands.cpp b/custom/4coder_base_commands.cpp index ac1011db..02a7d38d 100644 --- a/custom/4coder_base_commands.cpp +++ b/custom/4coder_base_commands.cpp @@ -1200,32 +1200,6 @@ CUSTOM_DOC("Queries the user for a string, and incrementally replace every occur //////////////////////////////// -function void -save_all_dirty_buffers_with_postfix(Application_Links *app, String_Const_u8 postfix){ - ProfileScope(app, "save all dirty buffers"); - Scratch_Block scratch(app); - for (Buffer_ID buffer = get_buffer_next(app, 0, Access_ReadWriteVisible); - buffer != 0; - buffer = get_buffer_next(app, buffer, Access_ReadWriteVisible)){ - Dirty_State dirty = buffer_get_dirty_state(app, buffer); - if (dirty == DirtyState_UnsavedChanges){ - Temp_Memory temp = begin_temp(scratch); - String_Const_u8 file_name = push_buffer_file_name(app, scratch, buffer); - if (string_match(string_postfix(file_name, postfix.size), postfix)){ - buffer_save(app, buffer, file_name, 0); - } - end_temp(temp); - } - } -} - -CUSTOM_COMMAND_SIG(save_all_dirty_buffers) -CUSTOM_DOC("Saves all buffers marked dirty (showing the '*' indicator).") -{ - String_Const_u8 empty = {}; - save_all_dirty_buffers_with_postfix(app, empty); -} - function void delete_file_base(Application_Links *app, String_Const_u8 file_name, Buffer_ID buffer_id){ String_Const_u8 path = string_remove_last_folder(file_name); @@ -1815,31 +1789,6 @@ CUSTOM_DOC("Advances forward through the undo history in the buffer containing t //////////////////////////////// -#if 0 -CUSTOM_COMMAND_SIG(reload_themes) -CUSTOM_DOC("Loads all the theme files in the theme folder, replacing duplicates with the new theme data.") -{ - String fcoder_extension = make_lit_string(".4coder"); - save_all_dirty_buffers_with_postfix(app, fcoder_extension); - - Partition *scratch = &global_part; - Temp_Memory temp = begin_temp_memory(scratch); - load_folder_of_themes_into_live_set(app, scratch, "themes"); - String name = get_theme_name(app, scratch, 0); - i32 theme_count = get_theme_count(app); - for (i32 i = 1; i < theme_count; i += 1){ - Temp_Memory sub_temp = begin_temp_memory(scratch); - String style_name = get_theme_name(app, scratch, i); - if (match(name, style_name)){ - change_theme_by_index(app, i); - break; - } - end_temp_memory(sub_temp); - } - end_temp_memory(temp); -} -#endif - CUSTOM_COMMAND_SIG(open_in_other) CUSTOM_DOC("Interactively opens a file in the other panel.") { diff --git a/custom/4coder_base_types.h b/custom/4coder_base_types.h index fe69b06f..2c9b0fff 100644 --- a/custom/4coder_base_types.h +++ b/custom/4coder_base_types.h @@ -190,6 +190,7 @@ enum{ #define external extern "C" #define ArrayCount(a) ((sizeof(a))/(sizeof(*a))) +#define ArraySafe(a,i) ((a)[(i)%ArrayCount(a)]) #define ExpandArray(a) (a), (ArrayCount(a)) #define FixSize(s) struct{ u8 __size_fixer__[s]; } diff --git a/custom/4coder_command_map.cpp b/custom/4coder_command_map.cpp index 673adb84..40c18cff 100644 --- a/custom/4coder_command_map.cpp +++ b/custom/4coder_command_map.cpp @@ -174,6 +174,8 @@ mapping_release_map(Mapping *mapping, Command_Map *map){ linalloc_clear(&map->node_arena); } +//////////////////////////////// + function Command_Binding map_get_binding_non_recursive(Command_Map *map, Input_Event *event){ Command_Binding result = {}; @@ -314,74 +316,110 @@ map__command_add_trigger(Command_Map *map, Custom_Command_Function *custom, } } +function Input_Event +map_trigger_as_event(Command_Trigger *trigger){ + Input_Event result = {}; + result.kind = trigger->kind; + switch (result.kind){ + case InputEventKind_TextInsert: + {}break; + + case InputEventKind_KeyStroke: + case InputEventKind_KeyRelease: + { + result.key.code = trigger->sub_code; + result.key.modifiers = trigger->mods; + }break; + + case InputEventKind_MouseButton: + case InputEventKind_MouseButtonRelease: + { + result.mouse.code = trigger->sub_code; + result.mouse.modifiers = trigger->mods; + }break; + + case InputEventKind_MouseWheel: + { + result.mouse_wheel.modifiers = trigger->mods; + }break; + + case InputEventKind_MouseMove: + { + result.mouse_move.modifiers = trigger->mods; + }break; + + case InputEventKind_Core: + { + result.core.code = trigger->sub_code; + }break; + } + return(result); +} + function Command_Trigger_List -map_get_triggers(Command_Map *map, Custom_Command_Function *custom){ - Command_Trigger_List result = {}; +map_get_triggers_non_recursive(Mapping *mapping, Command_Map *map, Custom_Command_Function *custom){ + Command_Trigger_List *result_ptr = 0; if (map != 0){ u64 key = (u64)(PtrAsInt(custom)); Table_Lookup lookup = table_lookup(&map->cmd_to_binding_trigger, key); if (lookup.found_match){ u64 val = 0; table_read(&map->cmd_to_binding_trigger, lookup, &val); - result = *(Command_Trigger_List*)IntAsPtr(val); + result_ptr = (Command_Trigger_List*)IntAsPtr(val); + + Command_Trigger_List list = {}; + for (Command_Trigger *node = result_ptr->first, *next = 0; + node != 0; + node = next){ + next = node->next; + Input_Event event = map_trigger_as_event(node); + Command_Binding binding = {}; + if (mapping != 0){ + binding = map_get_binding_recursive(mapping, map, &event); + } + else{ + binding = map_get_binding_non_recursive(map, &event); + } + if (binding.custom == custom){ + sll_queue_push(list.first, list.last, node); + } + } + *result_ptr = list; } } + Command_Trigger_List result = {}; + if (result_ptr != 0){ + result = *result_ptr; + } return(result); } -function void -map_set_binding(Mapping *mapping, Command_Map *map, Custom_Command_Function *custom, - u32 code1, u32 code2, Input_Modifier_Set *mods){ - if (map != 0){ - u64 key = mapping__key(code1, code2); - Command_Binding_List *list = map__get_or_make_list(mapping, map, key); - Command_Modified_Binding *mod_binding = mapping__alloc_modified_binding(mapping); - sll_stack_push(map->binding_first, mod_binding); - if (map->binding_last == 0){ - map->binding_last = map->binding_first; - } - sll_stack_push(list->first, &mod_binding->order_node); - if (list->last == 0){ - list->last= list->first; - } - list->count += 1; - mod_binding->mods = copy_modifier_set(&map->node_arena, mods); - mod_binding->binding.custom = custom; +function Command_Trigger_List +map_get_triggers_non_recursive(Command_Map *map, Custom_Command_Function *custom){ + return(map_get_triggers_non_recursive(0, map, custom)); +} + +function Command_Trigger_List +map_get_triggers_recursive(Arena *arena, Mapping *mapping, Command_Map *map, Custom_Command_Function *custom){ + Command_Trigger_List result = {}; + if (mapping != 0){ + for (i32 safety_counter = 0; + map != 0 && safety_counter < 40; + safety_counter += 1){ + Command_Trigger_List list = map_get_triggers_non_recursive(mapping, map, custom); - Command_Trigger trigger = {}; - trigger.kind = code1; - trigger.sub_code = code2; - trigger.mods = mod_binding->mods; - map__command_add_trigger(map, custom, &trigger); + for (Command_Trigger *node = list.first, *next = 0; + node != 0; + node = next){ + next = node->next; + Command_Trigger *nnode = push_array_write(arena, Command_Trigger, 1, node); + sll_queue_push(result.first, result.last, nnode); + } + + map = mapping_get_map(mapping, map->parent); } -} - -function void -map_set_binding_key(Mapping *mapping, Command_Map *map, Custom_Command_Function *custom, - Key_Code code, Input_Modifier_Set *modifiers){ - map_set_binding(mapping, map, custom, InputEventKind_KeyStroke, code, modifiers); -} - -function void -map_set_binding_mouse(Mapping *mapping, Command_Map *map, Custom_Command_Function *custom, - Mouse_Code code, Input_Modifier_Set *modifiers){ - map_set_binding(mapping, map, custom, InputEventKind_MouseButton, code, modifiers); -} - -function void -map_set_binding_core(Mapping *mapping, Command_Map *map, Custom_Command_Function *custom, - Core_Code code, Input_Modifier_Set *modifiers){ - map_set_binding(mapping, map, custom, InputEventKind_Core, code, modifiers); -} - -function void -map_set_binding_text_input(Command_Map *map, Custom_Command_Function *custom){ - if (map != 0){ - map->text_input_command.custom = custom; - Command_Trigger trigger = {}; - trigger.kind = InputEventKind_TextInsert; - map__command_add_trigger(map, custom, &trigger); } + return(result); } function Command_Binding_List* @@ -416,6 +454,89 @@ map_get_binding_list_on_core(Command_Map *map, Core_Code code){ //////////////////////////////// +function void +map_set_binding(Mapping *mapping, Command_Map *map, Custom_Command_Function *custom, u32 code1, u32 code2, Input_Modifier_Set *mods){ + if (map != 0){ + u64 key = mapping__key(code1, code2); + Command_Binding_List *list = map__get_or_make_list(mapping, map, key); + Command_Modified_Binding *mod_binding = mapping__alloc_modified_binding(mapping); + sll_stack_push(map->binding_first, mod_binding); + if (map->binding_last == 0){ + map->binding_last = map->binding_first; + } + sll_stack_push(list->first, &mod_binding->order_node); + if (list->last == 0){ + list->last= list->first; + } + list->count += 1; + mod_binding->mods = copy_modifier_set(&map->node_arena, mods); + mod_binding->binding.custom = custom; + + Command_Trigger trigger = {}; + trigger.kind = code1; + trigger.sub_code = code2; + trigger.mods = mod_binding->mods; + map__command_add_trigger(map, custom, &trigger); + } +} + +function void +map_set_binding_key(Mapping *mapping, Command_Map *map, Custom_Command_Function *custom, Key_Code code, Input_Modifier_Set *modifiers){ + map_set_binding(mapping, map, custom, InputEventKind_KeyStroke, code, modifiers); +} + +function void +map_set_binding_mouse(Mapping *mapping, Command_Map *map, Custom_Command_Function *custom, Mouse_Code code, Input_Modifier_Set *modifiers){ + map_set_binding(mapping, map, custom, InputEventKind_MouseButton, code, modifiers); +} + +function void +map_set_binding_core(Mapping *mapping, Command_Map *map, Custom_Command_Function *custom, Core_Code code, Input_Modifier_Set *modifiers){ + map_set_binding(mapping, map, custom, InputEventKind_Core, code, modifiers); +} + +function void +map_set_binding_text_input(Command_Map *map, Custom_Command_Function *custom){ + if (map != 0){ + map->text_input_command.custom = custom; + Command_Trigger trigger = {}; + trigger.kind = InputEventKind_TextInsert; + map__command_add_trigger(map, custom, &trigger); + } +} + +//////////////////////////////// + +function Command_Binding_List* +map_get_binding_list_on_key(Mapping *mapping, Command_Map_ID map_id, Key_Code code){ + Command_Map *map = mapping_get_map(mapping, map_id); + return(map_get_binding_list_on_key(map, code)); +} + +function Command_Binding +map_get_binding_non_recursive(Mapping *mapping, Command_Map_ID map_id, Input_Event *event){ + Command_Map *map = mapping_get_map(mapping, map_id); + return(map_get_binding_non_recursive(map, event)); +} + +function Command_Binding +map_get_binding_recursive(Mapping *mapping, Command_Map_ID map_id, Input_Event *event){ + Command_Map *map = mapping_get_map(mapping, map_id); + return(map_get_binding_recursive(mapping, map, event)); +} + +function Command_Trigger_List +map_get_triggers_non_recursive(Mapping *mapping, Command_Map_ID map_id, Custom_Command_Function *custom){ + Command_Map *map = mapping_get_map(mapping, map_id); + return(map_get_triggers_non_recursive(map, custom)); +} + +function Command_Trigger_List +map_get_triggers_recursive(Arena *arena, Mapping *mapping, Command_Map_ID map_id, Custom_Command_Function *custom){ + Command_Map *map = mapping_get_map(mapping, map_id); + return(map_get_triggers_recursive(arena, mapping, map, custom)); +} + function void map_set_parent(Mapping *mapping, Command_Map_ID map_id, Command_Map_ID parent_id){ Command_Map *map = mapping_get_map(mapping, map_id); @@ -469,22 +590,77 @@ map_set_binding_text_input(Mapping *mapping, Command_Map_ID map_id, Custom_Comma map_set_binding_text_input(map, custom); } -function Command_Binding_List* -map_get_binding_list_on_key(Mapping *mapping, Command_Map_ID map_id, Key_Code code){ - Command_Map *map = mapping_get_map(mapping, map_id); - return(map_get_binding_list_on_key(map, code)); +//////////////////////////////// + +function void +command_trigger_stringize_mods(Arena *arena, List_String_Const_u8 *list, Input_Modifier_Set *modifiers){ + if (modifiers->count > 0){ + string_list_push(arena, list, string_u8_litexpr(" holding:")); + i32 count = modifiers->count; + Key_Code *mods = modifiers->mods; + for (i32 i = 0; i < count; i += 1){ + string_list_pushf(arena, list, " %s", ArraySafe(key_code_name, mods[i])); + } + } } -function Command_Binding -map_get_binding_non_recursive(Mapping *mapping, Command_Map_ID map_id, Input_Event *event){ - Command_Map *map = mapping_get_map(mapping, map_id); - return(map_get_binding_non_recursive(map, event)); -} - -function Command_Binding -map_get_binding_recursive(Mapping *mapping, Command_Map_ID map_id, Input_Event *event){ - Command_Map *map = mapping_get_map(mapping, map_id); - return(map_get_binding_recursive(mapping, map, event)); +function void +command_trigger_stringize(Arena *arena, List_String_Const_u8 *list, Command_Trigger *trigger){ + string_list_push(arena, list, string_u8_litexpr("<")); + switch (trigger->kind){ + case InputEventKind_TextInsert: + { + string_list_push(arena, list, string_u8_litexpr("TextInsert")); + }break; + + case InputEventKind_KeyStroke: + { + String_Const_u8 key_name = SCu8(ArraySafe(key_code_name, trigger->sub_code)); + string_list_push(arena, list, key_name); + command_trigger_stringize_mods(arena, list, &trigger->mods); + }break; + + case InputEventKind_KeyRelease: + { + string_list_pushf(arena, list, "Release %s", ArraySafe(key_code_name, trigger->sub_code)); + command_trigger_stringize_mods(arena, list, &trigger->mods); + }break; + + case InputEventKind_MouseButton: + { + string_list_pushf(arena, list, "Mouse %s", ArraySafe(mouse_code_name, trigger->sub_code)); + command_trigger_stringize_mods(arena, list, &trigger->mods); + }break; + + case InputEventKind_MouseButtonRelease: + { + string_list_pushf(arena, list, "Release Mouse %s", ArraySafe(mouse_code_name, trigger->sub_code)); + command_trigger_stringize_mods(arena, list, &trigger->mods); + }break; + + case InputEventKind_MouseWheel: + { + string_list_push(arena, list, string_u8_litexpr("MouseWheel")); + command_trigger_stringize_mods(arena, list, &trigger->mods); + }break; + + case InputEventKind_MouseMove: + { + string_list_push(arena, list, string_u8_litexpr("MouseMove")); + command_trigger_stringize_mods(arena, list, &trigger->mods); + }break; + + case InputEventKind_Core: + { + string_list_pushf(arena, list, "Core %s", ArraySafe(core_code_name, trigger->sub_code)); + }break; + + default: + { + string_list_push(arena, list, string_u8_litexpr("ERROR unexpected trigger kind")); + }break; + } + string_list_push(arena, list, string_u8_litexpr(">")); } //////////////////////////////// diff --git a/custom/4coder_config.cpp b/custom/4coder_config.cpp index 17026e08..15654ebb 100644 --- a/custom/4coder_config.cpp +++ b/custom/4coder_config.cpp @@ -63,8 +63,7 @@ config_stringize_errors(Application_Links *app, Arena *arena, Config *parsed){ for (Config_Error *error = parsed->errors.first; error != 0; error = error->next){ - Error_Location location = get_error_location(app, parsed->data.str, - error->pos); + Error_Location location = get_error_location(app, parsed->data.str, error->pos); string_list_pushf(arena, &list, "%.*s:%d:%d: %.*s\n", string_expand(error->file_name), location.line_number, location.column_number, string_expand(error->text)); } @@ -784,7 +783,7 @@ config_char_var(Config *config, char *var_name, i32 subscript, char* var_out){ function b32 config_compound_var(Config *config, String_Const_u8 var_name, i32 subscript, Config_Compound** var_out){ Config_Get_Result result = config_var(config, var_name, subscript); - b32 success = result.success && result.type == ConfigRValueType_Compound; + b32 success = (result.success && result.type == ConfigRValueType_Compound); if (success){ *var_out = result.compound; } @@ -1354,68 +1353,79 @@ config_parse__file_name(Application_Links *app, Arena *arena, char *file_name, C return(parsed); } -#if 0 -function void -init_theme_zero(Theme *theme){ - for (i32 i = 0; i < Stag_COUNT; ++i){ - theme->colors[i] = 0; - } -} - function Config* -theme_parse__data(Partition *arena, String file_name, String data, Theme_Data *theme){ - theme->name = make_fixed_width_string(theme->space); - copy(&theme->name, "unnamed"); - init_theme_zero(&theme->theme); - - Config *parsed = config_from_text(arena, file_name, data); +theme_parse__data(Application_Links *app, Arena *arena, String_Const_u8 file_name, String_Const_u8 data, Arena *color_arena, Color_Table *color_table){ + Config *parsed = config_from_text(app, arena, file_name, data); if (parsed != 0){ - config_fixed_string_var(parsed, "name", 0, &theme->name, theme->space); - - for (i32 i = 0; i < Stag_COUNT; ++i){ - char *name = style_tag_names[i]; + for (Config_Assignment *node = parsed->first; + node != 0; + node = node->next){ + Scratch_Block scratch(app); + Config_LValue *l = node->l; + String_Const_u8 l_name = push_string_copy(scratch, l->identifier); + Managed_ID id = managed_id_get(app, string_u8_litexpr("colors"), l_name); + if (id != 0){ u32 color = 0; - if (!config_uint_var(parsed, name, 0, &color)){ - color = 0xFFFF00FF; + if (config_uint_var(parsed, l_name, 0, &color)){ + color_table->arrays[id%color_table->count] = make_colors(color_arena, color); + } + else{ + Config_Compound *compound = 0; + if (config_compound_var(parsed, l_name, 0, &compound)){ + local_persist u32 color_array[256]; + i32 counter = 0; + for (i32 i = 0;; i += 1){ + Config_Iteration_Step_Result result = typed_array_iteration_step(parsed, compound, ConfigRValueType_Integer, i); + if (result.step == Iteration_Skip){ + continue; + } + else if (result.step == Iteration_Quit){ + break; + } + + color_array[counter] = result.get.uinteger; + counter += 1; + if (counter == 256){ + break; + } + } + + color_table->arrays[id%color_table->count] = make_colors(color_arena, color_array, counter); + } + } } - theme->theme.colors[i] = color; + } } - return(parsed); } function Config* -theme_parse__file_handle(Partition *arena, String file_name, FILE *file, Theme_Data *theme){ - String data = dump_file_handle(arena, file); +theme_parse__file_handle(Application_Links *app, Arena *arena, String_Const_u8 file_name, FILE *file, Arena *color_arena, Color_Table *color_table){ + Data data = dump_file_handle(arena, file); Config *parsed = 0; - if (data.str != 0){ - parsed = theme_parse__data(arena, file_name, data, theme); + if (data.data != 0){ + parsed = theme_parse__data(app, arena, file_name, SCu8(data), color_arena, color_table); } return(parsed); } function Config* -theme_parse__file_name(Application_Links *app, Partition *arena, - char *file_name, Theme_Data *theme){ +theme_parse__file_name(Application_Links *app, Arena *arena, char *file_name, Arena *color_arena, Color_Table *color_table){ Config *parsed = 0; FILE *file = open_file_try_current_path_then_binary_path(app, file_name); if (file != 0){ - String data = dump_file_handle(arena, file); + Data data = dump_file_handle(arena, file); fclose(file); - parsed = theme_parse__data(arena, make_string_slowly(file_name), data, theme); + parsed = theme_parse__data(app, arena, SCu8(file_name), SCu8(data), color_arena, color_table); } if (parsed == 0){ - char space[256]; - String str = make_fixed_width_string(space); - append(&str, "Did not find "); - append(&str, file_name); - append(&str, ", color scheme not loaded"); - print_message(app, str.str, str.size); + Scratch_Block scratch(app); + String_Const_u8 str = push_u8_stringf(arena, "Did not find %s, theme not loaded", file_name); + print_message(app, str); } return(parsed); } -#endif //////////////////////////////// @@ -1545,8 +1555,11 @@ load_config_and_apply(Application_Links *app, Arena *out_arena, Config_Data *con change_mode(app, config->mode); global_set_setting(app, GlobalSetting_LAltLCtrlIsAltGr, config->lalt_lctrl_is_altgr); - //change_theme(app, config->default_theme_name.str, config->default_theme_name.size); - + // TODO(allen): +#if 0 + change_theme(app, config->default_theme_name.str, config->default_theme_name.size); + #endif + Face_Description description = {}; if (override_font_size != 0){ description.parameters.pt_size = override_font_size; @@ -1563,47 +1576,42 @@ load_config_and_apply(Application_Links *app, Arena *out_arena, Config_Data *con } } -#if 0 function void -load_theme_file_into_live_set(Application_Links *app, Partition *scratch, char *file_name){ - Temp_Memory temp = begin_temp_memory(scratch); - Theme_Data theme = {}; - Config *config = theme_parse__file_name(app, scratch, file_name, &theme); - String error_text = config_stringize_errors(scratch, config); - print_message(app, error_text.str, error_text.size); - end_temp_memory(temp); - create_theme(app, &theme.theme, theme.name.str, theme.name.size); +load_theme_file_into_live_set(Application_Links *app, char *file_name){ + Arena *arena = &global_theme_arena; + Color_Table color_table = make_color_table(app, arena); + Scratch_Block scratch(app); + Config *config = theme_parse__file_name(app, scratch, file_name, arena, &color_table); + String_Const_u8 error_text = config_stringize_errors(app, scratch, config); + print_message(app, error_text); + + String_Const_u8 name = SCu8(file_name); + name = string_front_of_path(name); + if (string_match(string_postfix(name, 7), string_u8_litexpr(".4coder"))){ + name = string_chop(name, 7); + } + save_theme(color_table, name); } function void -load_folder_of_themes_into_live_set(Application_Links *app, Partition *scratch, - char *folder_name){ - char path_space[512]; - String path = make_fixed_width_string(path_space); - path.size = get_4ed_path(app, path_space, sizeof(path_space)); - append(&path, folder_name); +load_folder_of_themes_into_live_set(Application_Links *app, String_Const_u8 path){ + Scratch_Block scratch(app, Scratch_Share); - if (path.size < path.memory_size){ - File_List list = get_file_list(app, path.str, path.size); - for (u32 i = 0; i < list.count; ++i){ - File_Info *info = &list.infos[i]; - if (info->folder){ - continue; - } - String info_file_name = make_string(info->filename, info->filename_len); - char file_name_space[512]; - String file_name = make_fixed_width_string(file_name_space); - copy(&file_name, path); - append(&file_name, "/"); - append(&file_name, info_file_name); - if (terminate_with_null(&file_name)){ - load_theme_file_into_live_set(app, scratch, file_name.str); - } + File_List list = system_get_file_list(scratch, path); + for (File_Info **ptr = list.infos, **end = list.infos + list.count; + ptr < end; + ptr += 1){ + File_Info *info = *ptr; + if (!HasFlag(info->attributes.flags, FileAttribute_IsDirectory)){ + String_Const_u8 name = info->file_name; + Temp_Memory_Block temp(scratch); + String_Const_u8 full_name = push_u8_stringf(scratch, "%.*s/%.*s", + string_expand(path), + string_expand(name)); + load_theme_file_into_live_set(app, (char*)full_name.str); } - free_file_list(app, list); } } -#endif // BOTTOM diff --git a/custom/4coder_config.h b/custom/4coder_config.h index 4d58114c..2e868610 100644 --- a/custom/4coder_config.h +++ b/custom/4coder_config.h @@ -237,14 +237,6 @@ struct Config_Data{ b8 lalt_lctrl_is_altgr; }; -#if 0 -struct Theme_Data{ - char space[128]; - String name; - Theme theme; -}; -#endif - #endif // BOTTOM diff --git a/custom/4coder_default_bindings.cpp b/custom/4coder_default_bindings.cpp index 4050b822..85afbf6e 100644 --- a/custom/4coder_default_bindings.cpp +++ b/custom/4coder_default_bindings.cpp @@ -8,29 +8,177 @@ #define FCODER_DEFAULT_BINDINGS_CPP #include "4coder_default_include.cpp" -#include "generated/remapping.h" -#if !defined(NO_BINDING) +function void +setup_default_mapping(Mapping *mapping){ + MappingScope(); + SelectMapping(mapping); + + SelectMap(mapid_global); + BindCore(default_startup , CoreCode_Startup); + BindCore(default_try_exit, CoreCode_TryExit); + Bind(keyboard_macro_start_recording , KeyCode_U, KeyCode_Control); + Bind(keyboard_macro_finish_recording, KeyCode_U, KeyCode_Control, KeyCode_Shift); + Bind(keyboard_macro_replay, KeyCode_U, KeyCode_Alt); + Bind(change_active_panel, KeyCode_Comma, KeyCode_Control); + Bind(change_active_panel_backwards, KeyCode_Comma, KeyCode_Control, KeyCode_Shift); + Bind(interactive_new, KeyCode_N, KeyCode_Control); + Bind(interactive_open_or_new, KeyCode_O, KeyCode_Control); + Bind(open_in_other, KeyCode_O, KeyCode_Alt); + Bind(interactive_kill_buffer, KeyCode_K, KeyCode_Control); + Bind(interactive_switch_buffer, KeyCode_I, KeyCode_Control); + Bind(project_go_to_root_directory, KeyCode_H, KeyCode_Control); + Bind(save_all_dirty_buffers, KeyCode_S, KeyCode_Control, KeyCode_Shift); + Bind(change_to_build_panel, KeyCode_Period, KeyCode_Alt); + Bind(close_build_panel, KeyCode_Comma, KeyCode_Alt); + Bind(goto_next_jump, KeyCode_N, KeyCode_Alt); + Bind(goto_prev_jump, KeyCode_N, KeyCode_Alt, KeyCode_Shift); + Bind(build_in_build_panel, KeyCode_M, KeyCode_Alt); + Bind(goto_first_jump, KeyCode_M, KeyCode_Alt, KeyCode_Shift); + Bind(toggle_filebar, KeyCode_B, KeyCode_Alt); + Bind(execute_any_cli, KeyCode_Z, KeyCode_Alt); + Bind(execute_previous_cli, KeyCode_Z, KeyCode_Alt, KeyCode_Shift); + Bind(command_lister, KeyCode_X, KeyCode_Alt); + Bind(project_command_lister, KeyCode_X, KeyCode_Alt, KeyCode_Shift); + Bind(list_all_functions_current_buffer, KeyCode_I, KeyCode_Control, KeyCode_Shift); + Bind(project_fkey_command, KeyCode_F1); + Bind(project_fkey_command, KeyCode_F2); + Bind(project_fkey_command, KeyCode_F3); + Bind(project_fkey_command, KeyCode_F4); + Bind(project_fkey_command, KeyCode_F5); + Bind(project_fkey_command, KeyCode_F6); + Bind(project_fkey_command, KeyCode_F7); + Bind(project_fkey_command, KeyCode_F8); + Bind(project_fkey_command, KeyCode_F9); + Bind(project_fkey_command, KeyCode_F10); + Bind(project_fkey_command, KeyCode_F11); + Bind(project_fkey_command, KeyCode_F12); + Bind(project_fkey_command, KeyCode_F13); + Bind(project_fkey_command, KeyCode_F14); + Bind(project_fkey_command, KeyCode_F15); + Bind(project_fkey_command, KeyCode_F16); + Bind(exit_4coder, KeyCode_F4, KeyCode_Alt); + BindMouseWheel(mouse_wheel_scroll); + BindMouseWheel(mouse_wheel_change_face_size, KeyCode_Control); + + SelectMap(mapid_file); + ParentMap(mapid_global); + BindTextInput(write_text_input); + BindMouse(click_set_cursor_and_mark, MouseCode_Left); + BindMouseRelease(click_set_cursor, MouseCode_Left); + BindCore(click_set_cursor_and_mark, CoreCode_ClickActivateView); + BindMouseMove(click_set_cursor_if_lbutton); + Bind(delete_char, KeyCode_Delete); + Bind(backspace_char, KeyCode_Backspace); + Bind(move_up, KeyCode_Up); + Bind(move_down, KeyCode_Down); + Bind(move_left, KeyCode_Left); + Bind(move_right, KeyCode_Right); + Bind(seek_end_of_line, KeyCode_End); + Bind(seek_beginning_of_line, KeyCode_Home); + Bind(page_up, KeyCode_PageUp); + Bind(page_down, KeyCode_PageDown); + Bind(goto_beginning_of_file, KeyCode_PageUp, KeyCode_Control); + Bind(goto_end_of_file, KeyCode_PageDown, KeyCode_Control); + Bind(move_up_to_blank_line_end, KeyCode_Up, KeyCode_Control); + Bind(move_down_to_blank_line_end, KeyCode_Down, KeyCode_Control); + Bind(move_left_whitespace_boundary, KeyCode_Left, KeyCode_Control); + Bind(move_right_whitespace_boundary, KeyCode_Right, KeyCode_Control); + Bind(move_line_up, KeyCode_Up, KeyCode_Alt); + Bind(move_line_down, KeyCode_Down, KeyCode_Alt); + Bind(backspace_alpha_numeric_boundary, KeyCode_Backspace, KeyCode_Control); + Bind(delete_alpha_numeric_boundary, KeyCode_Delete, KeyCode_Control); + Bind(snipe_backward_whitespace_or_token_boundary, KeyCode_Backspace, KeyCode_Alt); + Bind(snipe_forward_whitespace_or_token_boundary, KeyCode_Delete, KeyCode_Alt); + Bind(set_mark, KeyCode_Space, KeyCode_Control); + Bind(replace_in_range, KeyCode_A, KeyCode_Control); + Bind(copy, KeyCode_C, KeyCode_Control); + Bind(delete_range, KeyCode_D, KeyCode_Control); + Bind(delete_line, KeyCode_D, KeyCode_Control, KeyCode_Shift); + Bind(center_view, KeyCode_E, KeyCode_Control); + Bind(left_adjust_view, KeyCode_E, KeyCode_Control, KeyCode_Shift); + Bind(search, KeyCode_F, KeyCode_Control); + Bind(list_all_locations, KeyCode_F, KeyCode_Control, KeyCode_Shift); + Bind(list_all_substring_locations_case_insensitive, KeyCode_F, KeyCode_Alt); + Bind(goto_line, KeyCode_G, KeyCode_Control); + Bind(list_all_locations_of_selection, KeyCode_G, KeyCode_Control, KeyCode_Shift); + Bind(snippet_lister, KeyCode_J, KeyCode_Control); + Bind(kill_buffer, KeyCode_K, KeyCode_Control, KeyCode_Shift); + Bind(duplicate_line, KeyCode_L, KeyCode_Control); + Bind(cursor_mark_swap, KeyCode_M, KeyCode_Control); + Bind(reopen, KeyCode_O, KeyCode_Control, KeyCode_Shift); + Bind(query_replace, KeyCode_Q, KeyCode_Control); + Bind(query_replace_identifier, KeyCode_Q, KeyCode_Control, KeyCode_Shift); + Bind(query_replace_selection, KeyCode_Q, KeyCode_Alt); + Bind(reverse_search, KeyCode_R, KeyCode_Control); + Bind(save, KeyCode_S, KeyCode_Control); + Bind(save_all_dirty_buffers, KeyCode_S, KeyCode_Control, KeyCode_Shift); + Bind(search_identifier, KeyCode_T, KeyCode_Control); + Bind(list_all_locations_of_identifier, KeyCode_T, KeyCode_Control, KeyCode_Shift); + Bind(paste_and_indent, KeyCode_V, KeyCode_Control); + Bind(paste_next_and_indent, KeyCode_V, KeyCode_Control, KeyCode_Shift); + Bind(cut, KeyCode_X, KeyCode_Control); + Bind(redo, KeyCode_Y, KeyCode_Control); + Bind(undo, KeyCode_Z, KeyCode_Control); + Bind(view_buffer_other_panel, KeyCode_1, KeyCode_Control); + Bind(swap_panels, KeyCode_2, KeyCode_Control); + Bind(if_read_only_goto_position, KeyCode_Return); + Bind(if_read_only_goto_position_same_panel, KeyCode_Return, KeyCode_Shift); + Bind(view_jump_list_with_lister, KeyCode_Period, KeyCode_Control, KeyCode_Shift); + + SelectMap(mapid_code); + ParentMap(mapid_file); + BindTextInput(write_text_and_auto_indent); + Bind(move_left_alpha_numeric_boundary, KeyCode_Left, KeyCode_Control); + Bind(move_right_alpha_numeric_boundary, KeyCode_Right, KeyCode_Control); + Bind(move_left_alpha_numeric_or_camel_boundary, KeyCode_Left, KeyCode_Alt); + Bind(move_right_alpha_numeric_or_camel_boundary, KeyCode_Right, KeyCode_Alt); + Bind(comment_line_toggle, KeyCode_Semicolon, KeyCode_Control); + Bind(word_complete, KeyCode_Tab); + Bind(auto_indent_range, KeyCode_Tab, KeyCode_Control); + Bind(auto_indent_line_at_cursor, KeyCode_Tab, KeyCode_Shift); + Bind(word_complete_drop_down, KeyCode_Tab, KeyCode_Shift, KeyCode_Control); + Bind(write_block, KeyCode_R, KeyCode_Alt); + Bind(write_todo, KeyCode_T, KeyCode_Alt); + Bind(write_note, KeyCode_Y, KeyCode_Alt); + Bind(list_all_locations_of_type_definition, KeyCode_D, KeyCode_Alt); + Bind(list_all_locations_of_type_definition_of_identifier, KeyCode_T, KeyCode_Alt, KeyCode_Shift); + Bind(open_long_braces, KeyCode_LeftBracket, KeyCode_Control); + Bind(open_long_braces_semicolon, KeyCode_LeftBracket, KeyCode_Control, KeyCode_Shift); + Bind(open_long_braces_break, KeyCode_RightBracket, KeyCode_Control, KeyCode_Shift); + Bind(select_surrounding_scope, KeyCode_LeftBracket, KeyCode_Alt); + Bind(select_surrounding_scope_maximal, KeyCode_LeftBracket, KeyCode_Alt, KeyCode_Shift); + Bind(select_prev_scope_absolute, KeyCode_RightBracket, KeyCode_Alt); + Bind(select_prev_top_most_scope, KeyCode_RightBracket, KeyCode_Alt, KeyCode_Shift); + Bind(select_next_scope_absolute, KeyCode_Quote, KeyCode_Alt); + Bind(select_next_scope_after_current, KeyCode_Quote, KeyCode_Alt, KeyCode_Shift); + Bind(place_in_scope, KeyCode_ForwardSlash, KeyCode_Alt); + Bind(delete_current_scope, KeyCode_Minus, KeyCode_Alt); + Bind(if0_off, KeyCode_I, KeyCode_Alt); + Bind(open_file_in_quotes, KeyCode_1, KeyCode_Alt); + Bind(open_matching_file_cpp, KeyCode_2, KeyCode_Alt); + Bind(write_zero_struct, KeyCode_0, KeyCode_Control); +} void custom_layer_init(Application_Links *app){ - set_all_default_hooks(app); Thread_Context *tctx = get_thread_context(app); - mapping_init(tctx, &framework_mapping); - setup_default_mapping(&framework_mapping); + + // NOTE(allen): setup for default framework async_task_handler_init(app, &global_async_system); code_index_init(); buffer_modified_set_init(); - Profile_Global_List *list = get_core_profile_list(app); ProfileThreadName(tctx, list, string_u8_litexpr("main")); - initialize_managed_id_metadata(app); set_default_color_scheme(app); + + // NOTE(allen): default hooks and command maps + set_all_default_hooks(app); + mapping_init(tctx, &framework_mapping); + setup_default_mapping(&framework_mapping); } -#endif - #endif //FCODER_DEFAULT_BINDINGS // BOTTOM diff --git a/custom/4coder_default_colors.cpp b/custom/4coder_default_colors.cpp index c773a60c..7e9bdd53 100644 --- a/custom/4coder_default_colors.cpp +++ b/custom/4coder_default_colors.cpp @@ -86,55 +86,83 @@ make_colors(Arena *arena, ARGB_Color *colors, i32 count){ return(result); } +function Color_Table +make_color_table(Application_Links *app, Arena *arena){ + Managed_ID highest_color_id = managed_id_group_highest_id(app, string_u8_litexpr("colors")); + Color_Table result = {}; + result.count = (u32)(clamp_top(highest_color_id + 1, max_u32)); + result.arrays = push_array(arena, Color_Array, result.count); + u32 *dummy = push_array(arena, u32, 1); + *dummy = 0xFF990099; + for (u32 i = 0; i < result.count; i += 1){ + result.arrays[i].vals = dummy; + result.arrays[i].count = 1; + } + return(result); +} + function void set_default_color_scheme(Application_Links *app){ - Arena arena = make_arena_system(); + if (global_theme_arena.base_allocator == 0){ + global_theme_arena = make_arena_system(); + } - Managed_ID highest_color_id = managed_id_group_highest_id(app, string_u8_litexpr("colors")); - default_color_table.count = (u32)(clamp_top(highest_color_id + 1, max_u32)); - default_color_table.arrays = push_array_zero(&arena, Color_Array, default_color_table.count); + Arena *arena = &global_theme_arena; - default_color_table.arrays[0] = make_colors(&arena, 0xFF90B080); - default_color_table.arrays[defcolor_bar] = make_colors(&arena, 0xFF888888); - default_color_table.arrays[defcolor_base] = make_colors(&arena, 0xFF000000); - default_color_table.arrays[defcolor_pop1] = make_colors(&arena, 0xFF3C57DC); - default_color_table.arrays[defcolor_pop2] = make_colors(&arena, 0xFFFF0000); - default_color_table.arrays[defcolor_back] = make_colors(&arena, 0xFF0C0C0C); - default_color_table.arrays[defcolor_margin] = make_colors(&arena, 0xFF181818); - default_color_table.arrays[defcolor_margin_hover] = make_colors(&arena, 0xFF252525); - default_color_table.arrays[defcolor_margin_active] = make_colors(&arena, 0xFF323232); - default_color_table.arrays[defcolor_list_item] = make_colors(&arena, 0xFF181818); - default_color_table.arrays[defcolor_list_item_hover] = make_colors(&arena, 0xFF252525); - default_color_table.arrays[defcolor_list_item_active] = make_colors(&arena, 0xFF323232); - default_color_table.arrays[defcolor_cursor] = make_colors(&arena, 0xFF00EE00); - default_color_table.arrays[defcolor_at_cursor] = make_colors(&arena, 0xFF0C0C0C); - default_color_table.arrays[defcolor_highlight_cursor_line] = make_colors(&arena, 0xFF1E1E1E); - default_color_table.arrays[defcolor_highlight] = make_colors(&arena, 0xFFDDEE00); - default_color_table.arrays[defcolor_at_highlight] = make_colors(&arena, 0xFFFF44DD); - default_color_table.arrays[defcolor_mark] = make_colors(&arena, 0xFF494949); - default_color_table.arrays[defcolor_text_default] = make_colors(&arena, 0xFF90B080); - default_color_table.arrays[defcolor_comment] = make_colors(&arena, 0xFF2090F0); - default_color_table.arrays[defcolor_comment_pop] = make_colors(&arena, 0xFF00A000, 0xFFA00000); - default_color_table.arrays[defcolor_keyword] = make_colors(&arena, 0xFFD08F20); - default_color_table.arrays[defcolor_str_constant] = make_colors(&arena, 0xFF50FF30); - default_color_table.arrays[defcolor_char_constant] = make_colors(&arena, 0xFF50FF30); - default_color_table.arrays[defcolor_int_constant] = make_colors(&arena, 0xFF50FF30); - default_color_table.arrays[defcolor_float_constant] = make_colors(&arena, 0xFF50FF30); - default_color_table.arrays[defcolor_bool_constant] = make_colors(&arena, 0xFF50FF30); - default_color_table.arrays[defcolor_preproc] = make_colors(&arena, 0xFFA0B8A0); - default_color_table.arrays[defcolor_include] = make_colors(&arena, 0xFF50FF30); - default_color_table.arrays[defcolor_special_character] = make_colors(&arena, 0xFFFF0000); - default_color_table.arrays[defcolor_ghost_character] = make_colors(&arena, 0xFF4E5E46); - default_color_table.arrays[defcolor_highlight_junk] = make_colors(&arena, 0xFF3A0000); - default_color_table.arrays[defcolor_highlight_white] = make_colors(&arena, 0xFF003A3A); - default_color_table.arrays[defcolor_paste] = make_colors(&arena, 0xFFDDEE00); - default_color_table.arrays[defcolor_undo] = make_colors(&arena, 0xFF00DDEE); - default_color_table.arrays[defcolor_back_cycle] = make_colors(&arena, 0xFF130707, 0xFF071307, 0xFF070713, 0xFF131307); - default_color_table.arrays[defcolor_text_cycle] = make_colors(&arena, 0xFFA00000, 0xFF00A000, 0xFF0030B0, 0xFFA0A000); - default_color_table.arrays[defcolor_line_numbers_back] = make_colors(&arena, 0xFF101010); - default_color_table.arrays[defcolor_line_numbers_text] = make_colors(&arena, 0xFF404040); + default_color_table = make_color_table(app, arena); + + default_color_table.arrays[0] = make_colors(arena, 0xFF90B080); + default_color_table.arrays[defcolor_bar] = make_colors(arena, 0xFF888888); + default_color_table.arrays[defcolor_base] = make_colors(arena, 0xFF000000); + default_color_table.arrays[defcolor_pop1] = make_colors(arena, 0xFF3C57DC); + default_color_table.arrays[defcolor_pop2] = make_colors(arena, 0xFFFF0000); + default_color_table.arrays[defcolor_back] = make_colors(arena, 0xFF0C0C0C); + default_color_table.arrays[defcolor_margin] = make_colors(arena, 0xFF181818); + default_color_table.arrays[defcolor_margin_hover] = make_colors(arena, 0xFF252525); + default_color_table.arrays[defcolor_margin_active] = make_colors(arena, 0xFF323232); + default_color_table.arrays[defcolor_list_item] = make_colors(arena, 0xFF181818); + default_color_table.arrays[defcolor_list_item_hover] = make_colors(arena, 0xFF252525); + default_color_table.arrays[defcolor_list_item_active] = make_colors(arena, 0xFF323232); + default_color_table.arrays[defcolor_cursor] = make_colors(arena, 0xFF00EE00); + default_color_table.arrays[defcolor_at_cursor] = make_colors(arena, 0xFF0C0C0C); + default_color_table.arrays[defcolor_highlight_cursor_line] = make_colors(arena, 0xFF1E1E1E); + default_color_table.arrays[defcolor_highlight] = make_colors(arena, 0xFFDDEE00); + default_color_table.arrays[defcolor_at_highlight] = make_colors(arena, 0xFFFF44DD); + default_color_table.arrays[defcolor_mark] = make_colors(arena, 0xFF494949); + default_color_table.arrays[defcolor_text_default] = make_colors(arena, 0xFF90B080); + default_color_table.arrays[defcolor_comment] = make_colors(arena, 0xFF2090F0); + default_color_table.arrays[defcolor_comment_pop] = make_colors(arena, 0xFF00A000, 0xFFA00000); + default_color_table.arrays[defcolor_keyword] = make_colors(arena, 0xFFD08F20); + default_color_table.arrays[defcolor_str_constant] = make_colors(arena, 0xFF50FF30); + default_color_table.arrays[defcolor_char_constant] = make_colors(arena, 0xFF50FF30); + default_color_table.arrays[defcolor_int_constant] = make_colors(arena, 0xFF50FF30); + default_color_table.arrays[defcolor_float_constant] = make_colors(arena, 0xFF50FF30); + default_color_table.arrays[defcolor_bool_constant] = make_colors(arena, 0xFF50FF30); + default_color_table.arrays[defcolor_preproc] = make_colors(arena, 0xFFA0B8A0); + default_color_table.arrays[defcolor_include] = make_colors(arena, 0xFF50FF30); + default_color_table.arrays[defcolor_special_character] = make_colors(arena, 0xFFFF0000); + default_color_table.arrays[defcolor_ghost_character] = make_colors(arena, 0xFF4E5E46); + default_color_table.arrays[defcolor_highlight_junk] = make_colors(arena, 0xFF3A0000); + default_color_table.arrays[defcolor_highlight_white] = make_colors(arena, 0xFF003A3A); + default_color_table.arrays[defcolor_paste] = make_colors(arena, 0xFFDDEE00); + default_color_table.arrays[defcolor_undo] = make_colors(arena, 0xFF00DDEE); + default_color_table.arrays[defcolor_back_cycle] = make_colors(arena, 0xFF130707, 0xFF071307, 0xFF070713, 0xFF131307); + default_color_table.arrays[defcolor_text_cycle] = make_colors(arena, 0xFFA00000, 0xFF00A000, 0xFF0030B0, 0xFFA0A000); + default_color_table.arrays[defcolor_line_numbers_back] = make_colors(arena, 0xFF101010); + default_color_table.arrays[defcolor_line_numbers_text] = make_colors(arena, 0xFF404040); active_color_table = default_color_table; } +//////////////////////////////// + +function void +save_theme(Color_Table table, String_Const_u8 name){ + Color_Table_Node *node = push_array(&global_theme_arena, Color_Table_Node, 1); + sll_queue_push(global_theme_list.first, global_theme_list.last, node); + global_theme_list.count += 1; + node->name = push_string_copy(&global_theme_arena, name); + node->table = table; +} + // BOTTOM diff --git a/custom/4coder_default_colors.h b/custom/4coder_default_colors.h index c2877b9d..b9054a73 100644 --- a/custom/4coder_default_colors.h +++ b/custom/4coder_default_colors.h @@ -46,9 +46,24 @@ CUSTOM_ID(colors, defcolor_text_cycle); CUSTOM_ID(colors, defcolor_line_numbers_back); CUSTOM_ID(colors, defcolor_line_numbers_text); +struct Color_Table_Node{ + Color_Table_Node *next; + String_Const_u8 name; + Color_Table table; +}; + +struct Color_Table_List{ + Color_Table_Node *first; + Color_Table_Node *last; + i32 count; +}; + global Color_Table active_color_table = {}; global Color_Table default_color_table = {}; +global Arena global_theme_arena = {}; +global Color_Table_List global_theme_list = {}; + #endif // BOTTOM diff --git a/custom/4coder_default_framework.cpp b/custom/4coder_default_framework.cpp index 057dc0ac..979ba321 100644 --- a/custom/4coder_default_framework.cpp +++ b/custom/4coder_default_framework.cpp @@ -360,6 +360,34 @@ create_or_switch_to_buffer_and_clear_by_name(Application_Links *app, String_Cons //////////////////////////////// +function void +save_all_dirty_buffers_with_postfix(Application_Links *app, String_Const_u8 postfix){ + ProfileScope(app, "save all dirty buffers"); + Scratch_Block scratch(app); + for (Buffer_ID buffer = get_buffer_next(app, 0, Access_ReadWriteVisible); + buffer != 0; + buffer = get_buffer_next(app, buffer, Access_ReadWriteVisible)){ + Dirty_State dirty = buffer_get_dirty_state(app, buffer); + if (dirty == DirtyState_UnsavedChanges){ + Temp_Memory temp = begin_temp(scratch); + String_Const_u8 file_name = push_buffer_file_name(app, scratch, buffer); + if (string_match(string_postfix(file_name, postfix.size), postfix)){ + buffer_save(app, buffer, file_name, 0); + } + end_temp(temp); + } + } +} + +CUSTOM_COMMAND_SIG(save_all_dirty_buffers) +CUSTOM_DOC("Saves all buffers marked dirty (showing the '*' indicator).") +{ + String_Const_u8 empty = {}; + save_all_dirty_buffers_with_postfix(app, empty); +} + +//////////////////////////////// + function void set_mouse_suppression(b32 suppress){ if (suppress){ @@ -426,6 +454,43 @@ CUSTOM_DOC("Toggle fullscreen mode on or off. The change(s) do not take effect system_set_fullscreen(!system_is_fullscreen()); } +CUSTOM_COMMAND_SIG(load_themes_default_folder) +CUSTOM_DOC("Loads all the theme files in the default theme folder.") +{ + String_Const_u8 fcoder_extension = string_u8_litexpr(".4coder"); + save_all_dirty_buffers_with_postfix(app, fcoder_extension); + + Scratch_Block scratch(app); + String_Const_u8 bin_path = system_get_path(scratch, SystemPath_Binary); + String_Const_u8 path = push_u8_stringf(scratch, "%.*sthemes", string_expand(bin_path)); + load_folder_of_themes_into_live_set(app, path); +} + +CUSTOM_COMMAND_SIG(load_themes_hot_directory) +CUSTOM_DOC("Loads all the theme files in the current hot directory.") +{ + String_Const_u8 fcoder_extension = string_u8_litexpr(".4coder"); + save_all_dirty_buffers_with_postfix(app, fcoder_extension); + + Scratch_Block scratch(app); + String_Const_u8 path = push_hot_directory(app, scratch); + load_folder_of_themes_into_live_set(app, path); +} + +CUSTOM_COMMAND_SIG(clear_all_themes) +CUSTOM_DOC("Clear the theme list") +{ + if (global_theme_arena.base_allocator == 0){ + global_theme_arena = make_arena_system(); + } + else{ + linalloc_clear(&global_theme_arena); + } + + block_zero_struct(&global_theme_list); + set_default_color_scheme(app); +} + //////////////////////////////// function void diff --git a/custom/4coder_default_framework_variables.cpp b/custom/4coder_default_framework_variables.cpp index e988981c..bc8ded69 100644 --- a/custom/4coder_default_framework_variables.cpp +++ b/custom/4coder_default_framework_variables.cpp @@ -26,6 +26,12 @@ CUSTOM_ID(attachment, attachment_tokens); //////////////////////////////// +CUSTOM_ID(command_map, mapid_global); +CUSTOM_ID(command_map, mapid_file); +CUSTOM_ID(command_map, mapid_code); + +//////////////////////////////// + global b32 allow_immediate_close_without_checking_for_changes = false; global char *default_extensions[] = { @@ -78,13 +84,6 @@ global char previous_isearch_query[256] = {}; global Mapping framework_mapping = {}; -enum{ - mapid_global = 1, - mapid_file, - default_code_map, - default_maps_count, -}; - global Buffer_Modified_Set global_buffer_modified_set = {}; // BOTTOM diff --git a/custom/4coder_default_hooks.cpp b/custom/4coder_default_hooks.cpp index 2ba8bdca..e9896dbb 100644 --- a/custom/4coder_default_hooks.cpp +++ b/custom/4coder_default_hooks.cpp @@ -60,7 +60,6 @@ CUSTOM_DOC("Input consumption loop for default view behavior") Scratch_Block scratch(tctx); { - View_ID view = get_this_ctx_view(app, Access_Always); String_Const_u8 name = push_u8_stringf(scratch, "view %d", view); @@ -155,69 +154,6 @@ CUSTOM_DOC("Input consumption loop for default view behavior") } } -#if 0 -static argb_color default_colors[Stag_COUNT] = {}; -MODIFY_COLOR_TABLE_SIG(default_modify_color_table){ - if (default_colors[Stag_NOOP] == 0){ - default_colors[Stag_NOOP] = 0xFFFF00FF; - - default_colors[Stag_Back] = 0xFF0C0C0C; - default_colors[Stag_Margin] = 0xFF181818; - default_colors[Stag_Margin_Hover] = 0xFF252525; - default_colors[Stag_Margin_Active] = 0xFF323232; - default_colors[Stag_List_Item] = default_colors[Stag_Margin]; - default_colors[Stag_List_Item_Hover] = default_colors[Stag_Margin_Hover]; - default_colors[Stag_List_Item_Active] = default_colors[Stag_Margin_Active]; - default_colors[Stag_Cursor] = 0xFF00EE00; - default_colors[Stag_Highlight] = 0xFFDDEE00; - default_colors[Stag_Mark] = 0xFF494949; - default_colors[Stag_Default] = 0xFF90B080; - default_colors[Stag_At_Cursor] = default_colors[Stag_Back]; - default_colors[Stag_Highlight_Cursor_Line] = 0xFF1E1E1E; - default_colors[Stag_At_Highlight] = 0xFFFF44DD; - default_colors[Stag_Comment] = 0xFF2090F0; - default_colors[Stag_Keyword] = 0xFFD08F20; - default_colors[Stag_Str_Constant] = 0xFF50FF30; - default_colors[Stag_Char_Constant] = default_colors[Stag_Str_Constant]; - default_colors[Stag_Int_Constant] = default_colors[Stag_Str_Constant]; - default_colors[Stag_Float_Constant] = default_colors[Stag_Str_Constant]; - default_colors[Stag_Bool_Constant] = default_colors[Stag_Str_Constant]; - default_colors[Stag_Include] = default_colors[Stag_Str_Constant]; - default_colors[Stag_Preproc] = default_colors[Stag_Default]; - default_colors[Stag_Special_Character] = 0xFFFF0000; - default_colors[Stag_Ghost_Character] = 0xFF4E5E46; - - default_colors[Stag_Paste] = 0xFFDDEE00; - default_colors[Stag_Undo] = 0xFF00DDEE; - - default_colors[Stag_Highlight_Junk] = 0xFF3A0000; - default_colors[Stag_Highlight_White] = 0xFF003A3A; - - default_colors[Stag_Bar] = 0xFF888888; - default_colors[Stag_Base] = 0xFF000000; - default_colors[Stag_Pop1] = 0xFF3C57DC; - default_colors[Stag_Pop2] = 0xFFFF0000; - - default_colors[Stag_Back_Cycle_1] = 0x10A00000; - default_colors[Stag_Back_Cycle_2] = 0x0C00A000; - default_colors[Stag_Back_Cycle_3] = 0x0C0000A0; - default_colors[Stag_Back_Cycle_4] = 0x0CA0A000; - default_colors[Stag_Text_Cycle_1] = 0xFFA00000; - default_colors[Stag_Text_Cycle_2] = 0xFF00A000; - default_colors[Stag_Text_Cycle_3] = 0xFF0030B0; - default_colors[Stag_Text_Cycle_4] = 0xFFA0A000; - - default_colors[Stag_Line_Numbers_Back] = 0xFF101010; - default_colors[Stag_Line_Numbers_Text] = 0xFF404040; - } - - Color_Table color_table = {}; - color_table.vals = default_colors; - color_table.count = ArrayCount(default_colors); - return(color_table); -} -#endif - function void default_tick(Application_Links *app, Frame_Info frame_info){ Scratch_Block scratch(app); @@ -940,7 +876,7 @@ BUFFER_HOOK_SIG(default_begin_buffer){ } } - Command_Map_ID map_id = (treat_as_code)?(default_code_map):(mapid_file); + Command_Map_ID map_id = (treat_as_code)?(mapid_code):(mapid_file); Managed_Scope scope = buffer_get_managed_scope(app, buffer_id); Command_Map_ID *map_id_ptr = scope_attachment(app, scope, buffer_map_id, Command_Map_ID); *map_id_ptr = map_id; diff --git a/custom/4coder_lists.cpp b/custom/4coder_lists.cpp index 105fe397..dfed453a 100644 --- a/custom/4coder_lists.cpp +++ b/custom/4coder_lists.cpp @@ -96,9 +96,37 @@ get_buffer_from_user(Application_Links *app, char *query){ //////////////////////////////// +typedef i32 Command_Lister_Status_Mode; +enum{ + CommandLister_None, + CommandLister_Descriptions, + CommandLister_Bindings +}; + +struct Command_Lister_Status_Rule{ + Command_Lister_Status_Mode mode; + Mapping *mapping; + Command_Map_ID map_id; +}; + +function Command_Lister_Status_Rule +command_lister_status_descriptions(void){ + Command_Lister_Status_Rule result = {}; + result.mode = CommandLister_Descriptions; + return(result); +} + +function Command_Lister_Status_Rule +command_lister_status_bindings(Mapping *mapping, Command_Map_ID map_id){ + Command_Lister_Status_Rule result = {}; + result.mode = CommandLister_Bindings; + result.mapping = mapping; + result.map_id = map_id; + return(result); +} + function Custom_Command_Function* -get_command_from_user(Application_Links *app, String_Const_u8 query, - i32 *command_ids, i32 command_id_count){ +get_command_from_user(Application_Links *app, String_Const_u8 query, i32 *command_ids, i32 command_id_count, Command_Lister_Status_Rule *status_rule){ if (command_ids == 0){ command_id_count = command_one_past_last_id; } @@ -114,10 +142,34 @@ get_command_from_user(Application_Links *app, String_Const_u8 query, j = command_ids[i]; } j = clamp(0, j, command_one_past_last_id); - lister_add_item(lister, - SCu8(fcoder_metacmd_table[j].name), - SCu8(fcoder_metacmd_table[j].description), - (void*)fcoder_metacmd_table[j].proc, 0); + + Custom_Command_Function *proc = fcoder_metacmd_table[j].proc; + String_Const_u8 status = {}; + switch (status_rule->mode){ + case CommandLister_Descriptions: + { + status = SCu8(fcoder_metacmd_table[j].description); + }break; + case CommandLister_Bindings: + { + Command_Trigger_List triggers = map_get_triggers_recursive(scratch, status_rule->mapping, status_rule->map_id, proc); + + List_String_Const_u8 list = {}; + for (Command_Trigger *node = triggers.first; + node != 0; + node = node->next){ + command_trigger_stringize(scratch, &list, node); + if (node->next != 0){ + string_list_push(scratch, &list, string_u8_litexpr(" ")); + } + } + + status = string_list_flatten(scratch, list); + }break; + } + + lister_add_item(lister, SCu8(fcoder_metacmd_table[j].name), status, + (void*)proc, 0); } Lister_Result l_result = run_lister(app, lister); @@ -130,19 +182,56 @@ get_command_from_user(Application_Links *app, String_Const_u8 query, } function Custom_Command_Function* -get_command_from_user(Application_Links *app, String_Const_u8 query){ - return(get_command_from_user(app, query, 0, 0)); +get_command_from_user(Application_Links *app, String_Const_u8 query, Command_Lister_Status_Rule *status_rule){ + return(get_command_from_user(app, query, 0, 0, status_rule)); } function Custom_Command_Function* get_command_from_user(Application_Links *app, char *query, - i32 *command_ids, i32 command_id_count){ - return(get_command_from_user(app, SCu8(query), command_ids, command_id_count)); + i32 *command_ids, i32 command_id_count, Command_Lister_Status_Rule *status_rule){ + return(get_command_from_user(app, SCu8(query), command_ids, command_id_count, status_rule)); } function Custom_Command_Function* -get_command_from_user(Application_Links *app, char *query){ - return(get_command_from_user(app, SCu8(query), 0, 0)); +get_command_from_user(Application_Links *app, char *query, Command_Lister_Status_Rule *status_rule){ + return(get_command_from_user(app, SCu8(query), 0, 0, status_rule)); +} + +//////////////////////////////// + +function Color_Table* +get_color_table_from_user(Application_Links *app, String_Const_u8 query, Color_Table_List *color_table_list){ + if (color_table_list == 0){ + color_table_list = &global_theme_list; + } + + Scratch_Block scratch(app, Scratch_Share); + Lister *lister = begin_lister(app, scratch); + lister_set_query(lister, query); + lister->handlers = lister_get_default_handlers(); + + lister_add_item(lister, string_u8_litexpr("4coder"), string_u8_litexpr(""), + (void*)&default_color_table, 0); + + for (Color_Table_Node *node = color_table_list->first; + node != 0; + node = node->next){ + lister_add_item(lister, node->name, string_u8_litexpr(""), + (void*)&node->table, 0); + } + + Lister_Result l_result = run_lister(app, lister); + + Color_Table *result = 0; + if (!l_result.canceled){ + result = (Color_Table*)l_result.user_data; + } + return(result); +} + +function Color_Table* +get_color_table_from_user(Application_Links *app){ + return(get_color_table_from_user(app, string_u8_litexpr("Theme:"), 0)); } //////////////////////////////// @@ -579,12 +668,34 @@ CUSTOM_DOC("Interactively opens a file.") CUSTOM_UI_COMMAND_SIG(command_lister) CUSTOM_DOC("Opens an interactive list of all registered commands.") { - Custom_Command_Function *func = get_command_from_user(app, "Command:"); + Command_Lister_Status_Rule rule = {}; + + View_ID view = get_this_ctx_view(app, Access_Always); + Buffer_ID buffer = view_get_buffer(app, view, Access_Visible); + Managed_Scope buffer_scope = buffer_get_managed_scope(app, buffer); + Command_Map_ID *map_id_ptr = scope_attachment(app, buffer_scope, buffer_map_id, Command_Map_ID); + if (map_id_ptr != 0){ + rule = command_lister_status_bindings(&framework_mapping, *map_id_ptr); + } + else{ + rule = command_lister_status_descriptions(); + } + Custom_Command_Function *func = get_command_from_user(app, "Command:", &rule); if (func != 0){ - View_ID view = get_this_ctx_view(app, Access_Always); view_enqueue_command_function(app, view, func); } } +//////////////////////////////// + +CUSTOM_UI_COMMAND_SIG(theme_lister) +CUSTOM_DOC("Opens an interactive list of all registered themes.") +{ + Color_Table *color_table = get_color_table_from_user(app); + if (color_table != 0){ + active_color_table = *color_table; + } +} + // BOTTOM diff --git a/custom/generated/command_metadata.h b/custom/generated/command_metadata.h index 73220e4a..ee04ea5e 100644 --- a/custom/generated/command_metadata.h +++ b/custom/generated/command_metadata.h @@ -2,7 +2,7 @@ #define command_id(c) (fcoder_metacmd_ID_##c) #define command_metadata(c) (&fcoder_metacmd_table[command_id(c)]) #define command_metadata_by_id(id) (&fcoder_metacmd_table[id]) -#define command_one_past_last_id 222 +#define command_one_past_last_id 226 #if defined(CUSTOM_COMMAND_SIG) #define PROC_LINKS(x,y) x #else @@ -24,6 +24,7 @@ CUSTOM_COMMAND_SIG(change_active_panel); CUSTOM_COMMAND_SIG(change_active_panel_backwards); CUSTOM_COMMAND_SIG(open_panel_vsplit); CUSTOM_COMMAND_SIG(open_panel_hsplit); +CUSTOM_COMMAND_SIG(save_all_dirty_buffers); CUSTOM_COMMAND_SIG(suppress_mouse); CUSTOM_COMMAND_SIG(allow_mouse); CUSTOM_COMMAND_SIG(toggle_mouse); @@ -33,6 +34,9 @@ CUSTOM_COMMAND_SIG(toggle_highlight_line_at_cursor); CUSTOM_COMMAND_SIG(toggle_highlight_enclosing_scopes); CUSTOM_COMMAND_SIG(toggle_paren_matching_helper); CUSTOM_COMMAND_SIG(toggle_fullscreen); +CUSTOM_COMMAND_SIG(load_themes_default_folder); +CUSTOM_COMMAND_SIG(load_themes_hot_directory); +CUSTOM_COMMAND_SIG(clear_all_themes); CUSTOM_COMMAND_SIG(write_text_input); CUSTOM_COMMAND_SIG(write_space); CUSTOM_COMMAND_SIG(write_underscore); @@ -107,7 +111,6 @@ CUSTOM_COMMAND_SIG(replace_in_all_buffers); CUSTOM_COMMAND_SIG(query_replace); CUSTOM_COMMAND_SIG(query_replace_identifier); CUSTOM_COMMAND_SIG(query_replace_selection); -CUSTOM_COMMAND_SIG(save_all_dirty_buffers); CUSTOM_COMMAND_SIG(delete_file_query); CUSTOM_COMMAND_SIG(save_to_query); CUSTOM_COMMAND_SIG(rename_file_query); @@ -139,6 +142,7 @@ CUSTOM_COMMAND_SIG(interactive_open_or_new); CUSTOM_COMMAND_SIG(interactive_new); CUSTOM_COMMAND_SIG(interactive_open); CUSTOM_COMMAND_SIG(command_lister); +CUSTOM_COMMAND_SIG(theme_lister); CUSTOM_COMMAND_SIG(auto_indent_whole_file); CUSTOM_COMMAND_SIG(auto_indent_line_at_cursor); CUSTOM_COMMAND_SIG(auto_indent_range); @@ -243,7 +247,7 @@ char *source_name; i32 source_name_len; i32 line_number; }; -static Command_Metadata fcoder_metacmd_table[222] = { +static Command_Metadata fcoder_metacmd_table[226] = { { PROC_LINKS(default_view_input_handler, 0), false, "default_view_input_handler", 26, "Input consumption loop for default view behavior", 48, "w:\\4ed\\code\\custom\\4coder_default_hooks.cpp", 43, 56 }, { PROC_LINKS(profile_enable, 0), false, "profile_enable", 14, "Allow 4coder's self profiler to gather new profiling information.", 65, "w:\\4ed\\code\\custom\\4coder_profile.cpp", 37, 211 }, { PROC_LINKS(profile_disable, 0), false, "profile_disable", 15, "Prevent 4coder's self profiler from gathering new profiling information.", 72, "w:\\4ed\\code\\custom\\4coder_profile.cpp", 37, 218 }, @@ -259,15 +263,19 @@ static Command_Metadata fcoder_metacmd_table[222] = { { PROC_LINKS(change_active_panel_backwards, 0), false, "change_active_panel_backwards", 29, "Change the currently active panel, moving to the panel with the next lowest view_id.", 84, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 290 }, { PROC_LINKS(open_panel_vsplit, 0), false, "open_panel_vsplit", 17, "Create a new panel by vertically splitting the active panel.", 60, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 300 }, { PROC_LINKS(open_panel_hsplit, 0), false, "open_panel_hsplit", 17, "Create a new panel by horizontally splitting the active panel.", 62, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 310 }, -{ PROC_LINKS(suppress_mouse, 0), false, "suppress_mouse", 14, "Hides the mouse and causes all mosue input (clicks, position, wheel) to be ignored.", 83, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 375 }, -{ PROC_LINKS(allow_mouse, 0), false, "allow_mouse", 11, "Shows the mouse and causes all mouse input to be processed normally.", 68, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 381 }, -{ PROC_LINKS(toggle_mouse, 0), false, "toggle_mouse", 12, "Toggles the mouse suppression mode, see suppress_mouse and allow_mouse.", 71, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 387 }, -{ PROC_LINKS(set_mode_to_original, 0), false, "set_mode_to_original", 20, "Sets the edit mode to 4coder original.", 38, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 393 }, -{ PROC_LINKS(set_mode_to_notepad_like, 0), false, "set_mode_to_notepad_like", 24, "Sets the edit mode to Notepad like.", 35, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 399 }, -{ PROC_LINKS(toggle_highlight_line_at_cursor, 0), false, "toggle_highlight_line_at_cursor", 31, "Toggles the line highlight at the cursor.", 41, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 405 }, -{ PROC_LINKS(toggle_highlight_enclosing_scopes, 0), false, "toggle_highlight_enclosing_scopes", 33, "In code files scopes surrounding the cursor are highlighted with distinguishing colors.", 87, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 411 }, -{ PROC_LINKS(toggle_paren_matching_helper, 0), false, "toggle_paren_matching_helper", 28, "In code files matching parentheses pairs are colored with distinguishing colors.", 80, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 417 }, -{ PROC_LINKS(toggle_fullscreen, 0), false, "toggle_fullscreen", 17, "Toggle fullscreen mode on or off. The change(s) do not take effect until the next frame.", 89, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 423 }, +{ PROC_LINKS(save_all_dirty_buffers, 0), false, "save_all_dirty_buffers", 22, "Saves all buffers marked dirty (showing the '*' indicator).", 59, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 382 }, +{ PROC_LINKS(suppress_mouse, 0), false, "suppress_mouse", 14, "Hides the mouse and causes all mosue input (clicks, position, wheel) to be ignored.", 83, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 403 }, +{ PROC_LINKS(allow_mouse, 0), false, "allow_mouse", 11, "Shows the mouse and causes all mouse input to be processed normally.", 68, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 409 }, +{ PROC_LINKS(toggle_mouse, 0), false, "toggle_mouse", 12, "Toggles the mouse suppression mode, see suppress_mouse and allow_mouse.", 71, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 415 }, +{ PROC_LINKS(set_mode_to_original, 0), false, "set_mode_to_original", 20, "Sets the edit mode to 4coder original.", 38, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 421 }, +{ PROC_LINKS(set_mode_to_notepad_like, 0), false, "set_mode_to_notepad_like", 24, "Sets the edit mode to Notepad like.", 35, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 427 }, +{ PROC_LINKS(toggle_highlight_line_at_cursor, 0), false, "toggle_highlight_line_at_cursor", 31, "Toggles the line highlight at the cursor.", 41, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 433 }, +{ PROC_LINKS(toggle_highlight_enclosing_scopes, 0), false, "toggle_highlight_enclosing_scopes", 33, "In code files scopes surrounding the cursor are highlighted with distinguishing colors.", 87, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 439 }, +{ PROC_LINKS(toggle_paren_matching_helper, 0), false, "toggle_paren_matching_helper", 28, "In code files matching parentheses pairs are colored with distinguishing colors.", 80, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 445 }, +{ PROC_LINKS(toggle_fullscreen, 0), false, "toggle_fullscreen", 17, "Toggle fullscreen mode on or off. The change(s) do not take effect until the next frame.", 89, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 451 }, +{ PROC_LINKS(load_themes_default_folder, 0), false, "load_themes_default_folder", 26, "Loads all the theme files in the default theme folder.", 54, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 457 }, +{ PROC_LINKS(load_themes_hot_directory, 0), false, "load_themes_hot_directory", 25, "Loads all the theme files in the current hot directory.", 55, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 469 }, +{ PROC_LINKS(clear_all_themes, 0), false, "clear_all_themes", 16, "Clear the theme list", 20, "w:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 480 }, { PROC_LINKS(write_text_input, 0), false, "write_text_input", 16, "Inserts whatever text was used to trigger this command.", 55, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 59 }, { PROC_LINKS(write_space, 0), false, "write_space", 11, "Inserts an underscore.", 22, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 67 }, { PROC_LINKS(write_underscore, 0), false, "write_underscore", 16, "Inserts an underscore.", 22, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 73 }, @@ -342,38 +350,38 @@ static Command_Metadata fcoder_metacmd_table[222] = { { PROC_LINKS(query_replace, 0), false, "query_replace", 13, "Queries the user for two strings, and incrementally replaces every occurence of the first string with the second string.", 120, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1149 }, { PROC_LINKS(query_replace_identifier, 0), false, "query_replace_identifier", 24, "Queries the user for a string, and incrementally replace every occurence of the word or token found at the cursor with the specified string.", 140, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1170 }, { PROC_LINKS(query_replace_selection, 0), false, "query_replace_selection", 23, "Queries the user for a string, and incrementally replace every occurence of the string found in the selected range with the specified string.", 141, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1186 }, -{ PROC_LINKS(save_all_dirty_buffers, 0), false, "save_all_dirty_buffers", 22, "Saves all buffers marked dirty (showing the '*' indicator).", 59, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1222 }, -{ PROC_LINKS(delete_file_query, 0), false, "delete_file_query", 17, "Deletes the file of the current buffer if 4coder has the appropriate access rights. Will ask the user for confirmation first.", 125, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1247 }, -{ PROC_LINKS(save_to_query, 0), false, "save_to_query", 13, "Queries the user for a file name and saves the contents of the current buffer, altering the buffer's name too.", 110, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1291 }, -{ PROC_LINKS(rename_file_query, 0), false, "rename_file_query", 17, "Queries the user for a new name and renames the file of the current buffer, altering the buffer's name too.", 107, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1324 }, -{ PROC_LINKS(make_directory_query, 0), false, "make_directory_query", 20, "Queries the user for a name and creates a new directory with the given name.", 76, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1362 }, -{ PROC_LINKS(move_line_up, 0), false, "move_line_up", 12, "Swaps the line under the cursor with the line above it, and moves the cursor up with it.", 88, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1396 }, -{ PROC_LINKS(move_line_down, 0), false, "move_line_down", 14, "Swaps the line under the cursor with the line below it, and moves the cursor down with it.", 90, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1402 }, -{ PROC_LINKS(duplicate_line, 0), false, "duplicate_line", 14, "Create a copy of the line on which the cursor sits.", 51, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1408 }, -{ PROC_LINKS(delete_line, 0), false, "delete_line", 11, "Delete the line the on which the cursor sits.", 45, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1422 }, -{ PROC_LINKS(open_file_in_quotes, 0), false, "open_file_in_quotes", 19, "Reads a filename from surrounding '\"' characters and attempts to open the corresponding file.", 94, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1487 }, -{ PROC_LINKS(open_matching_file_cpp, 0), false, "open_matching_file_cpp", 22, "If the current file is a *.cpp or *.h, attempts to open the corresponding *.h or *.cpp file in the other view.", 110, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1519 }, -{ PROC_LINKS(view_buffer_other_panel, 0), false, "view_buffer_other_panel", 23, "Set the other non-active panel to view the buffer that the active panel views, and switch to that panel.", 104, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1532 }, -{ PROC_LINKS(swap_panels, 0), false, "swap_panels", 11, "Swaps the active panel with it's sibling.", 41, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1544 }, -{ PROC_LINKS(kill_buffer, 0), false, "kill_buffer", 11, "Kills the current buffer.", 25, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1568 }, -{ PROC_LINKS(save, 0), false, "save", 4, "Saves the current buffer.", 25, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1576 }, -{ PROC_LINKS(reopen, 0), false, "reopen", 6, "Reopen the current buffer from the hard drive.", 46, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1586 }, -{ PROC_LINKS(undo, 0), false, "undo", 4, "Advances backwards through the undo history of the current buffer.", 66, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1644 }, -{ PROC_LINKS(redo, 0), false, "redo", 4, "Advances forwards through the undo history of the current buffer.", 65, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1657 }, -{ PROC_LINKS(undo_all_buffers, 0), false, "undo_all_buffers", 16, "Advances backward through the undo history in the buffer containing the most recent regular edit.", 97, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1671 }, -{ PROC_LINKS(redo_all_buffers, 0), false, "redo_all_buffers", 16, "Advances forward through the undo history in the buffer containing the most recent regular edit.", 96, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1742 }, -{ PROC_LINKS(open_in_other, 0), false, "open_in_other", 13, "Interactively opens a file in the other panel.", 46, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1843 }, -{ PROC_LINKS(default_file_externally_modified, 0), false, "default_file_externally_modified", 32, "Notes the external modification of attached files by printing a message.", 72, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1849 }, +{ PROC_LINKS(delete_file_query, 0), false, "delete_file_query", 17, "Deletes the file of the current buffer if 4coder has the appropriate access rights. Will ask the user for confirmation first.", 125, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1221 }, +{ PROC_LINKS(save_to_query, 0), false, "save_to_query", 13, "Queries the user for a file name and saves the contents of the current buffer, altering the buffer's name too.", 110, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1265 }, +{ PROC_LINKS(rename_file_query, 0), false, "rename_file_query", 17, "Queries the user for a new name and renames the file of the current buffer, altering the buffer's name too.", 107, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1298 }, +{ PROC_LINKS(make_directory_query, 0), false, "make_directory_query", 20, "Queries the user for a name and creates a new directory with the given name.", 76, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1336 }, +{ PROC_LINKS(move_line_up, 0), false, "move_line_up", 12, "Swaps the line under the cursor with the line above it, and moves the cursor up with it.", 88, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1370 }, +{ PROC_LINKS(move_line_down, 0), false, "move_line_down", 14, "Swaps the line under the cursor with the line below it, and moves the cursor down with it.", 90, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1376 }, +{ PROC_LINKS(duplicate_line, 0), false, "duplicate_line", 14, "Create a copy of the line on which the cursor sits.", 51, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1382 }, +{ PROC_LINKS(delete_line, 0), false, "delete_line", 11, "Delete the line the on which the cursor sits.", 45, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1396 }, +{ PROC_LINKS(open_file_in_quotes, 0), false, "open_file_in_quotes", 19, "Reads a filename from surrounding '\"' characters and attempts to open the corresponding file.", 94, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1461 }, +{ PROC_LINKS(open_matching_file_cpp, 0), false, "open_matching_file_cpp", 22, "If the current file is a *.cpp or *.h, attempts to open the corresponding *.h or *.cpp file in the other view.", 110, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1493 }, +{ PROC_LINKS(view_buffer_other_panel, 0), false, "view_buffer_other_panel", 23, "Set the other non-active panel to view the buffer that the active panel views, and switch to that panel.", 104, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1506 }, +{ PROC_LINKS(swap_panels, 0), false, "swap_panels", 11, "Swaps the active panel with it's sibling.", 41, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1518 }, +{ PROC_LINKS(kill_buffer, 0), false, "kill_buffer", 11, "Kills the current buffer.", 25, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1542 }, +{ PROC_LINKS(save, 0), false, "save", 4, "Saves the current buffer.", 25, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1550 }, +{ PROC_LINKS(reopen, 0), false, "reopen", 6, "Reopen the current buffer from the hard drive.", 46, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1560 }, +{ PROC_LINKS(undo, 0), false, "undo", 4, "Advances backwards through the undo history of the current buffer.", 66, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1618 }, +{ PROC_LINKS(redo, 0), false, "redo", 4, "Advances forwards through the undo history of the current buffer.", 65, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1631 }, +{ PROC_LINKS(undo_all_buffers, 0), false, "undo_all_buffers", 16, "Advances backward through the undo history in the buffer containing the most recent regular edit.", 97, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1645 }, +{ PROC_LINKS(redo_all_buffers, 0), false, "redo_all_buffers", 16, "Advances forward through the undo history in the buffer containing the most recent regular edit.", 96, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1716 }, +{ PROC_LINKS(open_in_other, 0), false, "open_in_other", 13, "Interactively opens a file in the other panel.", 46, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1792 }, +{ PROC_LINKS(default_file_externally_modified, 0), false, "default_file_externally_modified", 32, "Notes the external modification of attached files by printing a message.", 72, "w:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 1798 }, { PROC_LINKS(set_eol_mode_to_crlf, 0), false, "set_eol_mode_to_crlf", 20, "Puts the buffer in crlf line ending mode.", 41, "w:\\4ed\\code\\custom\\4coder_eol.cpp", 33, 86 }, { PROC_LINKS(set_eol_mode_to_lf, 0), false, "set_eol_mode_to_lf", 18, "Puts the buffer in lf line ending mode.", 39, "w:\\4ed\\code\\custom\\4coder_eol.cpp", 33, 99 }, { PROC_LINKS(set_eol_mode_to_binary, 0), false, "set_eol_mode_to_binary", 22, "Puts the buffer in bin line ending mode.", 40, "w:\\4ed\\code\\custom\\4coder_eol.cpp", 33, 112 }, { PROC_LINKS(set_eol_mode_from_contents, 0), false, "set_eol_mode_from_contents", 26, "Sets the buffer's line ending mode to match the contents of the buffer.", 71, "w:\\4ed\\code\\custom\\4coder_eol.cpp", 33, 125 }, -{ PROC_LINKS(interactive_switch_buffer, 0), true, "interactive_switch_buffer", 25, "Interactively switch to an open buffer.", 39, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 416 }, -{ PROC_LINKS(interactive_kill_buffer, 0), true, "interactive_kill_buffer", 23, "Interactively kill an open buffer.", 34, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 426 }, -{ PROC_LINKS(interactive_open_or_new, 0), true, "interactive_open_or_new", 23, "Interactively open a file out of the file system.", 49, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 474 }, -{ PROC_LINKS(interactive_new, 0), true, "interactive_new", 15, "Interactively creates a new file.", 33, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 508 }, -{ PROC_LINKS(interactive_open, 0), true, "interactive_open", 16, "Interactively opens a file.", 27, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 545 }, -{ PROC_LINKS(command_lister, 0), true, "command_lister", 14, "Opens an interactive list of all registered commands.", 53, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 579 }, +{ PROC_LINKS(interactive_switch_buffer, 0), true, "interactive_switch_buffer", 25, "Interactively switch to an open buffer.", 39, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 505 }, +{ PROC_LINKS(interactive_kill_buffer, 0), true, "interactive_kill_buffer", 23, "Interactively kill an open buffer.", 34, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 515 }, +{ PROC_LINKS(interactive_open_or_new, 0), true, "interactive_open_or_new", 23, "Interactively open a file out of the file system.", 49, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 563 }, +{ PROC_LINKS(interactive_new, 0), true, "interactive_new", 15, "Interactively creates a new file.", 33, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 597 }, +{ PROC_LINKS(interactive_open, 0), true, "interactive_open", 16, "Interactively opens a file.", 27, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 634 }, +{ PROC_LINKS(command_lister, 0), true, "command_lister", 14, "Opens an interactive list of all registered commands.", 53, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 668 }, +{ PROC_LINKS(theme_lister, 0), true, "theme_lister", 12, "Opens an interactive list of all registered themes.", 51, "w:\\4ed\\code\\custom\\4coder_lists.cpp", 35, 691 }, { PROC_LINKS(auto_indent_whole_file, 0), false, "auto_indent_whole_file", 22, "Audo-indents the entire current buffer.", 39, "w:\\4ed\\code\\custom\\4coder_auto_indent.cpp", 41, 366 }, { PROC_LINKS(auto_indent_line_at_cursor, 0), false, "auto_indent_line_at_cursor", 26, "Auto-indents the line on which the cursor sits.", 47, "w:\\4ed\\code\\custom\\4coder_auto_indent.cpp", 41, 375 }, { PROC_LINKS(auto_indent_range, 0), false, "auto_indent_range", 17, "Auto-indents the range between the cursor and the mark.", 55, "w:\\4ed\\code\\custom\\4coder_auto_indent.cpp", 41, 385 }, @@ -482,211 +490,215 @@ static i32 fcoder_metacmd_ID_change_active_panel = 11; static i32 fcoder_metacmd_ID_change_active_panel_backwards = 12; static i32 fcoder_metacmd_ID_open_panel_vsplit = 13; static i32 fcoder_metacmd_ID_open_panel_hsplit = 14; -static i32 fcoder_metacmd_ID_suppress_mouse = 15; -static i32 fcoder_metacmd_ID_allow_mouse = 16; -static i32 fcoder_metacmd_ID_toggle_mouse = 17; -static i32 fcoder_metacmd_ID_set_mode_to_original = 18; -static i32 fcoder_metacmd_ID_set_mode_to_notepad_like = 19; -static i32 fcoder_metacmd_ID_toggle_highlight_line_at_cursor = 20; -static i32 fcoder_metacmd_ID_toggle_highlight_enclosing_scopes = 21; -static i32 fcoder_metacmd_ID_toggle_paren_matching_helper = 22; -static i32 fcoder_metacmd_ID_toggle_fullscreen = 23; -static i32 fcoder_metacmd_ID_write_text_input = 24; -static i32 fcoder_metacmd_ID_write_space = 25; -static i32 fcoder_metacmd_ID_write_underscore = 26; -static i32 fcoder_metacmd_ID_delete_char = 27; -static i32 fcoder_metacmd_ID_backspace_char = 28; -static i32 fcoder_metacmd_ID_set_mark = 29; -static i32 fcoder_metacmd_ID_cursor_mark_swap = 30; -static i32 fcoder_metacmd_ID_delete_range = 31; -static i32 fcoder_metacmd_ID_backspace_alpha_numeric_boundary = 32; -static i32 fcoder_metacmd_ID_delete_alpha_numeric_boundary = 33; -static i32 fcoder_metacmd_ID_snipe_backward_whitespace_or_token_boundary = 34; -static i32 fcoder_metacmd_ID_snipe_forward_whitespace_or_token_boundary = 35; -static i32 fcoder_metacmd_ID_center_view = 36; -static i32 fcoder_metacmd_ID_left_adjust_view = 37; -static i32 fcoder_metacmd_ID_click_set_cursor_and_mark = 38; -static i32 fcoder_metacmd_ID_click_set_cursor = 39; -static i32 fcoder_metacmd_ID_click_set_cursor_if_lbutton = 40; -static i32 fcoder_metacmd_ID_click_set_mark = 41; -static i32 fcoder_metacmd_ID_mouse_wheel_scroll = 42; -static i32 fcoder_metacmd_ID_move_up = 43; -static i32 fcoder_metacmd_ID_move_down = 44; -static i32 fcoder_metacmd_ID_move_up_10 = 45; -static i32 fcoder_metacmd_ID_move_down_10 = 46; -static i32 fcoder_metacmd_ID_move_down_textual = 47; -static i32 fcoder_metacmd_ID_page_up = 48; -static i32 fcoder_metacmd_ID_page_down = 49; -static i32 fcoder_metacmd_ID_move_up_to_blank_line = 50; -static i32 fcoder_metacmd_ID_move_down_to_blank_line = 51; -static i32 fcoder_metacmd_ID_move_up_to_blank_line_skip_whitespace = 52; -static i32 fcoder_metacmd_ID_move_down_to_blank_line_skip_whitespace = 53; -static i32 fcoder_metacmd_ID_move_up_to_blank_line_end = 54; -static i32 fcoder_metacmd_ID_move_down_to_blank_line_end = 55; -static i32 fcoder_metacmd_ID_move_left = 56; -static i32 fcoder_metacmd_ID_move_right = 57; -static i32 fcoder_metacmd_ID_move_right_whitespace_boundary = 58; -static i32 fcoder_metacmd_ID_move_left_whitespace_boundary = 59; -static i32 fcoder_metacmd_ID_move_right_token_boundary = 60; -static i32 fcoder_metacmd_ID_move_left_token_boundary = 61; -static i32 fcoder_metacmd_ID_move_right_whitespace_or_token_boundary = 62; -static i32 fcoder_metacmd_ID_move_left_whitespace_or_token_boundary = 63; -static i32 fcoder_metacmd_ID_move_right_alpha_numeric_boundary = 64; -static i32 fcoder_metacmd_ID_move_left_alpha_numeric_boundary = 65; -static i32 fcoder_metacmd_ID_move_right_alpha_numeric_or_camel_boundary = 66; -static i32 fcoder_metacmd_ID_move_left_alpha_numeric_or_camel_boundary = 67; -static i32 fcoder_metacmd_ID_select_all = 68; -static i32 fcoder_metacmd_ID_to_uppercase = 69; -static i32 fcoder_metacmd_ID_to_lowercase = 70; -static i32 fcoder_metacmd_ID_clean_all_lines = 71; -static i32 fcoder_metacmd_ID_basic_change_active_panel = 72; -static i32 fcoder_metacmd_ID_close_panel = 73; -static i32 fcoder_metacmd_ID_show_scrollbar = 74; -static i32 fcoder_metacmd_ID_hide_scrollbar = 75; -static i32 fcoder_metacmd_ID_show_filebar = 76; -static i32 fcoder_metacmd_ID_hide_filebar = 77; -static i32 fcoder_metacmd_ID_toggle_filebar = 78; -static i32 fcoder_metacmd_ID_toggle_fps_meter = 79; -static i32 fcoder_metacmd_ID_increase_face_size = 80; -static i32 fcoder_metacmd_ID_decrease_face_size = 81; -static i32 fcoder_metacmd_ID_mouse_wheel_change_face_size = 82; -static i32 fcoder_metacmd_ID_toggle_show_whitespace = 83; -static i32 fcoder_metacmd_ID_toggle_line_numbers = 84; -static i32 fcoder_metacmd_ID_toggle_line_wrap = 85; -static i32 fcoder_metacmd_ID_exit_4coder = 86; -static i32 fcoder_metacmd_ID_goto_line = 87; -static i32 fcoder_metacmd_ID_search = 88; -static i32 fcoder_metacmd_ID_reverse_search = 89; -static i32 fcoder_metacmd_ID_search_identifier = 90; -static i32 fcoder_metacmd_ID_reverse_search_identifier = 91; -static i32 fcoder_metacmd_ID_replace_in_range = 92; -static i32 fcoder_metacmd_ID_replace_in_buffer = 93; -static i32 fcoder_metacmd_ID_replace_in_all_buffers = 94; -static i32 fcoder_metacmd_ID_query_replace = 95; -static i32 fcoder_metacmd_ID_query_replace_identifier = 96; -static i32 fcoder_metacmd_ID_query_replace_selection = 97; -static i32 fcoder_metacmd_ID_save_all_dirty_buffers = 98; -static i32 fcoder_metacmd_ID_delete_file_query = 99; -static i32 fcoder_metacmd_ID_save_to_query = 100; -static i32 fcoder_metacmd_ID_rename_file_query = 101; -static i32 fcoder_metacmd_ID_make_directory_query = 102; -static i32 fcoder_metacmd_ID_move_line_up = 103; -static i32 fcoder_metacmd_ID_move_line_down = 104; -static i32 fcoder_metacmd_ID_duplicate_line = 105; -static i32 fcoder_metacmd_ID_delete_line = 106; -static i32 fcoder_metacmd_ID_open_file_in_quotes = 107; -static i32 fcoder_metacmd_ID_open_matching_file_cpp = 108; -static i32 fcoder_metacmd_ID_view_buffer_other_panel = 109; -static i32 fcoder_metacmd_ID_swap_panels = 110; -static i32 fcoder_metacmd_ID_kill_buffer = 111; -static i32 fcoder_metacmd_ID_save = 112; -static i32 fcoder_metacmd_ID_reopen = 113; -static i32 fcoder_metacmd_ID_undo = 114; -static i32 fcoder_metacmd_ID_redo = 115; -static i32 fcoder_metacmd_ID_undo_all_buffers = 116; -static i32 fcoder_metacmd_ID_redo_all_buffers = 117; -static i32 fcoder_metacmd_ID_open_in_other = 118; -static i32 fcoder_metacmd_ID_default_file_externally_modified = 119; -static i32 fcoder_metacmd_ID_set_eol_mode_to_crlf = 120; -static i32 fcoder_metacmd_ID_set_eol_mode_to_lf = 121; -static i32 fcoder_metacmd_ID_set_eol_mode_to_binary = 122; -static i32 fcoder_metacmd_ID_set_eol_mode_from_contents = 123; -static i32 fcoder_metacmd_ID_interactive_switch_buffer = 124; -static i32 fcoder_metacmd_ID_interactive_kill_buffer = 125; -static i32 fcoder_metacmd_ID_interactive_open_or_new = 126; -static i32 fcoder_metacmd_ID_interactive_new = 127; -static i32 fcoder_metacmd_ID_interactive_open = 128; -static i32 fcoder_metacmd_ID_command_lister = 129; -static i32 fcoder_metacmd_ID_auto_indent_whole_file = 130; -static i32 fcoder_metacmd_ID_auto_indent_line_at_cursor = 131; -static i32 fcoder_metacmd_ID_auto_indent_range = 132; -static i32 fcoder_metacmd_ID_write_text_and_auto_indent = 133; -static i32 fcoder_metacmd_ID_list_all_locations = 134; -static i32 fcoder_metacmd_ID_list_all_substring_locations = 135; -static i32 fcoder_metacmd_ID_list_all_locations_case_insensitive = 136; -static i32 fcoder_metacmd_ID_list_all_substring_locations_case_insensitive = 137; -static i32 fcoder_metacmd_ID_list_all_locations_of_identifier = 138; -static i32 fcoder_metacmd_ID_list_all_locations_of_identifier_case_insensitive = 139; -static i32 fcoder_metacmd_ID_list_all_locations_of_selection = 140; -static i32 fcoder_metacmd_ID_list_all_locations_of_selection_case_insensitive = 141; -static i32 fcoder_metacmd_ID_list_all_locations_of_type_definition = 142; -static i32 fcoder_metacmd_ID_list_all_locations_of_type_definition_of_identifier = 143; -static i32 fcoder_metacmd_ID_word_complete = 144; -static i32 fcoder_metacmd_ID_word_complete_drop_down = 145; -static i32 fcoder_metacmd_ID_goto_jump_at_cursor = 146; -static i32 fcoder_metacmd_ID_goto_jump_at_cursor_same_panel = 147; -static i32 fcoder_metacmd_ID_goto_next_jump = 148; -static i32 fcoder_metacmd_ID_goto_prev_jump = 149; -static i32 fcoder_metacmd_ID_goto_next_jump_no_skips = 150; -static i32 fcoder_metacmd_ID_goto_prev_jump_no_skips = 151; -static i32 fcoder_metacmd_ID_goto_first_jump = 152; -static i32 fcoder_metacmd_ID_goto_first_jump_same_panel_sticky = 153; -static i32 fcoder_metacmd_ID_if_read_only_goto_position = 154; -static i32 fcoder_metacmd_ID_if_read_only_goto_position_same_panel = 155; -static i32 fcoder_metacmd_ID_view_jump_list_with_lister = 156; -static i32 fcoder_metacmd_ID_show_the_log_graph = 157; -static i32 fcoder_metacmd_ID_copy = 158; -static i32 fcoder_metacmd_ID_cut = 159; -static i32 fcoder_metacmd_ID_paste = 160; -static i32 fcoder_metacmd_ID_paste_next = 161; -static i32 fcoder_metacmd_ID_paste_and_indent = 162; -static i32 fcoder_metacmd_ID_paste_next_and_indent = 163; -static i32 fcoder_metacmd_ID_keyboard_macro_start_recording = 164; -static i32 fcoder_metacmd_ID_keyboard_macro_finish_recording = 165; -static i32 fcoder_metacmd_ID_keyboard_macro_replay = 166; -static i32 fcoder_metacmd_ID_execute_previous_cli = 167; -static i32 fcoder_metacmd_ID_execute_any_cli = 168; -static i32 fcoder_metacmd_ID_build_search = 169; -static i32 fcoder_metacmd_ID_build_in_build_panel = 170; -static i32 fcoder_metacmd_ID_close_build_panel = 171; -static i32 fcoder_metacmd_ID_change_to_build_panel = 172; -static i32 fcoder_metacmd_ID_close_all_code = 173; -static i32 fcoder_metacmd_ID_open_all_code = 174; -static i32 fcoder_metacmd_ID_open_all_code_recursive = 175; -static i32 fcoder_metacmd_ID_load_project = 176; -static i32 fcoder_metacmd_ID_project_fkey_command = 177; -static i32 fcoder_metacmd_ID_project_go_to_root_directory = 178; -static i32 fcoder_metacmd_ID_setup_new_project = 179; -static i32 fcoder_metacmd_ID_setup_build_bat = 180; -static i32 fcoder_metacmd_ID_setup_build_sh = 181; -static i32 fcoder_metacmd_ID_setup_build_bat_and_sh = 182; -static i32 fcoder_metacmd_ID_project_command_lister = 183; -static i32 fcoder_metacmd_ID_list_all_functions_current_buffer = 184; -static i32 fcoder_metacmd_ID_list_all_functions_current_buffer_lister = 185; -static i32 fcoder_metacmd_ID_list_all_functions_all_buffers = 186; -static i32 fcoder_metacmd_ID_list_all_functions_all_buffers_lister = 187; -static i32 fcoder_metacmd_ID_select_surrounding_scope = 188; -static i32 fcoder_metacmd_ID_select_surrounding_scope_maximal = 189; -static i32 fcoder_metacmd_ID_select_next_scope_absolute = 190; -static i32 fcoder_metacmd_ID_select_next_scope_after_current = 191; -static i32 fcoder_metacmd_ID_select_prev_scope_absolute = 192; -static i32 fcoder_metacmd_ID_select_prev_top_most_scope = 193; -static i32 fcoder_metacmd_ID_place_in_scope = 194; -static i32 fcoder_metacmd_ID_delete_current_scope = 195; -static i32 fcoder_metacmd_ID_open_long_braces = 196; -static i32 fcoder_metacmd_ID_open_long_braces_semicolon = 197; -static i32 fcoder_metacmd_ID_open_long_braces_break = 198; -static i32 fcoder_metacmd_ID_if0_off = 199; -static i32 fcoder_metacmd_ID_write_todo = 200; -static i32 fcoder_metacmd_ID_write_hack = 201; -static i32 fcoder_metacmd_ID_write_note = 202; -static i32 fcoder_metacmd_ID_write_block = 203; -static i32 fcoder_metacmd_ID_write_zero_struct = 204; -static i32 fcoder_metacmd_ID_comment_line = 205; -static i32 fcoder_metacmd_ID_uncomment_line = 206; -static i32 fcoder_metacmd_ID_comment_line_toggle = 207; -static i32 fcoder_metacmd_ID_snippet_lister = 208; -static i32 fcoder_metacmd_ID_miblo_increment_basic = 209; -static i32 fcoder_metacmd_ID_miblo_decrement_basic = 210; -static i32 fcoder_metacmd_ID_miblo_increment_time_stamp = 211; -static i32 fcoder_metacmd_ID_miblo_decrement_time_stamp = 212; -static i32 fcoder_metacmd_ID_miblo_increment_time_stamp_minute = 213; -static i32 fcoder_metacmd_ID_miblo_decrement_time_stamp_minute = 214; -static i32 fcoder_metacmd_ID_profile_inspect = 215; -static i32 fcoder_metacmd_ID_kill_tutorial = 216; -static i32 fcoder_metacmd_ID_tutorial_maximize = 217; -static i32 fcoder_metacmd_ID_tutorial_minimize = 218; -static i32 fcoder_metacmd_ID_hms_demo_tutorial = 219; -static i32 fcoder_metacmd_ID_default_startup = 220; -static i32 fcoder_metacmd_ID_default_try_exit = 221; +static i32 fcoder_metacmd_ID_save_all_dirty_buffers = 15; +static i32 fcoder_metacmd_ID_suppress_mouse = 16; +static i32 fcoder_metacmd_ID_allow_mouse = 17; +static i32 fcoder_metacmd_ID_toggle_mouse = 18; +static i32 fcoder_metacmd_ID_set_mode_to_original = 19; +static i32 fcoder_metacmd_ID_set_mode_to_notepad_like = 20; +static i32 fcoder_metacmd_ID_toggle_highlight_line_at_cursor = 21; +static i32 fcoder_metacmd_ID_toggle_highlight_enclosing_scopes = 22; +static i32 fcoder_metacmd_ID_toggle_paren_matching_helper = 23; +static i32 fcoder_metacmd_ID_toggle_fullscreen = 24; +static i32 fcoder_metacmd_ID_load_themes_default_folder = 25; +static i32 fcoder_metacmd_ID_load_themes_hot_directory = 26; +static i32 fcoder_metacmd_ID_clear_all_themes = 27; +static i32 fcoder_metacmd_ID_write_text_input = 28; +static i32 fcoder_metacmd_ID_write_space = 29; +static i32 fcoder_metacmd_ID_write_underscore = 30; +static i32 fcoder_metacmd_ID_delete_char = 31; +static i32 fcoder_metacmd_ID_backspace_char = 32; +static i32 fcoder_metacmd_ID_set_mark = 33; +static i32 fcoder_metacmd_ID_cursor_mark_swap = 34; +static i32 fcoder_metacmd_ID_delete_range = 35; +static i32 fcoder_metacmd_ID_backspace_alpha_numeric_boundary = 36; +static i32 fcoder_metacmd_ID_delete_alpha_numeric_boundary = 37; +static i32 fcoder_metacmd_ID_snipe_backward_whitespace_or_token_boundary = 38; +static i32 fcoder_metacmd_ID_snipe_forward_whitespace_or_token_boundary = 39; +static i32 fcoder_metacmd_ID_center_view = 40; +static i32 fcoder_metacmd_ID_left_adjust_view = 41; +static i32 fcoder_metacmd_ID_click_set_cursor_and_mark = 42; +static i32 fcoder_metacmd_ID_click_set_cursor = 43; +static i32 fcoder_metacmd_ID_click_set_cursor_if_lbutton = 44; +static i32 fcoder_metacmd_ID_click_set_mark = 45; +static i32 fcoder_metacmd_ID_mouse_wheel_scroll = 46; +static i32 fcoder_metacmd_ID_move_up = 47; +static i32 fcoder_metacmd_ID_move_down = 48; +static i32 fcoder_metacmd_ID_move_up_10 = 49; +static i32 fcoder_metacmd_ID_move_down_10 = 50; +static i32 fcoder_metacmd_ID_move_down_textual = 51; +static i32 fcoder_metacmd_ID_page_up = 52; +static i32 fcoder_metacmd_ID_page_down = 53; +static i32 fcoder_metacmd_ID_move_up_to_blank_line = 54; +static i32 fcoder_metacmd_ID_move_down_to_blank_line = 55; +static i32 fcoder_metacmd_ID_move_up_to_blank_line_skip_whitespace = 56; +static i32 fcoder_metacmd_ID_move_down_to_blank_line_skip_whitespace = 57; +static i32 fcoder_metacmd_ID_move_up_to_blank_line_end = 58; +static i32 fcoder_metacmd_ID_move_down_to_blank_line_end = 59; +static i32 fcoder_metacmd_ID_move_left = 60; +static i32 fcoder_metacmd_ID_move_right = 61; +static i32 fcoder_metacmd_ID_move_right_whitespace_boundary = 62; +static i32 fcoder_metacmd_ID_move_left_whitespace_boundary = 63; +static i32 fcoder_metacmd_ID_move_right_token_boundary = 64; +static i32 fcoder_metacmd_ID_move_left_token_boundary = 65; +static i32 fcoder_metacmd_ID_move_right_whitespace_or_token_boundary = 66; +static i32 fcoder_metacmd_ID_move_left_whitespace_or_token_boundary = 67; +static i32 fcoder_metacmd_ID_move_right_alpha_numeric_boundary = 68; +static i32 fcoder_metacmd_ID_move_left_alpha_numeric_boundary = 69; +static i32 fcoder_metacmd_ID_move_right_alpha_numeric_or_camel_boundary = 70; +static i32 fcoder_metacmd_ID_move_left_alpha_numeric_or_camel_boundary = 71; +static i32 fcoder_metacmd_ID_select_all = 72; +static i32 fcoder_metacmd_ID_to_uppercase = 73; +static i32 fcoder_metacmd_ID_to_lowercase = 74; +static i32 fcoder_metacmd_ID_clean_all_lines = 75; +static i32 fcoder_metacmd_ID_basic_change_active_panel = 76; +static i32 fcoder_metacmd_ID_close_panel = 77; +static i32 fcoder_metacmd_ID_show_scrollbar = 78; +static i32 fcoder_metacmd_ID_hide_scrollbar = 79; +static i32 fcoder_metacmd_ID_show_filebar = 80; +static i32 fcoder_metacmd_ID_hide_filebar = 81; +static i32 fcoder_metacmd_ID_toggle_filebar = 82; +static i32 fcoder_metacmd_ID_toggle_fps_meter = 83; +static i32 fcoder_metacmd_ID_increase_face_size = 84; +static i32 fcoder_metacmd_ID_decrease_face_size = 85; +static i32 fcoder_metacmd_ID_mouse_wheel_change_face_size = 86; +static i32 fcoder_metacmd_ID_toggle_show_whitespace = 87; +static i32 fcoder_metacmd_ID_toggle_line_numbers = 88; +static i32 fcoder_metacmd_ID_toggle_line_wrap = 89; +static i32 fcoder_metacmd_ID_exit_4coder = 90; +static i32 fcoder_metacmd_ID_goto_line = 91; +static i32 fcoder_metacmd_ID_search = 92; +static i32 fcoder_metacmd_ID_reverse_search = 93; +static i32 fcoder_metacmd_ID_search_identifier = 94; +static i32 fcoder_metacmd_ID_reverse_search_identifier = 95; +static i32 fcoder_metacmd_ID_replace_in_range = 96; +static i32 fcoder_metacmd_ID_replace_in_buffer = 97; +static i32 fcoder_metacmd_ID_replace_in_all_buffers = 98; +static i32 fcoder_metacmd_ID_query_replace = 99; +static i32 fcoder_metacmd_ID_query_replace_identifier = 100; +static i32 fcoder_metacmd_ID_query_replace_selection = 101; +static i32 fcoder_metacmd_ID_delete_file_query = 102; +static i32 fcoder_metacmd_ID_save_to_query = 103; +static i32 fcoder_metacmd_ID_rename_file_query = 104; +static i32 fcoder_metacmd_ID_make_directory_query = 105; +static i32 fcoder_metacmd_ID_move_line_up = 106; +static i32 fcoder_metacmd_ID_move_line_down = 107; +static i32 fcoder_metacmd_ID_duplicate_line = 108; +static i32 fcoder_metacmd_ID_delete_line = 109; +static i32 fcoder_metacmd_ID_open_file_in_quotes = 110; +static i32 fcoder_metacmd_ID_open_matching_file_cpp = 111; +static i32 fcoder_metacmd_ID_view_buffer_other_panel = 112; +static i32 fcoder_metacmd_ID_swap_panels = 113; +static i32 fcoder_metacmd_ID_kill_buffer = 114; +static i32 fcoder_metacmd_ID_save = 115; +static i32 fcoder_metacmd_ID_reopen = 116; +static i32 fcoder_metacmd_ID_undo = 117; +static i32 fcoder_metacmd_ID_redo = 118; +static i32 fcoder_metacmd_ID_undo_all_buffers = 119; +static i32 fcoder_metacmd_ID_redo_all_buffers = 120; +static i32 fcoder_metacmd_ID_open_in_other = 121; +static i32 fcoder_metacmd_ID_default_file_externally_modified = 122; +static i32 fcoder_metacmd_ID_set_eol_mode_to_crlf = 123; +static i32 fcoder_metacmd_ID_set_eol_mode_to_lf = 124; +static i32 fcoder_metacmd_ID_set_eol_mode_to_binary = 125; +static i32 fcoder_metacmd_ID_set_eol_mode_from_contents = 126; +static i32 fcoder_metacmd_ID_interactive_switch_buffer = 127; +static i32 fcoder_metacmd_ID_interactive_kill_buffer = 128; +static i32 fcoder_metacmd_ID_interactive_open_or_new = 129; +static i32 fcoder_metacmd_ID_interactive_new = 130; +static i32 fcoder_metacmd_ID_interactive_open = 131; +static i32 fcoder_metacmd_ID_command_lister = 132; +static i32 fcoder_metacmd_ID_theme_lister = 133; +static i32 fcoder_metacmd_ID_auto_indent_whole_file = 134; +static i32 fcoder_metacmd_ID_auto_indent_line_at_cursor = 135; +static i32 fcoder_metacmd_ID_auto_indent_range = 136; +static i32 fcoder_metacmd_ID_write_text_and_auto_indent = 137; +static i32 fcoder_metacmd_ID_list_all_locations = 138; +static i32 fcoder_metacmd_ID_list_all_substring_locations = 139; +static i32 fcoder_metacmd_ID_list_all_locations_case_insensitive = 140; +static i32 fcoder_metacmd_ID_list_all_substring_locations_case_insensitive = 141; +static i32 fcoder_metacmd_ID_list_all_locations_of_identifier = 142; +static i32 fcoder_metacmd_ID_list_all_locations_of_identifier_case_insensitive = 143; +static i32 fcoder_metacmd_ID_list_all_locations_of_selection = 144; +static i32 fcoder_metacmd_ID_list_all_locations_of_selection_case_insensitive = 145; +static i32 fcoder_metacmd_ID_list_all_locations_of_type_definition = 146; +static i32 fcoder_metacmd_ID_list_all_locations_of_type_definition_of_identifier = 147; +static i32 fcoder_metacmd_ID_word_complete = 148; +static i32 fcoder_metacmd_ID_word_complete_drop_down = 149; +static i32 fcoder_metacmd_ID_goto_jump_at_cursor = 150; +static i32 fcoder_metacmd_ID_goto_jump_at_cursor_same_panel = 151; +static i32 fcoder_metacmd_ID_goto_next_jump = 152; +static i32 fcoder_metacmd_ID_goto_prev_jump = 153; +static i32 fcoder_metacmd_ID_goto_next_jump_no_skips = 154; +static i32 fcoder_metacmd_ID_goto_prev_jump_no_skips = 155; +static i32 fcoder_metacmd_ID_goto_first_jump = 156; +static i32 fcoder_metacmd_ID_goto_first_jump_same_panel_sticky = 157; +static i32 fcoder_metacmd_ID_if_read_only_goto_position = 158; +static i32 fcoder_metacmd_ID_if_read_only_goto_position_same_panel = 159; +static i32 fcoder_metacmd_ID_view_jump_list_with_lister = 160; +static i32 fcoder_metacmd_ID_show_the_log_graph = 161; +static i32 fcoder_metacmd_ID_copy = 162; +static i32 fcoder_metacmd_ID_cut = 163; +static i32 fcoder_metacmd_ID_paste = 164; +static i32 fcoder_metacmd_ID_paste_next = 165; +static i32 fcoder_metacmd_ID_paste_and_indent = 166; +static i32 fcoder_metacmd_ID_paste_next_and_indent = 167; +static i32 fcoder_metacmd_ID_keyboard_macro_start_recording = 168; +static i32 fcoder_metacmd_ID_keyboard_macro_finish_recording = 169; +static i32 fcoder_metacmd_ID_keyboard_macro_replay = 170; +static i32 fcoder_metacmd_ID_execute_previous_cli = 171; +static i32 fcoder_metacmd_ID_execute_any_cli = 172; +static i32 fcoder_metacmd_ID_build_search = 173; +static i32 fcoder_metacmd_ID_build_in_build_panel = 174; +static i32 fcoder_metacmd_ID_close_build_panel = 175; +static i32 fcoder_metacmd_ID_change_to_build_panel = 176; +static i32 fcoder_metacmd_ID_close_all_code = 177; +static i32 fcoder_metacmd_ID_open_all_code = 178; +static i32 fcoder_metacmd_ID_open_all_code_recursive = 179; +static i32 fcoder_metacmd_ID_load_project = 180; +static i32 fcoder_metacmd_ID_project_fkey_command = 181; +static i32 fcoder_metacmd_ID_project_go_to_root_directory = 182; +static i32 fcoder_metacmd_ID_setup_new_project = 183; +static i32 fcoder_metacmd_ID_setup_build_bat = 184; +static i32 fcoder_metacmd_ID_setup_build_sh = 185; +static i32 fcoder_metacmd_ID_setup_build_bat_and_sh = 186; +static i32 fcoder_metacmd_ID_project_command_lister = 187; +static i32 fcoder_metacmd_ID_list_all_functions_current_buffer = 188; +static i32 fcoder_metacmd_ID_list_all_functions_current_buffer_lister = 189; +static i32 fcoder_metacmd_ID_list_all_functions_all_buffers = 190; +static i32 fcoder_metacmd_ID_list_all_functions_all_buffers_lister = 191; +static i32 fcoder_metacmd_ID_select_surrounding_scope = 192; +static i32 fcoder_metacmd_ID_select_surrounding_scope_maximal = 193; +static i32 fcoder_metacmd_ID_select_next_scope_absolute = 194; +static i32 fcoder_metacmd_ID_select_next_scope_after_current = 195; +static i32 fcoder_metacmd_ID_select_prev_scope_absolute = 196; +static i32 fcoder_metacmd_ID_select_prev_top_most_scope = 197; +static i32 fcoder_metacmd_ID_place_in_scope = 198; +static i32 fcoder_metacmd_ID_delete_current_scope = 199; +static i32 fcoder_metacmd_ID_open_long_braces = 200; +static i32 fcoder_metacmd_ID_open_long_braces_semicolon = 201; +static i32 fcoder_metacmd_ID_open_long_braces_break = 202; +static i32 fcoder_metacmd_ID_if0_off = 203; +static i32 fcoder_metacmd_ID_write_todo = 204; +static i32 fcoder_metacmd_ID_write_hack = 205; +static i32 fcoder_metacmd_ID_write_note = 206; +static i32 fcoder_metacmd_ID_write_block = 207; +static i32 fcoder_metacmd_ID_write_zero_struct = 208; +static i32 fcoder_metacmd_ID_comment_line = 209; +static i32 fcoder_metacmd_ID_uncomment_line = 210; +static i32 fcoder_metacmd_ID_comment_line_toggle = 211; +static i32 fcoder_metacmd_ID_snippet_lister = 212; +static i32 fcoder_metacmd_ID_miblo_increment_basic = 213; +static i32 fcoder_metacmd_ID_miblo_decrement_basic = 214; +static i32 fcoder_metacmd_ID_miblo_increment_time_stamp = 215; +static i32 fcoder_metacmd_ID_miblo_decrement_time_stamp = 216; +static i32 fcoder_metacmd_ID_miblo_increment_time_stamp_minute = 217; +static i32 fcoder_metacmd_ID_miblo_decrement_time_stamp_minute = 218; +static i32 fcoder_metacmd_ID_profile_inspect = 219; +static i32 fcoder_metacmd_ID_kill_tutorial = 220; +static i32 fcoder_metacmd_ID_tutorial_maximize = 221; +static i32 fcoder_metacmd_ID_tutorial_minimize = 222; +static i32 fcoder_metacmd_ID_hms_demo_tutorial = 223; +static i32 fcoder_metacmd_ID_default_startup = 224; +static i32 fcoder_metacmd_ID_default_try_exit = 225; #endif diff --git a/custom/generated/custom_api.cpp b/custom/generated/custom_api.cpp index fa55a258..7bad261e 100644 --- a/custom/generated/custom_api.cpp +++ b/custom/generated/custom_api.cpp @@ -110,6 +110,7 @@ vtable->managed_scope_clear_self_all_dependent_scopes = managed_scope_clear_self vtable->managed_scope_allocator = managed_scope_allocator; vtable->managed_id_group_highest_id = managed_id_group_highest_id; vtable->managed_id_declare = managed_id_declare; +vtable->managed_id_get = managed_id_get; vtable->managed_scope_get_attachment = managed_scope_get_attachment; vtable->managed_scope_attachment_erase = managed_scope_attachment_erase; vtable->alloc_managed_memory_in_scope = alloc_managed_memory_in_scope; @@ -292,6 +293,7 @@ managed_scope_clear_self_all_dependent_scopes = vtable->managed_scope_clear_self managed_scope_allocator = vtable->managed_scope_allocator; managed_id_group_highest_id = vtable->managed_id_group_highest_id; managed_id_declare = vtable->managed_id_declare; +managed_id_get = vtable->managed_id_get; managed_scope_get_attachment = vtable->managed_scope_get_attachment; managed_scope_attachment_erase = vtable->managed_scope_attachment_erase; alloc_managed_memory_in_scope = vtable->alloc_managed_memory_in_scope; diff --git a/custom/generated/custom_api.h b/custom/generated/custom_api.h index ebe13f2f..9feacae4 100644 --- a/custom/generated/custom_api.h +++ b/custom/generated/custom_api.h @@ -108,6 +108,7 @@ #define custom_managed_scope_allocator_sig() Base_Allocator* custom_managed_scope_allocator(Application_Links* app, Managed_Scope scope) #define custom_managed_id_group_highest_id_sig() u64 custom_managed_id_group_highest_id(Application_Links* app, String_Const_u8 group) #define custom_managed_id_declare_sig() Managed_ID custom_managed_id_declare(Application_Links* app, String_Const_u8 group, String_Const_u8 name) +#define custom_managed_id_get_sig() Managed_ID custom_managed_id_get(Application_Links* app, String_Const_u8 group, String_Const_u8 name) #define custom_managed_scope_get_attachment_sig() void* custom_managed_scope_get_attachment(Application_Links* app, Managed_Scope scope, Managed_ID id, umem size) #define custom_managed_scope_attachment_erase_sig() void* custom_managed_scope_attachment_erase(Application_Links* app, Managed_Scope scope, Managed_ID id) #define custom_alloc_managed_memory_in_scope_sig() Managed_Object custom_alloc_managed_memory_in_scope(Application_Links* app, Managed_Scope scope, i32 item_size, i32 count) @@ -286,6 +287,7 @@ typedef b32 custom_managed_scope_clear_self_all_dependent_scopes_type(Applicatio typedef Base_Allocator* custom_managed_scope_allocator_type(Application_Links* app, Managed_Scope scope); typedef u64 custom_managed_id_group_highest_id_type(Application_Links* app, String_Const_u8 group); typedef Managed_ID custom_managed_id_declare_type(Application_Links* app, String_Const_u8 group, String_Const_u8 name); +typedef Managed_ID custom_managed_id_get_type(Application_Links* app, String_Const_u8 group, String_Const_u8 name); typedef void* custom_managed_scope_get_attachment_type(Application_Links* app, Managed_Scope scope, Managed_ID id, umem size); typedef void* custom_managed_scope_attachment_erase_type(Application_Links* app, Managed_Scope scope, Managed_ID id); typedef Managed_Object custom_alloc_managed_memory_in_scope_type(Application_Links* app, Managed_Scope scope, i32 item_size, i32 count); @@ -465,6 +467,7 @@ custom_managed_scope_clear_self_all_dependent_scopes_type *managed_scope_clear_s custom_managed_scope_allocator_type *managed_scope_allocator; custom_managed_id_group_highest_id_type *managed_id_group_highest_id; custom_managed_id_declare_type *managed_id_declare; +custom_managed_id_get_type *managed_id_get; custom_managed_scope_get_attachment_type *managed_scope_get_attachment; custom_managed_scope_attachment_erase_type *managed_scope_attachment_erase; custom_alloc_managed_memory_in_scope_type *alloc_managed_memory_in_scope; @@ -645,6 +648,7 @@ internal b32 managed_scope_clear_self_all_dependent_scopes(Application_Links* ap internal Base_Allocator* managed_scope_allocator(Application_Links* app, Managed_Scope scope); internal u64 managed_id_group_highest_id(Application_Links* app, String_Const_u8 group); internal Managed_ID managed_id_declare(Application_Links* app, String_Const_u8 group, String_Const_u8 name); +internal Managed_ID managed_id_get(Application_Links* app, String_Const_u8 group, String_Const_u8 name); internal void* managed_scope_get_attachment(Application_Links* app, Managed_Scope scope, Managed_ID id, umem size); internal void* managed_scope_attachment_erase(Application_Links* app, Managed_Scope scope, Managed_ID id); internal Managed_Object alloc_managed_memory_in_scope(Application_Links* app, Managed_Scope scope, i32 item_size, i32 count); @@ -825,6 +829,7 @@ global custom_managed_scope_clear_self_all_dependent_scopes_type *managed_scope_ global custom_managed_scope_allocator_type *managed_scope_allocator = 0; global custom_managed_id_group_highest_id_type *managed_id_group_highest_id = 0; global custom_managed_id_declare_type *managed_id_declare = 0; +global custom_managed_id_get_type *managed_id_get = 0; global custom_managed_scope_get_attachment_type *managed_scope_get_attachment = 0; global custom_managed_scope_attachment_erase_type *managed_scope_attachment_erase = 0; global custom_alloc_managed_memory_in_scope_type *alloc_managed_memory_in_scope = 0; diff --git a/custom/generated/custom_api_master_list.h b/custom/generated/custom_api_master_list.h index 94a247f5..9769051e 100644 --- a/custom/generated/custom_api_master_list.h +++ b/custom/generated/custom_api_master_list.h @@ -108,6 +108,7 @@ api(custom) function b32 managed_scope_clear_self_all_dependent_scopes(Applicati api(custom) function Base_Allocator* managed_scope_allocator(Application_Links* app, Managed_Scope scope); api(custom) function u64 managed_id_group_highest_id(Application_Links* app, String_Const_u8 group); api(custom) function Managed_ID managed_id_declare(Application_Links* app, String_Const_u8 group, String_Const_u8 name); +api(custom) function Managed_ID managed_id_get(Application_Links* app, String_Const_u8 group, String_Const_u8 name); api(custom) function void* managed_scope_get_attachment(Application_Links* app, Managed_Scope scope, Managed_ID id, umem size); api(custom) function void* managed_scope_attachment_erase(Application_Links* app, Managed_Scope scope, Managed_ID id); api(custom) function Managed_Object alloc_managed_memory_in_scope(Application_Links* app, Managed_Scope scope, i32 item_size, i32 count); diff --git a/custom/generated/managed_id_metadata.cpp b/custom/generated/managed_id_metadata.cpp index 79b9b4ef..c0df4ce7 100644 --- a/custom/generated/managed_id_metadata.cpp +++ b/custom/generated/managed_id_metadata.cpp @@ -54,4 +54,7 @@ buffer_lex_task = managed_id_declare(app, string_u8_litexpr("attachment"), strin buffer_wrap_lines = managed_id_declare(app, string_u8_litexpr("attachment"), string_u8_litexpr("buffer_wrap_lines")); sticky_jump_marker_handle = managed_id_declare(app, string_u8_litexpr("attachment"), string_u8_litexpr("sticky_jump_marker_handle")); attachment_tokens = managed_id_declare(app, string_u8_litexpr("attachment"), string_u8_litexpr("attachment_tokens")); +mapid_global = managed_id_declare(app, string_u8_litexpr("command_map"), string_u8_litexpr("mapid_global")); +mapid_file = managed_id_declare(app, string_u8_litexpr("command_map"), string_u8_litexpr("mapid_file")); +mapid_code = managed_id_declare(app, string_u8_litexpr("command_map"), string_u8_litexpr("mapid_code")); } diff --git a/custom/generated/remapping.h b/custom/generated/remapping.h deleted file mode 100644 index cd4faeb6..00000000 --- a/custom/generated/remapping.h +++ /dev/null @@ -1,161 +0,0 @@ -/* - * nonsense remapping.h file gotta remove it before I ship hopefully - */ - -#if defined(CUSTOM_COMMAND_SIG) - -function void -setup_default_mapping(Mapping *mapping){ - MappingScope(); - SelectMapping(mapping); - - SelectMap(mapid_global); - BindCore(default_startup , CoreCode_Startup); - BindCore(default_try_exit, CoreCode_TryExit); - Bind(keyboard_macro_start_recording , KeyCode_U, KeyCode_Control); - Bind(keyboard_macro_finish_recording, KeyCode_U, KeyCode_Control, KeyCode_Shift); - Bind(keyboard_macro_replay, KeyCode_U, KeyCode_Alt); - Bind(change_active_panel, KeyCode_Comma, KeyCode_Control); - Bind(change_active_panel_backwards, KeyCode_Comma, KeyCode_Control, KeyCode_Shift); - Bind(interactive_new, KeyCode_N, KeyCode_Control); - Bind(interactive_open_or_new, KeyCode_O, KeyCode_Control); - Bind(open_in_other, KeyCode_O, KeyCode_Alt); - Bind(interactive_kill_buffer, KeyCode_K, KeyCode_Control); - Bind(interactive_switch_buffer, KeyCode_I, KeyCode_Control); - Bind(project_go_to_root_directory, KeyCode_H, KeyCode_Control); - Bind(save_all_dirty_buffers, KeyCode_S, KeyCode_Control, KeyCode_Shift); - Bind(change_to_build_panel, KeyCode_Period, KeyCode_Alt); - Bind(close_build_panel, KeyCode_Comma, KeyCode_Alt); - Bind(goto_next_jump, KeyCode_N, KeyCode_Alt); - Bind(goto_prev_jump, KeyCode_N, KeyCode_Alt, KeyCode_Shift); - Bind(build_in_build_panel, KeyCode_M, KeyCode_Alt); - Bind(goto_first_jump, KeyCode_M, KeyCode_Alt, KeyCode_Shift); - Bind(toggle_filebar, KeyCode_B, KeyCode_Alt); - Bind(execute_any_cli, KeyCode_Z, KeyCode_Alt); - Bind(execute_previous_cli, KeyCode_Z, KeyCode_Alt, KeyCode_Shift); - Bind(command_lister, KeyCode_X, KeyCode_Alt); - Bind(project_command_lister, KeyCode_X, KeyCode_Alt, KeyCode_Shift); - Bind(list_all_functions_current_buffer, KeyCode_I, KeyCode_Control, KeyCode_Shift); - Bind(project_fkey_command, KeyCode_F1); - Bind(project_fkey_command, KeyCode_F2); - Bind(project_fkey_command, KeyCode_F3); - Bind(project_fkey_command, KeyCode_F4); - Bind(project_fkey_command, KeyCode_F5); - Bind(project_fkey_command, KeyCode_F6); - Bind(project_fkey_command, KeyCode_F7); - Bind(project_fkey_command, KeyCode_F8); - Bind(project_fkey_command, KeyCode_F9); - Bind(project_fkey_command, KeyCode_F10); - Bind(project_fkey_command, KeyCode_F11); - Bind(project_fkey_command, KeyCode_F12); - Bind(project_fkey_command, KeyCode_F13); - Bind(project_fkey_command, KeyCode_F14); - Bind(project_fkey_command, KeyCode_F15); - Bind(project_fkey_command, KeyCode_F16); - Bind(exit_4coder, KeyCode_F4, KeyCode_Alt); - BindMouseWheel(mouse_wheel_scroll); - BindMouseWheel(mouse_wheel_change_face_size, KeyCode_Control); - - SelectMap(mapid_file); - ParentMap(mapid_global); - BindTextInput(write_text_input); - BindMouse(click_set_cursor_and_mark, MouseCode_Left); - BindMouseRelease(click_set_cursor, MouseCode_Left); - BindCore(click_set_cursor_and_mark, CoreCode_ClickActivateView); - BindMouseMove(click_set_cursor_if_lbutton); - Bind(delete_char, KeyCode_Delete); - Bind(backspace_char, KeyCode_Backspace); - Bind(move_up, KeyCode_Up); - Bind(move_down, KeyCode_Down); - Bind(move_left, KeyCode_Left); - Bind(move_right, KeyCode_Right); - Bind(seek_end_of_line, KeyCode_End); - Bind(seek_beginning_of_line, KeyCode_Home); - Bind(page_up, KeyCode_PageUp); - Bind(page_down, KeyCode_PageDown); - Bind(goto_beginning_of_file, KeyCode_PageUp, KeyCode_Control); - Bind(goto_end_of_file, KeyCode_PageDown, KeyCode_Control); - Bind(move_up_to_blank_line_end, KeyCode_Up, KeyCode_Control); - Bind(move_down_to_blank_line_end, KeyCode_Down, KeyCode_Control); - Bind(move_left_whitespace_boundary, KeyCode_Left, KeyCode_Control); - Bind(move_right_whitespace_boundary, KeyCode_Right, KeyCode_Control); - Bind(move_line_up, KeyCode_Up, KeyCode_Alt); - Bind(move_line_down, KeyCode_Down, KeyCode_Alt); - Bind(backspace_alpha_numeric_boundary, KeyCode_Backspace, KeyCode_Control); - Bind(delete_alpha_numeric_boundary, KeyCode_Delete, KeyCode_Control); - Bind(snipe_backward_whitespace_or_token_boundary, KeyCode_Backspace, KeyCode_Alt); - Bind(snipe_forward_whitespace_or_token_boundary, KeyCode_Delete, KeyCode_Alt); - Bind(set_mark, KeyCode_Space, KeyCode_Control); - Bind(replace_in_range, KeyCode_A, KeyCode_Control); - Bind(copy, KeyCode_C, KeyCode_Control); - Bind(delete_range, KeyCode_D, KeyCode_Control); - Bind(delete_line, KeyCode_D, KeyCode_Control, KeyCode_Shift); - Bind(center_view, KeyCode_E, KeyCode_Control); - Bind(left_adjust_view, KeyCode_E, KeyCode_Control, KeyCode_Shift); - Bind(search, KeyCode_F, KeyCode_Control); - Bind(list_all_locations, KeyCode_F, KeyCode_Control, KeyCode_Shift); - Bind(list_all_substring_locations_case_insensitive, KeyCode_F, KeyCode_Alt); - Bind(goto_line, KeyCode_G, KeyCode_Control); - Bind(list_all_locations_of_selection, KeyCode_G, KeyCode_Control, KeyCode_Shift); - Bind(snippet_lister, KeyCode_J, KeyCode_Control); - Bind(kill_buffer, KeyCode_K, KeyCode_Control, KeyCode_Shift); - Bind(duplicate_line, KeyCode_L, KeyCode_Control); - Bind(cursor_mark_swap, KeyCode_M, KeyCode_Control); - Bind(reopen, KeyCode_O, KeyCode_Control, KeyCode_Shift); - Bind(query_replace, KeyCode_Q, KeyCode_Control); - Bind(query_replace_identifier, KeyCode_Q, KeyCode_Control, KeyCode_Shift); - Bind(query_replace_selection, KeyCode_Q, KeyCode_Alt); - Bind(reverse_search, KeyCode_R, KeyCode_Control); - Bind(save, KeyCode_S, KeyCode_Control); - Bind(save_all_dirty_buffers, KeyCode_S, KeyCode_Control, KeyCode_Shift); - Bind(search_identifier, KeyCode_T, KeyCode_Control); - Bind(list_all_locations_of_identifier, KeyCode_T, KeyCode_Control, KeyCode_Shift); - Bind(paste_and_indent, KeyCode_V, KeyCode_Control); - Bind(paste_next_and_indent, KeyCode_V, KeyCode_Control, KeyCode_Shift); - Bind(cut, KeyCode_X, KeyCode_Control); - Bind(redo, KeyCode_Y, KeyCode_Control); - Bind(undo, KeyCode_Z, KeyCode_Control); - Bind(view_buffer_other_panel, KeyCode_1, KeyCode_Control); - Bind(swap_panels, KeyCode_2, KeyCode_Control); - Bind(if_read_only_goto_position, KeyCode_Return); - Bind(if_read_only_goto_position_same_panel, KeyCode_Return, KeyCode_Shift); - Bind(view_jump_list_with_lister, KeyCode_Period, KeyCode_Control, KeyCode_Shift); - - SelectMap(default_code_map); - ParentMap(mapid_file); - BindTextInput(write_text_and_auto_indent); - Bind(move_left_alpha_numeric_boundary, KeyCode_Left, KeyCode_Control); - Bind(move_right_alpha_numeric_boundary, KeyCode_Right, KeyCode_Control); - Bind(move_left_alpha_numeric_or_camel_boundary, KeyCode_Left, KeyCode_Alt); - Bind(move_right_alpha_numeric_or_camel_boundary, KeyCode_Right, KeyCode_Alt); - Bind(comment_line_toggle, KeyCode_Semicolon, KeyCode_Control); - Bind(word_complete, KeyCode_Tab); - Bind(auto_indent_range, KeyCode_Tab, KeyCode_Control); - Bind(auto_indent_line_at_cursor, KeyCode_Tab, KeyCode_Shift); - Bind(word_complete_drop_down, KeyCode_Tab, KeyCode_Shift, KeyCode_Control); - Bind(write_block, KeyCode_R, KeyCode_Alt); - Bind(write_todo, KeyCode_T, KeyCode_Alt); - Bind(write_note, KeyCode_Y, KeyCode_Alt); - Bind(list_all_locations_of_type_definition, KeyCode_D, KeyCode_Alt); - Bind(list_all_locations_of_type_definition_of_identifier, KeyCode_T, KeyCode_Alt, KeyCode_Shift); - Bind(open_long_braces, KeyCode_LeftBracket, KeyCode_Control); - Bind(open_long_braces_semicolon, KeyCode_LeftBracket, KeyCode_Control, KeyCode_Shift); - Bind(open_long_braces_break, KeyCode_RightBracket, KeyCode_Control, KeyCode_Shift); - Bind(select_surrounding_scope, KeyCode_LeftBracket, KeyCode_Alt); - Bind(select_surrounding_scope_maximal, KeyCode_LeftBracket, KeyCode_Alt, KeyCode_Shift); - Bind(select_prev_scope_absolute, KeyCode_RightBracket, KeyCode_Alt); - Bind(select_prev_top_most_scope, KeyCode_RightBracket, KeyCode_Alt, KeyCode_Shift); - Bind(select_next_scope_absolute, KeyCode_Quote, KeyCode_Alt); - Bind(select_next_scope_after_current, KeyCode_Quote, KeyCode_Alt, KeyCode_Shift); - Bind(place_in_scope, KeyCode_ForwardSlash, KeyCode_Alt); - Bind(delete_current_scope, KeyCode_Minus, KeyCode_Alt); - Bind(if0_off, KeyCode_I, KeyCode_Alt); - Bind(open_file_in_quotes, KeyCode_1, KeyCode_Alt); - Bind(open_matching_file_cpp, KeyCode_2, KeyCode_Alt); - Bind(write_zero_struct, KeyCode_0, KeyCode_Control); -} - -#endif - -// BOTTOM - diff --git a/ship_files/themes/theme-4coder.4coder b/ship_files/themes/theme-4coder.4coder index 02f63650..ad8da31d 100644 --- a/ship_files/themes/theme-4coder.4coder +++ b/ship_files/themes/theme-4coder.4coder @@ -1,49 +1,43 @@ -name = "4coder"; -Back = 0xFF0C0C0C; -Margin = 0xFF181818; -Margin_Hover = 0xFF252525; -Margin_Active = 0xFF323232; -List_Item = Margin; -List_Item_Hover = Margin_Hover; -List_Item_Active = Margin_Active; -Cursor = 0xFF00EE00; -At_Cursor = Back; -Highlight_Cursor_Line = 0xFF1E1E1E; -Highlight = 0xFFDDEE00; -Mark = 0xFF494949; -Default = 0xFF90B080; -At_Highlight = 0xFFFF44DD; -Comment = 0xFF2090F0; -Keyword = 0xFFD08F20; -Str_Constant = 0xFF50FF30; -Char_Constant = Str_Constant; -Int_Constant = Str_Constant; -Float_Constant = Str_Constant; -Bool_Constant = Str_Constant; -Include = Str_Constant; -Preproc = Default; -Special_Character = 0xFFFF0000; -Ghost_Character = 0xFF4E5E46; +defcolor_back = 0xFF0C0C0C; +defcolor_margin = 0xFF181818; +defcolor_margin_hover = 0xFF252525; +defcolor_margin_active = 0xFF323232; +defcolor_list_item = defcolor_margin; +defcolor_list_item_hover = defcolor_margin_hover; +defcolor_list_item_active = defcolor_margin_active; +defcolor_cursor = 0xFF00EE00; +defcolor_at_cursor = defcolor_back; +defcolor_highlight_cursor_line = 0xFF1E1E1E; +defcolor_highlight = 0xFFDDEE00; +defcolor_mark = 0xFF494949; +defcolor_text_default = 0xFF90B080; +defcolor_at_highlight = 0xFFFF44DD; +defcolor_comment = 0xFF2090F0; +defcolor_comment_pop = {0xFF00A000, 0xFFA00000}; +defcolor_keyword = 0xFFD08F20; +defcolor_str_constant = 0xFF50FF30; +defcolor_char_constant = defcolor_str_constant; +defcolor_int_constant = defcolor_str_constant; +defcolor_float_constant = defcolor_str_constant; +defcolor_bool_constant = defcolor_str_constant; +defcolor_include = defcolor_str_constant; +defcolor_preproc = defcolor_text_default; +defcolor_special_character = 0xFFFF0000; +defcolor_ghost_character = 0xFF4E5E46; -Paste = 0xFFDDEE00; +defcolor_paste = 0xFFDDEE00; -Undo = 0xFF00DDEE; +defcolor_undo = 0xFF00DDEE; -Highlight_Junk = 0xff3a0000; -Highlight_White = 0xff003a3a; +defcolor_highlight_junk = 0xff3a0000; +defcolor_highlight_white = 0xff003a3a; -Bar = 0xFF888888; -Bar_Active = 0xFF666666; -Base = 0xFF000000; -Pop1 = 0xFF3C57DC; -Pop2 = 0xFFFF0000; +defcolor_bar = 0xFF888888; +defcolor_bar_active = 0xFF666666; +defcolor_base = 0xFF000000; +defcolor_pop1 = 0xFF3C57DC; +defcolor_pop2 = 0xFFFF0000; -Back_Cycle_1 = 0x10A00000; -Back_Cycle_2 = 0x0C00A000; -Back_Cycle_3 = 0x0C0000A0; -Back_Cycle_4 = 0x0CA0A000; -Text_Cycle_1 = 0xFFA00000; -Text_Cycle_2 = 0xFF00A000; -Text_Cycle_3 = 0xFF0030B0; -Text_Cycle_4 = 0xFFA0A000; +defcolor_back_cycle = {0x10A00000, 0x0C00A000, 0x0C0000A0, 0x0CA0A000}; +defcolor_text_cycle = {0xFFA00000, 0xFF00A000, 0xFF0030B0, 0xFFA0A000}; diff --git a/ship_files/themes/theme-handmade-hero.4coder b/ship_files/themes/theme-handmade-hero.4coder index 19e60ad6..1a314b8d 100644 --- a/ship_files/themes/theme-handmade-hero.4coder +++ b/ship_files/themes/theme-handmade-hero.4coder @@ -1,54 +1,47 @@ // Created by: Casey Muratori -name = "Handmade Hero"; +defcolor_back = 0xFF161616; +defcolor_margin = 0xFF262626; +defcolor_margin_hover = 0xFF333333; +defcolor_margin_active = 0xFF404040; +defcolor_list_item = defcolor_margin; +defcolor_list_item_hover = defcolor_margin_hover; +defcolor_list_item_active = defcolor_margin_active; +defcolor_cursor = 0xFF40FF40; +defcolor_at_cursor = defcolor_back; +defcolor_highlight_cursor_line = 0xFF121E12; +defcolor_highlight = 0xFF703419; +defcolor_mark = 0xFF808080; +defcolor_text_default = 0xFFA08563; +defcolor_at_highlight = 0xFFCDAA7D; +defcolor_comment = 0xFF7D7D7D; +defcolor_comment_pop = {0xFF00A000, 0xFFA00000}; +defcolor_keyword = 0xFFCD950C; +defcolor_str_constant = 0xFF6B8E23; +defcolor_char_constant = defcolor_str_constant; +defcolor_int_constant = defcolor_str_constant; +defcolor_float_constant = defcolor_str_constant; +defcolor_bool_constant = defcolor_str_constant; +defcolor_include = defcolor_str_constant; +defcolor_preproc = 0xFFDAB98F; +defcolor_special_character = 0xFFFF0000; +defcolor_ghost_character = 0xFF5B4D3C; -Back = 0xFF161616; -Margin = 0xFF262626; -Margin_Hover = 0xFF333333; -Margin_Active = 0xFF404040; -List_Item = Margin; -List_Item_Hover = Margin_Hover; -List_Item_Active = Margin_Active; -Cursor = 0xFF40FF40; -At_Cursor = Back; -Highlight_Cursor_Line = 0xFF121E12; -Highlight = 0xFF703419; -Mark = 0xFF808080; -Default = 0xFFA08563; -At_Highlight = 0xFFCDAA7D; -Comment = 0xFF7D7D7D; -Keyword = 0xFFCD950C; -Str_Constant = 0xFF6B8E23; -Char_Constant = Str_Constant; -Int_Constant = Str_Constant; -Float_Constant = Str_Constant; -Bool_Constant = Str_Constant; -Include = Str_Constant; -Preproc = 0xFFDAB98F; -Special_Character = 0xFFFF0000; -Ghost_Character = 0xFF5B4D3C; +defcolor_paste = 0xFFFFBB00; -Paste = 0xFFFFBB00; +defcolor_undo = 0xFF80005D; -Undo = 0xFF80005D; +defcolor_highlight_junk = 0xFF3A0000; +defcolor_highlight_white = 0xFF003A3A; -Highlight_Junk = 0xFF3A0000; -Highlight_White = 0xFF003A3A; +defcolor_bar = 0xFFCACACA; +defcolor_bar_active = FFA8A8A8; +defcolor_base = 0xFF000000; +defcolor_pop1 = 0xFF03CF0C; +defcolor_pop2 = 0xFFFF0000; -Bar = 0xFFCACACA; -Bar_Active = FFA8A8A8; -Base = 0xFF000000; -Pop1 = 0xFF03CF0C; -Pop2 = 0xFFFF0000; - -Back_Cycle_1 = 0x0CA00000; -Back_Cycle_2 = 0x0800A000; -Back_Cycle_3 = 0x080000A0; -Back_Cycle_4 = 0x08A0A000; -Text_Cycle_1 = 0xFFA00000; -Text_Cycle_2 = 0xFF00A000; -Text_Cycle_3 = 0xFF0020B0; -Text_Cycle_4 = 0xFFA0A000; +defcolor_back_cycle = {0x0CA00000, 0x0800A000, 0x080000A0, 0x08A0A000}; +defcolor_text_cycle = {0xFFA00000, 0xFF00A000, 0xFF0020B0, 0xFFA0A000}; diff --git a/ship_files/themes/theme-hjortshoej.4coder b/ship_files/themes/theme-hjortshoej.4coder index dbc6d3ac..d7709ee4 100644 --- a/ship_files/themes/theme-hjortshoej.4coder +++ b/ship_files/themes/theme-hjortshoej.4coder @@ -1,51 +1,44 @@ // Created by: Mikkel Hjortshoej -name = "Hjortshoej"; +defcolor_back = 0xFFF0F0F0; +defcolor_margin = 0xFF9E9E9E; +defcolor_margin_hover = 0xFF7E7E7E; +defcolor_margin_active = 0xFF5C5C5C; +defcolor_list_item = defcolor_margin; +defcolor_list_item_hover = defcolor_margin_hover; +defcolor_list_item_active = defcolor_margin_active; +defcolor_cursor = 0xFF000000; +defcolor_at_cursor = 0xFFD6D6D6; +defcolor_highlight_cursor_line = 0xFFB8B098; +defcolor_mark = 0xFF525252; +defcolor_highlight = 0xFFB87600; +defcolor_at_highlight = 0xFF000000; +defcolor_text_default = 0xFF000000; +defcolor_comment = 0xFF007E00; +defcolor_comment_pop = {0xFF20D020, 0xFFF01010}; +defcolor_keyword = 0xFF8B4303; +defcolor_str_constant = 0xFF7C0000; +defcolor_char_constant = defcolor_str_constant; +defcolor_include = defcolor_str_constant; +defcolor_int_constant = 0xFF007C00; +defcolor_float_constant = defcolor_int_constant; +defcolor_bool_constant = defcolor_int_constant; +defcolor_preproc = 0xFF0000FF; +defcolor_special_character = 0xFF9A0000; +defcolor_ghost_character = 0xFF6B6B6B; -Back = 0xFFF0F0F0; -Margin = 0xFF9E9E9E; -Margin_Hover = 0xFF7E7E7E; -Margin_Active = 0xFF5C5C5C; -List_Item = Margin; -List_Item_Hover = Margin_Hover; -List_Item_Active = Margin_Active; -Cursor = 0xFF000000; -At_Cursor = 0xFFD6D6D6; -Highlight_Cursor_Line = 0xFFB8B098; -Mark = 0xFF525252; -Highlight = 0xFFB87600; -At_Highlight = 0xFF000000; -Default = 0xFF000000; -Comment = 0xFF007E00; -Keyword = 0xFF8B4303; -Str_Constant = 0xFF7C0000; -Char_Constant = Str_Constant; -Include = Str_Constant; -Int_Constant = 0xFF007C00; -Float_Constant = Int_Constant; -Bool_Constant = Int_Constant; -Preproc = 0xFF0000FF; -Special_Character = 0xFF9A0000; -Ghost_Character = 0xFF6B6B6B; +defcolor_paste = 0xFF00FFFF; +defcolor_undo = 0xFFFF00FF; -Paste = 0xFF00FFFF; -Undo = 0xFFFF00FF; +defcolor_highlight_junk = 0xFF482020; +defcolor_highlight_white = 0xFF383838; -Highlight_Junk = 0xFF482020; -Highlight_White = 0xFF383838; +defcolor_bar = 0xFF606060; +defcolor_bar_active = 0xFF3E3E3E; +defcolor_base = 0xFFFFFFFF; +defcolor_pop1 = 0xFF007E00; +defcolor_pop2 = 0xFFE80505; -Bar = 0xFF606060; -Bar_Active = 0xFF3E3E3E; -Base = 0xFFFFFFFF; -Pop1 = 0xFF007E00; -Pop2 = 0xFFE80505; - -Back_Cycle_1 = 0x1CA00000; -Back_Cycle_2 = 0x1C00A000; -Back_Cycle_3 = 0x1C0000A0; -Back_Cycle_4 = 0x1CA0A000; -Text_Cycle_1 = 0xFFF01010; -Text_Cycle_2 = 0xFF20D020; -Text_Cycle_3 = 0xFF0000F0; -Text_Cycle_4 = 0xFFD0D000; +defcolor_back_cycle = {0x1CA00000, 0x1C00A000, 0x1C0000A0, 0x1CA0A000}; +defcolor_text_cycle = {0xFFF01010, 0xFF20D020, 0xFF0000F0, 0xFFD0D000}; diff --git a/ship_files/themes/theme-midnight.4coder b/ship_files/themes/theme-midnight.4coder index 6a75fbb3..e77a1e46 100644 --- a/ship_files/themes/theme-midnight.4coder +++ b/ship_files/themes/theme-midnight.4coder @@ -1,48 +1,42 @@ -name = "midnight"; -Back = 0xFF202020; -Margin = 0xFF383838; -Margin_Hover = 0xFF404040; -Margin_Active = 0xFF484848; -List_Item = Margin; -List_Item_Hover = Margin_Hover; -List_Item_Active = Margin_Active; -Cursor = 0xFFDDDDDD; -At_Cursor = Back; -Highlight_Cursor_Line = 0xFF383838; -Mark = 0xFF808080; -Highlight = 0xFF006080; -At_Highlight = Back; -Default = 0xFFB8B8B0; -Comment = 0xFF6AC000; -Keyword = 0xFFFFDDAA; -Str_Constant = Keyword; -Char_Constant = Str_Constant; -Int_Constant = Str_Constant; -Float_Constant = Str_Constant; -Bool_Constant = Str_Constant; -Include = Str_Constant; -Preproc = 0xFFFFFFFF; -Special_Character = 0xFFFF0000; -Ghost_Character = 0xFF6D6D6D; +defcolor_back = 0xFF202020; +defcolor_margin = 0xFF383838; +defcolor_margin_hover = 0xFF404040; +defcolor_margin_active = 0xFF484848; +defcolor_list_item = defcolor_margin; +defcolor_list_item_hover = defcolor_margin_hover; +defcolor_list_item_active = defcolor_margin_active; +defcolor_cursor = 0xFFDDDDDD; +defcolor_at_cursor = defcolor_back; +defcolor_highlight_cursor_line = 0xFF383838; +defcolor_mark = 0xFF808080; +defcolor_highlight = 0xFF006080; +defcolor_at_highlight = defcolor_back; +defcolor_text_default = 0xFFB8B8B0; +defcolor_comment = 0xFF6AC000; +defcolor_comment_pop = {0xFF20D020, 0xFFF01010}; +defcolor_keyword = 0xFFFFDDAA; +defcolor_str_constant = defcolor_keyword; +defcolor_char_constant = defcolor_str_constant; +defcolor_int_constant = defcolor_str_constant; +defcolor_float_constant = defcolor_str_constant; +defcolor_bool_constant = defcolor_str_constant; +defcolor_include = defcolor_str_constant; +defcolor_preproc = 0xFFFFFFFF; +defcolor_special_character = 0xFFFF0000; +defcolor_ghost_character = 0xFF6D6D6D; -Paste = 0xFF00FFFF; -Undo = 0xFFFF00FF; +defcolor_paste = 0xFF00FFFF; +defcolor_undo = 0xFFFF00FF; -Highlight_Junk = 0xFF482020; -Highlight_White = 0xFF383838; +defcolor_highlight_junk = 0xFF482020; +defcolor_highlight_white = 0xFF383838; -Bar = 0xFF606060; -Bar_Active = 0xFF3E3E3E; -Base = 0xFF000000; -Pop1 = 0xFF00B0D0; -Pop2 = 0xFFFF3A00; +defcolor_bar = 0xFF606060; +defcolor_bar_active = 0xFF3E3E3E; +defcolor_base = 0xFF000000; +defcolor_pop1 = 0xFF00B0D0; +defcolor_pop2 = 0xFFFF3A00; -Back_Cycle_1 = 0x08A00000; -Back_Cycle_2 = 0x0800A000; -Back_Cycle_3 = 0x080000A0; -Back_Cycle_4 = 0x08A0A000; -Text_Cycle_1 = 0xFFF01010; -Text_Cycle_2 = 0xFF20D020; -Text_Cycle_3 = 0xFF0080E0; -Text_Cycle_4 = 0xFFD0D000; +defcolor_back_cycle = {0x08A00000, 0x0800A000, 0x080000A0, 0x08A0A000}; +defcolor_text_cycle = {0xFFF01010, 0xFF20D020, 0xFF0080E0, 0xFFD0D000}; diff --git a/ship_files/themes/theme-stb-dark.4coder b/ship_files/themes/theme-stb-dark.4coder index 13636461..c52c1728 100644 --- a/ship_files/themes/theme-stb-dark.4coder +++ b/ship_files/themes/theme-stb-dark.4coder @@ -1,48 +1,42 @@ -name = "stb dark"; -Back = 0xFF303030; -Margin = 0xFF383838; -Margin_Hover = 0xFF404040; -Margin_Active = 0xFF484848; -List_Item = Margin; -List_Item_Hover = Margin_Hover; -List_Item_Active = Margin_Active; -Cursor = 0xFFDDDDDD; -At_Cursor = Back; -Highlight_Cursor_Line = 0xFF383838; -Mark = 0xFF808080; -Highlight = 0xFF006080; -At_Highlight = Back; -Default = 0xFFAAAAAA; -Comment = 0xFF6AC000; -Keyword = Default; -Str_Constant = Default; -Char_Constant = Str_Constant; -Int_Constant = Str_Constant; -Float_Constant = Str_Constant; -Bool_Constant = Str_Constant; -Include = Str_Constant; -Preproc = Default; -Special_Character = 0xFFFF0000; -Ghost_Character = 0xFF6D6D6D; +defcolor_back = 0xFF303030; +defcolor_margin = 0xFF383838; +defcolor_margin_hover = 0xFF404040; +defcolor_margin_active = 0xFF484848; +defcolor_list_item = defcolor_margin; +defcolor_list_item_hover = defcolor_margin_hover; +defcolor_list_item_active = defcolor_margin_active; +defcolor_cursor = 0xFFDDDDDD; +defcolor_at_cursor = defcolor_back; +defcolor_highlight_cursor_line = 0xFF383838; +defcolor_mark = 0xFF808080; +defcolor_highlight = 0xFF006080; +defcolor_at_highlight = defcolor_back; +defcolor_text_default = 0xFFAAAAAA; +defcolor_comment = 0xFF6AC000; +defcolor_comment_pop = {0xFF149014, 0xFFAA0A0A}; +defcolor_keyword = defcolor_text_default; +defcolor_str_constant = defcolor_text_default; +defcolor_char_constant = defcolor_str_constant; +defcolor_int_constant = defcolor_str_constant; +defcolor_float_constant = defcolor_str_constant; +defcolor_bool_constant = defcolor_str_constant; +defcolor_include = defcolor_str_constant; +defcolor_preproc = defcolor_text_default; +defcolor_special_character = 0xFFFF0000; +defcolor_ghost_character = 0xFF6D6D6D; -Paste = 0xFF00FFFF; -Undo = 0xFFFF00FF; +defcolor_paste = 0xFF00FFFF; +defcolor_undo = 0xFFFF00FF; -Highlight_Junk = 0xFF482020; -Highlight_White = 0xFF383838; +defcolor_highlight_junk = 0xFF482020; +defcolor_highlight_white = 0xFF383838; -Bar = 0xFF606060; -Bar_Active = 0xFF3E3E3E; -Base = 0xFF000000; -Pop1 = 0xFF00B0D0; -Pop2 = 0xFFFF3A00; +defcolor_bar = 0xFF606060; +defcolor_bar_active = 0xFF3E3E3E; +defcolor_base = 0xFF000000; +defcolor_pop1 = 0xFF00B0D0; +defcolor_pop2 = 0xFFFF3A00; -Back_Cycle_1 = 0x06A00000; -Back_Cycle_2 = 0x0600A000; -Back_Cycle_3 = 0x060000A0; -Back_Cycle_4 = 0x06A0A000; -Text_Cycle_1 = 0xFFAA0A0A; -Text_Cycle_2 = 0xFF149014; -Text_Cycle_3 = 0xFF0060A8; -Text_Cycle_4 = 0xFF909000; +defcolor_back_cycle = {0x06A00000, 0x0600A000, 0x060000A0, 0x06A0A000}; +defcolor_text_cycle = {0xFFAA0A0A, 0xFF149014, 0xFF0060A8, 0xFF909000}; diff --git a/ship_files/themes/theme-stb.4coder b/ship_files/themes/theme-stb.4coder index 7b11c2b4..b8c0fc00 100644 --- a/ship_files/themes/theme-stb.4coder +++ b/ship_files/themes/theme-stb.4coder @@ -1,49 +1,43 @@ -name = "stb"; -Back = 0xFFD6D6D6; -Margin = 0xFF9E9E9E; -Margin_Hover = 0xFF7E7E7E; -Margin_Active = 0xFF5C5C5C; -List_Item = Margin; -List_Item_Hover = Margin_Hover; -List_Item_Active = Margin_Active; -Cursor = 0xFF000000; -At_Cursor = Back; -Highlight_Cursor_Line = 0xFFBCBCBC; -Mark = 0xFF525252; -Highlight = 0xFF0044FF; -At_Highlight = Back; -Default = 0xFF000000; -Comment = 0xFF005800; -Keyword = Default; -Str_Constant = Default; -Char_Constant = Str_Constant; -Int_Constant = Str_Constant; -Float_Constant = Str_Constant; -Bool_Constant = Str_Constant; -Include = Str_Constant; -Preproc = Default; -Special_Character = 0xFF9A0000; -Ghost_Character = 0xFF6B6B6B; +defcolor_back = 0xFFD6D6D6; +defcolor_margin = 0xFF9E9E9E; +defcolor_margin_hover = 0xFF7E7E7E; +defcolor_margin_active = 0xFF5C5C5C; +defcolor_list_item = defcolor_margin; +defcolor_list_item_hover = defcolor_margin_hover; +defcolor_list_item_active = defcolor_margin_active; +defcolor_cursor = 0xFF000000; +defcolor_at_cursor = defcolor_back; +defcolor_highlight_cursor_line = 0xFFBCBCBC; +defcolor_mark = 0xFF525252; +defcolor_highlight = 0xFF0044FF; +defcolor_at_highlight = defcolor_back; +defcolor_text_default = 0xFF000000; +defcolor_comment = 0xFF005800; +defcolor_comment_pop = {0xFF00A000, 0xFFA00000}; +defcolor_keyword = defcolor_text_default; +defcolor_str_constant = defcolor_text_default; +defcolor_char_constant = defcolor_str_constant; +defcolor_int_constant = defcolor_str_constant; +defcolor_float_constant = defcolor_str_constant; +defcolor_bool_constant = defcolor_str_constant; +defcolor_include = defcolor_str_constant; +defcolor_preproc = defcolor_text_default; +defcolor_special_character = 0xFF9A0000; +defcolor_ghost_character = 0xFF6B6B6B; -Paste = 0xFF00B8B8; -Undo = 0xFFB800B8; +defcolor_paste = 0xFF00B8B8; +defcolor_undo = 0xFFB800B8; -Highlight_Junk = 0xFFFF7878; -Highlight_White = 0xFFBCBCBC; +defcolor_highlight_junk = 0xFFFF7878; +defcolor_highlight_white = 0xFFBCBCBC; -Bar = 0xFF606060; -Bar_Active = 0xFF3E3E3E; -Base = 0xFF000000; -Pop1 = 0xFF1111DC; -Pop2 = 0xFFE80505; +defcolor_bar = 0xFF606060; +defcolor_bar_active = 0xFF3E3E3E; +defcolor_base = 0xFF000000; +defcolor_pop1 = 0xFF1111DC; +defcolor_pop2 = 0xFFE80505; -Back_Cycle_1 = 0x10A00000; -Back_Cycle_2 = 0x1000A000; -Back_Cycle_3 = 0x100000A0; -Back_Cycle_4 = 0x10A0A000; -Text_Cycle_1 = 0xFFA00000; -Text_Cycle_2 = 0xFF00A000; -Text_Cycle_3 = 0xFF0000A0; -Text_Cycle_4 = 0xFFA0A000; +defcolor_back_cycle = {0x10A00000, 0x1000A000, 0x100000A0, 0x10A0A000}; +defcolor_text_cycle = {0xFFA00000, 0xFF00A000, 0xFF0000A0, 0xFFA0A000}; diff --git a/ship_files/themes/theme-strange.4coder b/ship_files/themes/theme-strange.4coder index 878851fc..b98b5d15 100644 --- a/ship_files/themes/theme-strange.4coder +++ b/ship_files/themes/theme-strange.4coder @@ -1,51 +1,44 @@ // Created by: Zack Strange -name = "Strange"; +defcolor_back = 0xFF161616; +defcolor_margin = 0xFF606590; +defcolor_margin_hover = 0xFF606590; +defcolor_margin_active = 0xFF9A99E7; +defcolor_list_item = defcolor_margin; +defcolor_list_item_hover = defcolor_margin_hover; +defcolor_list_item_active = defcolor_margin_active; +defcolor_cursor = 0xFFd96e26; +defcolor_at_cursor = defcolor_back; +defcolor_highlight_cursor_line = 0xFF002222; +defcolor_mark = 0xFF808080; +defcolor_highlight = 0xFF703419; +defcolor_at_highlight = 0xFFCDAA7D; +defcolor_text_default = 0xFFFFFFFF; +defcolor_comment = 0xFF505F89; +defcolor_comment_pop = {0xFF00F000, 0xFFF00000}; +defcolor_keyword = 0xFFAA8DA7; +defcolor_str_constant = 0xFF9A99E7; +defcolor_char_constant = defcolor_str_constant; +defcolor_include = defcolor_str_constant; +defcolor_int_constant = 0xFF007C00; +defcolor_float_constant = defcolor_int_constant; +defcolor_bool_constant = defcolor_int_constant; +defcolor_preproc = 0xFF606590; +defcolor_special_character = 0xFFFF0000; +defcolor_ghost_character = 0xFF8A8A8A; -Back = 0xFF161616; -Margin = 0xFF606590; -Margin_Hover = 0xFF606590; -Margin_Active = 0xFF9A99E7; -List_Item = Margin; -List_Item_Hover = Margin_Hover; -List_Item_Active = Margin_Active; -Cursor = 0xFFd96e26; -At_Cursor = Back; -Highlight_Cursor_Line = 0xFF002222; -Mark = 0xFF808080; -Highlight = 0xFF703419; -At_Highlight = 0xFFCDAA7D; -Default = 0xFFFFFFFF; -Comment = 0xFF505F89; -Keyword = 0xFFAA8DA7; -Str_Constant = 0xFF9A99E7; -Char_Constant = Str_Constant; -Include = Str_Constant; -Int_Constant = 0xFF007C00; -Float_Constant = Int_Constant; -Bool_Constant = Int_Constant; -Preproc = 0xFF606590; -Special_Character = 0xFFFF0000; -Ghost_Character = 0xFF8A8A8A; +defcolor_paste = 0xFFFFBB00; +defcolor_undo = 0xFF80005D; -Paste = 0xFFFFBB00; -Undo = 0xFF80005D; +defcolor_highlight_junk = 0xFF3A0000; +defcolor_highlight_white = 0xFF003A3A; -Highlight_Junk = 0xFF3A0000; -Highlight_White = 0xFF003A3A; +defcolor_bar = 0xFF9A99E7; +defcolor_bar_active = 0xFF9A99E7; +defcolor_base = 0xFF000000; +defcolor_pop1 = 0xFF03CF0C; +defcolor_pop2 = 0xFFFF0000; -Bar = 0xFF9A99E7; -Bar_Active = 0xFF9A99E7; -Base = 0xFF000000; -Pop1 = 0xFF03CF0C; -Pop2 = 0xFFFF0000; - -Back_Cycle_1 = 0x0CA00000; -Back_Cycle_2 = 0x0C00A000; -Back_Cycle_3 = 0x0C0000A0; -Back_Cycle_4 = 0x0CA0A000; -Text_Cycle_1 = 0xFFF00000; -Text_Cycle_2 = 0xFF00F000; -Text_Cycle_3 = 0xFF0080F0; -Text_Cycle_4 = 0xFFF0F000; +defcolor_back_cycle = {0x0CA00000, 0x0C00A000, 0x0C0000A0, 0x0CA0A000}; +defcolor_text_cycle = {0xFFF00000, 0xFF00F000, 0xFF0080F0, 0xFFF0F000}; diff --git a/ship_files/themes/theme-sunlight.4coder b/ship_files/themes/theme-sunlight.4coder index 822da14d..dd74810e 100644 --- a/ship_files/themes/theme-sunlight.4coder +++ b/ship_files/themes/theme-sunlight.4coder @@ -1,48 +1,42 @@ -name = "sunlight"; -Back = 0xFFDFD5D0; -Margin = 0xFFC7C7C7; -Margin_Hover = 0xFFBFBFBF; -Margin_Active = 0xFFB7B7B7; -List_Item = Margin; -List_Item_Hover = Margin_Hover; -List_Item_Active = Margin_Active; -Cursor = 0xFF222222; -At_Cursor = Back; -Highlight_Cursor_Line = 0xFFC7C7C7; -Mark = 0xFF797979; -Highlight = 0xFFFF9979; -At_Highlight = Back; -Default = 0xFF47474F; -Comment = 0xFF953FFF; -Keyword = 0xFF002255; -Str_Constant = Keyword; -Char_Constant = Str_Constant; -Int_Constant = Str_Constant; -Float_Constant = Str_Constant; -Bool_Constant = Str_Constant; -Include = Str_Constant; -Preproc = 0xFF000000; -Special_Character = 0xFFFF00FF; -Ghost_Character = 0xFF929292; +defcolor_back = 0xFFDFD5D0; +defcolor_margin = 0xFFC7C7C7; +defcolor_margin_hover = 0xFFBFBFBF; +defcolor_margin_active = 0xFFB7B7B7; +defcolor_list_item = defcolor_margin; +defcolor_list_item_hover = defcolor_margin_hover; +defcolor_list_item_active = defcolor_margin_active; +defcolor_cursor = 0xFF222222; +defcolor_at_cursor = defcolor_back; +defcolor_highlight_cursor_line = 0xFFC7C7C7; +defcolor_mark = 0xFF797979; +defcolor_highlight = 0xFFFF9979; +defcolor_at_highlight = defcolor_back; +defcolor_text_default = 0xFF47474F; +defcolor_comment = 0xFF953FFF; +defcolor_comment_pop = {0xFF00C030, 0xFFF00000}; +defcolor_keyword = 0xFF002255; +defcolor_str_constant = defcolor_keyword; +defcolor_char_constant = defcolor_str_constant; +defcolor_int_constant = defcolor_str_constant; +defcolor_float_constant = defcolor_str_constant; +defcolor_bool_constant = defcolor_str_constant; +defcolor_include = defcolor_str_constant; +defcolor_preproc = 0xFF000000; +defcolor_special_character = 0xFFFF00FF; +defcolor_ghost_character = 0xFF929292; -Paste = 0xFFFF0000; -Undo = 0xFF00FF00; +defcolor_paste = 0xFFFF0000; +defcolor_undo = 0xFF00FF00; -Highlight_Junk = 0xFFB7DFDF; -Highlight_White = 0xFFC7C7C7; +defcolor_highlight_junk = 0xFFB7DFDF; +defcolor_highlight_white = 0xFFC7C7C7; -Bar = 0xFF909090; -Bar_Active = 0xFFC1C1C1; -Base = 0xFFFFFFFF; -Pop1 = 0xFFFF4F2F; -Pop2 = 0xFF00C5FF; +defcolor_bar = 0xFF909090; +defcolor_bar_active = 0xFFC1C1C1; +defcolor_base = 0xFFFFFFFF; +defcolor_pop1 = 0xFFFF4F2F; +defcolor_pop2 = 0xFF00C5FF; -Back_Cycle_1 = 0x14A00000; -Back_Cycle_2 = 0x1400A000; -Back_Cycle_3 = 0x140000A0; -Back_Cycle_4 = 0x14A0A000; -Text_Cycle_1 = 0xFFF00000; -Text_Cycle_2 = 0xFF00C030; -Text_Cycle_3 = 0xFF0000F0; -Text_Cycle_4 = 0xFFF0F000; +defcolor_back_cycle = {0x14A00000, 0x1400A000, 0x140000A0, 0x14A0A000}; +defcolor_text_cycle = {0xFFF00000, 0xFF00C030, 0xFF0000F0, 0xFFF0F000}; diff --git a/ship_files/themes/theme-twilight.4coder b/ship_files/themes/theme-twilight.4coder index 0fed0f68..95a53d5d 100644 --- a/ship_files/themes/theme-twilight.4coder +++ b/ship_files/themes/theme-twilight.4coder @@ -1,48 +1,42 @@ -name = "Twilight"; -Back = 0xFF090D12; -Margin = 0xFF1A2634; -Margin_Hover = 0xFF2D415B; -Margin_Active = 0xFF405D82; -List_Item = Margin; -List_Item_Hover = Margin_Hover; -List_Item_Active = Margin_Active; -Cursor = 0xFFEEE800; -At_Cursor = Back; -Highlight_Cursor_Line = 0xFF151F2A; -Mark = 0xFF8BA8CC; -Highlight = 0xFF037A7B; -At_Highlight = Back; -Default = 0xFFB7C19E; -Comment = 0xFF20ECF0; -Keyword = 0xFFD86909; -Str_Constant = 0xFFC4EA5D; -Char_Constant = Str_Constant; -Int_Constant = Str_Constant; -Float_Constant = Str_Constant; -Bool_Constant = Str_Constant; -Include = Str_Constant; -Preproc = Default; -Special_Character = 0xFFFF0000; -Ghost_Character = 0xFF46494D; +defcolor_back = 0xFF090D12; +defcolor_margin = 0xFF1A2634; +defcolor_margin_hover = 0xFF2D415B; +defcolor_margin_active = 0xFF405D82; +defcolor_list_item = defcolor_margin; +defcolor_list_item_hover = defcolor_margin_hover; +defcolor_list_item_active = defcolor_margin_active; +defcolor_cursor = 0xFFEEE800; +defcolor_at_cursor = defcolor_back; +defcolor_highlight_cursor_line = 0xFF151F2A; +defcolor_mark = 0xFF8BA8CC; +defcolor_highlight = 0xFF037A7B; +defcolor_at_highlight = defcolor_back; +defcolor_text_default = 0xFFB7C19E; +defcolor_comment = 0xFF20ECF0; +defcolor_comment_pop = {0xFF00C030, 0xFFF00000}; +defcolor_keyword = 0xFFD86909; +defcolor_str_constant = 0xFFC4EA5D; +defcolor_char_constant = defcolor_str_constant; +defcolor_int_constant = defcolor_str_constant; +defcolor_float_constant = defcolor_str_constant; +defcolor_bool_constant = defcolor_str_constant; +defcolor_include = defcolor_str_constant; +defcolor_preproc = defcolor_text_default; +defcolor_special_character = 0xFFFF0000; +defcolor_ghost_character = 0xFF46494D; -Paste = 0xFFDDEE00; -Undo = 0xFF00DDEE; +defcolor_paste = 0xFFDDEE00; +defcolor_undo = 0xFF00DDEE; -Highlight_Junk = 0xFF3A0000; -Highlight_White = 0xFF151F2A; +defcolor_highlight_junk = 0xFF3A0000; +defcolor_highlight_white = 0xFF151F2A; -Bar = 0xFF315E68; -Bar_Active = 0xFF0F3C46; -Base = 0xFF000000; -Pop1 = 0xFF1BFF0C; -Pop2 = 0xFFFF200D; +defcolor_bar = 0xFF315E68; +defcolor_bar_active = 0xFF0F3C46; +defcolor_base = 0xFF000000; +defcolor_pop1 = 0xFF1BFF0C; +defcolor_pop2 = 0xFFFF200D; -Back_Cycle_1 = 0x0EA00000; -Back_Cycle_2 = 0x0D00A000; -Back_Cycle_3 = 0x0D0000A0; -Back_Cycle_4 = 0x0EA0A000; -Text_Cycle_1 = 0xFFF00000; -Text_Cycle_2 = 0xFF00C030; -Text_Cycle_3 = 0xFF0040F0; -Text_Cycle_4 = 0xFFB0B000; +defcolor_back_cycle = {0x0EA00000, 0x0D00A000, 0x0D0000A0, 0x0EA0A000}; +defcolor_text_cycle = {0xFFF00000, 0xFF00C030, 0xFF0040F0, 0xFFB0B000}; diff --git a/ship_files/themes/theme-wombat.4coder b/ship_files/themes/theme-wombat.4coder index efecc8e4..5db96226 100644 --- a/ship_files/themes/theme-wombat.4coder +++ b/ship_files/themes/theme-wombat.4coder @@ -1,51 +1,44 @@ // Created by: Jeremiah Goerdt -name = "Wombat"; +defcolor_back = 0xFF242424; +defcolor_margin = 0xFF181818; +defcolor_margin_hover = 0xFF252525; +defcolor_margin_active = 0xFF323232; +defcolor_list_item = defcolor_margin; +defcolor_list_item_hover = defcolor_margin_hover; +defcolor_list_item_active = defcolor_margin_active; +defcolor_cursor = 0xFF656565; +defcolor_highlight = 0xFF636066; +defcolor_mark = defcolor_cursor; +defcolor_text_default = 0xFFe3e0d7; +defcolor_at_cursor = defcolor_back; +defcolor_highlight_cursor_line = 0xFF383838; +defcolor_at_highlight = 0xFFd787ff; +defcolor_comment = 0xFF9c998e; +defcolor_comment_pop = {0xFF00A000, 0xFFA00000}; +defcolor_keyword = 0xFF88b8f6; +defcolor_str_constant = 0xFF95e454; +defcolor_char_constant = 0xFFd4d987; +defcolor_int_constant = 0xFFe5796d; +defcolor_float_constant = defcolor_int_constant; +defcolor_bool_constant = 0xFFd4d987; +defcolor_include = defcolor_str_constant; +defcolor_preproc = defcolor_int_constant; +defcolor_special_character = defcolor_int_constant; +defcolor_ghost_character = defcolor_char_constant; -Back = 0xFF242424; -Margin = 0xFF181818; -Margin_Hover = 0xFF252525; -Margin_Active = 0xFF323232; -List_Item = Margin; -List_Item_Hover = Margin_Hover; -List_Item_Active = Margin_Active; -Cursor = 0xFF656565; -Highlight = 0xFF636066; -Mark = Cursor; -Default = 0xFFe3e0d7; -At_Cursor = Back; -Highlight_Cursor_Line = 0xFF383838; -At_Highlight = 0xFFd787ff; -Comment = 0xFF9c998e; -Keyword = 0xFF88b8f6; -Str_Constant = 0xFF95e454; -Char_Constant = 0xFFd4d987; -Int_Constant = 0xFFe5796d; -Float_Constant = Int_Constant; -Bool_Constant = 0xFFd4d987; -Include = Str_Constant; -Preproc = Int_Constant; -Special_Character = Int_Constant; -Ghost_Character = Char_Constant; +defcolor_paste = defcolor_ghost_character; -Paste = Ghost_Character; +defcolor_undo = defcolor_keyword; -Undo = Keyword; +defcolor_highlight_junk = 0xFF73186e; +defcolor_highlight_white = 0xFF3e3969; -Highlight_Junk = 0xFF73186e; -Highlight_White = 0xFF3e3969; +defcolor_bar = 0xFF888888; +defcolor_bar_active = 0xFF666666; +defcolor_base = 0xFF000000; +defcolor_pop1 = 0xFF3C57DC; +defcolor_pop2 = defcolor_highlight_junk; -Bar = 0xFF888888; -Bar_Active = 0xFF666666; -Base = 0xFF000000; -Pop1 = 0xFF3C57DC; -Pop2 = Highlight_Junk; - -Back_Cycle_1 = 0x10A00000; -Back_Cycle_2 = 0x0C00A000; -Back_Cycle_3 = 0x0C0000A0; -Back_Cycle_4 = 0x0CA0A000; -Text_Cycle_1 = 0xFFA00000; -Text_Cycle_2 = 0xFF00A000; -Text_Cycle_3 = 0xFF0030B8; -Text_Cycle_4 = 0xFFA0A000; +defcolor_back_cycle = {0x10A00000, 0x0C00A000, 0x0C0000A0, 0x0CA0A000}; +defcolor_text_cycle = {0xFFA00000, 0xFF00A000, 0xFF0030B8, 0xFFA0A000};