fix[note]: the first line of a multi-line note is not indented

This commit is contained in:
godotg
2024-02-01 10:50:54 +08:00
parent 22b01145c4
commit 370b1f588d
9 changed files with 32 additions and 28 deletions
@@ -21,11 +21,10 @@ import com.zfoo.protocol.registration.IProtocolRegistration;
import com.zfoo.protocol.registration.ProtocolRegistration;
import com.zfoo.protocol.serializer.CodeLanguage;
import com.zfoo.protocol.util.AssertionUtils;
import com.zfoo.protocol.util.FileUtils;
import com.zfoo.protocol.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* EN: When generating the protocol, the document comments and field comments of the protocol will use this class
@@ -68,15 +67,20 @@ public abstract class GenerateProtocolNote {
return classNote;
}
public static String fieldNote(short protocolId, String fieldName, CodeLanguage language) {
public static List<String> fieldNote(short protocolId, String fieldName, CodeLanguage language) {
var protocolNote = protocolNoteMap.get(protocolId);
var fieldNoteMap = protocolNote.getValue();
var fieldNote = fieldNoteMap.get(fieldName);
if (StringUtils.isBlank(fieldNote)) {
return StringUtils.EMPTY;
return Collections.emptyList();
}
fieldNote = formatNote(language, fieldNote);
return fieldNote;
var multipleLineNotes = fieldNote.split(FileUtils.LS_REGEX);
var notes = new ArrayList<String>();
for(var oneLineNote : multipleLineNotes) {
var formatFieldNote = formatNote(language, oneLineNote);
notes.add(formatFieldNote);
}
return notes;
}
private static String formatNote(CodeLanguage language, String fieldNote) {
@@ -87,14 +91,14 @@ public abstract class GenerateProtocolNote {
case TypeScript:
case CSharp:
case Protobuf:
fieldNote = StringUtils.format("// {}", fieldNote).replace("\n", "\n// ");
fieldNote = StringUtils.format("// {}", fieldNote);
break;
case Lua:
fieldNote = StringUtils.format("-- {}", fieldNote).replace("\n", "\n-- ");
fieldNote = StringUtils.format("-- {}", fieldNote);
break;
case Python:
case GdScript:
fieldNote = StringUtils.format("# {}", fieldNote).replace("\n", "\n# ");
fieldNote = StringUtils.format("# {}", fieldNote);
break;
case Enhance:
default:
@@ -189,9 +189,9 @@ public abstract class GenerateCppUtils {
var propertyFullName = StringUtils.format("{} {};", propertyType, propertyName);
// 生成注释
var filedNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.Cpp);
if (StringUtils.isNotBlank(filedNote)) {
cppBuilder.append(TAB + TAB).append(filedNote).append(LS);
var fieldNotes = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.Cpp);
for(var fieldNote : fieldNotes) {
cppBuilder.append(TAB + TAB).append(fieldNote).append(LS);
}
cppBuilder.append(TAB + TAB).append(propertyFullName).append(LS);
}
@@ -157,8 +157,8 @@ public abstract class GenerateCsUtils {
var propertyType = toCsClassName(field.getGenericType().getTypeName());
var propertyFullName = StringUtils.format("public {} {};", propertyType, fieldName);
// 生成注释
var fieldNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.CSharp);
if (StringUtils.isNotBlank(fieldNote)) {
var fieldNotes = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.CSharp);
for(var fieldNote : fieldNotes) {
csBuilder.append(TAB + TAB).append(fieldNote).append(LS);
}
csBuilder.append(TAB + TAB).append(propertyFullName).append(LS);
@@ -162,8 +162,8 @@ public abstract class GenerateGdUtils {
IFieldRegistration fieldRegistration = fieldRegistrations[GenerateProtocolFile.indexOf(fields, field)];
var fieldName = field.getName();
// 生成注释
var fieldNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.GdScript);
if (StringUtils.isNotBlank(fieldNote)) {
var fieldNotes = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.GdScript);
for(var fieldNote : fieldNotes) {
gdBuilder.append(fieldNote).append(LS);
}
var fieldType = gdSerializer(fieldRegistration.serializer()).fieldType(field, fieldRegistration);
@@ -151,9 +151,9 @@ public abstract class GenerateGoUtils {
var propertyFullName = StringUtils.format("{} {}", fieldName, fieldType);
// 生成注释
var filedNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.Go);
if (StringUtils.isNotBlank(filedNote)) {
goBuilder.append(TAB).append(filedNote).append(LS);
var fieldNotes = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.Go);
for(var fieldNote : fieldNotes) {
goBuilder.append(TAB).append(fieldNote).append(LS);
}
goBuilder.append(TAB).append(propertyFullName).append(LS);
}
@@ -143,8 +143,8 @@ public abstract class GenerateJsUtils {
var fieldRegistration = fieldRegistrations[GenerateProtocolFile.indexOf(fields, field)];
var fieldName = field.getName();
// 生成注释
var fieldNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.JavaScript);
if (StringUtils.isNotBlank(fieldNote)) {
var fieldNotes = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.JavaScript);
for(var fieldNote : fieldNotes) {
fieldDefinitionBuilder.append(TAB).append(fieldNote).append(LS);
}
var triple = jsSerializer(fieldRegistration.serializer()).field(field, fieldRegistration);
@@ -238,8 +238,8 @@ public abstract class GenerateLuaUtils {
var fieldRegistration = fieldRegistrations[i];
var fieldName = field.getName();
// 生成注释
var fieldNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.Lua);
if (StringUtils.isNotBlank(fieldNote)) {
var fieldNotes = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.Lua);
for(var fieldNote : fieldNotes) {
luaBuilder.append(TAB + TAB).append(fieldNote).append(LS);
}
var fieldDefaultValue = luaSerializer(fieldRegistration.serializer()).fieldDefaultValue(field, fieldRegistration);
@@ -143,8 +143,8 @@ public abstract class GeneratePyUtils {
var fieldRegistration = fieldRegistrations[GenerateProtocolFile.indexOf(fields, field)];
var fieldName = field.getName();
// 生成注释
var fieldNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.Python);
if (StringUtils.isNotBlank(fieldNote)) {
var fieldNotes = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.Python);
for(var fieldNote : fieldNotes) {
pyBuilder.append(TAB).append(fieldNote).append(LS);
}
var fieldDefaultValue = pySerializer(fieldRegistration.serializer()).fieldDefaultValue(field, fieldRegistration);
@@ -174,8 +174,8 @@ public abstract class GenerateTsUtils {
var fieldRegistration = fieldRegistrations[GenerateProtocolFile.indexOf(fields, field)];
var fieldName = field.getName();
// 生成注释
var fieldNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.TypeScript);
if (StringUtils.isNotBlank(fieldNote)) {
var fieldNotes = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.TypeScript);
for(var fieldNote : fieldNotes) {
fieldDefinitionBuilder.append(TAB).append(fieldNote).append(LS);
}
var triple = tsSerializer(fieldRegistration.serializer()).field(field, fieldRegistration);