From 0c046972d6963019ee1661269d2ada625d309f35 Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Fri, 27 Nov 2020 10:03:23 -0800 Subject: [PATCH] Transfer the last of the config variables to new system; rip out Config_Data type and simplify config loading code paths --- custom/4coder_config.cpp | 62 +++---------------- custom/4coder_config.h | 9 --- custom/4coder_default_framework.cpp | 5 +- custom/4coder_default_framework_variables.cpp | 1 - custom/4coder_default_hooks.cpp | 5 +- custom/4coder_lister_base.cpp | 3 +- custom/generated/command_metadata.h | 2 +- 7 files changed, 15 insertions(+), 72 deletions(-) diff --git a/custom/4coder_config.cpp b/custom/4coder_config.cpp index cf4ac611..8b6bb0fa 100644 --- a/custom/4coder_config.cpp +++ b/custom/4coder_config.cpp @@ -1363,76 +1363,29 @@ change_mode(Application_Links *app, String_Const_u8 mode){ //////////////////////////////// -function void -config_init_default(Config_Data *config){ - config->cursor_roundness = .45f; - config->mark_thickness = 2.f; - config->lister_roundness = .20f; -} +// TODO(allen): cleanup this mess some more function Config* -config_parse__data(Application_Links *app, Arena *arena, String_Const_u8 file_name, - String_Const_u8 data, Config_Data *config){ - config_init_default(config); - - b32 success = false; - - Config *parsed = def_config_from_text(app, arena, file_name, data); - if (parsed != 0){ - success = true; - - { - i32 x = 0; - if (config_int_var(parsed, "cursor_roundness", 0, &x)){ - config->cursor_roundness = ((f32)x)*0.01f; - } - if (config_int_var(parsed, "mark_thickness", 0, &x)){ - config->mark_thickness = (f32)x; - } - if (config_int_var(parsed, "lister_roundness", 0, &x)){ - config->lister_roundness = ((f32)x)*0.01f; - } - } - } - - if (!success){ - config_init_default(config); - } - - return(parsed); -} - -function Config* -config_parse__file_handle(Application_Links *app, Arena *arena, - String_Const_u8 file_name, FILE *file, Config_Data *config){ +config_parse__file_handle(Application_Links *app, Arena *arena, String_Const_u8 file_name, FILE *file){ Config *parsed = 0; Data data = dump_file_handle(arena, file); if (data.data != 0){ - parsed = config_parse__data(app, arena, file_name, SCu8(data), config); - } - else{ - config_init_default(config); + parsed = def_config_from_text(app, arena, file_name, SCu8(data)); } return(parsed); } function Config* -config_parse__file_name(Application_Links *app, Arena *arena, char *file_name, Config_Data *config){ +config_parse__file_name(Application_Links *app, Arena *arena, char *file_name){ Config *parsed = 0; - b32 success = false; FILE *file = open_file_try_current_path_then_binary_path(app, file_name); if (file != 0){ Data data = dump_file_handle(arena, file); fclose(file); if (data.data != 0){ - parsed = config_parse__data(app, arena, SCu8(file_name), SCu8(data), - config); - success = true; + parsed = def_config_from_text(app, arena, SCu8(file_name), SCu8(data)); } } - if (!success){ - config_init_default(config); - } return(parsed); } @@ -1525,12 +1478,11 @@ theme_parse__file_name(Application_Links *app, Arena *arena, char *file_name, Ar // TODO(allen): review this function function void -load_config_and_apply(Application_Links *app, Arena *out_arena, Config_Data *config, - i32 override_font_size, b32 override_hinting){ +load_config_and_apply(Application_Links *app, Arena *out_arena, i32 override_font_size, b32 override_hinting){ Scratch_Block scratch(app, out_arena); linalloc_clear(out_arena); - Config *parsed = config_parse__file_name(app, out_arena, "config.4coder", config); + Config *parsed = config_parse__file_name(app, out_arena, "config.4coder"); if (parsed != 0){ // Errors diff --git a/custom/4coder_config.h b/custom/4coder_config.h index c490fbea..dd74a4b6 100644 --- a/custom/4coder_config.h +++ b/custom/4coder_config.h @@ -174,15 +174,6 @@ struct Config_Get_Result_List{ i32 count; }; -//////////////////////////////// -// NOTE(allen): Config Data Type - -struct Config_Data{ - f32 cursor_roundness; - f32 mark_thickness; - f32 lister_roundness; -}; - //////////////////////////////// // NOTE(allen): Config Parser Functions diff --git a/custom/4coder_default_framework.cpp b/custom/4coder_default_framework.cpp index 88ac33ca..e95edc88 100644 --- a/custom/4coder_default_framework.cpp +++ b/custom/4coder_default_framework.cpp @@ -597,8 +597,7 @@ setup_essential_mapping(Mapping *mapping, i64 global_id, i64 file_id, i64 code_i } function void -default_4coder_initialize(Application_Links *app, String_Const_u8_Array file_names, - i32 override_font_size, b32 override_hinting){ +default_4coder_initialize(Application_Links *app, String_Const_u8_Array file_names, i32 override_font_size, b32 override_hinting){ #define M \ "Welcome to " VERSION "\n" \ "If you're new to 4coder there is a built in tutorial\n" \ @@ -616,7 +615,7 @@ default_4coder_initialize(Application_Links *app, String_Const_u8_Array file_nam Scratch_Block scratch(app); - load_config_and_apply(app, &global_config_arena, &global_config, override_font_size, override_hinting); + load_config_and_apply(app, &global_config_arena, override_font_size, override_hinting); String_Const_u8 bindings_file_name = string_u8_litexpr("bindings.4coder"); String_Const_u8 mapping = def_get_config_string(scratch, vars_save_string_lit("mapping")); diff --git a/custom/4coder_default_framework_variables.cpp b/custom/4coder_default_framework_variables.cpp index 8c7d6e9d..b3858174 100644 --- a/custom/4coder_default_framework_variables.cpp +++ b/custom/4coder_default_framework_variables.cpp @@ -83,7 +83,6 @@ global ID_Pos_Jump_Location prev_location = {}; global Arena global_permanent_arena = {}; global Arena global_config_arena = {}; -global Config_Data global_config = {}; global char previous_isearch_query[256] = {}; diff --git a/custom/4coder_default_hooks.cpp b/custom/4coder_default_hooks.cpp index a39fef21..6cdd954e 100644 --- a/custom/4coder_default_hooks.cpp +++ b/custom/4coder_default_hooks.cpp @@ -287,8 +287,9 @@ default_render_buffer(Application_Links *app, View_ID view_id, Face_ID face_id, // NOTE(allen): Cursor shape Face_Metrics metrics = get_face_metrics(app, face_id); - f32 cursor_roundness = metrics.normal_advance*global_config.cursor_roundness; - f32 mark_thickness = (f32)global_config.mark_thickness; + u64 cursor_roundness_100 = def_get_config_u64(app, vars_save_string_lit("cursor_roundness")); + f32 cursor_roundness = metrics.normal_advance*cursor_roundness_100*0.01f; + f32 mark_thickness = (f32)def_get_config_u64(app, vars_save_string_lit("mark_thickness")); // NOTE(allen): Token colorizing Token_Array token_array = get_token_array_from_buffer(app, buffer); diff --git a/custom/4coder_lister_base.cpp b/custom/4coder_lister_base.cpp index 71eefeaa..05c39b2b 100644 --- a/custom/4coder_lister_base.cpp +++ b/custom/4coder_lister_base.cpp @@ -321,7 +321,8 @@ lister_render(Application_Links *app, Frame_Info frame_info, View_ID view){ highlight = UIHighlight_Hover; } - f32 roundness = block_height*global_config.lister_roundness; + u64 lister_roundness_100 = def_get_config_u64(app, vars_save_string_lit("lister_roundness")); + f32 roundness = block_height*lister_roundness_100*0.01f; draw_rectangle_fcolor(app, item_rect, roundness, get_item_margin_color(highlight)); draw_rectangle_fcolor(app, item_inner, roundness, get_item_margin_color(highlight, 1)); diff --git a/custom/generated/command_metadata.h b/custom/generated/command_metadata.h index 8f2340ed..b2397d07 100644 --- a/custom/generated/command_metadata.h +++ b/custom/generated/command_metadata.h @@ -372,7 +372,7 @@ static Command_Metadata fcoder_metacmd_table[250] = { { PROC_LINKS(list_all_substring_locations, 0), false, "list_all_substring_locations", 28, "Queries the user for a string and lists all case-sensitive substring matches found in all open buffers.", 103, "W:\\4ed\\code\\custom\\4coder_search.cpp", 36, 174 }, { PROC_LINKS(list_all_substring_locations_case_insensitive, 0), false, "list_all_substring_locations_case_insensitive", 45, "Queries the user for a string and lists all case-insensitive substring matches found in all open buffers.", 105, "W:\\4ed\\code\\custom\\4coder_search.cpp", 36, 186 }, { PROC_LINKS(load_project, 0), false, "load_project", 12, "Looks for a project.4coder file in the current directory and tries to load it. Looks in parent directories until a project file is found or there are no more parents.", 167, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 972 }, -{ PROC_LINKS(load_theme_current_buffer, 0), false, "load_theme_current_buffer", 25, "Parse the current buffer as a theme file and add the theme to the theme list. If the buffer has a .4coder postfix in it's name, it is removed when the name is saved.", 165, "W:\\4ed\\code\\custom\\4coder_config.cpp", 36, 1621 }, +{ PROC_LINKS(load_theme_current_buffer, 0), false, "load_theme_current_buffer", 25, "Parse the current buffer as a theme file and add the theme to the theme list. If the buffer has a .4coder postfix in it's name, it is removed when the name is saved.", 165, "W:\\4ed\\code\\custom\\4coder_config.cpp", 36, 1573 }, { 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, 535 }, { 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, 547 }, { 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, 1495 },