【重构】重构计算gen_type对应ELangua的方式,重构计算生成数据文件后缀的方式
【修复】修复类型名为 xx_zz_ 包含独立的_时,UpperCaseFirstChar空白名字导致的异常main
parent
f6e4f6377a
commit
f31172c850
|
|
@ -205,12 +205,12 @@ namespace Luban.Common.Utils
|
|||
|
||||
public static string ToCsStyleName(string orginName)
|
||||
{
|
||||
return string.Join("", orginName.Split('_').Select(c => UpperCaseFirstChar(c)));
|
||||
return string.Join("", orginName.Split('_').Where(s => !string.IsNullOrWhiteSpace(s)).Select(c => UpperCaseFirstChar(c)));
|
||||
}
|
||||
|
||||
public static string ToJavaStyleName(string orginName)
|
||||
{
|
||||
var words = orginName.Split('_');
|
||||
var words = orginName.Split('_').Where(s => !string.IsNullOrWhiteSpace(s)).ToArray();
|
||||
var s = new StringBuilder();
|
||||
s.Append(words[0]);
|
||||
for (int i = 1; i < words.Length; i++)
|
||||
|
|
@ -222,7 +222,7 @@ namespace Luban.Common.Utils
|
|||
|
||||
public static string ToJavaGetterName(string orginName)
|
||||
{
|
||||
var words = orginName.Split('_');
|
||||
var words = orginName.Split('_').Where(s => !string.IsNullOrWhiteSpace(s)).ToArray();
|
||||
var s = new StringBuilder("get");
|
||||
foreach (var word in words)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -98,47 +98,6 @@ namespace Luban.Job.Cfg
|
|||
}
|
||||
}
|
||||
|
||||
private ELanguage GetLanguage(string genType)
|
||||
{
|
||||
switch (genType)
|
||||
{
|
||||
case "code_cs_bin":
|
||||
case "code_cs_json":
|
||||
case "code_cs_unity_json": return ELanguage.CS;
|
||||
case "code_java_bin":
|
||||
case "code_java_json": return ELanguage.JAVA;
|
||||
case "code_go_bin":
|
||||
case "code_go_json": return ELanguage.GO;
|
||||
case "code_cpp_bin": return ELanguage.CPP;
|
||||
case "code_lua_bin":
|
||||
case "code_lua_lua": return ELanguage.LUA;
|
||||
case "code_python3_json": return ELanguage.PYTHON;
|
||||
case "code_typescript_bin":
|
||||
case "code_typescript_json": return ELanguage.TYPESCRIPT;
|
||||
case "code_cpp_ue_editor":
|
||||
case "code_cpp_ue_bp": return ELanguage.CPP;
|
||||
case "code_cs_unity_editor": return ELanguage.CS;
|
||||
default: throw new ArgumentException($"not support output data type:{genType}");
|
||||
}
|
||||
}
|
||||
|
||||
private string GetOutputFileSuffix(string genType)
|
||||
{
|
||||
switch (genType)
|
||||
{
|
||||
case "data_bin": return "bin";
|
||||
case "data_json":
|
||||
case "data_json2": return "json";
|
||||
case "data_lua": return "lua";
|
||||
default: throw new Exception($"not support output data type:{genType}");
|
||||
}
|
||||
}
|
||||
|
||||
private string GetOutputFileName(string genType, string fileName)
|
||||
{
|
||||
return $"{(genType.EndsWith("lua") ? fileName.Replace('.', '_') : fileName)}.{GetOutputFileSuffix(genType)}";
|
||||
}
|
||||
|
||||
private static bool TryParseArg(List<string> args, out GenArgs options, out string errMsg)
|
||||
{
|
||||
var helpWriter = new StringWriter();
|
||||
|
|
@ -475,7 +434,7 @@ namespace Luban.Job.Cfg
|
|||
{
|
||||
string genType = ctx.GenType;
|
||||
ctx.Render = CreateCodeRender(genType);
|
||||
ctx.Lan = GetLanguage(genType);
|
||||
ctx.Lan = RenderFileUtil.GetLanguage(genType);
|
||||
foreach (var c in ctx.ExportTypes)
|
||||
{
|
||||
ctx.Tasks.Add(Task.Run(() =>
|
||||
|
|
@ -535,7 +494,7 @@ namespace Luban.Job.Cfg
|
|||
string genType = ctx.GenType;
|
||||
var args = ctx.GenArgs;
|
||||
ctx.Render = CreateCodeRender(genType);
|
||||
ctx.Lan = GetLanguage(genType);
|
||||
ctx.Lan = RenderFileUtil.GetLanguage(genType);
|
||||
|
||||
var lines = new List<string>(10000);
|
||||
Action<List<string>> preContent = (fileContent) =>
|
||||
|
|
@ -589,7 +548,7 @@ namespace Luban.Job.Cfg
|
|||
{
|
||||
string genType = ctx.GenType;
|
||||
ctx.Render = CreateCodeRender(genType);
|
||||
ctx.Lan = GetLanguage(genType);
|
||||
ctx.Lan = RenderFileUtil.GetLanguage(genType);
|
||||
|
||||
var lines = new List<string>(10000);
|
||||
static void PreContent(List<string> fileContent)
|
||||
|
|
@ -769,7 +728,7 @@ namespace {ctx.TopModule}
|
|||
{
|
||||
ctx.Tasks.Add(Task.Run(() =>
|
||||
{
|
||||
var file = GetOutputFileName(genType, table.OutputDataFile);
|
||||
var file = RenderFileUtil.GetOutputFileName(genType, table.OutputDataFile);
|
||||
var records = ctx.Assembly.GetTableExportDataList(table);
|
||||
if (!FileRecordCacheManager.Ins.TryGetRecordOutputData(table, records, genType, out string md5))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -10,5 +10,6 @@ namespace Luban.Job.Common
|
|||
JS,
|
||||
TYPESCRIPT,
|
||||
PYTHON,
|
||||
ERLANG,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Luban.Job.Common.Utils
|
||||
{
|
||||
|
|
@ -84,5 +85,59 @@ namespace Luban.Job.Common.Utils
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
private readonly static Dictionary<string, ELanguage> s_name2Lans = new()
|
||||
{
|
||||
{ "cs", ELanguage.CS },
|
||||
{ "java", ELanguage.JAVA },
|
||||
{ "go", ELanguage.GO },
|
||||
{ "cpp", ELanguage.CPP },
|
||||
{ "lua", ELanguage.LUA },
|
||||
{ "python", ELanguage.PYTHON },
|
||||
{ "typescript", ELanguage.TYPESCRIPT },
|
||||
{ "javascript", ELanguage.JS },
|
||||
{ "erlang", ELanguage.ERLANG },
|
||||
};
|
||||
|
||||
public static ELanguage GetLanguage(string genType)
|
||||
{
|
||||
foreach (var (name, lan) in s_name2Lans)
|
||||
{
|
||||
if (genType.Contains(name))
|
||||
{
|
||||
return lan;
|
||||
}
|
||||
}
|
||||
throw new ArgumentException($"not support output data type:{genType}");
|
||||
}
|
||||
|
||||
private readonly static Dictionary<string, string> s_name2Suxxifx = new()
|
||||
{
|
||||
{ "json", "json" },
|
||||
{ "lua", "lua" },
|
||||
{ "bin", "bin" },
|
||||
{ "xml", "xml" },
|
||||
{ "yaml", "yml" },
|
||||
{ "yml", "yml" },
|
||||
{ "erlang", "erl" },
|
||||
{ "erl", "erl" },
|
||||
};
|
||||
|
||||
public static string GetOutputFileSuffix(string genType)
|
||||
{
|
||||
foreach (var (name, suffix) in s_name2Suxxifx)
|
||||
{
|
||||
if (genType.Contains(name))
|
||||
{
|
||||
return suffix;
|
||||
}
|
||||
}
|
||||
throw new Exception($"not support output data type:{genType}");
|
||||
}
|
||||
|
||||
public static string GetOutputFileName(string genType, string fileName)
|
||||
{
|
||||
return $"{(genType.EndsWith("lua") ? fileName.Replace('.', '_') : fileName)}.{GetOutputFileSuffix(genType)}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue