Command reverse lookup

master
Allen Webster 2019-12-03 11:35:41 -08:00
parent dbb2671bd0
commit 79e9cfcf96
30 changed files with 1437 additions and 1181 deletions

View File

@ -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;

View File

@ -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

View File

@ -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.")
{

View File

@ -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]; }

View File

@ -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(">"));
}
////////////////////////////////

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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"));
}

View File

@ -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

View File

@ -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};

View File

@ -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};

View File

@ -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};

View File

@ -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};

View File

@ -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};

View File

@ -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};

View File

@ -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};

View File

@ -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};

View File

@ -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};

View File

@ -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};