export-table-pulgin-csharp 1.1.169 → 1.1.171
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/CSProtoParser.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CSProtoParser.d.ts","sourceRoot":"","sources":["../src/CSProtoParser.ts"],"names":[],"mappings":"AAUA,qBAAa,SAAS;IAClB,IAAI,EAAE,MAAM,CAAK;IACjB,OAAO,EAAE,OAAO,CAAQ;IACxB,IAAI,EAAE,MAAM,CAAK;IACjB,MAAM,EAAE,MAAM,CAAK;IACnB,MAAM,EAAE,MAAM,CAAK;IAEnB,OAAO,CAAC,CAAC,EAAE,MAAM;IAOjB,OAAO,CAAC,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"CSProtoParser.d.ts","sourceRoot":"","sources":["../src/CSProtoParser.ts"],"names":[],"mappings":"AAUA,qBAAa,SAAS;IAClB,IAAI,EAAE,MAAM,CAAK;IACjB,OAAO,EAAE,OAAO,CAAQ;IACxB,IAAI,EAAE,MAAM,CAAK;IACjB,MAAM,EAAE,MAAM,CAAK;IACnB,MAAM,EAAE,MAAM,CAAK;IAEnB,OAAO,CAAC,CAAC,EAAE,MAAM;IAOjB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAYnC,YAAY;CAGf;AAED,qBAAa,SAAS;IAClB,IAAI,EAAE,MAAM,CAAK;IACjB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAU;IAChC,MAAM,EAAE,SAAS,EAAE,CAAK;IAExB,YAAY,CAAC,SAAS,EAAE,MAAM;CAIjC;AAED,qBAAa,aAAa;IACtB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAa;IAC5C,cAAc,CAAC,QAAQ,EAAE,MAAM;IA+E/B,YAAY,CAAC,SAAS,EAAE,MAAM;CAGjC"}
|
package/dist/CSProtoParser.js
CHANGED
|
@@ -45,7 +45,8 @@ class FieldInfo {
|
|
|
45
45
|
.map(t => t.slice(0, 1).toUpperCase() + t.slice(1))
|
|
46
46
|
.join(""));
|
|
47
47
|
}
|
|
48
|
-
setType(t) {
|
|
48
|
+
setType(t, isArray) {
|
|
49
|
+
this.isArray = isArray;
|
|
49
50
|
this.type = t;
|
|
50
51
|
let internalType = fieldTypeMap[this.type];
|
|
51
52
|
if (internalType != undefined) {
|
|
@@ -73,8 +74,10 @@ class CSProtoParser {
|
|
|
73
74
|
typeMap = new Map();
|
|
74
75
|
parseProtoFile(filePath) {
|
|
75
76
|
let content = fs.readFileSync(filePath, "utf-8");
|
|
77
|
+
let classMeta = new ClassInfo();
|
|
76
78
|
let curClass = null;
|
|
77
79
|
let codeLines = content.split("\n");
|
|
80
|
+
let classMapperRegex = /\/\/\!\[Mapper\((\w+)\)\]/;
|
|
78
81
|
let messageRegex = /message (\w+)/;
|
|
79
82
|
let enumRegex = /enum (\w+)/;
|
|
80
83
|
let structEndRegex = /^\}/;
|
|
@@ -86,14 +89,25 @@ class CSProtoParser {
|
|
|
86
89
|
if (!isInClass) {
|
|
87
90
|
// check enter class
|
|
88
91
|
while (true) {
|
|
92
|
+
let mMapper = line.match(classMapperRegex);
|
|
93
|
+
if (mMapper) {
|
|
94
|
+
let mapName = mMapper[1];
|
|
95
|
+
classMeta.name = mapName;
|
|
96
|
+
console.log(`mapper: ${mapName}`);
|
|
97
|
+
}
|
|
89
98
|
let m1 = line.match(messageRegex);
|
|
90
99
|
if (m1) {
|
|
91
100
|
let className = m1[1];
|
|
92
101
|
curClass = new ClassInfo();
|
|
93
|
-
console.log(`find class: ${className}`)
|
|
102
|
+
// console.log(`find class: ${className}`)
|
|
94
103
|
curClass.name = className;
|
|
95
104
|
curClass.type = "class";
|
|
96
|
-
|
|
105
|
+
if (classMeta.name != "") {
|
|
106
|
+
this.typeMap.set(classMeta.name, curClass);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.typeMap.set(className, curClass);
|
|
110
|
+
}
|
|
97
111
|
isInClass = true;
|
|
98
112
|
break;
|
|
99
113
|
}
|
|
@@ -103,7 +117,12 @@ class CSProtoParser {
|
|
|
103
117
|
curClass = new ClassInfo();
|
|
104
118
|
curClass.name = enumName;
|
|
105
119
|
curClass.type = "enum";
|
|
106
|
-
|
|
120
|
+
if (classMeta.name != "") {
|
|
121
|
+
this.typeMap.set(classMeta.name, curClass);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this.typeMap.set(enumName, curClass);
|
|
125
|
+
}
|
|
107
126
|
isInClass = true;
|
|
108
127
|
break;
|
|
109
128
|
}
|
|
@@ -115,6 +134,7 @@ class CSProtoParser {
|
|
|
115
134
|
let m3 = line.match(structEndRegex);
|
|
116
135
|
if (m3) {
|
|
117
136
|
curClass = null;
|
|
137
|
+
classMeta.name = "";
|
|
118
138
|
isInClass = false;
|
|
119
139
|
}
|
|
120
140
|
else {
|
|
@@ -126,10 +146,9 @@ class CSProtoParser {
|
|
|
126
146
|
let fieldName = mField[3];
|
|
127
147
|
let field = new FieldInfo();
|
|
128
148
|
field.setName(fieldName);
|
|
129
|
-
field.setType(fieldType);
|
|
130
|
-
field.isArray = isArray;
|
|
149
|
+
field.setType(fieldType, isArray);
|
|
131
150
|
curClass.fields.push(field);
|
|
132
|
-
console.log(`find field: ${field.csName}, ${field.csType}, ${
|
|
151
|
+
// console.log(`find field: ${field.csName}, ${field.csType}, ${field.isArray}`)
|
|
133
152
|
}
|
|
134
153
|
}
|
|
135
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExportCSPlugin.d.ts","sourceRoot":"","sources":["../src/ExportCSPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,iBAAiB,EAA+B,UAAU,EAAE,iBAAiB,EAAmD,MAAM,kBAAkB,CAAA;AAMtK,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"ExportCSPlugin.d.ts","sourceRoot":"","sources":["../src/ExportCSPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,iBAAiB,EAA+B,UAAU,EAAE,iBAAiB,EAAmD,MAAM,kBAAkB,CAAA;AAMtK,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAgRpE;AAED,qBAAa,YAAa,SAAQ,UAAU;IAC3C,IAAI,SAAW;IACf,IAAI,EAAE,MAAM,EAAE,CAAS;IAEvB,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAI3C,WAAW,CAAC,KAAK,EAAE,iBAAiB;CAOpC"}
|
package/dist/ExportCSPlugin.js
CHANGED
|
@@ -29,17 +29,18 @@ function export_stuff(paras) {
|
|
|
29
29
|
let usingProtoNamespace = "";
|
|
30
30
|
let classNameOrigin = (0, CSParseTool_1.firstLetterUpper)(nameOrigin);
|
|
31
31
|
if (CSParseTool_1.isOverwriteWithProto) {
|
|
32
|
+
console.log(`map class: ${classNameOrigin}`);
|
|
32
33
|
let classInfo = protoParser.getClassInfo(classNameOrigin);
|
|
33
34
|
if (classInfo != null) {
|
|
34
35
|
extendClass = ` : ${classNameOrigin}`;
|
|
35
36
|
usingProtoNamespace = "\nusing DXTS.BattleProto;";
|
|
36
|
-
for (let f of classInfo.fields) {
|
|
37
|
-
|
|
38
|
-
}
|
|
37
|
+
// for (let f of classInfo.fields) {
|
|
38
|
+
// console.log(`${f.csName}`)
|
|
39
|
+
// }
|
|
39
40
|
}
|
|
40
41
|
isValidField = (f) => {
|
|
41
42
|
let fieldInfo = classInfo?.getFieldInfo(f.name);
|
|
42
|
-
console.log(`validf: ${f.name}, ${fieldInfo}`)
|
|
43
|
+
// console.log(`validf: ${f.name}, ${fieldInfo}`)
|
|
43
44
|
return fieldInfo == null;
|
|
44
45
|
};
|
|
45
46
|
getFieldType2 = (f) => {
|
package/package.json
CHANGED
package/src/CSProtoParser.ts
CHANGED
|
@@ -22,7 +22,8 @@ export class FieldInfo {
|
|
|
22
22
|
.map(t => t.slice(0, 1).toUpperCase() + t.slice(1))
|
|
23
23
|
.join(""))
|
|
24
24
|
}
|
|
25
|
-
setType(t: string) {
|
|
25
|
+
setType(t: string, isArray: boolean) {
|
|
26
|
+
this.isArray = isArray
|
|
26
27
|
this.type = t;
|
|
27
28
|
|
|
28
29
|
let internalType = fieldTypeMap[this.type]
|
|
@@ -53,8 +54,10 @@ export class CSProtoParser {
|
|
|
53
54
|
typeMap: Map<string, ClassInfo> = new Map();
|
|
54
55
|
parseProtoFile(filePath: string) {
|
|
55
56
|
let content = fs.readFileSync(filePath, "utf-8");
|
|
57
|
+
let classMeta = new ClassInfo()
|
|
56
58
|
let curClass: ClassInfo | null = null
|
|
57
59
|
let codeLines = content.split("\n")
|
|
60
|
+
let classMapperRegex = /\/\/\!\[Mapper\((\w+)\)\]/
|
|
58
61
|
let messageRegex = /message (\w+)/
|
|
59
62
|
let enumRegex = /enum (\w+)/
|
|
60
63
|
let structEndRegex = /^\}/
|
|
@@ -66,14 +69,24 @@ export class CSProtoParser {
|
|
|
66
69
|
if (!isInClass) {
|
|
67
70
|
// check enter class
|
|
68
71
|
while (true) {
|
|
72
|
+
let mMapper = line.match(classMapperRegex)
|
|
73
|
+
if (mMapper) {
|
|
74
|
+
let mapName = mMapper[1]
|
|
75
|
+
classMeta.name = mapName
|
|
76
|
+
console.log(`mapper: ${mapName}`)
|
|
77
|
+
}
|
|
69
78
|
let m1 = line.match(messageRegex)
|
|
70
79
|
if (m1) {
|
|
71
80
|
let className = m1[1]
|
|
72
81
|
curClass = new ClassInfo()
|
|
73
|
-
console.log(`find class: ${className}`)
|
|
82
|
+
// console.log(`find class: ${className}`)
|
|
74
83
|
curClass.name = className
|
|
75
84
|
curClass.type = "class"
|
|
76
|
-
|
|
85
|
+
if (classMeta.name != "") {
|
|
86
|
+
this.typeMap.set(classMeta.name, curClass)
|
|
87
|
+
} else {
|
|
88
|
+
this.typeMap.set(className, curClass)
|
|
89
|
+
}
|
|
77
90
|
isInClass = true
|
|
78
91
|
break
|
|
79
92
|
}
|
|
@@ -83,7 +96,11 @@ export class CSProtoParser {
|
|
|
83
96
|
curClass = new ClassInfo()
|
|
84
97
|
curClass.name = enumName
|
|
85
98
|
curClass.type = "enum"
|
|
86
|
-
|
|
99
|
+
if (classMeta.name != "") {
|
|
100
|
+
this.typeMap.set(classMeta.name, curClass)
|
|
101
|
+
} else {
|
|
102
|
+
this.typeMap.set(enumName, curClass)
|
|
103
|
+
}
|
|
87
104
|
isInClass = true
|
|
88
105
|
break
|
|
89
106
|
}
|
|
@@ -94,6 +111,7 @@ export class CSProtoParser {
|
|
|
94
111
|
let m3 = line.match(structEndRegex)
|
|
95
112
|
if (m3) {
|
|
96
113
|
curClass = null
|
|
114
|
+
classMeta.name = ""
|
|
97
115
|
isInClass = false;
|
|
98
116
|
} else {
|
|
99
117
|
// parse class fields
|
|
@@ -104,10 +122,9 @@ export class CSProtoParser {
|
|
|
104
122
|
let fieldName = mField[3]
|
|
105
123
|
let field = new FieldInfo()
|
|
106
124
|
field.setName(fieldName)
|
|
107
|
-
field.setType(fieldType)
|
|
108
|
-
field.isArray = isArray
|
|
125
|
+
field.setType(fieldType, isArray)
|
|
109
126
|
curClass!.fields.push(field)
|
|
110
|
-
console.log(`find field: ${field.csName}, ${field.csType}, ${
|
|
127
|
+
// console.log(`find field: ${field.csName}, ${field.csType}, ${field.isArray}`)
|
|
111
128
|
}
|
|
112
129
|
}
|
|
113
130
|
}
|
package/src/ExportCSPlugin.ts
CHANGED
|
@@ -47,17 +47,18 @@ export function export_stuff(paras: HandleSheetParams): string | null {
|
|
|
47
47
|
let usingProtoNamespace = ""
|
|
48
48
|
let classNameOrigin = firstLetterUpper(nameOrigin)
|
|
49
49
|
if (isOverwriteWithProto) {
|
|
50
|
+
console.log(`map class: ${classNameOrigin}`)
|
|
50
51
|
let classInfo = protoParser.getClassInfo(classNameOrigin)
|
|
51
52
|
if (classInfo != null) {
|
|
52
53
|
extendClass = ` : ${classNameOrigin}`
|
|
53
54
|
usingProtoNamespace = "\nusing DXTS.BattleProto;"
|
|
54
|
-
for (let f of classInfo.fields) {
|
|
55
|
-
|
|
56
|
-
}
|
|
55
|
+
// for (let f of classInfo.fields) {
|
|
56
|
+
// console.log(`${f.csName}`)
|
|
57
|
+
// }
|
|
57
58
|
}
|
|
58
59
|
isValidField = (f: Field) => {
|
|
59
60
|
let fieldInfo = classInfo?.getFieldInfo(f.name)
|
|
60
|
-
console.log(`validf: ${f.name}, ${fieldInfo}`)
|
|
61
|
+
// console.log(`validf: ${f.name}, ${fieldInfo}`)
|
|
61
62
|
return fieldInfo == null
|
|
62
63
|
}
|
|
63
64
|
getFieldType2 = (f: Field) => {
|