4coder/custom/4coder_project_commands.h

99 lines
1.8 KiB
C

/*
4coder_project_commands.h - type header paired with 4coder_project_commands.cpp
*/
// TOP
#if !defined(FCODER_PROJECT_COMMANDS_H)
#define FCODER_PROJECT_COMMANDS_H
enum{
OpenAllFilesFlag_Recursive = 1,
};
///////////////////////////////
struct Match_Pattern{
List_String_Const_u8 absolutes;
};
struct Match_Pattern_Node{
Match_Pattern_Node *next;
Match_Pattern pattern;
};
struct Match_Pattern_List{
Match_Pattern_Node *first;
Match_Pattern_Node *last;
i32 count;
};
struct Project_File_Load_Path{
String_Const_u8 path;
b32 recursive;
b32 relative;
};
struct Project_File_Load_Path_Array{
Project_File_Load_Path *paths;
i32 count;
};
struct Project_Command{
String_Const_u8 name;
String_Const_u8 cmd;
String_Const_u8 out;
b32 footer_panel;
b32 save_dirty_files;
b32 cursor_at_end;
};
struct Project_Command_Array{
Project_Command *commands;
i32 count;
};
struct Project{
b32 loaded;
String_Const_u8 dir;
String_Const_u8 name;
Match_Pattern_List pattern_list;
Match_Pattern_List blacklist_pattern_list;
Project_File_Load_Path_Array load_path_array;
Project_Command_Array command_array;
// NOTE(allen): Only used for conversion from 1 -> 2
i32 fkey_commands[16];
};
typedef i32 Project_OS_Match_Level;
enum{
ProjectOSMatchLevel_NoMatch = 0,
ProjectOSMatchLevel_PassiveMatch = 1,
ProjectOSMatchLevel_ActiveMatch = 2,
};
///////////////////////////////
struct Project_Setup_Status{
b32 bat_exists;
b32 sh_exists;
b32 project_exists;
b32 everything_exists;
};
struct Project_Key_Strings{
b32 success;
String_Const_u8 script_file;
String_Const_u8 code_file;
String_Const_u8 output_dir;
String_Const_u8 binary_file;
};
#endif
// BOTTOM