@@ -38,6 +38,7 @@ import { PanelLocation } from "./common/State";
3838import { DeviceRotationDirection , IDEPanelMoveTarget } from "./common/Project" ;
3939import { AdminRestrictedFunctionalityError , PaywalledFunctionalityError } from "./common/Errors" ;
4040import { registerRadonAI } from "./ai/mcp/RadonMcpController" ;
41+ import { MaestroCodeLensProvider } from "./providers/MaestroCodeLensProvider" ;
4142import { removeLicense } from "./utilities/license" ;
4243
4344const CHAT_ONBOARDING_COMPLETED = "chat_onboarding_completed" ;
@@ -207,6 +208,25 @@ export async function activate(context: ExtensionContext) {
207208 }
208209 }
209210
211+ async function startMaestroTest ( fileNames : string [ ] ) {
212+ const ide = IDE . getInstanceIfExists ( ) ;
213+ if ( ide ) {
214+ ide . project . startMaestroTest ( fileNames ) ;
215+ } else {
216+ window . showWarningMessage (
217+ "Wait for the app to load before running Maestro tests." ,
218+ "Dismiss"
219+ ) ;
220+ }
221+ }
222+
223+ async function stopMaestroTest ( ) {
224+ const ide = IDE . getInstanceIfExists ( ) ;
225+ if ( ide ) {
226+ ide . project . stopMaestroTest ( ) ;
227+ }
228+ }
229+
210230 function removeLicenseWithConfirmation ( ) {
211231 window
212232 . showWarningMessage (
@@ -266,6 +286,8 @@ export async function activate(context: ExtensionContext) {
266286 context . subscriptions . push (
267287 commands . registerCommand ( "RNIDE.showInlinePreview" , showInlinePreview )
268288 ) ;
289+ context . subscriptions . push ( commands . registerCommand ( "RNIDE.startMaestroTest" , startMaestroTest ) ) ;
290+ context . subscriptions . push ( commands . registerCommand ( "RNIDE.stopMaestroTest" , stopMaestroTest ) ) ;
269291
270292 context . subscriptions . push ( commands . registerCommand ( "RNIDE.captureReplay" , captureReplay ) ) ;
271293 context . subscriptions . push ( commands . registerCommand ( "RNIDE.toggleRecording" , toggleRecording ) ) ;
@@ -370,6 +392,13 @@ export async function activate(context: ExtensionContext) {
370392 )
371393 ) ;
372394
395+ context . subscriptions . push (
396+ languages . registerCodeLensProvider (
397+ [ { scheme : "file" , language : "yaml" } ] ,
398+ new MaestroCodeLensProvider ( )
399+ )
400+ ) ;
401+
373402 context . subscriptions . push (
374403 workspace . onDidChangeConfiguration ( ( event : ConfigurationChangeEvent ) => {
375404 if ( event . affectsConfiguration ( "RadonIDE.userInterface.panelLocation" ) ) {
0 commit comments