Skip to content

Commit

Permalink
Fix bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
ichenpipi committed Aug 23, 2023
1 parent 662813a commit 8926ff0
Show file tree
Hide file tree
Showing 23 changed files with 201 additions and 74 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## [1.0.1] - 2023-08-23

- Fix bugs

## [1.0.0] - 2023-08-20

- Release
34 changes: 33 additions & 1 deletion Editor/Scripts/CodeExecutorData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,39 @@ private class UserData
{
public int version = 0;
public SnippetInfo newSnippet = new SnippetInfo();
public List<SnippetInfo> snippets = new List<SnippetInfo>();
public List<SnippetInfo> snippets = new List<SnippetInfo>()
{
new SnippetInfo()
{
guid = "e48e9761-cf81-4540-8155-dde48362a5b0",
createTime = 0,
editTime = 0,
top = false,
name = "HelloWorld",
code = "UnityEngine.Debug.Log(\"[CodeExecutor] Hello World!\");\nUnityEngine.Debug.LogWarning(\"[CodeExecutor] Hello World!\");\nUnityEngine.Debug.LogError(\"[CodeExecutor] Hello World!\");",
mode = "C#"
},
new SnippetInfo()
{
guid = "6ac20611-c6ec-4971-a121-7ff01b44b84f",
createTime = 0,
editTime = 0,
top = false,
name = "CrazyThursday",
code = "UnityEngine.Debug.LogError(\"[CodeExecutor] Crazy Thursday\");",
mode = "C#"
},
new SnippetInfo()
{
guid = "e4db94ed-9244-492a-9f88-bdee5ed616fd",
createTime = 0,
editTime = 0,
top = false,
name = "TestImport",
code = "@import(\"CrazyThursday\")\r\n\nUnityEngine.Debug.LogError(\"[CodeExecutor] V Me 50\");",
mode = "C#"
},
};
}

private static UserData s_UserData;
Expand Down
2 changes: 1 addition & 1 deletion Editor/Scripts/CodeExecutorManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public static void Open(bool forceReopen = false)
/// </summary>
/// <param name="content"></param>
/// <param name="fadeoutWait"></param>
public static bool ShowNotification(string content, double fadeoutWait = 1f)
public static bool ShowNotification(string content, double fadeoutWait = 1d)
{
if (!CodeExecutorWindow.HasOpenInstances())
{
Expand Down
2 changes: 1 addition & 1 deletion Editor/Scripts/CodeExecutorSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ private class Settings
public int fontSize = 12;
public bool enableBuiltinExecModeCSharp = true;
public bool enableBuiltinExecModeXLua = true;
public bool enableBuiltinExecModeXLuaCustom = true;
public bool enableBuiltinExecModeXLuaCustom = false;
}

private static Settings s_Settings;
Expand Down
3 changes: 3 additions & 0 deletions Editor/Scripts/Examples/CSharp.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ namespace ChenPipi.CodeExecutor.Examples
{

/// <summary>
/// CodeExecutor C# 注入工具
/// CodeExecutor C# 执行工具
/// </summary>
public static class InjectHelperCSharp
public static class ExecutionHelperCSharp
{

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ namespace ChenPipi.CodeExecutor.Examples
{

/// <summary>
/// 给 CodeExecutor 注入 C# 代码执行模式
/// 给 CodeExecutor 注入代码执行模式
/// </summary>
public static class CodeExecutorInjectorCSharp
public static class InjectorCSharp
{

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

public static object[] Executor(string code)
{
object[] results = InjectHelperCSharp.ExecuteSnippetCode(code);
object[] results = ExecutionHelperCSharp.ExecuteSnippetCode(code);

CodeExecutorManager.ShowNotification("Executed");

Expand Down
3 changes: 3 additions & 0 deletions Editor/Scripts/Examples/XLua.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ namespace ChenPipi.CodeExecutor.Examples
{

/// <summary>
/// CodeExecutor XLua 注入工具
/// CodeExecutor xLua 执行工具
/// </summary>
public static class InjectHelperXLua
public static class ExecutionHelperXLua
{

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

/// <summary>
/// 初始化 XLua 环境
/// 初始化 xLua 环境
/// </summary>
/// <param name="assemblyName">XLua 所在的程序集名称</param>
public static void Init(string assemblyName = DefaultAssemblyName)
public static bool Init(string assemblyName = DefaultAssemblyName)
{
try
{
Expand All @@ -33,6 +33,7 @@ public static void Init(string assemblyName = DefaultAssemblyName)
{
s_LuaEnvType = assembly.GetType("XLua.LuaEnv", true);
s_LuaTableType = assembly.GetType("XLua.LuaTable", true);
return true;
}
}
catch (Exception e)
Expand All @@ -44,6 +45,8 @@ public static void Init(string assemblyName = DefaultAssemblyName)
{
Debug.LogError("[CodeExecutor] Unable to reach 'XLua', make sure you specify the correct assembly name!");
}

return false;
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ namespace ChenPipi.CodeExecutor.Examples
{

/// <summary>
/// 给 CodeExecutor 注入 XLua 代码执行模式
/// 给 CodeExecutor 注入代码执行模式
/// </summary>
public static class CodeExecutorInjectorXLua
public static class InjectorXLua
{

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

/// <summary>
/// 注册 CodeExecutor 执行模式
Expand All @@ -28,21 +28,21 @@ private static void Register()
return;
}
// 初始化 xLua Helper
InjectHelperXLua.Init(k_XLuaAssemblyName);
// 注册
if (InjectHelperXLua.isReady)
if (!ExecutionHelperXLua.isReady && !ExecutionHelperXLua.Init(XLuaAssemblyName))
{
CodeExecutorManager.RegisterExecMode(new ExecutionMode
{
name = "XLua (Standalone)",
executor = Executor,
});
return;
}
// 注册
CodeExecutorManager.RegisterExecMode(new ExecutionMode
{
name = "xLua (Standalone)",
executor = Executor,
});
}

public static object[] Executor(string code)
{
object[] results = InjectHelperXLua.ExecuteCode(code);
object[] results = ExecutionHelperXLua.ExecuteCode(code);

CodeExecutorManager.ShowNotification("Executed");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ namespace ChenPipi.CodeExecutor.Examples
{

/// <summary>
/// 给 CodeExecutor 注入 XLua 代码执行模式
/// 给 CodeExecutor 注入代码执行模式
/// </summary>
public static class CodeExecutorInjectorXLuaCustom
public static class InjectorXLuaCustom
{

/// <summary>
Expand All @@ -18,14 +18,19 @@ public static class CodeExecutorInjectorXLuaCustom
[CodeExecutorRegistration(5)]
private static void Register()
{
// 依赖 XLua (Standalone)
if (!CodeExecutorSettings.enableBuiltinExecModeXLua || !CodeExecutorSettings.enableBuiltinExecModeXLuaCustom)
if (!CodeExecutorSettings.enableBuiltinExecModeXLuaCustom)
{
return;
}
// 初始化 xLua Helper
if (!ExecutionHelperXLua.isReady && !ExecutionHelperXLua.Init(InjectorXLua.XLuaAssemblyName))
{
return;
}
// 注册
CodeExecutorManager.RegisterExecMode(new ExecutionMode
{
name = "XLua (Custom)",
name = "xLua (Custom)",
executor = Executor,
});
}
Expand All @@ -37,12 +42,12 @@ public static object[] Executor(string code)
{
if (!CodeExecutorManager.ShowNotification("This execution mode is currently unavailable"))
{
EditorUtility.DisplayDialog("CodeExecutorInjectorXLuaCustom", "This execution mode is currently unavailable!", "OK");
EditorUtility.DisplayDialog("CodeExecutor", "This execution mode is currently unavailable!", "OK");
}
return null;
}

object[] results = InjectHelperXLua.ExecuteCode(code, luaEnv);
object[] results = ExecutionHelperXLua.ExecuteCode(code, luaEnv);

CodeExecutorManager.ShowNotification("Executed");

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

public static object GetLuaEnv()
{
// Return your in-game LuaEnv object
// Return your LuaEnv object
return null;
}

Expand Down
2 changes: 1 addition & 1 deletion Editor/Scripts/Window/CodeExecutorWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ public void SetCenter(int offsetX = 0, int offsetY = 0)
/// </summary>
/// <param name="content"></param>
/// <param name="fadeoutWait"></param>
public void ShowNotification(string content, double fadeoutWait = 1f)
public void ShowNotification(string content, double fadeoutWait = 1d)
{
ShowNotification(new GUIContent(content), fadeoutWait);
}
Expand Down
48 changes: 30 additions & 18 deletions Editor/Scripts/Window/CodeExecutorWindowMenu.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,9 @@ public partial class CodeExecutorWindow : EditorWindow, IHasCustomMenu

public void AddItemsToMenu(GenericMenu menu)
{
menu.AddItem(new GUIContent("Built-in Execution Mode/C#"), CodeExecutorSettings.enableBuiltinExecModeCSharp, Menu_EnableBuiltinExecutionModeCSharp);
menu.AddItem(new GUIContent("Built-in Execution Mode/XLua (Standalone)"), CodeExecutorSettings.enableBuiltinExecModeXLua, Menu_EnableBuiltinExecutionModeXLua);
menu.AddItem(
new GUIContent("Built-in Execution Mode/XLua (Custom)"),
(CodeExecutorSettings.enableBuiltinExecModeXLua && CodeExecutorSettings.enableBuiltinExecModeXLuaCustom),
Menu_EnableBuiltinExecutionModeXLuaCustom
);
menu.AddItem(new GUIContent("Document: How to register execution mode?"), false, Menu_Document);
menu.AddItem(new GUIContent("Built-in Execution Mode/C#"), enableBuiltinExecModeCSharp, Menu_BuiltinExecutionModeCSharp);
menu.AddItem(new GUIContent("Built-in Execution Mode/XLua (Standalone)"), enableBuiltinExecModeXLua, Menu_BuiltinExecutionModeXLua);
menu.AddItem(new GUIContent("Document: How to register execution modes?"), false, Menu_Document);
menu.AddSeparator(string.Empty);
menu.AddItem(new GUIContent("Reload"), false, Menu_Reload);
menu.AddItem(new GUIContent("Show Serialized Data File"), false, Menu_ShowSerializedDataFile);
Expand All @@ -34,26 +29,39 @@ public void AddItemsToMenu(GenericMenu menu)
menu.AddItem(new GUIContent("About/Project Home Page (Gitee)"), false, Menu_ProjectHomePageGitee);
}

private void Menu_EnableBuiltinExecutionModeCSharp()
public static void ReRegisterExecModes()
{
CodeExecutorSettings.enableBuiltinExecModeCSharp = !CodeExecutorSettings.enableBuiltinExecModeCSharp;
UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation();
}

private void Menu_EnableBuiltinExecutionModeXLua()
public static bool enableBuiltinExecModeCSharp
{
CodeExecutorSettings.enableBuiltinExecModeXLua = !CodeExecutorSettings.enableBuiltinExecModeXLua;
UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation();
get => CodeExecutorSettings.enableBuiltinExecModeCSharp;
set
{
CodeExecutorSettings.enableBuiltinExecModeCSharp = value;
ReRegisterExecModes();
}
}

private void Menu_EnableBuiltinExecutionModeXLuaCustom()
public static bool enableBuiltinExecModeXLua
{
if (!CodeExecutorSettings.enableBuiltinExecModeXLua)
get => CodeExecutorSettings.enableBuiltinExecModeXLua;
set
{
return;
CodeExecutorSettings.enableBuiltinExecModeXLua = value;
ReRegisterExecModes();
}
CodeExecutorSettings.enableBuiltinExecModeXLuaCustom = !CodeExecutorSettings.enableBuiltinExecModeXLuaCustom;
UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation();
}

private void Menu_BuiltinExecutionModeCSharp()
{
enableBuiltinExecModeCSharp = !enableBuiltinExecModeCSharp;
}

private void Menu_BuiltinExecutionModeXLua()
{
enableBuiltinExecModeXLua = !enableBuiltinExecModeXLua;
}

private void Menu_Document()
Expand All @@ -63,10 +71,14 @@ private void Menu_Document()

private void Menu_Reload()
{
// 加载
CodeExecutorManager.ReloadData();
CodeExecutorManager.ReloadSettings();
// 应用
ApplySettings();
UpdateContent();
// 刷新注册模式
ReRegisterExecModes();
}

private void Menu_ShowSerializedDataFile()
Expand Down
Loading

0 comments on commit 8926ff0

Please sign in to comment.