microsoft/vscode-react-native

Public

mirrored from https://github.com/microsoft/vscode-react-nativeAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
1.12.2

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

src/extension/debuggingConfiguration/debugConfigTypesAndConstants.ts

317lines · modecode

1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT license. See LICENSE file in the project root for details.
3
4import * as vscode from "vscode";
5import * as nls from "vscode-nls";
6import { PlatformType } from "../launchArgs";
7import { ILaunchRequestArgs } from "../../debugger/debugSessionBase";
8import { IWDPHelper } from "../../debugger/direct/IWDPHelper";
9
10nls.config({
11 messageFormat: nls.MessageFormat.bundle,
12 bundleFormat: nls.BundleFormat.standalone,
13})();
14const localize = nls.loadMessageBundle();
15
16export interface DebugConfigurationState {
17 config: Partial<ILaunchRequestArgs>;
18 scenarioType: DebugScenarioType;
19 folder?: vscode.WorkspaceFolder;
20 token?: vscode.CancellationToken;
21}
22
23export type DebugConfigurationQuickPickItem = vscode.QuickPickItem & { type: string };
24
25export enum DebugScenarioType {
26 RunApp = "runapp",
27 DebugApp = "debugapp",
28 AttachApp = "attachapp",
29}
30
31export const DEBUG_TYPES = {
32 REACT_NATIVE: "reactnative",
33 REACT_NATIVE_DIRECT: "reactnativedirect",
34};
35
36export enum BROWSER_TYPES {
37 Chrome = "chrome",
38 Edge = "edge",
39}
40
41export const platformTypeRunPickConfig: DebugConfigurationQuickPickItem[] = [
42 {
43 label: "Android",
44 type: PlatformType.Android,
45 },
46 {
47 label: "iOS",
48 type: PlatformType.iOS,
49 },
50 {
51 label: "MacOS",
52 type: PlatformType.macOS,
53 },
54 {
55 label: "Windows",
56 type: PlatformType.Windows,
57 },
58];
59
60export const platformTypeDebugPickConfig: DebugConfigurationQuickPickItem[] = [
61 ...platformTypeRunPickConfig,
62 {
63 label: "Exponent",
64 type: PlatformType.Exponent,
65 },
66 {
67 label: "ExpoWeb",
68 type: PlatformType.ExpoWeb,
69 },
70];
71
72export const platformTypeDirectPickConfig: DebugConfigurationQuickPickItem[] = [
73 {
74 label: "Hermes engine",
75 type: "",
76 },
77 {
78 label: "Direct iOS - Experimental",
79 type: PlatformType.iOS,
80 },
81];
82
83export const appTypePickConfig: DebugConfigurationQuickPickItem[] = [
84 {
85 label: "Application in direct mode(Hermes)",
86 type: DEBUG_TYPES.REACT_NATIVE_DIRECT,
87 },
88 {
89 label: "Classic application",
90 type: DEBUG_TYPES.REACT_NATIVE,
91 },
92];
93
94export const browserTypePickConfig: DebugConfigurationQuickPickItem[] = [
95 {
96 label: "Chrome",
97 type: BROWSER_TYPES.Chrome,
98 },
99 {
100 label: "Edge",
101 type: BROWSER_TYPES.Edge,
102 },
103];
104
105export const shouldUseHermesEngine: DebugConfigurationQuickPickItem[] = [
106 {
107 label: "Yes",
108 type: "yes",
109 },
110 {
111 label: "No",
112 type: "no",
113 },
114];
115
116export const expoHostTypePickConfig: DebugConfigurationQuickPickItem[] = [
117 {
118 label: "Tunnel",
119 description: localize(
120 "expoHostTypeTunnel",
121 "Allows to deploy and debug an application by means of Expo cloud services",
122 ),
123 type: "tunnel",
124 },
125 {
126 label: "LAN",
127 description: localize(
128 "expoHostTypeLAN",
129 "Allows to deploy and install an application via your LAN",
130 ),
131 type: "lan",
132 },
133 {
134 label: "Local",
135 description: localize(
136 "expoHostTypeLocal",
137 "Allows to debug an application on an emulator or an Android device without network connection",
138 ),
139 type: "local",
140 },
141];
142
143export const DEBUG_CONFIGURATION_NAMES = {
144 ATTACH_TO_HERMES_APPLICATION: "Attach to Hermes application",
145 ATTACH_TO_DIRECT_IOS_EXPERIMENTAL: "Attach to Direct iOS - Experimental",
146 ATTACH_TO_PACKAGER: "Attach to packager",
147 DEBUG_ANDROID: "Debug Android",
148 DEBUG_IOS: "Debug iOS",
149 DEBUG_WINDOWS: "Debug Windows",
150 DEBUG_MACOS: "Debug macOS",
151 DEBUG_IN_EXPONENT: "Debug in Exponent",
152 DEBUG_ANDROID_HERMES: "Debug Android Hermes",
153 DEBUG_DIRECT_IOS_EXPERIMENTAL: "Debug Direct iOS - Experimental",
154 DEBUG_IOS_HERMES: "Debug iOS Hermes",
155 DEBUG_MACOS_HERMES_EXPERIMENTAL: "Debug macOS Hermes - Experimental",
156 DEBUG_WINDOWS_HERMES_EXPERIMENTAL: "Debug Windows Hermes - Experimental",
157 RUN_ANDROID: "Run Android",
158 RUN_IOS: "Run iOS",
159 RUN_ANDROID_HERMES: "Run Android Hermes",
160 RUN_IOS_HERMES: "Run iOS Hermes",
161 RUN_DIRECT_IOS_EXPERIMENTAL: "Run Direct iOS - Experimental",
162 DEBUG_IN_EXPONENT_HERMES_EXPERIMENTAL: "Debug in Hermes Exponent - Experimental",
163 DEBUG_IN_EXPONENT_WEB_EXPERIMENTAL: "Debug in Exponent Web - Experimental",
164};
165
166export const debugConfigurations: Record<string, vscode.DebugConfiguration> = {
167 [DEBUG_CONFIGURATION_NAMES.ATTACH_TO_HERMES_APPLICATION]: {
168 name: DEBUG_CONFIGURATION_NAMES.ATTACH_TO_HERMES_APPLICATION,
169 cwd: "${workspaceFolder}",
170 type: DEBUG_TYPES.REACT_NATIVE_DIRECT,
171 request: "attach",
172 },
173 [DEBUG_CONFIGURATION_NAMES.ATTACH_TO_DIRECT_IOS_EXPERIMENTAL]: {
174 name: DEBUG_CONFIGURATION_NAMES.ATTACH_TO_DIRECT_IOS_EXPERIMENTAL,
175 cwd: "${workspaceFolder}",
176 type: DEBUG_TYPES.REACT_NATIVE_DIRECT,
177 request: "attach",
178 platform: PlatformType.iOS,
179 useHermesEngine: false,
180 port: IWDPHelper.iOS_WEBKIT_DEBUG_PROXY_DEFAULT_PORT, // 9221
181 },
182 [DEBUG_CONFIGURATION_NAMES.ATTACH_TO_PACKAGER]: {
183 name: DEBUG_CONFIGURATION_NAMES.ATTACH_TO_PACKAGER,
184 cwd: "${workspaceFolder}",
185 type: DEBUG_TYPES.REACT_NATIVE,
186 request: "attach",
187 },
188 [DEBUG_CONFIGURATION_NAMES.DEBUG_ANDROID]: {
189 name: DEBUG_CONFIGURATION_NAMES.DEBUG_ANDROID,
190 cwd: "${workspaceFolder}",
191 type: DEBUG_TYPES.REACT_NATIVE,
192 request: "launch",
193 platform: PlatformType.Android,
194 },
195 [DEBUG_CONFIGURATION_NAMES.DEBUG_IOS]: {
196 name: DEBUG_CONFIGURATION_NAMES.DEBUG_IOS,
197 cwd: "${workspaceFolder}",
198 type: DEBUG_TYPES.REACT_NATIVE,
199 request: "launch",
200 platform: PlatformType.iOS,
201 },
202 [DEBUG_CONFIGURATION_NAMES.DEBUG_WINDOWS]: {
203 name: DEBUG_CONFIGURATION_NAMES.DEBUG_WINDOWS,
204 cwd: "${workspaceFolder}",
205 type: DEBUG_TYPES.REACT_NATIVE,
206 request: "launch",
207 platform: PlatformType.Windows,
208 },
209 [DEBUG_CONFIGURATION_NAMES.DEBUG_MACOS]: {
210 name: DEBUG_CONFIGURATION_NAMES.DEBUG_MACOS,
211 cwd: "${workspaceFolder}",
212 type: DEBUG_TYPES.REACT_NATIVE,
213 request: "launch",
214 platform: PlatformType.macOS,
215 },
216 [DEBUG_CONFIGURATION_NAMES.DEBUG_IN_EXPONENT]: {
217 name: DEBUG_CONFIGURATION_NAMES.DEBUG_IN_EXPONENT,
218 cwd: "${workspaceFolder}",
219 type: DEBUG_TYPES.REACT_NATIVE,
220 request: "launch",
221 platform: PlatformType.Exponent,
222 },
223 [DEBUG_CONFIGURATION_NAMES.DEBUG_ANDROID_HERMES]: {
224 name: DEBUG_CONFIGURATION_NAMES.DEBUG_ANDROID_HERMES,
225 cwd: "${workspaceFolder}",
226 type: DEBUG_TYPES.REACT_NATIVE_DIRECT,
227 request: "launch",
228 platform: PlatformType.Android,
229 },
230 [DEBUG_CONFIGURATION_NAMES.DEBUG_DIRECT_IOS_EXPERIMENTAL]: {
231 name: DEBUG_CONFIGURATION_NAMES.DEBUG_DIRECT_IOS_EXPERIMENTAL,
232 cwd: "${workspaceFolder}",
233 type: DEBUG_TYPES.REACT_NATIVE_DIRECT,
234 request: "launch",
235 platform: PlatformType.iOS,
236 useHermesEngine: false,
237 target: "device",
238 port: IWDPHelper.iOS_WEBKIT_DEBUG_PROXY_DEFAULT_PORT, // 9221
239 },
240 [DEBUG_CONFIGURATION_NAMES.DEBUG_IOS_HERMES]: {
241 name: DEBUG_CONFIGURATION_NAMES.DEBUG_IOS_HERMES,
242 cwd: "${workspaceFolder}",
243 type: DEBUG_TYPES.REACT_NATIVE_DIRECT,
244 request: "launch",
245 platform: PlatformType.iOS,
246 },
247 [DEBUG_CONFIGURATION_NAMES.DEBUG_MACOS_HERMES_EXPERIMENTAL]: {
248 name: DEBUG_CONFIGURATION_NAMES.DEBUG_MACOS_HERMES_EXPERIMENTAL,
249 cwd: "${workspaceFolder}",
250 type: DEBUG_TYPES.REACT_NATIVE_DIRECT,
251 request: "launch",
252 platform: PlatformType.macOS,
253 },
254 [DEBUG_CONFIGURATION_NAMES.DEBUG_WINDOWS_HERMES_EXPERIMENTAL]: {
255 name: DEBUG_CONFIGURATION_NAMES.DEBUG_WINDOWS_HERMES_EXPERIMENTAL,
256 cwd: "${workspaceFolder}",
257 type: DEBUG_TYPES.REACT_NATIVE_DIRECT,
258 request: "launch",
259 platform: PlatformType.Windows,
260 },
261 [DEBUG_CONFIGURATION_NAMES.RUN_ANDROID]: {
262 name: DEBUG_CONFIGURATION_NAMES.RUN_ANDROID,
263 cwd: "${workspaceFolder}",
264 type: DEBUG_TYPES.REACT_NATIVE,
265 request: "launch",
266 platform: PlatformType.Android,
267 enableDebug: false,
268 },
269 [DEBUG_CONFIGURATION_NAMES.RUN_IOS]: {
270 name: DEBUG_CONFIGURATION_NAMES.RUN_IOS,
271 cwd: "${workspaceFolder}",
272 type: DEBUG_TYPES.REACT_NATIVE,
273 request: "launch",
274 platform: PlatformType.iOS,
275 enableDebug: false,
276 },
277 [DEBUG_CONFIGURATION_NAMES.RUN_ANDROID_HERMES]: {
278 name: DEBUG_CONFIGURATION_NAMES.RUN_ANDROID_HERMES,
279 cwd: "${workspaceFolder}",
280 type: DEBUG_TYPES.REACT_NATIVE_DIRECT,
281 request: "launch",
282 platform: PlatformType.Android,
283 enableDebug: false,
284 },
285 [DEBUG_CONFIGURATION_NAMES.RUN_IOS_HERMES]: {
286 name: DEBUG_CONFIGURATION_NAMES.RUN_IOS_HERMES,
287 cwd: "${workspaceFolder}",
288 type: DEBUG_TYPES.REACT_NATIVE_DIRECT,
289 request: "launch",
290 platform: PlatformType.iOS,
291 enableDebug: false,
292 },
293 [DEBUG_CONFIGURATION_NAMES.RUN_DIRECT_IOS_EXPERIMENTAL]: {
294 name: DEBUG_CONFIGURATION_NAMES.RUN_DIRECT_IOS_EXPERIMENTAL,
295 cwd: "${workspaceFolder}",
296 type: DEBUG_TYPES.REACT_NATIVE_DIRECT,
297 request: "launch",
298 platform: PlatformType.iOS,
299 enableDebug: false,
300 useHermesEngine: false,
301 target: "device",
302 },
303 [DEBUG_CONFIGURATION_NAMES.DEBUG_IN_EXPONENT_HERMES_EXPERIMENTAL]: {
304 name: DEBUG_CONFIGURATION_NAMES.DEBUG_IN_EXPONENT_HERMES_EXPERIMENTAL,
305 cwd: "${workspaceFolder}",
306 type: DEBUG_TYPES.REACT_NATIVE_DIRECT,
307 request: "launch",
308 platform: PlatformType.Exponent,
309 },
310 [DEBUG_CONFIGURATION_NAMES.DEBUG_IN_EXPONENT_WEB_EXPERIMENTAL]: {
311 name: DEBUG_CONFIGURATION_NAMES.DEBUG_IN_EXPONENT_WEB_EXPERIMENTAL,
312 cwd: "${workspaceFolder}",
313 type: DEBUG_TYPES.REACT_NATIVE_DIRECT,
314 request: "launch",
315 platform: PlatformType.ExpoWeb,
316 },
317};
318