export-table-pulgin-csharp 1.1.170 → 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.
|
@@ -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,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;
|
|
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
|
@@ -74,8 +74,10 @@ class CSProtoParser {
|
|
|
74
74
|
typeMap = new Map();
|
|
75
75
|
parseProtoFile(filePath) {
|
|
76
76
|
let content = fs.readFileSync(filePath, "utf-8");
|
|
77
|
+
let classMeta = new ClassInfo();
|
|
77
78
|
let curClass = null;
|
|
78
79
|
let codeLines = content.split("\n");
|
|
80
|
+
let classMapperRegex = /\/\/\!\[Mapper\((\w+)\)\]/;
|
|
79
81
|
let messageRegex = /message (\w+)/;
|
|
80
82
|
let enumRegex = /enum (\w+)/;
|
|
81
83
|
let structEndRegex = /^\}/;
|
|
@@ -87,14 +89,25 @@ class CSProtoParser {
|
|
|
87
89
|
if (!isInClass) {
|
|
88
90
|
// check enter class
|
|
89
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
|
+
}
|
|
90
98
|
let m1 = line.match(messageRegex);
|
|
91
99
|
if (m1) {
|
|
92
100
|
let className = m1[1];
|
|
93
101
|
curClass = new ClassInfo();
|
|
94
|
-
console.log(`find class: ${className}`)
|
|
102
|
+
// console.log(`find class: ${className}`)
|
|
95
103
|
curClass.name = className;
|
|
96
104
|
curClass.type = "class";
|
|
97
|
-
|
|
105
|
+
if (classMeta.name != "") {
|
|
106
|
+
this.typeMap.set(classMeta.name, curClass);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.typeMap.set(className, curClass);
|
|
110
|
+
}
|
|
98
111
|
isInClass = true;
|
|
99
112
|
break;
|
|
100
113
|
}
|
|
@@ -104,7 +117,12 @@ class CSProtoParser {
|
|
|
104
117
|
curClass = new ClassInfo();
|
|
105
118
|
curClass.name = enumName;
|
|
106
119
|
curClass.type = "enum";
|
|
107
|
-
|
|
120
|
+
if (classMeta.name != "") {
|
|
121
|
+
this.typeMap.set(classMeta.name, curClass);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this.typeMap.set(enumName, curClass);
|
|
125
|
+
}
|
|
108
126
|
isInClass = true;
|
|
109
127
|
break;
|
|
110
128
|
}
|
|
@@ -116,6 +134,7 @@ class CSProtoParser {
|
|
|
116
134
|
let m3 = line.match(structEndRegex);
|
|
117
135
|
if (m3) {
|
|
118
136
|
curClass = null;
|
|
137
|
+
classMeta.name = "";
|
|
119
138
|
isInClass = false;
|
|
120
139
|
}
|
|
121
140
|
else {
|
|
@@ -129,7 +148,7 @@ class CSProtoParser {
|
|
|
129
148
|
field.setName(fieldName);
|
|
130
149
|
field.setType(fieldType, isArray);
|
|
131
150
|
curClass.fields.push(field);
|
|
132
|
-
console.log(`find field: ${field.csName}, ${field.csType}, ${field.isArray}`)
|
|
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
|
@@ -54,8 +54,10 @@ export class CSProtoParser {
|
|
|
54
54
|
typeMap: Map<string, ClassInfo> = new Map();
|
|
55
55
|
parseProtoFile(filePath: string) {
|
|
56
56
|
let content = fs.readFileSync(filePath, "utf-8");
|
|
57
|
+
let classMeta = new ClassInfo()
|
|
57
58
|
let curClass: ClassInfo | null = null
|
|
58
59
|
let codeLines = content.split("\n")
|
|
60
|
+
let classMapperRegex = /\/\/\!\[Mapper\((\w+)\)\]/
|
|
59
61
|
let messageRegex = /message (\w+)/
|
|
60
62
|
let enumRegex = /enum (\w+)/
|
|
61
63
|
let structEndRegex = /^\}/
|
|
@@ -67,14 +69,24 @@ export class CSProtoParser {
|
|
|
67
69
|
if (!isInClass) {
|
|
68
70
|
// check enter class
|
|
69
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
|
+
}
|
|
70
78
|
let m1 = line.match(messageRegex)
|
|
71
79
|
if (m1) {
|
|
72
80
|
let className = m1[1]
|
|
73
81
|
curClass = new ClassInfo()
|
|
74
|
-
console.log(`find class: ${className}`)
|
|
82
|
+
// console.log(`find class: ${className}`)
|
|
75
83
|
curClass.name = className
|
|
76
84
|
curClass.type = "class"
|
|
77
|
-
|
|
85
|
+
if (classMeta.name != "") {
|
|
86
|
+
this.typeMap.set(classMeta.name, curClass)
|
|
87
|
+
} else {
|
|
88
|
+
this.typeMap.set(className, curClass)
|
|
89
|
+
}
|
|
78
90
|
isInClass = true
|
|
79
91
|
break
|
|
80
92
|
}
|
|
@@ -84,7 +96,11 @@ export class CSProtoParser {
|
|
|
84
96
|
curClass = new ClassInfo()
|
|
85
97
|
curClass.name = enumName
|
|
86
98
|
curClass.type = "enum"
|
|
87
|
-
|
|
99
|
+
if (classMeta.name != "") {
|
|
100
|
+
this.typeMap.set(classMeta.name, curClass)
|
|
101
|
+
} else {
|
|
102
|
+
this.typeMap.set(enumName, curClass)
|
|
103
|
+
}
|
|
88
104
|
isInClass = true
|
|
89
105
|
break
|
|
90
106
|
}
|
|
@@ -95,6 +111,7 @@ export class CSProtoParser {
|
|
|
95
111
|
let m3 = line.match(structEndRegex)
|
|
96
112
|
if (m3) {
|
|
97
113
|
curClass = null
|
|
114
|
+
classMeta.name = ""
|
|
98
115
|
isInClass = false;
|
|
99
116
|
} else {
|
|
100
117
|
// parse class fields
|
|
@@ -107,7 +124,7 @@ export class CSProtoParser {
|
|
|
107
124
|
field.setName(fieldName)
|
|
108
125
|
field.setType(fieldType, isArray)
|
|
109
126
|
curClass!.fields.push(field)
|
|
110
|
-
console.log(`find field: ${field.csName}, ${field.csType}, ${field.isArray}`)
|
|
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) => {
|