summaryrefslogtreecommitdiff
path: root/addons/gdUnit4/src/ui/menu/GdUnitScriptEditorContextMenuHandler.gd
diff options
context:
space:
mode:
authorradiohotline <radoihotline@disroot.rg>2026-08-25 16:33:56 +0300
committerradiohotline <radoihotline@disroot.rg>2026-08-25 16:33:56 +0300
commita89e744ed0e8c759caf041a580112365bbfe4303 (patch)
treedd61e320904176995727e86a857d00c90d4933ba /addons/gdUnit4/src/ui/menu/GdUnitScriptEditorContextMenuHandler.gd
parent6d53d8cac78250dc888aa49d5f9d4175c6652feb (diff)
escoria updateHEADmain
Diffstat (limited to 'addons/gdUnit4/src/ui/menu/GdUnitScriptEditorContextMenuHandler.gd')
-rw-r--r--addons/gdUnit4/src/ui/menu/GdUnitScriptEditorContextMenuHandler.gd41
1 files changed, 41 insertions, 0 deletions
diff --git a/addons/gdUnit4/src/ui/menu/GdUnitScriptEditorContextMenuHandler.gd b/addons/gdUnit4/src/ui/menu/GdUnitScriptEditorContextMenuHandler.gd
new file mode 100644
index 0000000..26f5612
--- /dev/null
+++ b/addons/gdUnit4/src/ui/menu/GdUnitScriptEditorContextMenuHandler.gd
@@ -0,0 +1,41 @@
+@tool
+extends EditorContextMenuPlugin
+
+
+var _context_menus: Array[GdUnitContextMenuItem] = []
+
+
+func _init() -> void:
+ var is_test_suite := func is_visible(script: Script, is_ts: bool) -> bool:
+ return GdUnitTestSuiteScanner.is_test_suite(script) == is_ts
+ _context_menus.append(GdUnitContextMenuItem.new(
+ GdUnitCommandScriptEditorRunTests.ID,
+ "Run Tests",
+ is_test_suite.bind(true)
+ ))
+ _context_menus.append(GdUnitContextMenuItem.new(
+ GdUnitCommandScriptEditorDebugTests.ID,
+ "Debug Tests",
+ is_test_suite.bind(true)
+ ))
+ _context_menus.append(GdUnitContextMenuItem.new(
+ GdUnitCommandScriptEditorCreateTest.ID,
+ "Create Test",
+ is_test_suite.bind(false)
+ ))
+
+ # setup shortcuts
+ for menu_item in _context_menus:
+ if menu_item.shortcut():
+ add_menu_shortcut(menu_item.shortcut(), menu_item.execute.unbind(1))
+
+
+func _popup_menu(_paths: PackedStringArray) -> void:
+ var current_script := EditorInterface.get_script_editor().get_current_script()
+
+ for menu_item in _context_menus:
+ if menu_item.is_visible(current_script):
+ if menu_item.shortcut():
+ add_context_menu_item_from_shortcut(menu_item.name, menu_item.shortcut())
+ else:
+ add_context_menu_item(menu_item.name, menu_item.execute.unbind(1))