diff --git a/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolNote.java b/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolNote.java index d75a7cae..11d6e795 100644 --- a/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolNote.java +++ b/protocol/src/main/java/com/zfoo/protocol/generate/GenerateProtocolNote.java @@ -25,6 +25,8 @@ import com.zfoo.protocol.util.StringUtils; import java.util.*; +import static com.zfoo.protocol.util.StringUtils.TAB; + /** * EN: When generating the protocol, the document comments and field comments of the protocol will use this class * CN: 生成协议的时候,协议的文档注释和字段注释会使用这个类 @@ -55,15 +57,19 @@ public abstract class GenerateProtocolNote { protocolNoteMap = null; } - public static String classNote(short protocolId, CodeLanguage language) { + public static String classNote(short protocolId, CodeLanguage language, String tab, int deep) { var protocolNote = protocolNoteMap.get(protocolId); var classNote = protocolNote.getKey(); if (StringUtils.isBlank(classNote)) { return StringUtils.EMPTY; } - - classNote = formatNote(language, classNote); - return classNote; + var multipleLineNotes = classNote.split(FileUtils.LS_REGEX); + var notes = new ArrayList(); + for(var oneLineNote : multipleLineNotes) { + var formatFieldNote = formatNote(language, oneLineNote); + notes.add(tab.repeat(Math.max(0, deep)) + formatFieldNote); + } + return StringUtils.joinWith(FileUtils.LS, notes.toArray()); } public static List fieldNotes(short protocolId, String fieldName, CodeLanguage language) { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/GenerateCppUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/GenerateCppUtils.java index f2937995..e3d1543d 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/GenerateCppUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/cpp/GenerateCppUtils.java @@ -129,7 +129,7 @@ public abstract class GenerateCppUtils { // protocol object var defineProtocolName = protocolClazzName.toUpperCase(); var includeHeaders = includeSubProtocol(registration); - var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.Cpp); + var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.Cpp, TAB, 1); var fieldDefinition = fieldDefinition(registration); var valueOfMethod = valueOfMethod(registration); var operator = operator(registration); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/GenerateCsUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/GenerateCsUtils.java index 802f1d9b..212f9b80 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/GenerateCsUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/csharp/GenerateCsUtils.java @@ -118,7 +118,7 @@ public abstract class GenerateCsUtils { /** * 生成协议类 */ - public static void createCsProtocolFile(ProtocolRegistration registration) throws IOException { + public static void createCsProtocolFile(ProtocolRegistration registration) { GenerateProtocolFile.index.set(0); var protocolId = registration.protocolId(); @@ -127,7 +127,7 @@ public abstract class GenerateCsUtils { var protocolTemplate = ClassUtils.getFileFromClassPathToString("csharp/ProtocolTemplate.cs"); - var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.CSharp); + var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.CSharp, TAB, 1); var fieldDefinition = fieldDefinition(registration); var writeObject = writeObject(registration); var readObject = readObject(registration); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GenerateGdUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GenerateGdUtils.java index b744338c..23b7983d 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GenerateGdUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/gdscript/GenerateGdUtils.java @@ -117,7 +117,7 @@ public abstract class GenerateGdUtils { var protocolClazzName = registrationConstructor.getDeclaringClass().getSimpleName(); var includeSubProtocol = includeSubProtocol(registration); - var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.GdScript); + var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.GdScript, TAB_ASCII, 0); var fieldDefinition = fieldDefinition(registration); var toStringJsonTemplate = toStringJsonTemplate(registration); var toStringParams = toStringParams(registration); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GenerateGoUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GenerateGoUtils.java index 8d5964d1..65f4b746 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/go/GenerateGoUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/go/GenerateGoUtils.java @@ -117,7 +117,7 @@ public abstract class GenerateGoUtils { : ClassUtils.getFileFromClassPathToString("go/ProtocolTemplate.go"); - var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.Go); + var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.Go, TAB, 0); var fieldDefinition = fieldDefinition(registration); var writeObject = writeObject(registration); var readObject = readObject(registration); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java index aef0795a..3f33a17b 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java @@ -118,7 +118,7 @@ public abstract class GenerateJsUtils { var protocolTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolTemplate.js"); - var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.JavaScript); + var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.JavaScript, TAB, 0); var fieldDefinition = fieldDefinition(registration); var writeObject = writeObject(registration); var readObject = readObject(registration); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/GenerateLuaUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/GenerateLuaUtils.java index 84d49a64..35528329 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/lua/GenerateLuaUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/lua/GenerateLuaUtils.java @@ -124,7 +124,7 @@ public abstract class GenerateLuaUtils { var protocolClazzName = registrationConstructor.getDeclaringClass().getSimpleName(); GenerateProtocolFile.index.set(0); - var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.Lua); + var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.Lua, TAB, 0); var valueOfMethod = valueOfMethod(registration); var writePacket = writePacket(registration); var readPacket = readPacket(registration); @@ -211,7 +211,7 @@ public abstract class GenerateLuaUtils { var protocolClazzName = registrationConstructor.getDeclaringClass().getSimpleName(); var protocolTemplate = ClassUtils.getFileFromClassPathToString("lua/ProtocolTemplate.lua"); - var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.Lua); + var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.Lua, TAB, 0); var valueOfMethod = valueOfMethod(registration); var writePacket = writePacket(registration); var readPacket = readPacket(registration); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/python/GeneratePyUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/python/GeneratePyUtils.java index 45d51cb5..169f6709 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/python/GeneratePyUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/python/GeneratePyUtils.java @@ -119,7 +119,7 @@ public abstract class GeneratePyUtils { var protocolTemplate = ClassUtils.getFileFromClassPathToString("python/ProtocolTemplate.py"); - var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.Python); + var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.Python, TAB, 0); var fieldDefinition = fieldDefinition(registration); var writeObject = writeObject(registration); var readObject = readObject(registration); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java index 0d0d6c51..fe5120f5 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java @@ -122,7 +122,7 @@ public abstract class GenerateTsUtils { var protocolTemplate = ClassUtils.getFileFromClassPathToString("typescript/ProtocolTemplate.ts"); var importSubProtocol = importSubProtocol(registration); - var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.TypeScript); + var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.TypeScript, TAB, 0); var fieldDefinition = fieldDefinition(registration); var writeObject = writeObject(registration); var readObject = readObject(registration); @@ -141,7 +141,7 @@ public abstract class GenerateTsUtils { // import IByteBuffer first var importBuilder = new StringBuilder(); var protocolPath = GenerateProtocolPath.getProtocolPath(protocolId); - if (StringUtils.isEmpty(protocolPath) ) { + if (StringUtils.isEmpty(protocolPath)) { importBuilder.append(StringUtils.format("import IByteBuffer from './IByteBuffer';")).append(LS); } else { var splits = protocolPath.split(StringUtils.PERIOD_REGEX); @@ -175,7 +175,7 @@ public abstract class GenerateTsUtils { var fieldName = field.getName(); // 生成注释 var fieldNotes = GenerateProtocolNote.fieldNotes(protocolId, fieldName, CodeLanguage.TypeScript); - for(var fieldNote : fieldNotes) { + for (var fieldNote : fieldNotes) { fieldDefinitionBuilder.append(TAB).append(fieldNote).append(LS); } var triple = tsSerializer(fieldRegistration.serializer()).field(field, fieldRegistration); @@ -215,7 +215,7 @@ public abstract class GenerateTsUtils { if (field.isAnnotationPresent(Compatible.class)) { tsBuilder.append(TAB + TAB).append("if (buffer.compatibleRead(beforeReadIndex, length)) {").append(LS); var compatibleReadObject = tsSerializer(fieldRegistration.serializer()).readObject(tsBuilder, 3, field, fieldRegistration); - tsBuilder.append(TAB + TAB+ TAB).append(StringUtils.format("packet.{} = {};", field.getName(), compatibleReadObject)).append(LS); + tsBuilder.append(TAB + TAB + TAB).append(StringUtils.format("packet.{} = {};", field.getName(), compatibleReadObject)).append(LS); tsBuilder.append(TAB + TAB).append("}").append(LS); continue; }