aboutsummaryrefslogtreecommitdiffstats
path: root/code/custom/4coder_prj_v1.h
blob: 2b5e0e6f5d93affd5d08dc3c5f6cede6e15bc53d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*
4coder_prj_v1.h - type header paired with 4coder_prj_v1.cpp
*/

// TOP

#ifndef FCODER_PRJ_V1_H
#define FCODER_PRJ_V1_H

///////////////////////////////
// NOTE(allen): Project v0-v1 Structure

struct Prj_V1_File_Load_Path{
    String8 path;
    b32 recursive;
    b32 relative;
};

struct Prj_V1_File_Load_Path_Array{
    Prj_V1_File_Load_Path *paths;
    i32 count;
};

struct Prj_V1_Command{
    String8 name;
    String8 cmd;
    String8 out;
    b32 footer_panel;
    b32 save_dirty_files;
    b32 cursor_at_end;
};

struct Prj_V1_Command_Array{
    Prj_V1_Command *commands;
    i32 count;
};

struct Prj_V1{
    b32 loaded;
    
    String8 dir;
    String8 name;
    
    Prj_Pattern_List pattern_list;
    Prj_Pattern_List blacklist_pattern_list;
    Prj_V1_File_Load_Path_Array load_path_array;
    Prj_V1_Command_Array command_array;
    
    i32 fkey_commands[16];
};

enum Prj_V1_OS_Match_Level{
    PrjV1OSMatchLevel_NoMatch = 0,
    PrjV1OSMatchLevel_PassiveMatch = 1,
    PrjV1OSMatchLevel_ActiveMatch = 2,
};


////////////////////////////////
// NOTE(allen): Project v0-v1 -> v2 Function

function Variable_Handle prj_v1_to_v2(Application_Links *app, String8 dir, Config *parsed);


#endif //4CODER_PRJ_V1_H

// BOTTOM