Fix pattern match names
This commit is contained in:
parent
6275df55b3
commit
0ed7a55e66
|
@ -7,13 +7,13 @@
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
// NOTE(allen): File Pattern Operators
|
// NOTE(allen): File Pattern Operators
|
||||||
|
|
||||||
function Match_Pattern_List
|
function Prj_Pattern_List
|
||||||
prj_pattern_list_from_extension_array(Arena *arena, String8Array list){
|
prj_pattern_list_from_extension_array(Arena *arena, String8Array list){
|
||||||
Match_Pattern_List result = {};
|
Prj_Pattern_List result = {};
|
||||||
for (i32 i = 0;
|
for (i32 i = 0;
|
||||||
i < list.count;
|
i < list.count;
|
||||||
++i){
|
++i){
|
||||||
Match_Pattern_Node *node = push_array(arena, Match_Pattern_Node, 1);
|
Prj_Pattern_Node *node = push_array(arena, Prj_Pattern_Node, 1);
|
||||||
sll_queue_push(result.first, result.last, node);
|
sll_queue_push(result.first, result.last, node);
|
||||||
result.count += 1;
|
result.count += 1;
|
||||||
|
|
||||||
|
@ -23,11 +23,11 @@ prj_pattern_list_from_extension_array(Arena *arena, String8Array list){
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
function Match_Pattern_List
|
function Prj_Pattern_List
|
||||||
prj_pattern_list_from_var(Arena *arena, Variable_Handle var){
|
prj_pattern_list_from_var(Arena *arena, Variable_Handle var){
|
||||||
Match_Pattern_List result = {};
|
Prj_Pattern_List result = {};
|
||||||
for (Vars_Children(child_var, var)){
|
for (Vars_Children(child_var, var)){
|
||||||
Match_Pattern_Node *node = push_array(arena, Match_Pattern_Node, 1);
|
Prj_Pattern_Node *node = push_array(arena, Prj_Pattern_Node, 1);
|
||||||
sll_queue_push(result.first, result.last, node);
|
sll_queue_push(result.first, result.last, node);
|
||||||
result.count += 1;
|
result.count += 1;
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ prj_pattern_list_from_var(Arena *arena, Variable_Handle var){
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
function Match_Pattern_List
|
function Prj_Pattern_List
|
||||||
prj_get_standard_blacklist(Arena *arena){
|
prj_get_standard_blacklist(Arena *arena){
|
||||||
String8 dot = string_u8_litexpr(".*");
|
String8 dot = string_u8_litexpr(".*");
|
||||||
String8Array black_array = {};
|
String8Array black_array = {};
|
||||||
|
@ -47,9 +47,9 @@ prj_get_standard_blacklist(Arena *arena){
|
||||||
}
|
}
|
||||||
|
|
||||||
function b32
|
function b32
|
||||||
prj_match_in_pattern_list(String8 string, Match_Pattern_List list){
|
prj_match_in_pattern_list(String8 string, Prj_Pattern_List list){
|
||||||
b32 found_match = false;
|
b32 found_match = false;
|
||||||
for (Match_Pattern_Node *node = list.first;
|
for (Prj_Pattern_Node *node = list.first;
|
||||||
node != 0;
|
node != 0;
|
||||||
node = node->next){
|
node = node->next){
|
||||||
if (string_wildcard_match(node->pattern.absolutes, string, StringMatch_Exact)){
|
if (string_wildcard_match(node->pattern.absolutes, string, StringMatch_Exact)){
|
||||||
|
@ -109,7 +109,7 @@ prj_close_files_with_ext(Application_Links *app, String8Array extension_array){
|
||||||
}
|
}
|
||||||
|
|
||||||
function void
|
function void
|
||||||
prj_open_files_pattern_filter__rec(Application_Links *app, String8 path, Match_Pattern_List whitelist, Match_Pattern_List blacklist, Prj_Open_File_Flags flags){
|
prj_open_files_pattern_filter__rec(Application_Links *app, String8 path, Prj_Pattern_List whitelist, Prj_Pattern_List blacklist, Prj_Open_File_Flags flags){
|
||||||
Scratch_Block scratch(app);
|
Scratch_Block scratch(app);
|
||||||
|
|
||||||
ProfileScopeNamed(app, "get file list", profile_get_file_list);
|
ProfileScopeNamed(app, "get file list", profile_get_file_list);
|
||||||
|
@ -143,7 +143,7 @@ prj_open_files_pattern_filter__rec(Application_Links *app, String8 path, Match_P
|
||||||
}
|
}
|
||||||
|
|
||||||
function void
|
function void
|
||||||
prj_open_files_pattern_filter(Application_Links *app, String8 dir, Match_Pattern_List whitelist, Match_Pattern_List blacklist, Prj_Open_File_Flags flags){
|
prj_open_files_pattern_filter(Application_Links *app, String8 dir, Prj_Pattern_List whitelist, Prj_Pattern_List blacklist, Prj_Open_File_Flags flags){
|
||||||
ProfileScope(app, "open all files in directory pattern");
|
ProfileScope(app, "open all files in directory pattern");
|
||||||
Scratch_Block scratch(app);
|
Scratch_Block scratch(app);
|
||||||
String8 directory = dir;
|
String8 directory = dir;
|
||||||
|
@ -161,8 +161,8 @@ prj_open_all_files_with_ext_in_hot(Application_Links *app, String8Array array, P
|
||||||
if (!character_is_slash(string_get_character(hot, hot.size - 1))){
|
if (!character_is_slash(string_get_character(hot, hot.size - 1))){
|
||||||
directory = push_u8_stringf(scratch, "%.*s/", string_expand(hot));
|
directory = push_u8_stringf(scratch, "%.*s/", string_expand(hot));
|
||||||
}
|
}
|
||||||
Match_Pattern_List whitelist = prj_pattern_list_from_extension_array(scratch, array);
|
Prj_Pattern_List whitelist = prj_pattern_list_from_extension_array(scratch, array);
|
||||||
Match_Pattern_List blacklist = prj_get_standard_blacklist(scratch);
|
Prj_Pattern_List blacklist = prj_get_standard_blacklist(scratch);
|
||||||
prj_open_files_pattern_filter(app, hot, whitelist, blacklist, flags);
|
prj_open_files_pattern_filter(app, hot, whitelist, blacklist, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,14 +170,14 @@ prj_open_all_files_with_ext_in_hot(Application_Links *app, String8Array array, P
|
||||||
// NOTE(allen): Project Parse
|
// NOTE(allen): Project Parse
|
||||||
|
|
||||||
function void
|
function void
|
||||||
prj_parse_pattern_list(Arena *arena, Config *parsed, char *root_variable_name, Match_Pattern_List *list_out){
|
prj_parse_pattern_list(Arena *arena, Config *parsed, char *root_variable_name, Prj_Pattern_List *list_out){
|
||||||
Config_Compound *compound = 0;
|
Config_Compound *compound = 0;
|
||||||
if (config_compound_var(parsed, root_variable_name, 0, &compound)){
|
if (config_compound_var(parsed, root_variable_name, 0, &compound)){
|
||||||
Config_Get_Result_List list = typed_string_array_reference_list(arena, parsed, compound);
|
Config_Get_Result_List list = typed_string_array_reference_list(arena, parsed, compound);
|
||||||
for (Config_Get_Result_Node *cfg_node = list.first;
|
for (Config_Get_Result_Node *cfg_node = list.first;
|
||||||
cfg_node != 0;
|
cfg_node != 0;
|
||||||
cfg_node = cfg_node->next){
|
cfg_node = cfg_node->next){
|
||||||
Match_Pattern_Node *node = push_array(arena, Match_Pattern_Node, 1);
|
Prj_Pattern_Node *node = push_array(arena, Prj_Pattern_Node, 1);
|
||||||
sll_queue_push(list_out->first, list_out->last, node);
|
sll_queue_push(list_out->first, list_out->last, node);
|
||||||
list_out->count += 1;
|
list_out->count += 1;
|
||||||
String8 str = push_string_copy(arena, cfg_node->result.string);
|
String8 str = push_string_copy(arena, cfg_node->result.string);
|
||||||
|
@ -414,11 +414,11 @@ prj_parse_from_v1_config_data(Application_Links *app, Arena *arena, String8 root
|
||||||
}
|
}
|
||||||
|
|
||||||
function void
|
function void
|
||||||
project_deep_copy__pattern_list(Arena *arena, Match_Pattern_List *src_list, Match_Pattern_List *dst_list){
|
project_deep_copy__pattern_list(Arena *arena, Prj_Pattern_List *src_list, Prj_Pattern_List *dst_list){
|
||||||
for (Match_Pattern_Node *src_node = src_list->first;
|
for (Prj_Pattern_Node *src_node = src_list->first;
|
||||||
src_node != 0;
|
src_node != 0;
|
||||||
src_node = src_node->next){
|
src_node = src_node->next){
|
||||||
Match_Pattern_Node *dst_node = push_array(arena, Match_Pattern_Node, 1);
|
Prj_Pattern_Node *dst_node = push_array(arena, Prj_Pattern_Node, 1);
|
||||||
sll_queue_push(dst_list->first, dst_list->last, dst_node);
|
sll_queue_push(dst_list->first, dst_list->last, dst_node);
|
||||||
dst_list->count += 1;
|
dst_list->count += 1;
|
||||||
|
|
||||||
|
@ -587,7 +587,7 @@ prj_version_1_to_version_2(Application_Links *app, Config *parsed, Prj *project)
|
||||||
// NOTE(allen): Load Pattern
|
// NOTE(allen): Load Pattern
|
||||||
struct PatternVars{
|
struct PatternVars{
|
||||||
String_ID id;
|
String_ID id;
|
||||||
Match_Pattern_List list;
|
Prj_Pattern_List list;
|
||||||
};
|
};
|
||||||
PatternVars pattern_vars[] = {
|
PatternVars pattern_vars[] = {
|
||||||
{ patterns_id, project-> pattern_list},
|
{ patterns_id, project-> pattern_list},
|
||||||
|
@ -600,7 +600,7 @@ prj_version_1_to_version_2(Application_Links *app, Config *parsed, Prj *project)
|
||||||
Variable_Handle patterns = vars_new_variable(proj_var, pattern_var->id);
|
Variable_Handle patterns = vars_new_variable(proj_var, pattern_var->id);
|
||||||
|
|
||||||
i32 i = 0;
|
i32 i = 0;
|
||||||
for (Match_Pattern_Node *node = pattern_var->list.first;
|
for (Prj_Pattern_Node *node = pattern_var->list.first;
|
||||||
node != 0;
|
node != 0;
|
||||||
node = node->next, i += 1){
|
node = node->next, i += 1){
|
||||||
String8 pattern_string = prj_join_pattern_string(scratch, node->pattern.absolutes);
|
String8 pattern_string = prj_join_pattern_string(scratch, node->pattern.absolutes);
|
||||||
|
@ -1220,8 +1220,8 @@ CUSTOM_DOC("Looks for a project.4coder file in the current directory and tries t
|
||||||
Variable_Handle whitelist_var = vars_read_key(proj_var, vars_save_string_lit("patterns"));
|
Variable_Handle whitelist_var = vars_read_key(proj_var, vars_save_string_lit("patterns"));
|
||||||
Variable_Handle blacklist_var = vars_read_key(proj_var, vars_save_string_lit("blacklist_patterns"));
|
Variable_Handle blacklist_var = vars_read_key(proj_var, vars_save_string_lit("blacklist_patterns"));
|
||||||
|
|
||||||
Match_Pattern_List whitelist = prj_pattern_list_from_var(scratch, whitelist_var);
|
Prj_Pattern_List whitelist = prj_pattern_list_from_var(scratch, whitelist_var);
|
||||||
Match_Pattern_List blacklist = prj_pattern_list_from_var(scratch, blacklist_var);
|
Prj_Pattern_List blacklist = prj_pattern_list_from_var(scratch, blacklist_var);
|
||||||
|
|
||||||
for (Variable_Handle load_path_var = vars_first_child(load_paths_os_var);
|
for (Variable_Handle load_path_var = vars_first_child(load_paths_os_var);
|
||||||
!vars_is_nil(load_path_var);
|
!vars_is_nil(load_path_var);
|
||||||
|
|
|
@ -10,18 +10,18 @@
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
// NOTE(allen): Match Pattern Types
|
// NOTE(allen): Match Pattern Types
|
||||||
|
|
||||||
struct Match_Pattern{
|
struct Prj_Pattern{
|
||||||
String8List absolutes;
|
String8List absolutes;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Match_Pattern_Node{
|
struct Prj_Pattern_Node{
|
||||||
Match_Pattern_Node *next;
|
Prj_Pattern_Node *next;
|
||||||
Match_Pattern pattern;
|
Prj_Pattern pattern;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Match_Pattern_List{
|
struct Prj_Pattern_List{
|
||||||
Match_Pattern_Node *first;
|
Prj_Pattern_Node *first;
|
||||||
Match_Pattern_Node *last;
|
Prj_Pattern_Node *last;
|
||||||
i32 count;
|
i32 count;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -64,8 +64,8 @@ struct Prj{
|
||||||
String8 dir;
|
String8 dir;
|
||||||
String8 name;
|
String8 name;
|
||||||
|
|
||||||
Match_Pattern_List pattern_list;
|
Prj_Pattern_List pattern_list;
|
||||||
Match_Pattern_List blacklist_pattern_list;
|
Prj_Pattern_List blacklist_pattern_list;
|
||||||
Prj_File_Load_Path_Array load_path_array;
|
Prj_File_Load_Path_Array load_path_array;
|
||||||
Prj_Command_Array command_array;
|
Prj_Command_Array command_array;
|
||||||
|
|
||||||
|
@ -106,20 +106,20 @@ enum{
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
// NOTE(allen): File Pattern Operators
|
// NOTE(allen): File Pattern Operators
|
||||||
|
|
||||||
function Match_Pattern_List prj_pattern_list_from_extension_array(Arena *arena, String8Array list);
|
function Prj_Pattern_List prj_pattern_list_from_extension_array(Arena *arena, String8Array list);
|
||||||
function Match_Pattern_List prj_pattern_list_from_var(Arena *arena, Variable_Handle var);
|
function Prj_Pattern_List prj_pattern_list_from_var(Arena *arena, Variable_Handle var);
|
||||||
function Match_Pattern_List prj_get_standard_blacklist(Arena *arena);
|
function Prj_Pattern_List prj_get_standard_blacklist(Arena *arena);
|
||||||
|
|
||||||
function b32 prj_match_in_pattern_list(String8 string, Match_Pattern_List list);
|
function b32 prj_match_in_pattern_list(String8 string, Prj_Pattern_List list);
|
||||||
|
|
||||||
function void prj_close_files_with_ext(Application_Links *app, String8Array extension_array);
|
function void prj_close_files_with_ext(Application_Links *app, String8Array extension_array);
|
||||||
function void prj_open_files_pattern_filter(Application_Links *app, String8 dir, Match_Pattern_List whitelist, Match_Pattern_List blacklist, Prj_Open_File_Flags flags);
|
function void prj_open_files_pattern_filter(Application_Links *app, String8 dir, Prj_Pattern_List whitelist, Prj_Pattern_List blacklist, Prj_Open_File_Flags flags);
|
||||||
function void prj_open_all_files_with_ext_in_hot(Application_Links *app, String8Array array, Prj_Open_File_Flags flags);
|
function void prj_open_all_files_with_ext_in_hot(Application_Links *app, String8Array array, Prj_Open_File_Flags flags);
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
// NOTE(allen): Project Parse
|
// NOTE(allen): Project Parse
|
||||||
|
|
||||||
function void prj_parse_pattern_list(Arena *arena, Config *parsed, char *root_variable_name, Match_Pattern_List *list_out);
|
function void prj_parse_pattern_list(Arena *arena, Config *parsed, char *root_variable_name, Prj_Pattern_List *list_out);
|
||||||
function Prj_OS_Match_Level prj_parse_v1_os_match(String8 str, String8 this_os_str);
|
function Prj_OS_Match_Level prj_parse_v1_os_match(String8 str, String8 this_os_str);
|
||||||
function Prj *prj_parse_from_v1_config_data(Application_Links *app, Arena *arena, String8 root_dir, Config *parsed);
|
function Prj *prj_parse_from_v1_config_data(Application_Links *app, Arena *arena, String8 root_dir, Config *parsed);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue