【重构】重构计算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)
|
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)
|
public static string ToJavaStyleName(string orginName)
|
||||||
{
|
{
|
||||||
var words = orginName.Split('_');
|
var words = orginName.Split('_').Where(s => !string.IsNullOrWhiteSpace(s)).ToArray();
|
||||||
var s = new StringBuilder();
|
var s = new StringBuilder();
|
||||||
s.Append(words[0]);
|
s.Append(words[0]);
|
||||||
for (int i = 1; i < words.Length; i++)
|
for (int i = 1; i < words.Length; i++)
|
||||||
|
|
@ -222,7 +222,7 @@ namespace Luban.Common.Utils
|
||||||
|
|
||||||
public static string ToJavaGetterName(string orginName)
|
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");
|
var s = new StringBuilder("get");
|
||||||
foreach (var word in words)
|
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)
|
private static bool TryParseArg(List<string> args, out GenArgs options, out string errMsg)
|
||||||
{
|
{
|
||||||
var helpWriter = new StringWriter();
|
var helpWriter = new StringWriter();
|
||||||
|
|
@ -475,7 +434,7 @@ namespace Luban.Job.Cfg
|
||||||
{
|
{
|
||||||
string genType = ctx.GenType;
|
string genType = ctx.GenType;
|
||||||
ctx.Render = CreateCodeRender(genType);
|
ctx.Render = CreateCodeRender(genType);
|
||||||
ctx.Lan = GetLanguage(genType);
|
ctx.Lan = RenderFileUtil.GetLanguage(genType);
|
||||||
foreach (var c in ctx.ExportTypes)
|
foreach (var c in ctx.ExportTypes)
|
||||||
{
|
{
|
||||||
ctx.Tasks.Add(Task.Run(() =>
|
ctx.Tasks.Add(Task.Run(() =>
|
||||||
|
|
@ -535,7 +494,7 @@ namespace Luban.Job.Cfg
|
||||||
string genType = ctx.GenType;
|
string genType = ctx.GenType;
|
||||||
var args = ctx.GenArgs;
|
var args = ctx.GenArgs;
|
||||||
ctx.Render = CreateCodeRender(genType);
|
ctx.Render = CreateCodeRender(genType);
|
||||||
ctx.Lan = GetLanguage(genType);
|
ctx.Lan = RenderFileUtil.GetLanguage(genType);
|
||||||
|
|
||||||
var lines = new List<string>(10000);
|
var lines = new List<string>(10000);
|
||||||
Action<List<string>> preContent = (fileContent) =>
|
Action<List<string>> preContent = (fileContent) =>
|
||||||
|
|
@ -589,7 +548,7 @@ namespace Luban.Job.Cfg
|
||||||
{
|
{
|
||||||
string genType = ctx.GenType;
|
string genType = ctx.GenType;
|
||||||
ctx.Render = CreateCodeRender(genType);
|
ctx.Render = CreateCodeRender(genType);
|
||||||
ctx.Lan = GetLanguage(genType);
|
ctx.Lan = RenderFileUtil.GetLanguage(genType);
|
||||||
|
|
||||||
var lines = new List<string>(10000);
|
var lines = new List<string>(10000);
|
||||||
static void PreContent(List<string> fileContent)
|
static void PreContent(List<string> fileContent)
|
||||||
|
|
@ -769,7 +728,7 @@ namespace {ctx.TopModule}
|
||||||
{
|
{
|
||||||
ctx.Tasks.Add(Task.Run(() =>
|
ctx.Tasks.Add(Task.Run(() =>
|
||||||
{
|
{
|
||||||
var file = GetOutputFileName(genType, table.OutputDataFile);
|
var file = RenderFileUtil.GetOutputFileName(genType, table.OutputDataFile);
|
||||||
var records = ctx.Assembly.GetTableExportDataList(table);
|
var records = ctx.Assembly.GetTableExportDataList(table);
|
||||||
if (!FileRecordCacheManager.Ins.TryGetRecordOutputData(table, records, genType, out string md5))
|
if (!FileRecordCacheManager.Ins.TryGetRecordOutputData(table, records, genType, out string md5))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -10,5 +10,6 @@ namespace Luban.Job.Common
|
||||||
JS,
|
JS,
|
||||||
TYPESCRIPT,
|
TYPESCRIPT,
|
||||||
PYTHON,
|
PYTHON,
|
||||||
|
ERLANG,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace Luban.Job.Common.Utils
|
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