{ "name": "vscode-react-native", "displayName": "React Native Tools", "version": "1.14.0", "private": true, "publisher": "msjsdiag", "icon": "resources/images/icon.png", "galleryBanner": { "color": "#3B3738", "theme": "dark" }, "description": "%reactNative.description%", "keywords": [ "react-native", "expo", "multi-root ready" ], "bugs": "https://github.com/microsoft/vscode-react-native/issues", "license": "%reactNative.license%", "repository": { "type": "git", "url": "https://github.com/microsoft/vscode-react-native" }, "engines": { "vscode": "^1.75.0" }, "categories": [ "Debuggers", "Other" ], "activationEvents": [ "workspaceContains:node_modules/react-native", "workspaceContains:metro.config.js", "onDebugResolve:reactnative", "onDebugResolve:reactnativedirect", "onDebugDynamicConfigurations:reactnative", "onDebugInitialConfigurations", "onCommand:reactNative.cleanRestartPackager" ], "main": "./dist/rn-extension", "contributes": { "languages": [ { "id": "rn-output-log", "aliases": [ "RN Output Log" ], "extensions": [ ".rn-output" ] } ], "walkthroughs": [ { "id": "RNTGetStarted", "title": "Get started with React Native development", "description": "Your first steps to set up the environment for React Native development and explore the extension functionality", "steps": [ { "id": "settingUpCommonEnvironment", "title": "Set up RN development environment", "description": "To develop React Native applications in the React Native Tools extension, you need to set up your development environment in accordance with the requirements of React Native.\n[Learn more](https://reactnative.dev/docs/environment-setup)", "media": { "markdown": "resources/walkthougths/setup-env-common.md" } }, { "id": "settingUpExpoEnvironment", "title": "Prepare for Expo development", "description": "The extension provides functionality for developing Expo applications. To get started, you need to set up the development environment in accordance with the extension requirements.\n[Learn more](https://github.com/microsoft/vscode-react-native#expo-applications)", "media": { "markdown": "resources/walkthougths/setup-env-expo.md" } }, { "id": "settingUpWindowsEnvironment", "title": "Prepare for React Native for Windows", "description": "To develop React Native for Windows applications, you need to set up your dev environment in accordance with the [official requirements](https://microsoft.github.io/react-native-windows/docs/rnw-dependencies).", "when": "isWindows", "media": { "image": "resources/images/rnw-set-up.png", "altText": "React Native for Windows app view" } }, { "id": "settingUpMacOsEnvironment", "title": "Prepare for React Native for macOS", "description": "To develop React Native for macOS applications, you need to set up your dev environment in accordance with the [official requirements](https://microsoft.github.io/react-native-windows/docs/rnm-dependencies).", "when": "isMac", "media": { "image": "resources/images/rnm-set-up.png", "altText": "React Native for macOS app view" } }, { "id": "hermesEngine", "title": "Hermes Engine", "description": "The Hermes engine is an open source JavaScript engine created by Facebook to optimize building and running React Native applications. It improves app performance and decreases app size.\n[Learn more](https://github.com/microsoft/vscode-react-native#hermes-engine)", "media": { "image": "resources/images/hermeslogo.svg", "altText": "Hermes logo" } }, { "id": "runAndDebugReactNativeApp", "title": "Run and Debug your React Native application", "description": "Create a debug configuration and start debugging your React Native application.\n[Learn more](https://github.com/microsoft/vscode-react-native#debugging-react-native-applications)", "media": { "markdown": "resources/walkthougths/debug-tutor.md" } }, { "id": "exploreExtensionFeatures", "title": "Explore extension features", "description": "The extension provides useful features to facilitate the development of React Native applications.\n[Learn more](https://github.com/microsoft/vscode-react-native#customization)", "media": { "markdown": "resources/walkthougths/features-tutor.md" } } ] } ], "commands": [ { "command": "reactNative.launchAndroidSimulator", "title": "%reactNative.command.launchAndroidSimulator.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.launchIOSSimulator", "title": "%reactNative.command.launchIOSSimulator.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.launchExpoWeb", "title": "%reactNative.command.launchExpoWeb.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.runAndroidSimulator", "title": "%reactNative.command.runAndroidSimulator.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.runAndroidDevice", "title": "%reactNative.command.runAndroidDevice.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.runIosSimulator", "title": "%reactNative.command.runIosSimulator.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.runIosDevice", "title": "%reactNative.command.runIosDevice.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.runExponent", "title": "%reactNative.command.runExponent.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.runWindows", "title": "%reactNative.command.runWindows.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && isRNWindowsProject || isWorkspaceTrusted && isRNWindowsProject" }, { "command": "reactNative.runMacOS", "title": "%reactNative.command.runMacOS.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && isRNMacOSProject || isWorkspaceTrusted && isRNMacOSProject" }, { "command": "reactNative.startPackager", "title": "%reactNative.command.startPackager.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.stopPackager", "title": "%reactNative.command.stopPackager.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.restartPackager", "title": "%reactNative.command.restartPackager.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.cleanRestartPackager", "title": "%reactNative.command.cleanRestartPackager.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.publishToExpHost", "title": "%reactNative.command.publishToExpHost.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.createExpoEASBuildConfigFile", "title": "%reactNative.command.createExpoEASBuildConfigFile.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.openEASProjectInWebPage", "title": "%reactNative.command.openEASProjectInWebPage.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.revertOpenModule", "title": "%reactNative.command.revertOpenModule.title%", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.openRNUpgradeHelper", "title": "%reactNative.command.openRNUpgradeHelper.title%", "category": "React Native" }, { "command": "reactNative.installExpoGoApplication", "title": "%reactNative.command.installExpoGoApplication.title%", "category": "React Native" }, { "command": "reactNative.showDevMenu", "title": "%reactNative.command.showDevMenu.title%", "category": "React Native" }, { "command": "reactNative.reloadApp", "title": "%reactNative.command.reloadApp.title%", "category": "React Native" }, { "command": "reactNative.startLogCatMonitor", "title": "%reactNative.command.startLogCatMonitor.title%", "category": "React Native" }, { "command": "reactNative.stopLogCatMonitor", "title": "%reactNative.command.stopLogCatMonitor.title%", "category": "React Native" }, { "command": "reactNative.selectAndInsertDebugConfiguration", "title": "%reactNative.command.selectAndInsertDebugConfiguration.title%", "category": "React Native" }, { "command": "reactNative.startNetworkInspector", "title": "%reactNative.command.startNetworkInspector.title%", "category": "React Native" }, { "command": "reactNative.stopNetworkInspector", "title": "%reactNative.command.stopNetworkInspector.title%", "category": "React Native" }, { "command": "reactNative.testDevEnvironment", "title": "%reactNative.command.testDevEnvironment.title%", "category": "React Native" }, { "command": "reactNative.debugScenario.attachHermesApplication", "title": "Attach to Hermes application", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.attachDirectIosExperimental", "title": "Attach to Direct iOS - Experimental", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.attachToPackager", "title": "Attach to packager", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.debugAndroid", "title": "Debug Android", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.debugIos", "title": "Debug iOS", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.debugWindows", "title": "Debug Windows", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.debugMacos", "title": "Debug macOS", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.debugInExponent", "title": "Debug in Exponent", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.debugInHermesExponent", "title": "Debug in Hermes Exponent", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.debugInExponentWeb", "title": "Debug in Exponent Web", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.debugAndroidHermes", "title": "Debug Android Hermes", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.debugDirectIosExperimental", "title": "Debug Direct iOS - Experimental", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.debugIosHermes", "title": "Debug iOS Hermes", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.debugMacosHermes", "title": "Debug macOS Hermes", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.debugWindowsHermes", "title": "Debug Windows Hermes", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(debug-alt)" }, { "command": "reactNative.debugScenario.runAndroid", "title": "Run Android", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(play)" }, { "command": "reactNative.debugScenario.runIos", "title": "Run iOS", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(play)" }, { "command": "reactNative.debugScenario.runAndroidHermes", "title": "Run Android Hermes", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(play)" }, { "command": "reactNative.debugScenario.runIosHermes", "title": "Run iOS Hermes", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(play)" }, { "command": "reactNative.debugScenario.runDirectIosExperimental", "title": "Run Direct iOS - Experimental", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled && !inDebugMode || isWorkspaceTrusted && !inDebugMode", "icon": "$(play)" }, { "command": "reactNative.doctor", "title": "Run Doctor", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.expoDoctor", "title": "Expo - Run Doctor", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.expoPrebuild", "title": "Expo - Prebuild", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.expoPrebuildClean", "title": "Expo - Prebuild Clean", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.reopenQRCode", "title": "Reopen QR Code in Expo", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.hermesEnable", "title": "Enable Hermes engine", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.expoHermesEnable", "title": "Expo - Enable Hermes engine", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.openExpoUpgradeHelper", "title": "Expo - Open upgrade helper in web page", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.installPods", "title": "Install CocoaPods dependencies", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.killPort", "title": "Kill Port", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.setNewArch", "title": "Set React Native New Architecture", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.toggleNetworkView", "title": "Toggle Network View", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" }, { "command": "reactNative.runEasBuild", "title": "Run EAS Build", "category": "React Native", "enablement": "!config.security.workspace.trust.enabled || isWorkspaceTrusted" } ], "menus": { "editor/title/run": [ { "command": "reactNative.debugScenario.attachHermesApplication", "when": "isRNProject && isRNHermesProject && config.react-native-tools.displayDebuggingCommandsButton" }, { "command": "reactNative.debugScenario.debugInHermesExponent", "when": "isRNProject && config.react-native-tools.displayDebuggingCommandsButton" }, { "command": "reactNative.debugScenario.debugInExponentWeb", "when": "isRNProject && config.react-native-tools.displayDebuggingCommandsButton" }, { "command": "reactNative.debugScenario.debugAndroidHermes", "when": "isRNProject && config.react-native-tools.displayDebuggingCommandsButton" }, { "command": "reactNative.debugScenario.debugIosHermes", "when": "isRNProject && config.react-native-tools.displayDebuggingCommandsButton" }, { "command": "reactNative.debugScenario.debugMacosHermes", "when": "isRNProject && config.react-native-tools.displayDebuggingCommandsButton" }, { "command": "reactNative.debugScenario.debugWindowsHermes", "when": "isRNProject && config.react-native-tools.displayDebuggingCommandsButton" }, { "command": "reactNative.debugScenario.runAndroidHermes", "when": "isRNProject && config.react-native-tools.displayDebuggingCommandsButton" }, { "command": "reactNative.debugScenario.runIosHermes", "when": "isRNProject && config.react-native-tools.displayDebuggingCommandsButton" } ], "commandPalette": [ { "command": "reactNative.selectAndInsertDebugConfiguration", "when": "false" }, { "command": "reactNative.debugScenario.attachHermesApplication", "when": "false" }, { "command": "reactNative.debugScenario.attachDirectIosExperimental", "when": "false" }, { "command": "reactNative.debugScenario.attachToPackager", "when": "false" }, { "command": "reactNative.debugScenario.debugAndroid", "when": "false" }, { "command": "reactNative.debugScenario.debugIos", "when": "false" }, { "command": "reactNative.debugScenario.debugWindows", "when": "false" }, { "command": "reactNative.debugScenario.debugMacos", "when": "false" }, { "command": "reactNative.debugScenario.debugInExponent", "when": "false" }, { "command": "reactNative.debugScenario.debugInHermesExponent", "when": "false" }, { "command": "reactNative.debugScenario.debugInExponentWeb", "when": "false" }, { "command": "reactNative.debugScenario.debugAndroidHermes", "when": "false" }, { "command": "reactNative.debugScenario.debugDirectIosExperimental", "when": "false" }, { "command": "reactNative.debugScenario.debugIosHermes", "when": "false" }, { "command": "reactNative.debugScenario.debugMacosHermes", "when": "false" }, { "command": "reactNative.debugScenario.debugWindowsHermes", "when": "false" }, { "command": "reactNative.debugScenario.runAndroid", "when": "false" }, { "command": "reactNative.debugScenario.runIos", "when": "false" }, { "command": "reactNative.debugScenario.runAndroidHermes", "when": "false" }, { "command": "reactNative.debugScenario.runIosHermes", "when": "false" }, { "command": "reactNative.debugScenario.runDirectIosExperimental", "when": "false" } ] }, "breakpoints": [ { "language": "javascript" }, { "language": "typescript" }, { "language": "javascriptreact" }, { "language": "typescriptreact" } ], "debuggers": [ { "type": "reactnative", "label": "React Native", "runtime": "node", "configurationSnippets": [], "configurationAttributes": { "attach": { "required": [ "cwd" ], "properties": { "program": { "type": "string", "description": "%reactNative.attach.program.description%" }, "env": { "type": "object", "additionalProperties": { "type": "string" }, "description": "%reactNative.attach.env.description%", "default": {} }, "envFile": { "type": "string", "description": "%reactNative.attach.envFile.description%", "default": "${workspaceFolder}/.env" }, "cwd": { "type": "string", "description": "%reactNative.attach.cwd.description%", "default": "${workspaceFolder}" }, "sourceMaps": { "type": "boolean", "description": "%reactNative.attach.sourceMaps.description%", "default": false }, "sourceMapPathOverrides": { "type": "object", "description": "%reactNative.attach.sourceMapsPathOverrides.description%" }, "sourceMapRenames": { "type": "boolean", "description": "%reactNative.attach.sourceMapRenames.description%", "default": false }, "trace": { "type": "string", "enum": [ "verbose", "log", "warn", "error", "stop" ], "default": "log", "description": "%reactNative.attach.trace.description%" }, "address": { "type": "string", "description": "%reactNative.attach.address.description%", "default": "localhost" }, "port": { "type": "number", "description": "%reactNative.attach.port.description%", "default": 8081 }, "remoteRoot": { "type": "string", "description": "%reactNative.attach.remoteRoot.description%", "default": null }, "localRoot": { "type": "string", "description": "%reactNative.attach.localRoot.description%", "default": "${workspaceFolder}" }, "skipFiles": { "type": "array", "description": "%reactNative.attach.skipFiles.description%", "items": { "type": "string" }, "default": [] }, "debuggerWorkerUrlPath": { "type": "string", "description": "%reactNative.attach.debuggerWorkerUrlPath.description%", "default": "debugger-ui/" } } }, "launch": { "required": [ "cwd", "platform" ], "properties": { "platform": { "type": "string", "enum": [ "ios", "android", "exponent", "windows", "macos", "expoweb" ], "description": "%reactNative.launch.platform.description%" }, "program": { "type": "string", "description": "%reactNative.launch.program.description%" }, "cwd": { "type": "string", "description": "%reactNative.launch.cwd.description%", "default": "${workspaceFolder}" }, "target": { "anyOf": [ { "type": "string", "enum": [ "device", "simulator" ] }, { "type": "string" } ], "default": "simulator", "description": "%reactNative.launch.target.description%" }, "sourceMaps": { "type": "boolean", "description": "%reactNative.launch.sourceMaps.description%", "default": false }, "sourceMapPathOverrides": { "type": "object", "description": "%reactNative.launch.sourceMapsPathOverrides.description%" }, "sourceMapRenames": { "type": "boolean", "description": "%reactNative.attach.sourceMapRenames.description%", "default": false }, "logCatArguments": { "type": "array", "description": "%reactNative.launch.logCatArguments.description%", "default": [ "*:S", "ReactNative:V", "ReactNativeJS:V" ] }, "runArguments": { "type": "array", "description": "%reactNative.launch.runArguments.description%" }, "env": { "type": "object", "additionalProperties": { "type": "string" }, "description": "%reactNative.launch.env.description%", "default": {} }, "envFile": { "type": "string", "description": "%reactNative.launch.envFile.description%", "default": "${workspaceFolder}/.env" }, "variant": { "type": "string", "description": "%reactNative.launch.variant.description%" }, "scheme": { "type": "string", "description": "%reactNative.launch.scheme.description%" }, "productName": { "type": "string", "description": "%reactNative.launch.productName.description%" }, "skipFiles": { "type": "array", "description": "%reactNative.launch.skipFiles.description%", "items": { "type": "string" }, "default": [] }, "trace": { "type": "string", "enum": [ "verbose", "log", "warn", "error", "stop" ], "default": "log", "description": "%reactNative.launch.trace.description%" }, "debuggerWorkerUrlPath": { "type": "string", "description": "%reactNative.launch.debuggerWorkerUrlPath.description%", "default": "debugger-ui/" }, "launchActivity": { "type": "string", "description": "%reactNative.launch.launchActivity.description%", "default": "MainActivity" }, "expoHostType": { "type": "string", "enum": [ "tunnel", "lan", "local" ], "default": "lan", "description": "%reactNative.launch.expoHostType.description%" }, "jsDebugTrace": { "type": "boolean", "description": "%reactNative.direct.attach.jsDebugTrace.description%" }, "browserTarget": { "type": "string", "description": "%reactNative.direct.attach.browserTarget.description%" }, "url": { "type": "string", "description": "%reactNative.direct.attach.url.description%" }, "enableDebug": { "type": "boolean", "description": "%reactNative.launch.enableDebug.description%", "default": true }, "openExpoQR": { "type": "boolean", "description": "%reactNative.launch.openExpoQR.description%", "default": true } } } } }, { "type": "reactnativedirect", "label": "React Native Direct - Experimental", "runtime": "node", "configurationSnippets": [], "configurationAttributes": { "attach": { "required": [ "cwd" ], "properties": { "cwd": { "type": "string", "description": "%reactNative.attach.cwd.description%", "default": "${workspaceFolder}" }, "env": { "type": "object", "additionalProperties": { "type": "string" }, "description": "%reactNative.attach.env.description%", "default": {} }, "envFile": { "type": "string", "description": "%reactNative.attach.envFile.description%", "default": "${workspaceFolder}/.env" }, "useHermesEngine": { "type": "boolean", "description": "%reactNative.direct.attach.useHermesEngine.description%", "default": true }, "sourceMaps": { "type": "boolean", "description": "%reactNative.attach.sourceMaps.description%", "default": false }, "sourceMapPathOverrides": { "type": "object", "description": "%reactNative.attach.sourceMapsPathOverrides.description%" }, "jsDebugTrace": { "type": "boolean", "description": "%reactNative.direct.attach.jsDebugTrace.description%" }, "browserTarget": { "type": "string", "description": "%reactNative.direct.attach.browserTarget.description%" }, "sourceMapRenames": { "type": "boolean", "description": "%reactNative.attach.sourceMapRenames.description%", "default": false }, "platform": { "type": "string", "enum": [ "ios", "android", "macos", "windows" ], "description": "%reactNative.launch.direct.platform.description%" }, "trace": { "type": "string", "enum": [ "verbose", "log", "warn", "error", "stop" ], "default": "log", "description": "%reactNative.attach.trace.description%" }, "address": { "type": "string", "description": "%reactNative.attach.address.description%", "default": "localhost" }, "port": { "type": "number", "description": "%reactNative.direct.attach.port.description%", "default": 8081 }, "webkitRangeMin": { "type": "number", "description": "%reactNative.direct.attach.webkitRangeMin.description%", "default": 9223 }, "webkitRangeMax": { "type": "number", "description": "%reactNative.direct.attach.webkitRangeMax.description%", "default": 9322 }, "skipFiles": { "type": "array", "description": "%reactNative.attach.skipFiles.description%", "items": { "type": "string" }, "default": [] } } }, "launch": { "required": [ "cwd", "platform" ], "properties": { "platform": { "type": "string", "enum": [ "android", "ios", "macos", "windows", "exponent", "expoweb" ], "description": "%reactNative.launch.direct.platform.description%" }, "expoPlatformType": { "type": "string", "enum": [ "Android", "iOS" ] }, "expoHostType": { "type": "string", "enum": [ "tunnel", "lan", "local" ], "default": "lan", "description": "%reactNative.launch.expoHostType.description%" }, "useHermesEngine": { "type": "boolean", "description": "%reactNative.direct.attach.useHermesEngine.description%", "default": true }, "jsDebugTrace": { "type": "boolean", "description": "%reactNative.direct.attach.jsDebugTrace.description%" }, "browserTarget": { "type": "string", "description": "%reactNative.direct.attach.browserTarget.description%" }, "cwd": { "type": "string", "description": "%reactNative.launch.cwd.description%", "default": "${workspaceFolder}" }, "port": { "type": "number", "description": "%reactNative.direct.attach.port.description%", "default": 8081 }, "webkitRangeMin": { "type": "number", "description": "%reactNative.direct.attach.webkitRangeMin.description%", "default": 9223 }, "webkitRangeMax": { "type": "number", "description": "%reactNative.direct.attach.webkitRangeMax.description%", "default": 9322 }, "target": { "anyOf": [ { "type": "string", "enum": [ "device", "simulator" ] }, { "type": "string" } ], "default": "simulator", "description": "%reactNative.launch.target.description%" }, "sourceMaps": { "type": "boolean", "description": "%reactNative.launch.sourceMaps.description%", "default": false }, "sourceMapPathOverrides": { "type": "object", "description": "%reactNative.launch.sourceMapsPathOverrides.description%" }, "sourceMapRenames": { "type": "boolean", "description": "%reactNative.attach.sourceMapRenames.description%", "default": false }, "logCatArguments": { "type": "array", "description": "%reactNative.launch.logCatArguments.description%", "default": [ "*:S", "ReactNative:V", "ReactNativeJS:V" ] }, "runArguments": { "type": "array", "description": "%reactNative.launch.runArguments.description%" }, "env": { "type": "object", "additionalProperties": { "type": "string" }, "description": "%reactNative.launch.env.description%", "default": {} }, "envFile": { "type": "string", "description": "%reactNative.launch.envFile.description%", "default": "${workspaceFolder}/.env" }, "variant": { "type": "string", "description": "%reactNative.launch.variant.description%" }, "skipFiles": { "type": "array", "description": "%reactNative.launch.skipFiles.description%", "items": { "type": "string" }, "default": [] }, "trace": { "type": "string", "enum": [ "verbose", "log", "warn", "error", "stop" ], "default": "log", "description": "%reactNative.launch.trace.description%" }, "launchActivity": { "type": "string", "description": "%reactNative.launch.launchActivity.description%", "default": "MainActivity" }, "enableDebug": { "type": "boolean", "description": "%reactNative.launch.enableDebug.description%", "default": true }, "url": { "type": "string", "description": "%reactNative.direct.attach.url.description%" } } } } } ], "grammars": [ { "language": "rn-output-log", "scopeName": "react-native-tools-output-simple", "path": "./syntaxes/rn-output-simple.tmGrammar.json" } ], "configuration": { "type": "object", "title": "%reactNative.configuration.title%", "properties": { "react-native.ios.runArguments.simulator": { "description": "%reactNative.configuration.properties.react-native.ios.runArguments.simulator.description%", "type": "array", "default": [], "scope": "resource" }, "react-native.ios.runArguments.device": { "description": "%reactNative.configuration.properties.react-native.ios.runArguments.device.description%", "type": "array", "default": [], "scope": "resource" }, "react-native.ios.env.simulator": { "type": "object", "additionalProperties": { "type": "string" }, "description": "%reactNative.configuration.properties.react-native.ios.env.simulator.description%", "default": {}, "scope": "resource" }, "react-native.ios.env.device": { "type": "object", "additionalProperties": { "type": "string" }, "description": "%reactNative.configuration.properties.react-native.ios.env.device.description%", "default": {}, "scope": "resource" }, "react-native.ios.envFile.simulator": { "type": "string", "description": "%reactNative.configuration.properties.react-native.ios.envFile.simulator.description%", "scope": "resource" }, "react-native.ios.envFile.device": { "type": "string", "description": "%reactNative.configuration.properties.react-native.ios.envFile.device.description%", "scope": "resource" }, "react-native.android.runArguments.simulator": { "description": "%reactNative.configuration.properties.react-native.android.runArguments.simulator.description%", "type": "array", "default": [], "scope": "resource" }, "react-native.android.runArguments.device": { "description": "%reactNative.configuration.properties.react-native.android.runArguments.device.description%", "type": "array", "default": [], "scope": "resource" }, "react-native.android.env.simulator": { "type": "object", "additionalProperties": { "type": "string" }, "description": "%reactNative.configuration.properties.react-native.android.env.simulator.description%", "default": {}, "scope": "resource" }, "react-native.android.env.device": { "type": "object", "additionalProperties": { "type": "string" }, "description": "%reactNative.configuration.properties.react-native.android.env.device.description%", "default": {}, "scope": "resource" }, "react-native.android.envFile.simulator": { "type": "string", "description": "%reactNative.configuration.properties.react-native.android.envFile.simulator.description%", "scope": "resource" }, "react-native.android.envFile.device": { "type": "string", "description": "%reactNative.configuration.properties.react-native.android.envFile.device.description%", "scope": "resource" }, "react-native.android.logCatArguments": { "type": "array", "description": "%reactNative.launch.logCatArguments.description%", "scope": "resource", "default": [ "*:S", "ReactNative:V", "ReactNativeJS:V" ] }, "react-native.packager.port": { "description": "%reactNative.configuration.properties.react-native.packager.port.description%", "type": "number", "default": 8081, "scope": "resource" }, "react-native.packager.status-indicator": { "description": "%reactNative.configuration.properties.react-native.packager.status-indicator.description%", "type": "string", "enum": [ "Full", "Short" ], "default": "Full", "scope": "resource" }, "react-native.workspace.exclude": { "type": "array", "description": "%reactNative.workspace.exclude.description%", "scope": "resource", "default": [] }, "react-native-tools.reactNativeGlobalCommandName": { "description": "%reactNative.configuration.properties.react-native-tools.reactNativeGlobalCommandName.description%", "type": "string", "scope": "resource" }, "react-native-tools.projectRoot": { "description": "%reactNative.configuration.properties.react-native-tools.projectRoot.description%", "type": "string", "scope": "resource", "default": "" }, "react-native-tools.logLevel": { "description": "%reactNative.configuration.properties.react-native-tools.logLevel.description%", "type": "string", "enum": [ "Trace", "Debug", "Info", "Warning", "Error", "None" ], "default": "Info", "scope": "resource" }, "react-native-tools.networkInspector.consoleLogsColorTheme": { "description": "%reactNative.configuration.properties.react-native-tools.consoleLogsColorTheme.description%", "type": "string", "enum": [ "Light", "Dark" ], "default": "Light", "scope": "resource" }, "react-native.expo.dependencies": { "description": "%reactNative.configuration.properties.react-native.expo.dependencies.description%", "type": "object", "additionalProperties": { "type": "string" }, "default": { "xdl": "59.2.31", "@expo/metro-config": "0.3.13", "@expo/ngrok": "^4.1.0" }, "scope": "resource" }, "react-native-tools.showUserTips": { "description": "%reactNative.configuration.properties.react-native-tools.showUserTips.description%", "type": "boolean", "scope": "resource", "default": true }, "react-native-tools.displayDebuggingCommandsButton": { "description": "%reactNative.configuration.properties.react-native-tools.displayDebuggingCommandsButton.description%", "type": "boolean", "scope": "resource", "default": true }, "react-native-tools.telemetry.optIn": { "description": "Whether to send usage data to Microsoft", "type": "boolean", "scope": "resource", "default": "" }, "react-native-tools.showPackagerIndicator": { "description": "Whether to show the packager indicator in the status bar.", "type": "boolean", "scope": "resource", "default": true }, "react-native-tools.setNodeVersion": { "description": "The version of Node.js to use for running React Native.", "type": "string", "scope": "resource", "default": "" }, "react-native-tools.setPackageManager": { "description": "The package manager to use for running React Native.", "type": "string", "enum": [ "npm", "pnpm" ], "scope": "resource", "default": "npm" }, "react-native-tools.logHighlight.enabled": { "description": "Enable lightweight syntax highlighting for extension output logs. When enabled, applies color highlighting to common log keywords (ERROR, WARN, INFO, DEBUG, SUCCESS, etc.). This feature is disabled by default to avoid performance issues.", "type": "boolean", "scope": "resource", "default": false } } } }, "capabilities": { "virtualWorkspaces": { "supported": false, "description": "%reactNative.virtualWorkspaces.description%" }, "untrustedWorkspaces": { "supported": "limited", "description": "%reactNative.workspaceTrust.description%" } }, "scripts": { "build": "gulp build", "vscode:prepublish": "gulp", "test": "node ./test/runTest.js", "test-localization": "node ./test/localization/runTest.js", "prepare": "husky install", "prepare-smoke-tests": "cd test/smoke && npm ci", "prepare-smoke-tests-project": "cd test/smoke/resources/sampleReactNativeProject && npm install", "compile-smoke-tests": "cd test/smoke && tsc", "smoke-tests": "cd test/smoke && tsc && node ./node_modules/mocha/bin/_mocha --config ./.mocharc.js --reporter mocha-multi-reporters", "smoke-build": "node gulp_scripts/smoke-build.js", "smoke-build-test": "node gulp_scripts/smoke-build.js --test", "postinstall": "patch-package" }, "prettier": { "trailingComma": "all", "arrowParens": "avoid", "printWidth": 100, "tabWidth": 4, "endOfLine": "auto", "overrides": [ { "files": [ "*.md" ], "options": { "tabWidth": 2, "printWidth": 80 } } ] }, "dependencies": { "@vscode/js-debug-browsers": "^1.1.2", "command-exists": "1.2.9", "configstore": "5.0.1", "execa": "5.1.1", "extract-opts": "2.2.0", "flatten-source-map": "0.0.2", "glob": ">=10.5.0", "ip-address": "^10.1.1", "js-base64": "3.6.0", "json5": "^1.0.2", "jsonc-parser": "3.0.0", "mkdirp": "1.0.3", "net": "^1.0.2", "openssl-wrapper": "0.3.4", "pako": "2.0.3", "qr-image": "3.2.0", "qrcode-terminal": "^0.12.0", "querystring": "0.2.1", "rsocket-core": "0.0.23", "rsocket-tcp-server": "0.0.23", "semver": "6.3.1", "source-map": "0.5.2", "source-map-resolve": "0.5.3", "strip-json-comments": "2.0.1", "tmp-promise": "3.0.2", "uuid": "14.0.0", "vscode-cdp-proxy": "0.2.0", "vscode-extension-telemetry": "0.4.5", "vscode-nls": "4.1.2", "ws": "7.5.11" }, "devDependencies": { "@mixer/parallel-prettier": "^2.0.1", "@types/command-exists": "^1.2.0", "@types/configstore": "4.0.0", "@types/ip": "1.1.0", "@types/mkdirp": "1.0.0", "@types/mocha": "^8.0.3", "@types/ncp": "2.0.3", "@types/node": "10.17.26", "@types/pako": "1.0.1", "@types/proxyquire": "^1.3.28", "@types/qr-image": "3.2.3", "@types/qrcode-terminal": "^0.12.0", "@types/rimraf": "3.0.0", "@types/rsocket-core": "0.0.6", "@types/rsocket-tcp-server": "0.0.2", "@types/semver": "6.2.1", "@types/shell-quote": "^1.7.5", "@types/shelljs": "0.7.0", "@types/source-map": "0.5.2", "@types/source-map-support": "0.2.28", "@types/uuid": "9.0.0", "@types/vscode": "^1.46.0", "@types/websocket": "0.0.33", "@types/ws": "0.0.39", "@typescript-eslint/eslint-plugin": "^6.15.0", "@typescript-eslint/parser": "^6.15.0", "@typescript/native-preview": "7.0.0-dev.20260421.2", "@vscode/debugadapter": "^1.68.0", "@vscode/test-electron": "^2.5.2", "@vscode/vsce": "^3.9.2", "ansi-colors": "3.2.4", "brace-expansion": "^5.0.6", "del": "2.2.0", "devtools-protocol": "0.0.762508", "eslint": "7.19.0", "eslint-config-prettier": "^7.2.0", "eslint-import-resolver-node": "^0.3.4", "eslint-import-resolver-typescript": "^2.4.0", "eslint-plugin-header": "3.1.1", "eslint-plugin-import": "^2.22.1", "eslint-plugin-prettier": "^3.3.1", "eslint-plugin-promise": "^4.3.1", "eslint-plugin-unicorn": "^28.0.2", "event-stream": "3.3.4", "fancy-log": "1.3.3", "gulp": "5.0.0", "gulp-filter": "6.0.0", "gulp-mocha": "^10.0.1", "gulp-preprocess": "3.0.3", "gulp-sourcemaps": "2.6.5", "gulp-typescript": "5.0.1", "husky": "^7.0.4", "minimist": "1.2.6", "mocha": "^11.7.5", "mocha-junit-reporter": "^2.0.2", "mocha-multi-reporters": "^1.5.1", "mochawesome": "^7.1.3", "ncp": "2.0.0", "nyc": "^15.1.0", "patch-package": "^8.0.1", "playwright": "^1.56.1", "plugin-error": "1.0.1", "prettier": "2.4.0", "proxyquire": "^2.1.3", "rimraf": "3.0.2", "shell-quote": "^1.8.4", "should": "8.3.0", "sinon": "1.17.3", "source-map-support": "0.4.0", "through2": "2.0.1", "ts-loader": "9.0.2", "ts-node": "^10.9.2", "typescript": "~5.3.3", "vscode-debugprotocol": "1.51.0", "vscode-nls-dev": "^4.0.4", "webpack": "^5.105.4", "webpack-bundle-analyzer": "4.4.0" }, "extensionDependencies": [ "ms-vscode.js-debug" ], "overrides": { "@babel/core": "7.29.6", "js-yaml": "4.2.0", "serialize-javascript": "7.0.5", "mochawesome": { "uuid": "11.1.1" }, "istanbul-lib-processinfo": { "uuid": "11.1.1" } } }