Skip to content

Commit 8926ff0

Browse files
committed
Fix bugs
1 parent 662813a commit 8926ff0

23 files changed

+201
-74
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## [1.0.1] - 2023-08-23
4+
5+
- Fix bugs
6+
37
## [1.0.0] - 2023-08-20
48

59
- Release

Editor/Scripts/CodeExecutorData.cs

+33-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,39 @@ private class UserData
1818
{
1919
public int version = 0;
2020
public SnippetInfo newSnippet = new SnippetInfo();
21-
public List<SnippetInfo> snippets = new List<SnippetInfo>();
21+
public List<SnippetInfo> snippets = new List<SnippetInfo>()
22+
{
23+
new SnippetInfo()
24+
{
25+
guid = "e48e9761-cf81-4540-8155-dde48362a5b0",
26+
createTime = 0,
27+
editTime = 0,
28+
top = false,
29+
name = "HelloWorld",
30+
code = "UnityEngine.Debug.Log(\"[CodeExecutor] Hello World!\");\nUnityEngine.Debug.LogWarning(\"[CodeExecutor] Hello World!\");\nUnityEngine.Debug.LogError(\"[CodeExecutor] Hello World!\");",
31+
mode = "C#"
32+
},
33+
new SnippetInfo()
34+
{
35+
guid = "6ac20611-c6ec-4971-a121-7ff01b44b84f",
36+
createTime = 0,
37+
editTime = 0,
38+
top = false,
39+
name = "CrazyThursday",
40+
code = "UnityEngine.Debug.LogError(\"[CodeExecutor] Crazy Thursday\");",
41+
mode = "C#"
42+
},
43+
new SnippetInfo()
44+
{
45+
guid = "e4db94ed-9244-492a-9f88-bdee5ed616fd",
46+
createTime = 0,
47+
editTime = 0,
48+
top = false,
49+
name = "TestImport",
50+
code = "@import(\"CrazyThursday\")\r\n\nUnityEngine.Debug.LogError(\"[CodeExecutor] V Me 50\");",
51+
mode = "C#"
52+
},
53+
};
2254
}
2355

2456
private static UserData s_UserData;

Editor/Scripts/CodeExecutorManager.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public static void Open(bool forceReopen = false)
8585
/// </summary>
8686
/// <param name="content"></param>
8787
/// <param name="fadeoutWait"></param>
88-
public static bool ShowNotification(string content, double fadeoutWait = 1f)
88+
public static bool ShowNotification(string content, double fadeoutWait = 1d)
8989
{
9090
if (!CodeExecutorWindow.HasOpenInstances())
9191
{

Editor/Scripts/CodeExecutorSettings.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ private class Settings
1818
public int fontSize = 12;
1919
public bool enableBuiltinExecModeCSharp = true;
2020
public bool enableBuiltinExecModeXLua = true;
21-
public bool enableBuiltinExecModeXLuaCustom = true;
21+
public bool enableBuiltinExecModeXLuaCustom = false;
2222
}
2323

2424
private static Settings s_Settings;

Editor/Scripts/Examples/CSharp.meta

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Editor/Scripts/Examples/InjectHelperCSharp.cs Editor/Scripts/Examples/CSharp/ExecutionHelperCSharp.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ namespace ChenPipi.CodeExecutor.Examples
1111
{
1212

1313
/// <summary>
14-
/// CodeExecutor C# 注入工具
14+
/// CodeExecutor C# 执行工具
1515
/// </summary>
16-
public static class InjectHelperCSharp
16+
public static class ExecutionHelperCSharp
1717
{
1818

1919
/// <summary>

Editor/Scripts/Examples/CodeExecutorInjectorCSharp.cs Editor/Scripts/Examples/CSharp/InjectorCSharp.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ namespace ChenPipi.CodeExecutor.Examples
77
{
88

99
/// <summary>
10-
/// 给 CodeExecutor 注入 C# 代码执行模式
10+
/// 给 CodeExecutor 注入代码执行模式
1111
/// </summary>
12-
public static class CodeExecutorInjectorCSharp
12+
public static class InjectorCSharp
1313
{
1414

1515
/// <summary>
@@ -31,7 +31,7 @@ private static void Register()
3131

3232
public static object[] Executor(string code)
3333
{
34-
object[] results = InjectHelperCSharp.ExecuteSnippetCode(code);
34+
object[] results = ExecutionHelperCSharp.ExecuteSnippetCode(code);
3535

3636
CodeExecutorManager.ShowNotification("Executed");
3737

Editor/Scripts/Examples/XLua.meta

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Editor/Scripts/Examples/InjectHelperXLua.cs Editor/Scripts/Examples/XLua/ExecutionHelperXLua.cs

+7-4
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ namespace ChenPipi.CodeExecutor.Examples
99
{
1010

1111
/// <summary>
12-
/// CodeExecutor XLua 注入工具
12+
/// CodeExecutor xLua 执行工具
1313
/// </summary>
14-
public static class InjectHelperXLua
14+
public static class ExecutionHelperXLua
1515
{
1616

1717
/// <summary>
@@ -20,10 +20,10 @@ public static class InjectHelperXLua
2020
public const string DefaultAssemblyName = "Assembly-CSharp";
2121

2222
/// <summary>
23-
/// 初始化 XLua 环境
23+
/// 初始化 xLua 环境
2424
/// </summary>
2525
/// <param name="assemblyName">XLua 所在的程序集名称</param>
26-
public static void Init(string assemblyName = DefaultAssemblyName)
26+
public static bool Init(string assemblyName = DefaultAssemblyName)
2727
{
2828
try
2929
{
@@ -33,6 +33,7 @@ public static void Init(string assemblyName = DefaultAssemblyName)
3333
{
3434
s_LuaEnvType = assembly.GetType("XLua.LuaEnv", true);
3535
s_LuaTableType = assembly.GetType("XLua.LuaTable", true);
36+
return true;
3637
}
3738
}
3839
catch (Exception e)
@@ -44,6 +45,8 @@ public static void Init(string assemblyName = DefaultAssemblyName)
4445
{
4546
Debug.LogError("[CodeExecutor] Unable to reach 'XLua', make sure you specify the correct assembly name!");
4647
}
48+
49+
return false;
4750
}
4851

4952
/// <summary>

Editor/Scripts/Examples/CodeExecutorInjectorXLua.cs Editor/Scripts/Examples/XLua/InjectorXLua.cs

+12-12
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ namespace ChenPipi.CodeExecutor.Examples
77
{
88

99
/// <summary>
10-
/// 给 CodeExecutor 注入 XLua 代码执行模式
10+
/// 给 CodeExecutor 注入代码执行模式
1111
/// </summary>
12-
public static class CodeExecutorInjectorXLua
12+
public static class InjectorXLua
1313
{
1414

1515
/// <summary>
1616
/// XLua 所在的程序集名称,置空则使用默认程序集 "Assembly-CSharp"
1717
/// </summary>
18-
private const string k_XLuaAssemblyName = "Assembly-CSharp";
18+
public const string XLuaAssemblyName = "Assembly-CSharp";
1919

2020
/// <summary>
2121
/// 注册 CodeExecutor 执行模式
@@ -28,21 +28,21 @@ private static void Register()
2828
return;
2929
}
3030
// 初始化 xLua Helper
31-
InjectHelperXLua.Init(k_XLuaAssemblyName);
32-
// 注册
33-
if (InjectHelperXLua.isReady)
31+
if (!ExecutionHelperXLua.isReady && !ExecutionHelperXLua.Init(XLuaAssemblyName))
3432
{
35-
CodeExecutorManager.RegisterExecMode(new ExecutionMode
36-
{
37-
name = "XLua (Standalone)",
38-
executor = Executor,
39-
});
33+
return;
4034
}
35+
// 注册
36+
CodeExecutorManager.RegisterExecMode(new ExecutionMode
37+
{
38+
name = "xLua (Standalone)",
39+
executor = Executor,
40+
});
4141
}
4242

4343
public static object[] Executor(string code)
4444
{
45-
object[] results = InjectHelperXLua.ExecuteCode(code);
45+
object[] results = ExecutionHelperXLua.ExecuteCode(code);
4646

4747
CodeExecutorManager.ShowNotification("Executed");
4848

Editor/Scripts/Examples/CodeExecutorInjectorXLuaCustom.cs Editor/Scripts/Examples/XLua/InjectorXLuaCustom.cs

+13-8
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ namespace ChenPipi.CodeExecutor.Examples
77
{
88

99
/// <summary>
10-
/// 给 CodeExecutor 注入 XLua 代码执行模式
10+
/// 给 CodeExecutor 注入代码执行模式
1111
/// </summary>
12-
public static class CodeExecutorInjectorXLuaCustom
12+
public static class InjectorXLuaCustom
1313
{
1414

1515
/// <summary>
@@ -18,14 +18,19 @@ public static class CodeExecutorInjectorXLuaCustom
1818
[CodeExecutorRegistration(5)]
1919
private static void Register()
2020
{
21-
// 依赖 XLua (Standalone)
22-
if (!CodeExecutorSettings.enableBuiltinExecModeXLua || !CodeExecutorSettings.enableBuiltinExecModeXLuaCustom)
21+
if (!CodeExecutorSettings.enableBuiltinExecModeXLuaCustom)
2322
{
2423
return;
2524
}
25+
// 初始化 xLua Helper
26+
if (!ExecutionHelperXLua.isReady && !ExecutionHelperXLua.Init(InjectorXLua.XLuaAssemblyName))
27+
{
28+
return;
29+
}
30+
// 注册
2631
CodeExecutorManager.RegisterExecMode(new ExecutionMode
2732
{
28-
name = "XLua (Custom)",
33+
name = "xLua (Custom)",
2934
executor = Executor,
3035
});
3136
}
@@ -37,12 +42,12 @@ public static object[] Executor(string code)
3742
{
3843
if (!CodeExecutorManager.ShowNotification("This execution mode is currently unavailable"))
3944
{
40-
EditorUtility.DisplayDialog("CodeExecutorInjectorXLuaCustom", "This execution mode is currently unavailable!", "OK");
45+
EditorUtility.DisplayDialog("CodeExecutor", "This execution mode is currently unavailable!", "OK");
4146
}
4247
return null;
4348
}
4449

45-
object[] results = InjectHelperXLua.ExecuteCode(code, luaEnv);
50+
object[] results = ExecutionHelperXLua.ExecuteCode(code, luaEnv);
4651

4752
CodeExecutorManager.ShowNotification("Executed");
4853

@@ -51,7 +56,7 @@ public static object[] Executor(string code)
5156

5257
public static object GetLuaEnv()
5358
{
54-
// Return your in-game LuaEnv object
59+
// Return your LuaEnv object
5560
return null;
5661
}
5762

Editor/Scripts/Window/CodeExecutorWindow.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public void SetCenter(int offsetX = 0, int offsetY = 0)
106106
/// </summary>
107107
/// <param name="content"></param>
108108
/// <param name="fadeoutWait"></param>
109-
public void ShowNotification(string content, double fadeoutWait = 1f)
109+
public void ShowNotification(string content, double fadeoutWait = 1d)
110110
{
111111
ShowNotification(new GUIContent(content), fadeoutWait);
112112
}

Editor/Scripts/Window/CodeExecutorWindowMenu.cs

+30-18
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,9 @@ public partial class CodeExecutorWindow : EditorWindow, IHasCustomMenu
1313

1414
public void AddItemsToMenu(GenericMenu menu)
1515
{
16-
menu.AddItem(new GUIContent("Built-in Execution Mode/C#"), CodeExecutorSettings.enableBuiltinExecModeCSharp, Menu_EnableBuiltinExecutionModeCSharp);
17-
menu.AddItem(new GUIContent("Built-in Execution Mode/XLua (Standalone)"), CodeExecutorSettings.enableBuiltinExecModeXLua, Menu_EnableBuiltinExecutionModeXLua);
18-
menu.AddItem(
19-
new GUIContent("Built-in Execution Mode/XLua (Custom)"),
20-
(CodeExecutorSettings.enableBuiltinExecModeXLua && CodeExecutorSettings.enableBuiltinExecModeXLuaCustom),
21-
Menu_EnableBuiltinExecutionModeXLuaCustom
22-
);
23-
menu.AddItem(new GUIContent("Document: How to register execution mode?"), false, Menu_Document);
16+
menu.AddItem(new GUIContent("Built-in Execution Mode/C#"), enableBuiltinExecModeCSharp, Menu_BuiltinExecutionModeCSharp);
17+
menu.AddItem(new GUIContent("Built-in Execution Mode/XLua (Standalone)"), enableBuiltinExecModeXLua, Menu_BuiltinExecutionModeXLua);
18+
menu.AddItem(new GUIContent("Document: How to register execution modes?"), false, Menu_Document);
2419
menu.AddSeparator(string.Empty);
2520
menu.AddItem(new GUIContent("Reload"), false, Menu_Reload);
2621
menu.AddItem(new GUIContent("Show Serialized Data File"), false, Menu_ShowSerializedDataFile);
@@ -34,26 +29,39 @@ public void AddItemsToMenu(GenericMenu menu)
3429
menu.AddItem(new GUIContent("About/Project Home Page (Gitee)"), false, Menu_ProjectHomePageGitee);
3530
}
3631

37-
private void Menu_EnableBuiltinExecutionModeCSharp()
32+
public static void ReRegisterExecModes()
3833
{
39-
CodeExecutorSettings.enableBuiltinExecModeCSharp = !CodeExecutorSettings.enableBuiltinExecModeCSharp;
4034
UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation();
4135
}
4236

43-
private void Menu_EnableBuiltinExecutionModeXLua()
37+
public static bool enableBuiltinExecModeCSharp
4438
{
45-
CodeExecutorSettings.enableBuiltinExecModeXLua = !CodeExecutorSettings.enableBuiltinExecModeXLua;
46-
UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation();
39+
get => CodeExecutorSettings.enableBuiltinExecModeCSharp;
40+
set
41+
{
42+
CodeExecutorSettings.enableBuiltinExecModeCSharp = value;
43+
ReRegisterExecModes();
44+
}
4745
}
4846

49-
private void Menu_EnableBuiltinExecutionModeXLuaCustom()
47+
public static bool enableBuiltinExecModeXLua
5048
{
51-
if (!CodeExecutorSettings.enableBuiltinExecModeXLua)
49+
get => CodeExecutorSettings.enableBuiltinExecModeXLua;
50+
set
5251
{
53-
return;
52+
CodeExecutorSettings.enableBuiltinExecModeXLua = value;
53+
ReRegisterExecModes();
5454
}
55-
CodeExecutorSettings.enableBuiltinExecModeXLuaCustom = !CodeExecutorSettings.enableBuiltinExecModeXLuaCustom;
56-
UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation();
55+
}
56+
57+
private void Menu_BuiltinExecutionModeCSharp()
58+
{
59+
enableBuiltinExecModeCSharp = !enableBuiltinExecModeCSharp;
60+
}
61+
62+
private void Menu_BuiltinExecutionModeXLua()
63+
{
64+
enableBuiltinExecModeXLua = !enableBuiltinExecModeXLua;
5765
}
5866

5967
private void Menu_Document()
@@ -63,10 +71,14 @@ private void Menu_Document()
6371

6472
private void Menu_Reload()
6573
{
74+
// 加载
6675
CodeExecutorManager.ReloadData();
6776
CodeExecutorManager.ReloadSettings();
77+
// 应用
6878
ApplySettings();
6979
UpdateContent();
80+
// 刷新注册模式
81+
ReRegisterExecModes();
7082
}
7183

7284
private void Menu_ShowSerializedDataFile()

0 commit comments

Comments
 (0)