flatten out crufty helper layers in project parsing
parent
5a0865d4dd
commit
4d4f345365
|
@ -413,80 +413,6 @@ parse_project__config_data__version_1(Application_Links *app, Arena *arena, Stri
|
||||||
return(project);
|
return(project);
|
||||||
}
|
}
|
||||||
|
|
||||||
function Project*
|
|
||||||
parse_project__config_data(Application_Links *app, Arena *arena, String_Const_u8 file_dir, Config *parsed){
|
|
||||||
i32 version = 0;
|
|
||||||
if (parsed->version != 0){
|
|
||||||
version = *parsed->version;
|
|
||||||
}
|
|
||||||
|
|
||||||
Project *result = 0;
|
|
||||||
switch (version){
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
result = parse_project__config_data__version_1(app, arena, file_dir, parsed);
|
|
||||||
}break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
function Project_Parse_Result
|
|
||||||
parse_project__data(Application_Links *app, Arena *arena, String_Const_u8 file_name, Data raw_data, String_Const_u8 file_dir){
|
|
||||||
String_Const_u8 data = SCu8(raw_data);
|
|
||||||
Project_Parse_Result result = {};
|
|
||||||
Token_Array array = token_array_from_text(app, arena, data);
|
|
||||||
if (array.tokens != 0){
|
|
||||||
result.parsed = def_config_parse(app, arena, file_name, data, array);
|
|
||||||
if (result.parsed != 0){
|
|
||||||
result.project = parse_project__config_data(app, arena, file_dir,
|
|
||||||
result.parsed);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
function Project_Parse_Result
|
|
||||||
parse_project__nearest_file(Application_Links *app, Arena *arena){
|
|
||||||
Project_Parse_Result result = {};
|
|
||||||
|
|
||||||
Temp_Memory restore_point = begin_temp(arena);
|
|
||||||
String_Const_u8 project_path = push_hot_directory(app, arena);
|
|
||||||
if (project_path.size == 0){
|
|
||||||
print_message(app, string_u8_litexpr("The hot directory is empty, cannot search for a project.\n"));
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
File_Name_Data dump = dump_file_search_up_path(app, arena, project_path, string_u8_litexpr("project.4coder"));
|
|
||||||
if (dump.data.data != 0){
|
|
||||||
String_Const_u8 project_root = string_remove_last_folder(dump.file_name);
|
|
||||||
result = parse_project__data(app, arena, dump.file_name, dump.data,
|
|
||||||
project_root);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
List_String_Const_u8 list = {};
|
|
||||||
string_list_push(arena, &list, string_u8_litexpr("Did not find project.4coder. "));
|
|
||||||
if (current_project.loaded){
|
|
||||||
string_list_push(arena, &list, string_u8_litexpr("Continuing with: "));
|
|
||||||
if (current_project.name.size > 0){
|
|
||||||
string_list_push(arena, &list, current_project.name);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
string_list_push(arena, &list, current_project.dir);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
string_list_push(arena, &list, string_u8_litexpr("Continuing without a project."));
|
|
||||||
}
|
|
||||||
string_list_push(arena, &list, string_u8_litexpr("\n"));
|
|
||||||
String_Const_u8 message = string_list_flatten(arena, list);
|
|
||||||
print_message(app, message);
|
|
||||||
end_temp(restore_point);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
function void
|
function void
|
||||||
project_deep_copy__pattern_array(Arena *arena, Project_File_Pattern_Array *src_array, Project_File_Pattern_Array *dst_array){
|
project_deep_copy__pattern_array(Arena *arena, Project_File_Pattern_Array *src_array, Project_File_Pattern_Array *dst_array){
|
||||||
i32 pattern_count = src_array->count;
|
i32 pattern_count = src_array->count;
|
||||||
|
@ -731,120 +657,6 @@ prj_version_1_to_version_2(Application_Links *app, Config *parsed, Project *proj
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function void
|
|
||||||
set_current_project(Application_Links *app, Project *project, Config *parsed){
|
|
||||||
b32 print_feedback = false;
|
|
||||||
Scratch_Block scratch(app);
|
|
||||||
|
|
||||||
if (parsed != 0 && project != 0){
|
|
||||||
if (current_project_arena.base_allocator == 0){
|
|
||||||
current_project_arena = make_arena_system();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Copy project to current_project
|
|
||||||
linalloc_clear(¤t_project_arena);
|
|
||||||
Project new_project = project_deep_copy(¤t_project_arena, project);
|
|
||||||
if (new_project.loaded){
|
|
||||||
current_project = new_project;
|
|
||||||
|
|
||||||
print_feedback = true;
|
|
||||||
|
|
||||||
// NOTE(allen): Set the normal search list's project slot
|
|
||||||
def_search_project_path = current_project.dir;
|
|
||||||
|
|
||||||
// Open all project files
|
|
||||||
for (i32 i = 0; i < current_project.load_path_array.count; ++i){
|
|
||||||
Project_File_Load_Path *load_path = ¤t_project.load_path_array.paths[i];
|
|
||||||
u32 flags = 0;
|
|
||||||
if (load_path->recursive){
|
|
||||||
flags |= OpenAllFilesFlag_Recursive;
|
|
||||||
}
|
|
||||||
|
|
||||||
Temp_Memory temp = begin_temp(scratch);
|
|
||||||
String_Const_u8 path_str = load_path->path;
|
|
||||||
String_Const_u8 file_dir = path_str;
|
|
||||||
if (load_path->relative){
|
|
||||||
String_Const_u8 project_dir = current_project.dir;
|
|
||||||
List_String_Const_u8 file_dir_list = {};
|
|
||||||
string_list_push(scratch, &file_dir_list, project_dir);
|
|
||||||
string_list_push_overlap(scratch, &file_dir_list, '/', path_str);
|
|
||||||
string_list_push_overlap(scratch, &file_dir_list, '/', SCu8());
|
|
||||||
file_dir = string_list_flatten(scratch, file_dir_list, StringFill_NullTerminate);
|
|
||||||
}
|
|
||||||
|
|
||||||
Project_File_Pattern_Array whitelist = current_project.pattern_array;
|
|
||||||
Project_File_Pattern_Array blacklist = current_project.blacklist_pattern_array;
|
|
||||||
open_files_pattern_match(app, file_dir, whitelist, blacklist, flags);
|
|
||||||
end_temp(temp);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set window title
|
|
||||||
if (project->name.size > 0){
|
|
||||||
Temp_Memory temp = begin_temp(scratch);
|
|
||||||
String_Const_u8 builder = push_u8_stringf(scratch, "4coder project: %.*s",
|
|
||||||
string_expand(project->name));
|
|
||||||
set_window_title(app, builder);
|
|
||||||
end_temp(temp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
#define M "Failed to initialize new project; need more memory dedicated to the project system.\n"
|
|
||||||
print_message(app, string_u8_litexpr(M));
|
|
||||||
#undef M
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (parsed != 0){
|
|
||||||
print_feedback = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (project != 0){
|
|
||||||
Variable_Handle proj_var = {};
|
|
||||||
|
|
||||||
if (parsed->version == 0 || *parsed->version < 2){
|
|
||||||
print_message(app, string_u8_litexpr("Project variables converted from version 1 to version 2\n"));
|
|
||||||
proj_var = prj_version_1_to_version_2(app, parsed, project);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
proj_var = def_fill_var_from_config(app, vars_get_root(), vars_save_string_lit("prj_config"), parsed);
|
|
||||||
}
|
|
||||||
|
|
||||||
vars_print(app, proj_var);
|
|
||||||
print_message(app, string_u8_litexpr("\n"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (print_feedback){
|
|
||||||
Temp_Memory temp = begin_temp(scratch);
|
|
||||||
|
|
||||||
// NOTE(allen): errors
|
|
||||||
String_Const_u8 error_text = config_stringize_errors(app, scratch, parsed);
|
|
||||||
if (project == 0){
|
|
||||||
print_message(app, string_u8_litexpr("Could not instantiate project\n"));
|
|
||||||
}
|
|
||||||
if (error_text.size > 0){
|
|
||||||
print_message(app, string_u8_litexpr("Project errors:\n"));
|
|
||||||
print_message(app, error_text);
|
|
||||||
print_message(app, string_u8_litexpr("\n"));
|
|
||||||
}
|
|
||||||
|
|
||||||
end_temp(temp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function void
|
|
||||||
set_current_project_from_data(Application_Links *app, String_Const_u8 file_name,
|
|
||||||
Data data, String_Const_u8 file_dir){
|
|
||||||
Scratch_Block scratch(app);
|
|
||||||
Project_Parse_Result project_parse = parse_project__data(app, scratch, file_name, data, file_dir);
|
|
||||||
set_current_project(app, project_parse.project, project_parse.parsed);
|
|
||||||
}
|
|
||||||
|
|
||||||
function void
|
|
||||||
set_current_project_from_nearest_project_file(Application_Links *app){
|
|
||||||
Scratch_Block scratch(app);
|
|
||||||
Project_Parse_Result project_parse = parse_project__nearest_file(app, scratch);
|
|
||||||
set_current_project(app, project_parse.project, project_parse.parsed);
|
|
||||||
}
|
|
||||||
|
|
||||||
function void
|
function void
|
||||||
prj_exec_command(Application_Links *app, Variable_Handle cmd_var){
|
prj_exec_command(Application_Links *app, Variable_Handle cmd_var){
|
||||||
Scratch_Block scratch(app);
|
Scratch_Block scratch(app);
|
||||||
|
@ -975,7 +787,150 @@ CUSTOM_DOC("Looks for a project.4coder file in the current directory and tries t
|
||||||
{
|
{
|
||||||
ProfileScope(app, "load project");
|
ProfileScope(app, "load project");
|
||||||
save_all_dirty_buffers(app);
|
save_all_dirty_buffers(app);
|
||||||
set_current_project_from_nearest_project_file(app);
|
Scratch_Block scratch(app);
|
||||||
|
|
||||||
|
Project_Parse_Result project_parse = {};
|
||||||
|
|
||||||
|
String_Const_u8 project_path = push_hot_directory(app, scratch);
|
||||||
|
if (project_path.size == 0){
|
||||||
|
print_message(app, string_u8_litexpr("The hot directory is empty, cannot search for a project.\n"));
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
File_Name_Data dump = dump_file_search_up_path(app, scratch, project_path, string_u8_litexpr("project.4coder"));
|
||||||
|
if (dump.data.data != 0){
|
||||||
|
String_Const_u8 project_root = string_remove_last_folder(dump.file_name);
|
||||||
|
|
||||||
|
Token_Array array = token_array_from_text(app, scratch, SCu8(dump.data));
|
||||||
|
if (array.tokens != 0){
|
||||||
|
project_parse.parsed = def_config_parse(app, scratch, dump.file_name, SCu8(dump.data), array);
|
||||||
|
if (project_parse.parsed != 0){
|
||||||
|
i32 version = 0;
|
||||||
|
if (project_parse.parsed->version != 0){
|
||||||
|
version = *project_parse.parsed->version;
|
||||||
|
}
|
||||||
|
switch (version){
|
||||||
|
case 1:
|
||||||
|
{
|
||||||
|
project_parse.project = parse_project__config_data__version_1(app, scratch, project_root, project_parse.parsed);
|
||||||
|
}break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
List_String_Const_u8 list = {};
|
||||||
|
string_list_push(scratch, &list, string_u8_litexpr("Did not find project.4coder. "));
|
||||||
|
if (current_project.loaded){
|
||||||
|
string_list_push(scratch, &list, string_u8_litexpr("Continuing with: "));
|
||||||
|
if (current_project.name.size > 0){
|
||||||
|
string_list_push(scratch, &list, current_project.name);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
string_list_push(scratch, &list, current_project.dir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
string_list_push(scratch, &list, string_u8_litexpr("Continuing without a project."));
|
||||||
|
}
|
||||||
|
string_list_push(scratch, &list, string_u8_litexpr("\n"));
|
||||||
|
String_Const_u8 message = string_list_flatten(scratch, list);
|
||||||
|
print_message(app, message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
b32 print_feedback = false;
|
||||||
|
|
||||||
|
if (project_parse.parsed != 0 && project_parse.project != 0){
|
||||||
|
if (current_project_arena.base_allocator == 0){
|
||||||
|
current_project_arena = make_arena_system();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy project to current_project
|
||||||
|
linalloc_clear(¤t_project_arena);
|
||||||
|
Project new_project = project_deep_copy(¤t_project_arena, project_parse.project);
|
||||||
|
if (new_project.loaded){
|
||||||
|
current_project = new_project;
|
||||||
|
|
||||||
|
print_feedback = true;
|
||||||
|
|
||||||
|
// NOTE(allen): Set the normal search list's project slot
|
||||||
|
def_search_project_path = current_project.dir;
|
||||||
|
|
||||||
|
// Open all project files
|
||||||
|
for (i32 i = 0; i < current_project.load_path_array.count; ++i){
|
||||||
|
Project_File_Load_Path *load_path = ¤t_project.load_path_array.paths[i];
|
||||||
|
u32 flags = 0;
|
||||||
|
if (load_path->recursive){
|
||||||
|
flags |= OpenAllFilesFlag_Recursive;
|
||||||
|
}
|
||||||
|
|
||||||
|
Temp_Memory temp = begin_temp(scratch);
|
||||||
|
String_Const_u8 path_str = load_path->path;
|
||||||
|
String_Const_u8 file_dir = path_str;
|
||||||
|
if (load_path->relative){
|
||||||
|
String_Const_u8 project_dir = current_project.dir;
|
||||||
|
List_String_Const_u8 file_dir_list = {};
|
||||||
|
string_list_push(scratch, &file_dir_list, project_dir);
|
||||||
|
string_list_push_overlap(scratch, &file_dir_list, '/', path_str);
|
||||||
|
string_list_push_overlap(scratch, &file_dir_list, '/', SCu8());
|
||||||
|
file_dir = string_list_flatten(scratch, file_dir_list, StringFill_NullTerminate);
|
||||||
|
}
|
||||||
|
|
||||||
|
Project_File_Pattern_Array whitelist = current_project.pattern_array;
|
||||||
|
Project_File_Pattern_Array blacklist = current_project.blacklist_pattern_array;
|
||||||
|
open_files_pattern_match(app, file_dir, whitelist, blacklist, flags);
|
||||||
|
end_temp(temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set window title
|
||||||
|
if (project_parse.project->name.size > 0){
|
||||||
|
Temp_Memory temp = begin_temp(scratch);
|
||||||
|
String_Const_u8 builder = push_u8_stringf(scratch, "4coder project: %.*s",
|
||||||
|
string_expand(project_parse.project->name));
|
||||||
|
set_window_title(app, builder);
|
||||||
|
end_temp(temp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
#define M "Failed to initialize new project; need more memory dedicated to the project system.\n"
|
||||||
|
print_message(app, string_u8_litexpr(M));
|
||||||
|
#undef M
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (project_parse.parsed != 0){
|
||||||
|
print_feedback = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (project_parse.project != 0){
|
||||||
|
Variable_Handle proj_var = {};
|
||||||
|
|
||||||
|
if (project_parse.parsed->version == 0 || *project_parse.parsed->version < 2){
|
||||||
|
print_message(app, string_u8_litexpr("Project variables converted from version 1 to version 2\n"));
|
||||||
|
proj_var = prj_version_1_to_version_2(app, project_parse.parsed, project_parse.project);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
proj_var = def_fill_var_from_config(app, vars_get_root(), vars_save_string_lit("prj_config"), project_parse.parsed);
|
||||||
|
}
|
||||||
|
|
||||||
|
vars_print(app, proj_var);
|
||||||
|
print_message(app, string_u8_litexpr("\n"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (print_feedback){
|
||||||
|
// NOTE(allen): errors
|
||||||
|
String_Const_u8 error_text = config_stringize_errors(app, scratch, project_parse.parsed);
|
||||||
|
if (project_parse.project == 0){
|
||||||
|
print_message(app, string_u8_litexpr("Could not instantiate project\n"));
|
||||||
|
}
|
||||||
|
if (error_text.size > 0){
|
||||||
|
print_message(app, string_u8_litexpr("Project errors:\n"));
|
||||||
|
print_message(app, error_text);
|
||||||
|
print_message(app, string_u8_litexpr("\n"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CUSTOM_COMMAND_SIG(project_fkey_command)
|
CUSTOM_COMMAND_SIG(project_fkey_command)
|
||||||
|
|
|
@ -295,7 +295,7 @@ static Command_Metadata fcoder_metacmd_table[250] = {
|
||||||
{ PROC_LINKS(click_set_cursor_if_lbutton, 0), false, "click_set_cursor_if_lbutton", 27, "If the mouse left button is pressed, sets the cursor position to the mouse position.", 84, "W:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 243 },
|
{ PROC_LINKS(click_set_cursor_if_lbutton, 0), false, "click_set_cursor_if_lbutton", 27, "If the mouse left button is pressed, sets the cursor position to the mouse position.", 84, "W:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 243 },
|
||||||
{ PROC_LINKS(click_set_mark, 0), false, "click_set_mark", 14, "Sets the mark position to the mouse position.", 45, "W:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 256 },
|
{ PROC_LINKS(click_set_mark, 0), false, "click_set_mark", 14, "Sets the mark position to the mouse position.", 45, "W:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 256 },
|
||||||
{ PROC_LINKS(clipboard_record_clip, 0), false, "clipboard_record_clip", 21, "In response to a new clipboard contents events, saves the new clip onto the clipboard history", 93, "W:\\4ed\\code\\custom\\4coder_clipboard.cpp", 39, 7 },
|
{ PROC_LINKS(clipboard_record_clip, 0), false, "clipboard_record_clip", 21, "In response to a new clipboard contents events, saves the new clip onto the clipboard history", 93, "W:\\4ed\\code\\custom\\4coder_clipboard.cpp", 39, 7 },
|
||||||
{ PROC_LINKS(close_all_code, 0), false, "close_all_code", 14, "Closes any buffer with a filename ending with an extension configured to be recognized as a code file type.", 107, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 944 },
|
{ PROC_LINKS(close_all_code, 0), false, "close_all_code", 14, "Closes any buffer with a filename ending with an extension configured to be recognized as a code file type.", 107, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 756 },
|
||||||
{ PROC_LINKS(close_build_panel, 0), false, "close_build_panel", 17, "If the special build panel is open, closes it.", 46, "W:\\4ed\\code\\custom\\4coder_build_commands.cpp", 44, 175 },
|
{ PROC_LINKS(close_build_panel, 0), false, "close_build_panel", 17, "If the special build panel is open, closes it.", 46, "W:\\4ed\\code\\custom\\4coder_build_commands.cpp", 44, 175 },
|
||||||
{ PROC_LINKS(close_panel, 0), false, "close_panel", 11, "Closes the currently active panel if it is not the only panel open.", 67, "W:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 674 },
|
{ PROC_LINKS(close_panel, 0), false, "close_panel", 11, "Closes the currently active panel if it is not the only panel open.", 67, "W:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 674 },
|
||||||
{ PROC_LINKS(command_documentation, 0), true, "command_documentation", 21, "Prompts the user to select a command then loads a doc buffer for that item", 74, "W:\\4ed\\code\\custom\\4coder_docs.cpp", 34, 190 },
|
{ PROC_LINKS(command_documentation, 0), true, "command_documentation", 21, "Prompts the user to select a command then loads a doc buffer for that item", 74, "W:\\4ed\\code\\custom\\4coder_docs.cpp", 34, 190 },
|
||||||
|
@ -371,7 +371,7 @@ static Command_Metadata fcoder_metacmd_table[250] = {
|
||||||
{ PROC_LINKS(list_all_locations_of_type_definition_of_identifier, 0), false, "list_all_locations_of_type_definition_of_identifier", 51, "Reads a token or word under the cursor and lists all locations of strings that appear to define a type whose name matches it.", 125, "W:\\4ed\\code\\custom\\4coder_search.cpp", 36, 224 },
|
{ PROC_LINKS(list_all_locations_of_type_definition_of_identifier, 0), false, "list_all_locations_of_type_definition_of_identifier", 51, "Reads a token or word under the cursor and lists all locations of strings that appear to define a type whose name matches it.", 125, "W:\\4ed\\code\\custom\\4coder_search.cpp", 36, 224 },
|
||||||
{ PROC_LINKS(list_all_substring_locations, 0), false, "list_all_substring_locations", 28, "Queries the user for a string and lists all case-sensitive substring matches found in all open buffers.", 103, "W:\\4ed\\code\\custom\\4coder_search.cpp", 36, 174 },
|
{ PROC_LINKS(list_all_substring_locations, 0), false, "list_all_substring_locations", 28, "Queries the user for a string and lists all case-sensitive substring matches found in all open buffers.", 103, "W:\\4ed\\code\\custom\\4coder_search.cpp", 36, 174 },
|
||||||
{ PROC_LINKS(list_all_substring_locations_case_insensitive, 0), false, "list_all_substring_locations_case_insensitive", 45, "Queries the user for a string and lists all case-insensitive substring matches found in all open buffers.", 105, "W:\\4ed\\code\\custom\\4coder_search.cpp", 36, 186 },
|
{ PROC_LINKS(list_all_substring_locations_case_insensitive, 0), false, "list_all_substring_locations_case_insensitive", 45, "Queries the user for a string and lists all case-insensitive substring matches found in all open buffers.", 105, "W:\\4ed\\code\\custom\\4coder_search.cpp", 36, 186 },
|
||||||
{ PROC_LINKS(load_project, 0), false, "load_project", 12, "Looks for a project.4coder file in the current directory and tries to load it. Looks in parent directories until a project file is found or there are no more parents.", 167, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 973 },
|
{ PROC_LINKS(load_project, 0), false, "load_project", 12, "Looks for a project.4coder file in the current directory and tries to load it. Looks in parent directories until a project file is found or there are no more parents.", 167, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 785 },
|
||||||
{ PROC_LINKS(load_theme_current_buffer, 0), false, "load_theme_current_buffer", 25, "Parse the current buffer as a theme file and add the theme to the theme list. If the buffer has a .4coder postfix in it's name, it is removed when the name is saved.", 165, "W:\\4ed\\code\\custom\\4coder_config.cpp", 36, 1560 },
|
{ PROC_LINKS(load_theme_current_buffer, 0), false, "load_theme_current_buffer", 25, "Parse the current buffer as a theme file and add the theme to the theme list. If the buffer has a .4coder postfix in it's name, it is removed when the name is saved.", 165, "W:\\4ed\\code\\custom\\4coder_config.cpp", 36, 1560 },
|
||||||
{ PROC_LINKS(load_themes_default_folder, 0), false, "load_themes_default_folder", 26, "Loads all the theme files in the default theme folder.", 54, "W:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 535 },
|
{ PROC_LINKS(load_themes_default_folder, 0), false, "load_themes_default_folder", 26, "Loads all the theme files in the default theme folder.", 54, "W:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 535 },
|
||||||
{ PROC_LINKS(load_themes_hot_directory, 0), false, "load_themes_hot_directory", 25, "Loads all the theme files in the current hot directory.", 55, "W:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 547 },
|
{ PROC_LINKS(load_themes_hot_directory, 0), false, "load_themes_hot_directory", 25, "Loads all the theme files in the current hot directory.", 55, "W:\\4ed\\code\\custom\\4coder_default_framework.cpp", 47, 547 },
|
||||||
|
@ -414,8 +414,8 @@ static Command_Metadata fcoder_metacmd_table[250] = {
|
||||||
{ PROC_LINKS(multi_paste_interactive_quick, 0), false, "multi_paste_interactive_quick", 29, "Paste multiple lines from the clipboard history, controlled by inputing the number of lines to paste", 100, "W:\\4ed\\code\\custom\\4coder_clipboard.cpp", 39, 380 },
|
{ PROC_LINKS(multi_paste_interactive_quick, 0), false, "multi_paste_interactive_quick", 29, "Paste multiple lines from the clipboard history, controlled by inputing the number of lines to paste", 100, "W:\\4ed\\code\\custom\\4coder_clipboard.cpp", 39, 380 },
|
||||||
{ PROC_LINKS(music_start, 0), false, "music_start", 11, "Starts the music.", 17, "W:\\4ed\\code\\custom\\4coder_examples.cpp", 38, 213 },
|
{ PROC_LINKS(music_start, 0), false, "music_start", 11, "Starts the music.", 17, "W:\\4ed\\code\\custom\\4coder_examples.cpp", 38, 213 },
|
||||||
{ PROC_LINKS(music_stop, 0), false, "music_stop", 10, "Stops the music.", 16, "W:\\4ed\\code\\custom\\4coder_examples.cpp", 38, 232 },
|
{ PROC_LINKS(music_stop, 0), false, "music_stop", 10, "Stops the music.", 16, "W:\\4ed\\code\\custom\\4coder_examples.cpp", 38, 232 },
|
||||||
{ PROC_LINKS(open_all_code, 0), false, "open_all_code", 13, "Open all code in the current directory. File types are determined by extensions. An extension is considered code based on the extensions specified in 4coder.config.", 164, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 953 },
|
{ PROC_LINKS(open_all_code, 0), false, "open_all_code", 13, "Open all code in the current directory. File types are determined by extensions. An extension is considered code based on the extensions specified in 4coder.config.", 164, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 765 },
|
||||||
{ PROC_LINKS(open_all_code_recursive, 0), false, "open_all_code_recursive", 23, "Works as open_all_code but also runs in all subdirectories.", 59, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 962 },
|
{ PROC_LINKS(open_all_code_recursive, 0), false, "open_all_code_recursive", 23, "Works as open_all_code but also runs in all subdirectories.", 59, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 774 },
|
||||||
{ 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, 1576 },
|
{ 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, 1576 },
|
||||||
{ 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, 2059 },
|
{ 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, 2059 },
|
||||||
{ PROC_LINKS(open_long_braces, 0), false, "open_long_braces", 16, "At the cursor, insert a '{' and '}' separated by a blank line.", 62, "W:\\4ed\\code\\custom\\4coder_combined_write_commands.cpp", 53, 46 },
|
{ PROC_LINKS(open_long_braces, 0), false, "open_long_braces", 16, "At the cursor, insert a '{' and '}' separated by a blank line.", 62, "W:\\4ed\\code\\custom\\4coder_combined_write_commands.cpp", 53, 46 },
|
||||||
|
@ -436,9 +436,9 @@ static Command_Metadata fcoder_metacmd_table[250] = {
|
||||||
{ 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, 219 },
|
{ 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, 219 },
|
||||||
{ 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, 212 },
|
{ 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, 212 },
|
||||||
{ PROC_LINKS(profile_inspect, 0), true, "profile_inspect", 15, "Inspect all currently collected profiling information in 4coder's self profiler.", 80, "W:\\4ed\\code\\custom\\4coder_profile_inspect.cpp", 45, 886 },
|
{ PROC_LINKS(profile_inspect, 0), true, "profile_inspect", 15, "Inspect all currently collected profiling information in 4coder's self profiler.", 80, "W:\\4ed\\code\\custom\\4coder_profile_inspect.cpp", 45, 886 },
|
||||||
{ PROC_LINKS(project_command_lister, 0), false, "project_command_lister", 22, "Open a lister of all commands in the currently loaded project.", 62, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 1395 },
|
{ PROC_LINKS(project_command_lister, 0), false, "project_command_lister", 22, "Open a lister of all commands in the currently loaded project.", 62, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 1350 },
|
||||||
{ PROC_LINKS(project_fkey_command, 0), false, "project_fkey_command", 20, "Run an 'fkey command' configured in a project.4coder file. Determines the index of the 'fkey command' by which function key or numeric key was pressed to trigger the command.", 175, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 981 },
|
{ PROC_LINKS(project_fkey_command, 0), false, "project_fkey_command", 20, "Run an 'fkey command' configured in a project.4coder file. Determines the index of the 'fkey command' by which function key or numeric key was pressed to trigger the command.", 175, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 936 },
|
||||||
{ PROC_LINKS(project_go_to_root_directory, 0), false, "project_go_to_root_directory", 28, "Changes 4coder's hot directory to the root directory of the currently loaded project. With no loaded project nothing hapepns.", 125, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 1007 },
|
{ PROC_LINKS(project_go_to_root_directory, 0), false, "project_go_to_root_directory", 28, "Changes 4coder's hot directory to the root directory of the currently loaded project. With no loaded project nothing hapepns.", 125, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 962 },
|
||||||
{ 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, 1282 },
|
{ 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, 1282 },
|
||||||
{ 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, 1303 },
|
{ 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, 1303 },
|
||||||
{ 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, 1319 },
|
{ 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, 1319 },
|
||||||
|
@ -477,10 +477,10 @@ static Command_Metadata fcoder_metacmd_table[250] = {
|
||||||
{ PROC_LINKS(set_mark, 0), false, "set_mark", 8, "Sets the mark to the current position of the cursor.", 52, "W:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 115 },
|
{ PROC_LINKS(set_mark, 0), false, "set_mark", 8, "Sets the mark to the current position of the cursor.", 52, "W:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 115 },
|
||||||
{ 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, 499 },
|
{ 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, 499 },
|
||||||
{ 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, 493 },
|
{ 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, 493 },
|
||||||
{ PROC_LINKS(setup_build_bat, 0), false, "setup_build_bat", 15, "Queries the user for several configuration options and initializes a new build batch script.", 92, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 1349 },
|
{ PROC_LINKS(setup_build_bat, 0), false, "setup_build_bat", 15, "Queries the user for several configuration options and initializes a new build batch script.", 92, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 1304 },
|
||||||
{ PROC_LINKS(setup_build_bat_and_sh, 0), false, "setup_build_bat_and_sh", 22, "Queries the user for several configuration options and initializes a new build batch script.", 92, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 1361 },
|
{ PROC_LINKS(setup_build_bat_and_sh, 0), false, "setup_build_bat_and_sh", 22, "Queries the user for several configuration options and initializes a new build batch script.", 92, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 1316 },
|
||||||
{ PROC_LINKS(setup_build_sh, 0), false, "setup_build_sh", 14, "Queries the user for several configuration options and initializes a new build shell script.", 92, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 1355 },
|
{ PROC_LINKS(setup_build_sh, 0), false, "setup_build_sh", 14, "Queries the user for several configuration options and initializes a new build shell script.", 92, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 1310 },
|
||||||
{ PROC_LINKS(setup_new_project, 0), false, "setup_new_project", 17, "Queries the user for several configuration options and initializes a new 4coder project with build scripts for every OS.", 120, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 1342 },
|
{ PROC_LINKS(setup_new_project, 0), false, "setup_new_project", 17, "Queries the user for several configuration options and initializes a new 4coder project with build scripts for every OS.", 120, "W:\\4ed\\code\\custom\\4coder_project_commands.cpp", 46, 1297 },
|
||||||
{ PROC_LINKS(show_filebar, 0), false, "show_filebar", 12, "Sets the current view to show it's filebar.", 43, "W:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 697 },
|
{ PROC_LINKS(show_filebar, 0), false, "show_filebar", 12, "Sets the current view to show it's filebar.", 43, "W:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 697 },
|
||||||
{ PROC_LINKS(show_scrollbar, 0), false, "show_scrollbar", 14, "Sets the current view to show it's scrollbar.", 45, "W:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 683 },
|
{ PROC_LINKS(show_scrollbar, 0), false, "show_scrollbar", 14, "Sets the current view to show it's scrollbar.", 45, "W:\\4ed\\code\\custom\\4coder_base_commands.cpp", 43, 683 },
|
||||||
{ PROC_LINKS(show_the_log_graph, 0), true, "show_the_log_graph", 18, "Parses *log* and displays the 'log graph' UI", 44, "W:\\4ed\\code\\custom\\4coder_log_parser.cpp", 40, 993 },
|
{ PROC_LINKS(show_the_log_graph, 0), true, "show_the_log_graph", 18, "Parses *log* and displays the 'log graph' UI", 44, "W:\\4ed\\code\\custom\\4coder_log_parser.cpp", 40, 993 },
|
||||||
|
|
Loading…
Reference in New Issue