Skip to content

Commit d9ebea1

Browse files
committed
Modify APIs
1 parent 8926ff0 commit d9ebea1

File tree

5 files changed

+59
-38
lines changed

5 files changed

+59
-38
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## [1.0.2] - 2023-08-24
4+
5+
- Modify APIs
6+
37
## [1.0.1] - 2023-08-23
48

59
- Fix bugs

Editor/Scripts/CodeExecutorManager.cs

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ public static class CodeExecutorManager
5050

5151
#region Macro
5252

53+
// /// <summary>
54+
// /// 设置插件宏
55+
// /// </summary>
5356
// [InitializeOnLoadMethod]
5457
// public static void SetupMacro()
5558
// {
@@ -66,6 +69,10 @@ public static class CodeExecutorManager
6669

6770
#region Window
6871

72+
/// <summary>
73+
/// 打开窗口
74+
/// </summary>
75+
/// <param name="forceReopen"></param>
6976
public static void Open(bool forceReopen = false)
7077
{
7178
if (!forceReopen && CodeExecutorWindow.HasOpenInstances())
@@ -244,7 +251,7 @@ public static void RemoveSnippets(string[] guids)
244251

245252
#endregion
246253

247-
#region Update Snippet
254+
#region Data Operation Snippet
248255

249256
/// <summary>
250257
/// 代码段名称非法字符
@@ -385,19 +392,19 @@ public static void RegisterExecMode(ExecutionMode mode)
385392
string modeName = mode.name;
386393
if (string.IsNullOrEmpty(modeName))
387394
{
388-
Debug.LogError($"[CodeExecutor] Cannot register execution mode without a name!");
395+
Debug.LogError($"[CodeExecutor] Cannot register execution mode without a name!\n");
389396
return;
390397
}
391398

392399
if (modeName.Equals(DefaultExecMode.name, StringComparison.OrdinalIgnoreCase))
393400
{
394-
Debug.LogError($"[CodeExecutor] Cannot register execution mode with name '{modeName}'!");
401+
Debug.LogError($"[CodeExecutor] Cannot register execution mode with name '{modeName}'!\n");
395402
return;
396403
}
397404

398405
if (ExecutionModes.ContainsKey(modeName))
399406
{
400-
Debug.LogError($"[CodeExecutor] A Execution mode named '{modeName}' is already registered!");
407+
Debug.LogError($"[CodeExecutor] A Execution mode named '{modeName}' is already registered!\n");
401408
return;
402409
}
403410

@@ -461,6 +468,41 @@ public static bool HasExecMode(string modeName)
461468
return mode;
462469
}
463470

471+
/// <summary>
472+
/// 重新注册所有执行模式
473+
/// </summary>
474+
public static void ReRegisterExecModes()
475+
{
476+
ExecutionModes.Clear();
477+
UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation();
478+
}
479+
480+
/// <summary>
481+
/// 启用内置的执行模式 C#
482+
/// </summary>
483+
public static bool enableBuiltinExecModeCSharp
484+
{
485+
get => CodeExecutorSettings.enableBuiltinExecModeCSharp;
486+
set
487+
{
488+
CodeExecutorSettings.enableBuiltinExecModeCSharp = value;
489+
ReRegisterExecModes();
490+
}
491+
}
492+
493+
/// <summary>
494+
/// 启用内置的执行模式 xLua
495+
/// </summary>
496+
public static bool enableBuiltinExecModeXLua
497+
{
498+
get => CodeExecutorSettings.enableBuiltinExecModeXLua;
499+
set
500+
{
501+
CodeExecutorSettings.enableBuiltinExecModeXLua = value;
502+
ReRegisterExecModes();
503+
}
504+
}
505+
464506
#endregion
465507

466508
#region Execution
@@ -475,13 +517,13 @@ internal static object[] ExecuteCode(string codeText, string modeName)
475517
{
476518
if (!ExecutionModes.TryGetValue(modeName, out ExecutionMode mode))
477519
{
478-
Debug.LogError($"[CodeExecutor] No execution mode named '{modeName}' was found!");
520+
Debug.LogError($"[CodeExecutor] No execution mode named '{modeName}' was found!\n");
479521
return null;
480522
}
481523

482524
if (mode.executor == null)
483525
{
484-
Debug.LogError($"[CodeExecutor] Invalid executor for execution mode '{modeName}'!");
526+
Debug.LogError($"[CodeExecutor] Invalid executor for execution mode '{modeName}'!\n");
485527
return null;
486528
}
487529

Editor/Scripts/Window/CodeExecutorWindowMenu.cs

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ public partial class CodeExecutorWindow : EditorWindow, IHasCustomMenu
1313

1414
public void AddItemsToMenu(GenericMenu menu)
1515
{
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);
16+
menu.AddItem(new GUIContent("Built-in Execution Mode/C#"), CodeExecutorManager.enableBuiltinExecModeCSharp, Menu_BuiltinExecutionModeCSharp);
17+
menu.AddItem(new GUIContent("Built-in Execution Mode/XLua (Standalone)"), CodeExecutorManager.enableBuiltinExecModeXLua, Menu_BuiltinExecutionModeXLua);
1818
menu.AddItem(new GUIContent("Document: How to register execution modes?"), false, Menu_Document);
1919
menu.AddSeparator(string.Empty);
2020
menu.AddItem(new GUIContent("Reload"), false, Menu_Reload);
@@ -29,39 +29,14 @@ public void AddItemsToMenu(GenericMenu menu)
2929
menu.AddItem(new GUIContent("About/Project Home Page (Gitee)"), false, Menu_ProjectHomePageGitee);
3030
}
3131

32-
public static void ReRegisterExecModes()
33-
{
34-
UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation();
35-
}
36-
37-
public static bool enableBuiltinExecModeCSharp
38-
{
39-
get => CodeExecutorSettings.enableBuiltinExecModeCSharp;
40-
set
41-
{
42-
CodeExecutorSettings.enableBuiltinExecModeCSharp = value;
43-
ReRegisterExecModes();
44-
}
45-
}
46-
47-
public static bool enableBuiltinExecModeXLua
48-
{
49-
get => CodeExecutorSettings.enableBuiltinExecModeXLua;
50-
set
51-
{
52-
CodeExecutorSettings.enableBuiltinExecModeXLua = value;
53-
ReRegisterExecModes();
54-
}
55-
}
56-
5732
private void Menu_BuiltinExecutionModeCSharp()
5833
{
59-
enableBuiltinExecModeCSharp = !enableBuiltinExecModeCSharp;
34+
CodeExecutorManager.enableBuiltinExecModeCSharp = !CodeExecutorManager.enableBuiltinExecModeCSharp;
6035
}
6136

6237
private void Menu_BuiltinExecutionModeXLua()
6338
{
64-
enableBuiltinExecModeXLua = !enableBuiltinExecModeXLua;
39+
CodeExecutorManager.enableBuiltinExecModeXLua = !CodeExecutorManager.enableBuiltinExecModeXLua;
6540
}
6641

6742
private void Menu_Document()
@@ -78,7 +53,7 @@ private void Menu_Reload()
7853
ApplySettings();
7954
UpdateContent();
8055
// 刷新注册模式
81-
ReRegisterExecModes();
56+
CodeExecutorManager.ReRegisterExecModes();
8257
}
8358

8459
private void Menu_ShowSerializedDataFile()

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public static class Example
7171

7272
After successful registration, the name of the mode will appear in the drop-down list of the Execution Mode menu at the top right of the Code Executor window, and can be used to execute code snippets.
7373

74-
![image-001.png](Screenshots~/image-001.png)
74+
![Execution Modes](Screenshots~/execution-modes.png)
7575

7676
#### Register by reflection
7777

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "com.chenpipi.code-executor",
3-
"version": "1.0.1",
3+
"version": "1.0.2",
44
"unity": "2020.2",
55
"displayName": "Code Executor",
66
"keywords": [

0 commit comments

Comments
 (0)