Command reverse lookup
							parent
							
								
									dbb2671bd0
								
							
						
					
					
						commit
						79e9cfcf96
					
				|  | @ -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; | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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.") | ||||
| { | ||||
|  |  | |||
|  | @ -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]; } | ||||
| 
 | ||||
|  |  | |||
|  | @ -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; | ||||
|          | ||||
|         Command_Trigger trigger = {}; | ||||
|         trigger.kind = code1; | ||||
|         trigger.sub_code = code2; | ||||
|         trigger.mods = mod_binding->mods; | ||||
|         map__command_add_trigger(map, custom, &trigger); | ||||
|     } | ||||
| 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 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 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); | ||||
|          | ||||
| 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); | ||||
|         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); | ||||
|     } | ||||
|     } | ||||
|     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 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; | ||||
|          | ||||
| 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)); | ||||
|         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(">")); | ||||
| } | ||||
| 
 | ||||
| ////////////////////////////////
 | ||||
|  |  | |||
|  | @ -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); | ||||
|                 } | ||||
|             theme->theme.colors[i] = 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); | ||||
|                 } | ||||
|                 } | ||||
|             } | ||||
|              | ||||
|         } | ||||
|     } | ||||
|     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,7 +1555,10 @@ 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){ | ||||
|  | @ -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; | ||||
|     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); | ||||
|         } | ||||
|             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); | ||||
|             } | ||||
|         } | ||||
|         free_file_list(app, list); | ||||
|     } | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| // BOTTOM
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -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
 | ||||
|  |  | |||
|  | @ -8,28 +8,176 @@ | |||
| #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); | ||||
| } | ||||
|      | ||||
| #endif | ||||
|     // NOTE(allen): default hooks and command maps
 | ||||
|     set_all_default_hooks(app); | ||||
|     mapping_init(tctx, &framework_mapping); | ||||
|     setup_default_mapping(&framework_mapping); | ||||
| } | ||||
| 
 | ||||
| #endif //FCODER_DEFAULT_BINDINGS
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -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
 | ||||
|  |  | |||
|  | @ -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
 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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
 | ||||
|  |  | |||
|  | @ -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; | ||||
|  |  | |||
|  | @ -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:"); | ||||
|     if (func != 0){ | ||||
|     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_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
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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; | ||||
|  |  | |||
|  | @ -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; | ||||
|  |  | |||
|  | @ -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); | ||||
|  |  | |||
|  | @ -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")); | ||||
| } | ||||
|  |  | |||
|  | @ -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
 | ||||
| 
 | ||||
|  | @ -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}; | ||||
|  |  | |||
|  | @ -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}; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -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}; | ||||
| 
 | ||||
|  |  | |||
|  | @ -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}; | ||||
|  |  | |||
|  | @ -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}; | ||||
|  |  | |||
|  | @ -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}; | ||||
| 
 | ||||
|  |  | |||
|  | @ -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}; | ||||
| 
 | ||||
|  |  | |||
|  | @ -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}; | ||||
|  |  | |||
|  | @ -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}; | ||||
|  |  | |||
|  | @ -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}; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue