From 0088201ca94f46174fbebb9f62759c99f61b8517 Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Sat, 5 Jul 2025 17:48:09 -0400 Subject: [PATCH] python --- crates/dap/src/adapters.rs | 10 +- crates/dap_adapters/schemas/Debugpy.json | 281 + crates/dap_adapters/schemas/JavaScript.json | 5699 ++++--------------- crates/dap_adapters/src/codelldb.rs | 2 +- crates/dap_adapters/src/dap_adapters.rs | 170 +- crates/dap_adapters/src/javascript.rs | 161 +- crates/dap_adapters/src/php.rs | 2 +- crates/dap_adapters/src/python.rs | 425 +- crates/dap_adapters/src/update_schemas.rs | 29 +- 9 files changed, 1731 insertions(+), 5048 deletions(-) create mode 100644 crates/dap_adapters/schemas/Debugpy.json diff --git a/crates/dap/src/adapters.rs b/crates/dap/src/adapters.rs index 464ba788498aed796464f915e88528d0c121ce52..0e51d3059360cff131199f23d8754a6496ba4c1a 100644 --- a/crates/dap/src/adapters.rs +++ b/crates/dap/src/adapters.rs @@ -265,13 +265,13 @@ pub struct GithubRepo { } pub async fn download_adapter_from_github( - adapter_name: DebugAdapterName, + adapter_name: &str, github_version: AdapterVersion, file_type: DownloadedFileType, base_path: &Path, delegate: &dyn DapDelegate, ) -> Result { - let adapter_path = base_path.join(&adapter_name.as_ref()); + let adapter_path = base_path.join(adapter_name); let version_path = adapter_path.join(format!("{}_{}", adapter_name, github_version.tag_name)); let fs = delegate.fs(); @@ -285,11 +285,7 @@ pub async fn download_adapter_from_github( .context("Failed creating adapter path")?; } - log::debug!( - "Downloading adapter {} from {}", - adapter_name, - &github_version.url, - ); + log::debug!("Downloading {} from {}", adapter_name, &github_version.url); delegate.output_to_console(format!("Downloading from {}...", github_version.url)); let mut response = delegate diff --git a/crates/dap_adapters/schemas/Debugpy.json b/crates/dap_adapters/schemas/Debugpy.json new file mode 100644 index 0000000000000000000000000000000000000000..a8ab2c8b4eb03e9ed1587b8388f601abfd1908f3 --- /dev/null +++ b/crates/dap_adapters/schemas/Debugpy.json @@ -0,0 +1,281 @@ +{ + "allOf": [ + { + "if": { "properties": { "request": { "const": "launch" } }, "required": ["request"] }, + "then": { + "properties": { + "args": { + "default": [], + "description": "Command line arguments passed to the program. For string type arguments, it will pass through the shell as is, and therefore all shell variable expansions will apply. But for the array type, the values will be shell-escaped.", + "items": { "type": "string" }, + "anyOf": [ + { "default": "${command:pickArgs}", "enum": ["${command:pickArgs}"] }, + { "type": ["array", "string"] } + ] + }, + "autoReload": { + "default": {}, + "description": "Configures automatic reload of code on edit.", + "properties": { + "enable": { "default": false, "description": "Automatically reload code on edit.", "type": "boolean" }, + "exclude": { + "default": [ + "**/.git/**", + "**/.metadata/**", + "**/__pycache__/**", + "**/node_modules/**", + "**/site-packages/**" + ], + "description": "Glob patterns of paths to exclude from auto reload.", + "items": { "type": "string" }, + "type": "array" + }, + "include": { + "default": ["**/*.py", "**/*.pyw"], + "description": "Glob patterns of paths to include in auto reload.", + "items": { "type": "string" }, + "type": "array" + } + }, + "type": "object" + }, + "console": { + "default": "integratedTerminal", + "description": "Where to launch the debug target: internal console, integrated terminal, or external terminal.", + "enum": ["externalTerminal", "integratedTerminal", "internalConsole"] + }, + "cwd": { + "default": "${ZED_WORKTREE_ROOT}", + "description": "Absolute path to the working directory of the program being debugged. Default is the root directory of the file (leave empty).", + "type": "string" + }, + "debugAdapterPath": { + "description": "Path (fully qualified) to the Python debug adapter executable.", + "type": "string" + }, + "autoStartBrowser": { + "default": false, + "description": "Open external browser to launch the application", + "type": "boolean" + }, + "django": { "default": false, "description": "Django debugging.", "type": "boolean" }, + "env": { + "additionalProperties": { "type": "string" }, + "default": {}, + "description": "Environment variables defined as a key value pair. Property ends up being the Environment Variable and the value of the property ends up being the value of the Env Variable.", + "type": "object" + }, + "envFile": { + "default": "${ZED_WORKTREE_ROOT}/.env", + "description": "Absolute path to a file containing environment variable definitions.", + "type": "string" + }, + "gevent": { + "default": false, + "description": "Enable debugging of gevent monkey-patched code.", + "type": "boolean" + }, + "jinja": { + "default": null, + "description": "Jinja template debugging (e.g. Flask).", + "enum": [false, null, true] + }, + "justMyCode": { "default": true, "description": "Debug only user-written code.", "type": "boolean" }, + "logToFile": { + "default": false, + "description": "Enable logging of debugger events to a log file. This file can be found in the debugpy extension install folder.", + "type": "boolean" + }, + "module": { "default": "", "description": "Name of the module to be debugged.", "type": "string" }, + "pathMappings": { + "default": [], + "items": { + "label": "Path mapping", + "properties": { + "localRoot": { "default": "${ZED_WORKTREE_ROOT}", "label": "Local source root.", "type": "string" }, + "remoteRoot": { "default": "", "label": "Remote source root.", "type": "string" } + }, + "required": ["localRoot", "remoteRoot"], + "type": "object" + }, + "label": "Path mappings.", + "type": "array" + }, + "program": { "default": "${file}", "description": "Absolute path to the program.", "type": "string" }, + "purpose": { + "default": [], + "description": "Tells extension to use this configuration for test debugging, or when using debug-in-terminal command.", + "items": { + "enum": ["debug-test", "debug-in-terminal"], + "enumDescriptions": [ + "Use this configuration while debugging tests using test view or test debug commands.", + "Use this configuration while debugging a file using debug in terminal button in the editor." + ] + }, + "type": "array" + }, + "pyramid": { "default": false, "description": "Whether debugging Pyramid applications.", "type": "boolean" }, + "python": { + "default": "${command:python.interpreterPath}", + "description": "Absolute path to the Python interpreter executable; overrides workspace configuration if set.", + "type": "string" + }, + "pythonArgs": { + "default": [], + "description": "Command-line arguments passed to the Python interpreter. To pass arguments to the debug target, use \"args\".", + "items": { "type": "string" }, + "type": "array" + }, + "redirectOutput": { "default": true, "description": "Redirect output.", "type": "boolean" }, + "showReturnValue": { + "default": true, + "description": "Show return value of functions when stepping.", + "type": "boolean" + }, + "stopOnEntry": { "default": false, "description": "Automatically stop after launch.", "type": "boolean" }, + "subProcess": { + "default": false, + "description": "Whether to enable Sub Process debugging.", + "type": "boolean" + }, + "sudo": { + "default": false, + "description": "Running debug program under elevated permissions (on Unix).", + "type": "boolean" + }, + "guiEventLoop": { + "default": "matplotlib", + "description": "The GUI event loop that's going to run. Possible values: \"matplotlib\", \"wx\", \"qt\", \"none\", or a custom function that'll be imported and run.", + "type": "string" + }, + "consoleName": { + "default": "Python Debug Console", + "description": "Display name of the debug console or terminal", + "type": "string" + }, + "clientOS": { "default": null, "description": "OS that VS code is using.", "enum": ["windows", null, "unix"] } + } + } + }, + { + "if": { "properties": { "request": { "const": "attach" } }, "required": ["request"] }, + "then": { + "properties": { + "autoReload": { + "default": {}, + "description": "Configures automatic reload of code on edit.", + "properties": { + "enable": { "default": false, "description": "Automatically reload code on edit.", "type": "boolean" }, + "exclude": { + "default": [ + "**/.git/**", + "**/.metadata/**", + "**/__pycache__/**", + "**/node_modules/**", + "**/site-packages/**" + ], + "description": "Glob patterns of paths to exclude from auto reload.", + "items": { "type": "string" }, + "type": "array" + }, + "include": { + "default": ["**/*.py", "**/*.pyw"], + "description": "Glob patterns of paths to include in auto reload.", + "items": { "type": "string" }, + "type": "array" + } + }, + "type": "object" + }, + "connect": { + "label": "Attach by connecting to debugpy over a socket.", + "properties": { + "host": { + "default": "127.0.0.1", + "description": "Hostname or IP address to connect to.", + "type": "string" + }, + "port": { "description": "Port to connect to.", "type": ["number", "string"] } + }, + "required": ["port"], + "type": "object" + }, + "debugAdapterPath": { + "description": "Path (fully qualified) to the python debug adapter executable.", + "type": "string" + }, + "django": { "default": false, "description": "Django debugging.", "type": "boolean" }, + "jinja": { + "default": null, + "description": "Jinja template debugging (e.g. Flask).", + "enum": [false, null, true] + }, + "justMyCode": { + "default": true, + "description": "If true, show and debug only user-written code. If false, show and debug all code, including library calls.", + "type": "boolean" + }, + "listen": { + "label": "Attach by listening for incoming socket connection from debugpy", + "properties": { + "host": { + "default": "127.0.0.1", + "description": "Hostname or IP address of the interface to listen on.", + "type": "string" + }, + "port": { "description": "Port to listen on.", "type": ["number", "string"] } + }, + "required": ["port"], + "type": "object" + }, + "logToFile": { + "default": false, + "description": "Enable logging of debugger events to a log file. This file can be found in the debugpy extension install folder.", + "type": "boolean" + }, + "pathMappings": { + "default": [], + "items": { + "label": "Path mapping", + "properties": { + "localRoot": { "default": "${ZED_WORKTREE_ROOT}", "label": "Local source root.", "type": "string" }, + "remoteRoot": { "default": "", "label": "Remote source root.", "type": "string" } + }, + "required": ["localRoot", "remoteRoot"], + "type": "object" + }, + "label": "Path mappings.", + "type": "array" + }, + "processId": { + "anyOf": [ + { + "default": "${command:pickProcess}", + "description": "Use process picker to select a process to attach, or Process ID as integer.", + "enum": ["${command:pickProcess}"] + }, + { "description": "ID of the local process to attach to.", "type": "integer" } + ] + }, + "redirectOutput": { "default": true, "description": "Redirect output.", "type": "boolean" }, + "showReturnValue": { + "default": true, + "description": "Show return value of functions when stepping.", + "type": "boolean" + }, + "subProcess": { + "default": false, + "description": "Whether to enable Sub Process debugging", + "type": "boolean" + }, + "consoleName": { + "default": "Python Debug Console", + "description": "Display name of the debug console or terminal", + "type": "string" + }, + "clientOS": { "default": null, "description": "OS that VS code is using.", "enum": ["windows", null, "unix"] } + } + } + } + ] +} diff --git a/crates/dap_adapters/schemas/JavaScript.json b/crates/dap_adapters/schemas/JavaScript.json index 044301841e8e506a043c8777167ba35da0e14dda..ea8e3619c8873b1d5163d8cefc9914270b5480d9 100644 --- a/crates/dap_adapters/schemas/JavaScript.json +++ b/crates/dap_adapters/schemas/JavaScript.json @@ -2,47 +2,22 @@ "allOf": [ { "if": { - "properties": { - "type": { - "const": "pwa-node" - }, - "request": { - "const": "launch" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "pwa-node" }, "request": { "const": "launch" } }, + "required": ["type", "request"] }, "then": { "properties": { "args": { "default": [], "description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array", - "string" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array", "string"] }, "attachSimplePort": { "default": 9229, "description": "If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }] }, "autoAttachChildProcesses": { "default": true, @@ -52,20 +27,13 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "console": { "default": "internalConsole", "description": "Where to launch the debug target.", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], + "enum": ["internalConsole", "integratedTerminal", "externalTerminal"], "enumDescriptions": [ "VS Code Debug Console (which doesn't support to read input from a program)", "VS Code's integrated terminal", @@ -85,9 +53,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -101,17 +67,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -122,30 +81,19 @@ "experimentalNetworking": { "default": "auto", "description": "Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.", - "enum": [ - "auto", - "on", - "off" - ], + "enum": ["auto", "on", "off"], "type": "string" }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -154,27 +102,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -190,52 +126,29 @@ "program": { "default": "", "description": "Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": true, "description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.", "oneOf": [ - { - "type": "boolean" - }, + { "type": "boolean" }, { "properties": { - "delay": { - "default": 1000, - "minimum": 0, - "type": "number" - }, - "maxAttempts": { - "default": 10, - "minimum": 0, - "type": "number" - } + "delay": { "default": 1000, "minimum": 0, "type": "number" }, + "maxAttempts": { "default": 10, "minimum": 0, "type": "number" } }, "type": "object" } @@ -244,27 +157,18 @@ "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], + "items": { "type": "string" }, + "tags": ["setup"], "type": "array" }, "runtimeExecutable": { "default": "node", "markdownDescription": "Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -277,39 +181,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -340,10 +226,7 @@ "stopOnEntry": { "default": true, "description": "Automatically stop program after launch.", - "type": [ - "boolean", - "string" - ] + "type": ["boolean", "string"] }, "timeout": { "default": 10000, @@ -378,19 +261,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -406,18 +283,8 @@ }, { "if": { - "properties": { - "type": { - "const": "pwa-node" - }, - "request": { - "const": "attach" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "pwa-node" }, "request": { "const": "attach" } }, + "required": ["type", "request"] }, "then": { "properties": { @@ -439,10 +306,7 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "continueOnAttach": { @@ -462,9 +326,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -478,17 +340,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -499,10 +354,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -511,27 +363,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -542,18 +382,8 @@ "port": { "default": 9229, "description": "Debug port to attach to. Default is 9229.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ], - "tags": [ - "setup" - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }], + "tags": ["setup"] }, "processId": { "default": "${command:PickProcess}", @@ -567,44 +397,23 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": true, "description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.", "oneOf": [ - { - "type": "boolean" - }, + { "type": "boolean" }, { "properties": { - "delay": { - "default": 1000, - "minimum": 0, - "type": "number" - }, - "maxAttempts": { - "default": 10, - "minimum": 0, - "type": "number" - } + "delay": { "default": 1000, "minimum": 0, "type": "number" }, + "maxAttempts": { "default": 10, "minimum": 0, "type": "number" } }, "type": "object" } @@ -612,9 +421,7 @@ }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -622,39 +429,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -715,19 +504,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -747,47 +530,22 @@ }, { "if": { - "properties": { - "type": { - "const": "node" - }, - "request": { - "const": "launch" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "node" }, "request": { "const": "launch" } }, + "required": ["type", "request"] }, "then": { "properties": { "args": { "default": [], "description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array", - "string" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array", "string"] }, "attachSimplePort": { "default": 9229, "description": "If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }] }, "autoAttachChildProcesses": { "default": true, @@ -797,20 +555,13 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "console": { "default": "internalConsole", "description": "Where to launch the debug target.", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], + "enum": ["internalConsole", "integratedTerminal", "externalTerminal"], "enumDescriptions": [ "VS Code Debug Console (which doesn't support to read input from a program)", "VS Code's integrated terminal", @@ -830,9 +581,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -846,17 +595,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -867,30 +609,19 @@ "experimentalNetworking": { "default": "auto", "description": "Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.", - "enum": [ - "auto", - "on", - "off" - ], + "enum": ["auto", "on", "off"], "type": "string" }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -899,27 +630,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -935,52 +654,29 @@ "program": { "default": "", "description": "Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": true, "description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.", "oneOf": [ - { - "type": "boolean" - }, + { "type": "boolean" }, { "properties": { - "delay": { - "default": 1000, - "minimum": 0, - "type": "number" - }, - "maxAttempts": { - "default": 10, - "minimum": 0, - "type": "number" - } + "delay": { "default": 1000, "minimum": 0, "type": "number" }, + "maxAttempts": { "default": 10, "minimum": 0, "type": "number" } }, "type": "object" } @@ -989,27 +685,18 @@ "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], + "items": { "type": "string" }, + "tags": ["setup"], "type": "array" }, "runtimeExecutable": { "default": "node", "markdownDescription": "Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -1022,39 +709,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -1085,10 +754,7 @@ "stopOnEntry": { "default": true, "description": "Automatically stop program after launch.", - "type": [ - "boolean", - "string" - ] + "type": ["boolean", "string"] }, "timeout": { "default": 10000, @@ -1123,19 +789,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -1151,18 +811,8 @@ }, { "if": { - "properties": { - "type": { - "const": "node" - }, - "request": { - "const": "attach" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "node" }, "request": { "const": "attach" } }, + "required": ["type", "request"] }, "then": { "properties": { @@ -1184,10 +834,7 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "continueOnAttach": { @@ -1207,9 +854,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -1223,17 +868,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -1244,10 +882,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -1256,27 +891,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -1287,18 +910,8 @@ "port": { "default": 9229, "description": "Debug port to attach to. Default is 9229.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ], - "tags": [ - "setup" - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }], + "tags": ["setup"] }, "processId": { "default": "${command:PickProcess}", @@ -1312,44 +925,23 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": true, "description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.", "oneOf": [ - { - "type": "boolean" - }, + { "type": "boolean" }, { "properties": { - "delay": { - "default": 1000, - "minimum": 0, - "type": "number" - }, - "maxAttempts": { - "default": 10, - "minimum": 0, - "type": "number" - } + "delay": { "default": 1000, "minimum": 0, "type": "number" }, + "maxAttempts": { "default": 10, "minimum": 0, "type": "number" } }, "type": "object" } @@ -1357,9 +949,7 @@ }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -1367,39 +957,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -1460,19 +1032,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -1492,18 +1058,8 @@ }, { "if": { - "properties": { - "type": { - "const": "node-terminal" - }, - "request": { - "const": "launch" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "node-terminal" }, "request": { "const": "launch" } }, + "required": ["type", "request"] }, "then": { "properties": { @@ -1515,22 +1071,14 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "command": { "default": "npm start", "description": "Command to run in the launched terminal. If not provided, the terminal will open without launching a program.", - "tags": [ - "setup" - ], - "type": [ - "string", - "null" - ] + "tags": ["setup"], + "type": ["string", "null"] }, "customDescriptionGenerator": { "description": "Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ", @@ -1544,9 +1092,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -1560,17 +1106,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -1581,10 +1120,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -1593,27 +1129,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -1624,30 +1148,17 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -1655,39 +1166,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -1748,19 +1241,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -1776,32 +1263,16 @@ }, { "if": { - "properties": { - "type": { - "const": "pwa-extensionHost" - }, - "request": { - "const": "launch" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "pwa-extensionHost" }, "request": { "const": "launch" } }, + "required": ["type", "request"] }, "then": { "properties": { "args": { - "default": [ - "--extensionDevelopmentPath=${ZED_WORKTREE_ROOT}" - ], + "default": ["--extensionDevelopmentPath=${ZED_WORKTREE_ROOT}"], "description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], + "items": { "type": "string" }, + "tags": ["setup"], "type": "array" }, "autoAttachChildProcesses": { @@ -1812,10 +1283,7 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "customDescriptionGenerator": { @@ -1830,24 +1298,18 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "debugWebWorkerHost": { "default": true, "markdownDescription": "Configures whether we should try to attach to the web worker extension host.", - "type": [ - "boolean" - ] + "type": ["boolean"] }, "debugWebviews": { "default": true, "markdownDescription": "Configures whether we should try to attach to webviews in the launched VS Code instance. This will only work in desktop VS Code.", - "type": [ - "boolean" - ] + "type": ["boolean"] }, "enableContentValidation": { "default": true, @@ -1860,17 +1322,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -1881,10 +1336,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -1893,27 +1345,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -1924,15 +1364,10 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "rendererDebugOptions": { - "default": { - "webRoot": "${ZED_WORKTREE_ROOT}" - }, + "default": { "webRoot": "${ZED_WORKTREE_ROOT}" }, "markdownDescription": "Chrome launch options used when attaching to the renderer process, with `debugWebviews` or `debugWebWorkerHost`.", "properties": { "address": { @@ -1943,26 +1378,12 @@ "browserAttachLocation": { "default": null, "description": "Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.", - "oneOf": [ - { - "type": "null" - }, - { - "enum": [ - "ui", - "workspace" - ], - "type": "string" - } - ] + "oneOf": [{ "type": "null" }, { "enum": ["ui", "workspace"], "type": "string" }] }, "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "customDescriptionGenerator": { @@ -1992,33 +1413,18 @@ "inspectUri": { "default": null, "description": "Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pathMapping": { @@ -2034,39 +1440,20 @@ "perScriptSourcemaps": { "default": "auto", "description": "Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.", - "enum": [ - "yes", - "no", - "auto" - ], + "enum": ["yes", "no", "auto"], "type": "string" }, "port": { "default": 9229, "description": "Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ], - "tags": [ - "setup" - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }], + "tags": ["setup"] }, "resolveSourceMapLocations": { "default": null, "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": false, @@ -2077,37 +1464,20 @@ "oneOf": [ { "additionalProperties": false, - "default": { - "program": "node my-server.js" - }, + "default": { "program": "node my-server.js" }, "description": "Configures a web server to start up. Takes the same configuration as the 'node' launch task.", "properties": { "args": { "default": [], "description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array", - "string" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array", "string"] }, "attachSimplePort": { "default": 9229, "description": "If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }] }, "autoAttachChildProcesses": { "default": true, @@ -2117,20 +1487,13 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "console": { "default": "internalConsole", "description": "Where to launch the debug target.", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], + "enum": ["internalConsole", "integratedTerminal", "externalTerminal"], "enumDescriptions": [ "VS Code Debug Console (which doesn't support to read input from a program)", "VS Code's integrated terminal", @@ -2150,9 +1513,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -2166,17 +1527,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -2187,30 +1541,19 @@ "experimentalNetworking": { "default": "auto", "description": "Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.", - "enum": [ - "auto", - "on", - "off" - ], + "enum": ["auto", "on", "off"], "type": "string" }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -2219,27 +1562,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -2255,52 +1586,29 @@ "program": { "default": "", "description": "Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": true, "description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.", "oneOf": [ - { - "type": "boolean" - }, + { "type": "boolean" }, { "properties": { - "delay": { - "default": 1000, - "minimum": 0, - "type": "number" - }, - "maxAttempts": { - "default": 10, - "minimum": 0, - "type": "number" - } + "delay": { "default": 1000, "minimum": 0, "type": "number" }, + "maxAttempts": { "default": 10, "minimum": 0, "type": "number" } }, "type": "object" } @@ -2309,27 +1617,18 @@ "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], + "items": { "type": "string" }, + "tags": ["setup"], "type": "array" }, "runtimeExecutable": { "default": "node", "markdownDescription": "Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -2342,39 +1641,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -2405,10 +1686,7 @@ "stopOnEntry": { "default": true, "description": "Automatically stop program after launch.", - "type": [ - "boolean", - "string" - ] + "type": ["boolean", "string"] }, "timeout": { "default": 10000, @@ -2452,10 +1730,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -2471,9 +1746,7 @@ }, { "additionalProperties": false, - "default": { - "program": "npm start" - }, + "default": { "program": "npm start" }, "description": "JavaScript Debug Terminal", "properties": { "autoAttachChildProcesses": { @@ -2484,22 +1757,14 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "command": { "default": "npm start", "description": "Command to run in the launched terminal. If not provided, the terminal will open without launching a program.", - "tags": [ - "setup" - ], - "type": [ - "string", - "null" - ] + "tags": ["setup"], + "type": ["string", "null"] }, "customDescriptionGenerator": { "description": "Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ", @@ -2514,9 +1779,7 @@ "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", "docDefault": "localRoot || ${ZED_WORKTREE_ROOT}", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -2530,17 +1793,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -2551,10 +1807,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -2563,27 +1816,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -2594,30 +1835,17 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -2625,39 +1853,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -2727,10 +1937,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -2750,39 +1957,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -2812,10 +2001,7 @@ }, "targetSelection": { "default": "automatic", - "enum": [ - "pick", - "automatic" - ], + "enum": ["pick", "automatic"], "markdownDescription": "Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").", "type": "string" }, @@ -2861,10 +2047,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -2878,9 +2061,7 @@ "url": { "default": "http://localhost:8080", "description": "Will search for a tab with this exact url and attach to it, if found", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "urlFilter": { @@ -2889,50 +2070,33 @@ "type": "string" }, "vueComponentPaths": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.vue" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.vue"], "description": "A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.", "type": "array" }, "webRoot": { "default": "${ZED_WORKTREE_ROOT}", "description": "This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" } }, "type": "object" }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeExecutable": { "default": "node", "markdownDescription": "Absolute path to VS Code.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -2940,39 +2104,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], - "type": "object" - }, - { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], + "type": "object" + }, + { + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -3043,19 +2189,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -3072,32 +2212,16 @@ }, { "if": { - "properties": { - "type": { - "const": "extensionHost" - }, - "request": { - "const": "launch" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "extensionHost" }, "request": { "const": "launch" } }, + "required": ["type", "request"] }, "then": { "properties": { "args": { - "default": [ - "--extensionDevelopmentPath=${ZED_WORKTREE_ROOT}" - ], + "default": ["--extensionDevelopmentPath=${ZED_WORKTREE_ROOT}"], "description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], + "items": { "type": "string" }, + "tags": ["setup"], "type": "array" }, "autoAttachChildProcesses": { @@ -3108,10 +2232,7 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "customDescriptionGenerator": { @@ -3126,24 +2247,18 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "debugWebWorkerHost": { "default": true, "markdownDescription": "Configures whether we should try to attach to the web worker extension host.", - "type": [ - "boolean" - ] + "type": ["boolean"] }, "debugWebviews": { "default": true, "markdownDescription": "Configures whether we should try to attach to webviews in the launched VS Code instance. This will only work in desktop VS Code.", - "type": [ - "boolean" - ] + "type": ["boolean"] }, "enableContentValidation": { "default": true, @@ -3156,17 +2271,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -3177,10 +2285,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -3189,27 +2294,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -3220,15 +2313,10 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "rendererDebugOptions": { - "default": { - "webRoot": "${ZED_WORKTREE_ROOT}" - }, + "default": { "webRoot": "${ZED_WORKTREE_ROOT}" }, "markdownDescription": "Chrome launch options used when attaching to the renderer process, with `debugWebviews` or `debugWebWorkerHost`.", "properties": { "address": { @@ -3239,26 +2327,12 @@ "browserAttachLocation": { "default": null, "description": "Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.", - "oneOf": [ - { - "type": "null" - }, - { - "enum": [ - "ui", - "workspace" - ], - "type": "string" - } - ] + "oneOf": [{ "type": "null" }, { "enum": ["ui", "workspace"], "type": "string" }] }, "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "customDescriptionGenerator": { @@ -3288,33 +2362,18 @@ "inspectUri": { "default": null, "description": "Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pathMapping": { @@ -3330,39 +2389,20 @@ "perScriptSourcemaps": { "default": "auto", "description": "Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.", - "enum": [ - "yes", - "no", - "auto" - ], + "enum": ["yes", "no", "auto"], "type": "string" }, "port": { "default": 9229, "description": "Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ], - "tags": [ - "setup" - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }], + "tags": ["setup"] }, "resolveSourceMapLocations": { "default": null, "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": false, @@ -3373,37 +2413,20 @@ "oneOf": [ { "additionalProperties": false, - "default": { - "program": "node my-server.js" - }, + "default": { "program": "node my-server.js" }, "description": "Configures a web server to start up. Takes the same configuration as the 'node' launch task.", "properties": { "args": { "default": [], "description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array", - "string" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array", "string"] }, "attachSimplePort": { "default": 9229, "description": "If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }] }, "autoAttachChildProcesses": { "default": true, @@ -3413,20 +2436,13 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "console": { "default": "internalConsole", "description": "Where to launch the debug target.", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], + "enum": ["internalConsole", "integratedTerminal", "externalTerminal"], "enumDescriptions": [ "VS Code Debug Console (which doesn't support to read input from a program)", "VS Code's integrated terminal", @@ -3446,9 +2462,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -3462,17 +2476,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -3483,30 +2490,19 @@ "experimentalNetworking": { "default": "auto", "description": "Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.", - "enum": [ - "auto", - "on", - "off" - ], + "enum": ["auto", "on", "off"], "type": "string" }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -3515,27 +2511,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -3551,52 +2535,29 @@ "program": { "default": "", "description": "Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": true, "description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.", "oneOf": [ - { - "type": "boolean" - }, + { "type": "boolean" }, { "properties": { - "delay": { - "default": 1000, - "minimum": 0, - "type": "number" - }, - "maxAttempts": { - "default": 10, - "minimum": 0, - "type": "number" - } + "delay": { "default": 1000, "minimum": 0, "type": "number" }, + "maxAttempts": { "default": 10, "minimum": 0, "type": "number" } }, "type": "object" } @@ -3605,27 +2566,18 @@ "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], + "items": { "type": "string" }, + "tags": ["setup"], "type": "array" }, "runtimeExecutable": { "default": "node", "markdownDescription": "Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -3638,39 +2590,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -3701,10 +2635,7 @@ "stopOnEntry": { "default": true, "description": "Automatically stop program after launch.", - "type": [ - "boolean", - "string" - ] + "type": ["boolean", "string"] }, "timeout": { "default": 10000, @@ -3748,10 +2679,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -3767,9 +2695,7 @@ }, { "additionalProperties": false, - "default": { - "program": "npm start" - }, + "default": { "program": "npm start" }, "description": "JavaScript Debug Terminal", "properties": { "autoAttachChildProcesses": { @@ -3780,22 +2706,14 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "command": { "default": "npm start", "description": "Command to run in the launched terminal. If not provided, the terminal will open without launching a program.", - "tags": [ - "setup" - ], - "type": [ - "string", - "null" - ] + "tags": ["setup"], + "type": ["string", "null"] }, "customDescriptionGenerator": { "description": "Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ", @@ -3810,9 +2728,7 @@ "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", "docDefault": "localRoot || ${ZED_WORKTREE_ROOT}", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -3826,17 +2742,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -3847,10 +2756,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -3859,27 +2765,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -3890,30 +2784,17 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -3921,39 +2802,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -4023,10 +2886,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -4046,39 +2906,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -4108,10 +2950,7 @@ }, "targetSelection": { "default": "automatic", - "enum": [ - "pick", - "automatic" - ], + "enum": ["pick", "automatic"], "markdownDescription": "Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").", "type": "string" }, @@ -4157,10 +2996,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -4174,9 +3010,7 @@ "url": { "default": "http://localhost:8080", "description": "Will search for a tab with this exact url and attach to it, if found", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "urlFilter": { @@ -4185,50 +3019,33 @@ "type": "string" }, "vueComponentPaths": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.vue" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.vue"], "description": "A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.", "type": "array" }, "webRoot": { "default": "${ZED_WORKTREE_ROOT}", "description": "This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" } }, "type": "object" }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeExecutable": { "default": "node", "markdownDescription": "Absolute path to VS Code.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -4236,39 +3053,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -4339,19 +3138,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -4368,53 +3161,26 @@ }, { "if": { - "properties": { - "type": { - "const": "pwa-chrome" - }, - "request": { - "const": "launch" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "pwa-chrome" }, "request": { "const": "launch" } }, + "required": ["type", "request"] }, "then": { "properties": { "browserLaunchLocation": { "default": null, "description": "Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.", - "oneOf": [ - { - "type": "null" - }, - { - "enum": [ - "ui", - "workspace" - ], - "type": "string" - } - ] + "oneOf": [{ "type": "null" }, { "enum": ["ui", "workspace"], "type": "string" }] }, "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "cleanUp": { "default": "wholeBrowser", "description": "What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.", - "enum": [ - "wholeBrowser", - "onlyTab" - ], + "enum": ["wholeBrowser", "onlyTab"], "type": "string" }, "customDescriptionGenerator": { @@ -4454,9 +3220,7 @@ "file": { "default": "${ZED_WORKTREE_ROOT}/index.html", "description": "A local html file to open in the browser", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "includeDefaultArgs": { @@ -4472,43 +3236,24 @@ "inspectUri": { "default": null, "description": "Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pathMapping": { @@ -4524,11 +3269,7 @@ "perScriptSourcemaps": { "default": "auto", "description": "Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.", - "enum": [ - "yes", - "no", - "auto" - ], + "enum": ["yes", "no", "auto"], "type": "string" }, "port": { @@ -4544,65 +3285,38 @@ "resolveSourceMapLocations": { "default": null, "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, + "items": { "type": "string" }, "type": "array" }, "runtimeExecutable": { "default": "stable", "description": "Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "server": { "oneOf": [ { "additionalProperties": false, - "default": { - "program": "node my-server.js" - }, + "default": { "program": "node my-server.js" }, "description": "Configures a web server to start up. Takes the same configuration as the 'node' launch task.", "properties": { "args": { "default": [], "description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array", - "string" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array", "string"] }, "attachSimplePort": { "default": 9229, "description": "If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }] }, "autoAttachChildProcesses": { "default": true, @@ -4612,20 +3326,13 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "console": { "default": "internalConsole", "description": "Where to launch the debug target.", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], + "enum": ["internalConsole", "integratedTerminal", "externalTerminal"], "enumDescriptions": [ "VS Code Debug Console (which doesn't support to read input from a program)", "VS Code's integrated terminal", @@ -4645,9 +3352,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -4661,17 +3366,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -4682,30 +3380,19 @@ "experimentalNetworking": { "default": "auto", "description": "Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.", - "enum": [ - "auto", - "on", - "off" - ], + "enum": ["auto", "on", "off"], "type": "string" }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -4714,27 +3401,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -4750,52 +3425,29 @@ "program": { "default": "", "description": "Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": true, "description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.", "oneOf": [ - { - "type": "boolean" - }, + { "type": "boolean" }, { "properties": { - "delay": { - "default": 1000, - "minimum": 0, - "type": "number" - }, - "maxAttempts": { - "default": 10, - "minimum": 0, - "type": "number" - } + "delay": { "default": 1000, "minimum": 0, "type": "number" }, + "maxAttempts": { "default": 10, "minimum": 0, "type": "number" } }, "type": "object" } @@ -4804,27 +3456,18 @@ "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], + "items": { "type": "string" }, + "tags": ["setup"], "type": "array" }, "runtimeExecutable": { "default": "node", "markdownDescription": "Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -4837,39 +3480,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -4900,10 +3525,7 @@ "stopOnEntry": { "default": true, "description": "Automatically stop program after launch.", - "type": [ - "boolean", - "string" - ] + "type": ["boolean", "string"] }, "timeout": { "default": 10000, @@ -4947,10 +3569,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -4966,9 +3585,7 @@ }, { "additionalProperties": false, - "default": { - "program": "npm start" - }, + "default": { "program": "npm start" }, "description": "JavaScript Debug Terminal", "properties": { "autoAttachChildProcesses": { @@ -4979,22 +3596,14 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "command": { "default": "npm start", "description": "Command to run in the launched terminal. If not provided, the terminal will open without launching a program.", - "tags": [ - "setup" - ], - "type": [ - "string", - "null" - ] + "tags": ["setup"], + "type": ["string", "null"] }, "customDescriptionGenerator": { "description": "Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ", @@ -5009,9 +3618,7 @@ "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", "docDefault": "localRoot || ${ZED_WORKTREE_ROOT}", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -5025,17 +3632,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -5046,10 +3646,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -5058,27 +3655,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -5089,30 +3674,17 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -5120,39 +3692,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -5222,10 +3776,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -5245,39 +3796,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -5338,19 +3871,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -5364,9 +3891,7 @@ "url": { "default": "http://localhost:8080", "description": "Will search for a tab with this exact url and attach to it, if found", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "urlFilter": { @@ -5377,24 +3902,17 @@ "userDataDir": { "default": true, "description": "By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.", - "type": [ - "string", - "boolean" - ] + "type": ["string", "boolean"] }, "vueComponentPaths": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.vue" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.vue"], "description": "A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.", "type": "array" }, "webRoot": { "default": "${ZED_WORKTREE_ROOT}", "description": "This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" } } @@ -5402,18 +3920,8 @@ }, { "if": { - "properties": { - "type": { - "const": "pwa-chrome" - }, - "request": { - "const": "attach" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "pwa-chrome" }, "request": { "const": "attach" } }, + "required": ["type", "request"] }, "then": { "properties": { @@ -5425,26 +3933,12 @@ "browserAttachLocation": { "default": null, "description": "Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.", - "oneOf": [ - { - "type": "null" - }, - { - "enum": [ - "ui", - "workspace" - ], - "type": "string" - } - ] + "oneOf": [{ "type": "null" }, { "enum": ["ui", "workspace"], "type": "string" }] }, "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "customDescriptionGenerator": { @@ -5474,33 +3968,18 @@ "inspectUri": { "default": null, "description": "Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pathMapping": { @@ -5516,39 +3995,20 @@ "perScriptSourcemaps": { "default": "auto", "description": "Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.", - "enum": [ - "yes", - "no", - "auto" - ], + "enum": ["yes", "no", "auto"], "type": "string" }, "port": { "default": 9229, "description": "Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ], - "tags": [ - "setup" - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }], + "tags": ["setup"] }, "resolveSourceMapLocations": { "default": null, "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": false, @@ -5559,37 +4019,20 @@ "oneOf": [ { "additionalProperties": false, - "default": { - "program": "node my-server.js" - }, + "default": { "program": "node my-server.js" }, "description": "Configures a web server to start up. Takes the same configuration as the 'node' launch task.", "properties": { "args": { "default": [], "description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array", - "string" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array", "string"] }, "attachSimplePort": { "default": 9229, "description": "If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }] }, "autoAttachChildProcesses": { "default": true, @@ -5599,20 +4042,13 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "console": { "default": "internalConsole", "description": "Where to launch the debug target.", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], + "enum": ["internalConsole", "integratedTerminal", "externalTerminal"], "enumDescriptions": [ "VS Code Debug Console (which doesn't support to read input from a program)", "VS Code's integrated terminal", @@ -5632,9 +4068,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -5648,17 +4082,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -5669,30 +4096,19 @@ "experimentalNetworking": { "default": "auto", "description": "Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.", - "enum": [ - "auto", - "on", - "off" - ], + "enum": ["auto", "on", "off"], "type": "string" }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -5701,27 +4117,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -5737,52 +4141,29 @@ "program": { "default": "", "description": "Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": true, "description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.", "oneOf": [ - { - "type": "boolean" - }, + { "type": "boolean" }, { "properties": { - "delay": { - "default": 1000, - "minimum": 0, - "type": "number" - }, - "maxAttempts": { - "default": 10, - "minimum": 0, - "type": "number" - } + "delay": { "default": 1000, "minimum": 0, "type": "number" }, + "maxAttempts": { "default": 10, "minimum": 0, "type": "number" } }, "type": "object" } @@ -5791,27 +4172,18 @@ "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], + "items": { "type": "string" }, + "tags": ["setup"], "type": "array" }, "runtimeExecutable": { "default": "node", "markdownDescription": "Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -5824,39 +4196,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -5887,10 +4241,7 @@ "stopOnEntry": { "default": true, "description": "Automatically stop program after launch.", - "type": [ - "boolean", - "string" - ] + "type": ["boolean", "string"] }, "timeout": { "default": 10000, @@ -5934,10 +4285,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -5953,9 +4301,7 @@ }, { "additionalProperties": false, - "default": { - "program": "npm start" - }, + "default": { "program": "npm start" }, "description": "JavaScript Debug Terminal", "properties": { "autoAttachChildProcesses": { @@ -5966,22 +4312,14 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "command": { "default": "npm start", "description": "Command to run in the launched terminal. If not provided, the terminal will open without launching a program.", - "tags": [ - "setup" - ], - "type": [ - "string", - "null" - ] + "tags": ["setup"], + "type": ["string", "null"] }, "customDescriptionGenerator": { "description": "Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ", @@ -5996,9 +4334,7 @@ "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", "docDefault": "localRoot || ${ZED_WORKTREE_ROOT}", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -6012,17 +4348,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -6033,10 +4362,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -6045,27 +4371,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -6076,30 +4390,17 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -6107,39 +4408,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -6209,10 +4492,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -6232,39 +4512,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -6294,10 +4556,7 @@ }, "targetSelection": { "default": "automatic", - "enum": [ - "pick", - "automatic" - ], + "enum": ["pick", "automatic"], "markdownDescription": "Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").", "type": "string" }, @@ -6334,19 +4593,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -6360,9 +4613,7 @@ "url": { "default": "http://localhost:8080", "description": "Will search for a tab with this exact url and attach to it, if found", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "urlFilter": { @@ -6371,18 +4622,14 @@ "type": "string" }, "vueComponentPaths": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.vue" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.vue"], "description": "A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.", "type": "array" }, "webRoot": { "default": "${ZED_WORKTREE_ROOT}", "description": "This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" } } @@ -6390,53 +4637,26 @@ }, { "if": { - "properties": { - "type": { - "const": "chrome" - }, - "request": { - "const": "launch" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "chrome" }, "request": { "const": "launch" } }, + "required": ["type", "request"] }, "then": { "properties": { "browserLaunchLocation": { "default": null, "description": "Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.", - "oneOf": [ - { - "type": "null" - }, - { - "enum": [ - "ui", - "workspace" - ], - "type": "string" - } - ] + "oneOf": [{ "type": "null" }, { "enum": ["ui", "workspace"], "type": "string" }] }, "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "cleanUp": { "default": "wholeBrowser", "description": "What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.", - "enum": [ - "wholeBrowser", - "onlyTab" - ], + "enum": ["wholeBrowser", "onlyTab"], "type": "string" }, "customDescriptionGenerator": { @@ -6476,9 +4696,7 @@ "file": { "default": "${ZED_WORKTREE_ROOT}/index.html", "description": "A local html file to open in the browser", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "includeDefaultArgs": { @@ -6494,43 +4712,24 @@ "inspectUri": { "default": null, "description": "Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pathMapping": { @@ -6546,11 +4745,7 @@ "perScriptSourcemaps": { "default": "auto", "description": "Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.", - "enum": [ - "yes", - "no", - "auto" - ], + "enum": ["yes", "no", "auto"], "type": "string" }, "port": { @@ -6566,65 +4761,38 @@ "resolveSourceMapLocations": { "default": null, "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, + "items": { "type": "string" }, "type": "array" }, "runtimeExecutable": { "default": "stable", "description": "Either 'canary', 'stable', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or CHROME_PATH environment variable.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "server": { "oneOf": [ { "additionalProperties": false, - "default": { - "program": "node my-server.js" - }, + "default": { "program": "node my-server.js" }, "description": "Configures a web server to start up. Takes the same configuration as the 'node' launch task.", "properties": { "args": { "default": [], "description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array", - "string" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array", "string"] }, "attachSimplePort": { "default": 9229, "description": "If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }] }, "autoAttachChildProcesses": { "default": true, @@ -6634,20 +4802,13 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "console": { "default": "internalConsole", "description": "Where to launch the debug target.", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], + "enum": ["internalConsole", "integratedTerminal", "externalTerminal"], "enumDescriptions": [ "VS Code Debug Console (which doesn't support to read input from a program)", "VS Code's integrated terminal", @@ -6667,9 +4828,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -6683,17 +4842,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -6704,30 +4856,19 @@ "experimentalNetworking": { "default": "auto", "description": "Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.", - "enum": [ - "auto", - "on", - "off" - ], + "enum": ["auto", "on", "off"], "type": "string" }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -6736,27 +4877,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -6772,52 +4901,29 @@ "program": { "default": "", "description": "Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": true, "description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.", "oneOf": [ - { - "type": "boolean" - }, + { "type": "boolean" }, { "properties": { - "delay": { - "default": 1000, - "minimum": 0, - "type": "number" - }, - "maxAttempts": { - "default": 10, - "minimum": 0, - "type": "number" - } + "delay": { "default": 1000, "minimum": 0, "type": "number" }, + "maxAttempts": { "default": 10, "minimum": 0, "type": "number" } }, "type": "object" } @@ -6826,27 +4932,18 @@ "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], + "items": { "type": "string" }, + "tags": ["setup"], "type": "array" }, "runtimeExecutable": { "default": "node", "markdownDescription": "Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -6857,41 +4954,23 @@ }, "showAsyncStacks": { "default": true, - "description": "Show the async calls that led to the current call stack.", - "oneOf": [ - { - "type": "boolean" - }, + "description": "Show the async calls that led to the current call stack.", + "oneOf": [ + { "type": "boolean" }, { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -6922,10 +5001,7 @@ "stopOnEntry": { "default": true, "description": "Automatically stop program after launch.", - "type": [ - "boolean", - "string" - ] + "type": ["boolean", "string"] }, "timeout": { "default": 10000, @@ -6969,10 +5045,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -6988,9 +5061,7 @@ }, { "additionalProperties": false, - "default": { - "program": "npm start" - }, + "default": { "program": "npm start" }, "description": "JavaScript Debug Terminal", "properties": { "autoAttachChildProcesses": { @@ -7001,22 +5072,14 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "command": { "default": "npm start", "description": "Command to run in the launched terminal. If not provided, the terminal will open without launching a program.", - "tags": [ - "setup" - ], - "type": [ - "string", - "null" - ] + "tags": ["setup"], + "type": ["string", "null"] }, "customDescriptionGenerator": { "description": "Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ", @@ -7031,9 +5094,7 @@ "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", "docDefault": "localRoot || ${ZED_WORKTREE_ROOT}", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -7047,17 +5108,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -7068,10 +5122,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -7080,27 +5131,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -7111,30 +5150,17 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -7142,39 +5168,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -7244,10 +5252,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -7267,39 +5272,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -7360,19 +5347,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -7386,9 +5367,7 @@ "url": { "default": "http://localhost:8080", "description": "Will search for a tab with this exact url and attach to it, if found", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "urlFilter": { @@ -7399,24 +5378,17 @@ "userDataDir": { "default": true, "description": "By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.", - "type": [ - "string", - "boolean" - ] + "type": ["string", "boolean"] }, "vueComponentPaths": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.vue" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.vue"], "description": "A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.", "type": "array" }, "webRoot": { "default": "${ZED_WORKTREE_ROOT}", "description": "This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" } } @@ -7424,18 +5396,8 @@ }, { "if": { - "properties": { - "type": { - "const": "chrome" - }, - "request": { - "const": "attach" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "chrome" }, "request": { "const": "attach" } }, + "required": ["type", "request"] }, "then": { "properties": { @@ -7447,26 +5409,12 @@ "browserAttachLocation": { "default": null, "description": "Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.", - "oneOf": [ - { - "type": "null" - }, - { - "enum": [ - "ui", - "workspace" - ], - "type": "string" - } - ] + "oneOf": [{ "type": "null" }, { "enum": ["ui", "workspace"], "type": "string" }] }, "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "customDescriptionGenerator": { @@ -7496,33 +5444,18 @@ "inspectUri": { "default": null, "description": "Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pathMapping": { @@ -7538,39 +5471,20 @@ "perScriptSourcemaps": { "default": "auto", "description": "Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.", - "enum": [ - "yes", - "no", - "auto" - ], + "enum": ["yes", "no", "auto"], "type": "string" }, "port": { "default": 9229, "description": "Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ], - "tags": [ - "setup" - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }], + "tags": ["setup"] }, "resolveSourceMapLocations": { "default": null, "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": false, @@ -7581,37 +5495,20 @@ "oneOf": [ { "additionalProperties": false, - "default": { - "program": "node my-server.js" - }, + "default": { "program": "node my-server.js" }, "description": "Configures a web server to start up. Takes the same configuration as the 'node' launch task.", "properties": { "args": { "default": [], "description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array", - "string" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array", "string"] }, "attachSimplePort": { "default": 9229, "description": "If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }] }, "autoAttachChildProcesses": { "default": true, @@ -7621,20 +5518,13 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "console": { "default": "internalConsole", "description": "Where to launch the debug target.", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], + "enum": ["internalConsole", "integratedTerminal", "externalTerminal"], "enumDescriptions": [ "VS Code Debug Console (which doesn't support to read input from a program)", "VS Code's integrated terminal", @@ -7654,9 +5544,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -7670,17 +5558,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -7691,30 +5572,19 @@ "experimentalNetworking": { "default": "auto", "description": "Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.", - "enum": [ - "auto", - "on", - "off" - ], + "enum": ["auto", "on", "off"], "type": "string" }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -7723,27 +5593,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -7759,52 +5617,29 @@ "program": { "default": "", "description": "Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": true, "description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.", "oneOf": [ - { - "type": "boolean" - }, + { "type": "boolean" }, { "properties": { - "delay": { - "default": 1000, - "minimum": 0, - "type": "number" - }, - "maxAttempts": { - "default": 10, - "minimum": 0, - "type": "number" - } + "delay": { "default": 1000, "minimum": 0, "type": "number" }, + "maxAttempts": { "default": 10, "minimum": 0, "type": "number" } }, "type": "object" } @@ -7813,27 +5648,18 @@ "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], + "items": { "type": "string" }, + "tags": ["setup"], "type": "array" }, "runtimeExecutable": { "default": "node", "markdownDescription": "Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -7846,39 +5672,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -7909,10 +5717,7 @@ "stopOnEntry": { "default": true, "description": "Automatically stop program after launch.", - "type": [ - "boolean", - "string" - ] + "type": ["boolean", "string"] }, "timeout": { "default": 10000, @@ -7956,10 +5761,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -7975,9 +5777,7 @@ }, { "additionalProperties": false, - "default": { - "program": "npm start" - }, + "default": { "program": "npm start" }, "description": "JavaScript Debug Terminal", "properties": { "autoAttachChildProcesses": { @@ -7988,22 +5788,14 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "command": { "default": "npm start", "description": "Command to run in the launched terminal. If not provided, the terminal will open without launching a program.", - "tags": [ - "setup" - ], - "type": [ - "string", - "null" - ] + "tags": ["setup"], + "type": ["string", "null"] }, "customDescriptionGenerator": { "description": "Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ", @@ -8018,9 +5810,7 @@ "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", "docDefault": "localRoot || ${ZED_WORKTREE_ROOT}", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -8034,17 +5824,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -8055,10 +5838,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -8067,27 +5847,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -8098,30 +5866,17 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -8129,39 +5884,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -8231,10 +5968,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -8254,39 +5988,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -8316,10 +6032,7 @@ }, "targetSelection": { "default": "automatic", - "enum": [ - "pick", - "automatic" - ], + "enum": ["pick", "automatic"], "markdownDescription": "Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").", "type": "string" }, @@ -8356,19 +6069,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -8382,9 +6089,7 @@ "url": { "default": "http://localhost:8080", "description": "Will search for a tab with this exact url and attach to it, if found", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "urlFilter": { @@ -8393,18 +6098,14 @@ "type": "string" }, "vueComponentPaths": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.vue" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.vue"], "description": "A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.", "type": "array" }, "webRoot": { "default": "${ZED_WORKTREE_ROOT}", "description": "This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" } } @@ -8412,18 +6113,8 @@ }, { "if": { - "properties": { - "type": { - "const": "pwa-msedge" - }, - "request": { - "const": "launch" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "pwa-msedge" }, "request": { "const": "launch" } }, + "required": ["type", "request"] }, "then": { "properties": { @@ -8435,35 +6126,18 @@ "browserLaunchLocation": { "default": null, "description": "Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.", - "oneOf": [ - { - "type": "null" - }, - { - "enum": [ - "ui", - "workspace" - ], - "type": "string" - } - ] + "oneOf": [{ "type": "null" }, { "enum": ["ui", "workspace"], "type": "string" }] }, "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "cleanUp": { "default": "wholeBrowser", "description": "What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.", - "enum": [ - "wholeBrowser", - "onlyTab" - ], + "enum": ["wholeBrowser", "onlyTab"], "type": "string" }, "customDescriptionGenerator": { @@ -8503,9 +6177,7 @@ "file": { "default": "${ZED_WORKTREE_ROOT}/index.html", "description": "A local html file to open in the browser", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "includeDefaultArgs": { @@ -8521,43 +6193,24 @@ "inspectUri": { "default": null, "description": "Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pathMapping": { @@ -8573,11 +6226,7 @@ "perScriptSourcemaps": { "default": "auto", "description": "Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.", - "enum": [ - "yes", - "no", - "auto" - ], + "enum": ["yes", "no", "auto"], "type": "string" }, "port": { @@ -8593,65 +6242,38 @@ "resolveSourceMapLocations": { "default": null, "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, + "items": { "type": "string" }, "type": "array" }, "runtimeExecutable": { "default": "stable", "description": "Either 'canary', 'stable', 'dev', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or EDGE_PATH environment variable.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "server": { "oneOf": [ { "additionalProperties": false, - "default": { - "program": "node my-server.js" - }, + "default": { "program": "node my-server.js" }, "description": "Configures a web server to start up. Takes the same configuration as the 'node' launch task.", "properties": { "args": { "default": [], "description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array", - "string" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array", "string"] }, "attachSimplePort": { "default": 9229, "description": "If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }] }, "autoAttachChildProcesses": { "default": true, @@ -8661,20 +6283,13 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "console": { "default": "internalConsole", "description": "Where to launch the debug target.", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], + "enum": ["internalConsole", "integratedTerminal", "externalTerminal"], "enumDescriptions": [ "VS Code Debug Console (which doesn't support to read input from a program)", "VS Code's integrated terminal", @@ -8694,9 +6309,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -8710,17 +6323,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -8731,30 +6337,19 @@ "experimentalNetworking": { "default": "auto", "description": "Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.", - "enum": [ - "auto", - "on", - "off" - ], + "enum": ["auto", "on", "off"], "type": "string" }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -8763,27 +6358,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -8799,52 +6382,29 @@ "program": { "default": "", "description": "Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": true, "description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.", "oneOf": [ - { - "type": "boolean" - }, + { "type": "boolean" }, { "properties": { - "delay": { - "default": 1000, - "minimum": 0, - "type": "number" - }, - "maxAttempts": { - "default": 10, - "minimum": 0, - "type": "number" - } + "delay": { "default": 1000, "minimum": 0, "type": "number" }, + "maxAttempts": { "default": 10, "minimum": 0, "type": "number" } }, "type": "object" } @@ -8853,27 +6413,18 @@ "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], + "items": { "type": "string" }, + "tags": ["setup"], "type": "array" }, "runtimeExecutable": { "default": "node", "markdownDescription": "Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -8886,39 +6437,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -8949,10 +6482,7 @@ "stopOnEntry": { "default": true, "description": "Automatically stop program after launch.", - "type": [ - "boolean", - "string" - ] + "type": ["boolean", "string"] }, "timeout": { "default": 10000, @@ -8996,10 +6526,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -9015,9 +6542,7 @@ }, { "additionalProperties": false, - "default": { - "program": "npm start" - }, + "default": { "program": "npm start" }, "description": "JavaScript Debug Terminal", "properties": { "autoAttachChildProcesses": { @@ -9028,22 +6553,14 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "command": { "default": "npm start", "description": "Command to run in the launched terminal. If not provided, the terminal will open without launching a program.", - "tags": [ - "setup" - ], - "type": [ - "string", - "null" - ] + "tags": ["setup"], + "type": ["string", "null"] }, "customDescriptionGenerator": { "description": "Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ", @@ -9058,9 +6575,7 @@ "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", "docDefault": "localRoot || ${ZED_WORKTREE_ROOT}", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -9074,17 +6589,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -9095,10 +6603,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -9107,27 +6612,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -9138,30 +6631,17 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -9169,39 +6649,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -9271,10 +6733,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -9294,39 +6753,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -9387,19 +6828,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -9413,9 +6848,7 @@ "url": { "default": "http://localhost:8080", "description": "Will search for a tab with this exact url and attach to it, if found", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "urlFilter": { @@ -9431,24 +6864,17 @@ "userDataDir": { "default": true, "description": "By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.", - "type": [ - "string", - "boolean" - ] + "type": ["string", "boolean"] }, "vueComponentPaths": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.vue" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.vue"], "description": "A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.", "type": "array" }, "webRoot": { "default": "${ZED_WORKTREE_ROOT}", "description": "This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" } } @@ -9456,18 +6882,8 @@ }, { "if": { - "properties": { - "type": { - "const": "pwa-msedge" - }, - "request": { - "const": "attach" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "pwa-msedge" }, "request": { "const": "attach" } }, + "required": ["type", "request"] }, "then": { "properties": { @@ -9479,26 +6895,12 @@ "browserAttachLocation": { "default": null, "description": "Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.", - "oneOf": [ - { - "type": "null" - }, - { - "enum": [ - "ui", - "workspace" - ], - "type": "string" - } - ] + "oneOf": [{ "type": "null" }, { "enum": ["ui", "workspace"], "type": "string" }] }, "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "customDescriptionGenerator": { @@ -9528,33 +6930,18 @@ "inspectUri": { "default": null, "description": "Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pathMapping": { @@ -9570,39 +6957,20 @@ "perScriptSourcemaps": { "default": "auto", "description": "Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.", - "enum": [ - "yes", - "no", - "auto" - ], + "enum": ["yes", "no", "auto"], "type": "string" }, "port": { "default": 9229, "description": "Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ], - "tags": [ - "setup" - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }], + "tags": ["setup"] }, "resolveSourceMapLocations": { "default": null, "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": false, @@ -9613,37 +6981,20 @@ "oneOf": [ { "additionalProperties": false, - "default": { - "program": "node my-server.js" - }, + "default": { "program": "node my-server.js" }, "description": "Configures a web server to start up. Takes the same configuration as the 'node' launch task.", "properties": { "args": { "default": [], "description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array", - "string" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array", "string"] }, "attachSimplePort": { "default": 9229, "description": "If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }] }, "autoAttachChildProcesses": { "default": true, @@ -9653,20 +7004,13 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "console": { "default": "internalConsole", "description": "Where to launch the debug target.", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], + "enum": ["internalConsole", "integratedTerminal", "externalTerminal"], "enumDescriptions": [ "VS Code Debug Console (which doesn't support to read input from a program)", "VS Code's integrated terminal", @@ -9686,9 +7030,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -9702,17 +7044,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -9723,30 +7058,19 @@ "experimentalNetworking": { "default": "auto", "description": "Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.", - "enum": [ - "auto", - "on", - "off" - ], + "enum": ["auto", "on", "off"], "type": "string" }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -9755,27 +7079,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -9791,52 +7103,29 @@ "program": { "default": "", "description": "Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": true, "description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.", "oneOf": [ - { - "type": "boolean" - }, + { "type": "boolean" }, { "properties": { - "delay": { - "default": 1000, - "minimum": 0, - "type": "number" - }, - "maxAttempts": { - "default": 10, - "minimum": 0, - "type": "number" - } + "delay": { "default": 1000, "minimum": 0, "type": "number" }, + "maxAttempts": { "default": 10, "minimum": 0, "type": "number" } }, "type": "object" } @@ -9845,27 +7134,18 @@ "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], + "items": { "type": "string" }, + "tags": ["setup"], "type": "array" }, "runtimeExecutable": { "default": "node", "markdownDescription": "Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -9878,39 +7158,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -9941,10 +7203,7 @@ "stopOnEntry": { "default": true, "description": "Automatically stop program after launch.", - "type": [ - "boolean", - "string" - ] + "type": ["boolean", "string"] }, "timeout": { "default": 10000, @@ -9988,10 +7247,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -10007,9 +7263,7 @@ }, { "additionalProperties": false, - "default": { - "program": "npm start" - }, + "default": { "program": "npm start" }, "description": "JavaScript Debug Terminal", "properties": { "autoAttachChildProcesses": { @@ -10020,22 +7274,14 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "command": { "default": "npm start", "description": "Command to run in the launched terminal. If not provided, the terminal will open without launching a program.", - "tags": [ - "setup" - ], - "type": [ - "string", - "null" - ] + "tags": ["setup"], + "type": ["string", "null"] }, "customDescriptionGenerator": { "description": "Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ", @@ -10050,9 +7296,7 @@ "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", "docDefault": "localRoot || ${ZED_WORKTREE_ROOT}", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -10066,17 +7310,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -10087,10 +7324,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -10099,27 +7333,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -10130,30 +7352,17 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -10161,39 +7370,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -10263,10 +7454,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -10286,39 +7474,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -10348,10 +7518,7 @@ }, "targetSelection": { "default": "automatic", - "enum": [ - "pick", - "automatic" - ], + "enum": ["pick", "automatic"], "markdownDescription": "Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").", "type": "string" }, @@ -10388,19 +7555,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -10414,9 +7575,7 @@ "url": { "default": "http://localhost:8080", "description": "Will search for a tab with this exact url and attach to it, if found", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "urlFilter": { @@ -10425,30 +7584,20 @@ "type": "string" }, "useWebView": { - "default": { - "pipeName": "MyPipeName" - }, + "default": { "pipeName": "MyPipeName" }, "description": "An object containing the `pipeName` of a debug pipe for a UWP hosted Webview2. This is the \"MyTestSharedMemory\" when creating the pipe \"\\\\.\\pipe\\LOCAL\\MyTestSharedMemory\"", - "properties": { - "pipeName": { - "type": "string" - } - }, + "properties": { "pipeName": { "type": "string" } }, "type": "object" }, "vueComponentPaths": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.vue" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.vue"], "description": "A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.", "type": "array" }, "webRoot": { "default": "${ZED_WORKTREE_ROOT}", "description": "This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" } } @@ -10456,18 +7605,8 @@ }, { "if": { - "properties": { - "type": { - "const": "msedge" - }, - "request": { - "const": "launch" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "msedge" }, "request": { "const": "launch" } }, + "required": ["type", "request"] }, "then": { "properties": { @@ -10479,35 +7618,18 @@ "browserLaunchLocation": { "default": null, "description": "Forces the browser to be launched in one location. In a remote workspace (through ssh or WSL, for example) this can be used to open the browser on the remote machine rather than locally.", - "oneOf": [ - { - "type": "null" - }, - { - "enum": [ - "ui", - "workspace" - ], - "type": "string" - } - ] + "oneOf": [{ "type": "null" }, { "enum": ["ui", "workspace"], "type": "string" }] }, "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "cleanUp": { "default": "wholeBrowser", "description": "What clean-up to do after the debugging session finishes. Close only the tab being debug, vs. close the whole browser.", - "enum": [ - "wholeBrowser", - "onlyTab" - ], + "enum": ["wholeBrowser", "onlyTab"], "type": "string" }, "customDescriptionGenerator": { @@ -10547,9 +7669,7 @@ "file": { "default": "${ZED_WORKTREE_ROOT}/index.html", "description": "A local html file to open in the browser", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "includeDefaultArgs": { @@ -10565,43 +7685,24 @@ "inspectUri": { "default": null, "description": "Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how browser processes are killed when stopping the session with `cleanUp: wholeBrowser`. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pathMapping": { @@ -10617,11 +7718,7 @@ "perScriptSourcemaps": { "default": "auto", "description": "Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.", - "enum": [ - "yes", - "no", - "auto" - ], + "enum": ["yes", "no", "auto"], "type": "string" }, "port": { @@ -10637,65 +7734,38 @@ "resolveSourceMapLocations": { "default": null, "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, + "items": { "type": "string" }, "type": "array" }, "runtimeExecutable": { "default": "stable", "description": "Either 'canary', 'stable', 'dev', 'custom' or path to the browser executable. Custom means a custom wrapper, custom build or EDGE_PATH environment variable.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "server": { "oneOf": [ { "additionalProperties": false, - "default": { - "program": "node my-server.js" - }, + "default": { "program": "node my-server.js" }, "description": "Configures a web server to start up. Takes the same configuration as the 'node' launch task.", "properties": { "args": { "default": [], "description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array", - "string" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array", "string"] }, "attachSimplePort": { "default": 9229, "description": "If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }] }, "autoAttachChildProcesses": { "default": true, @@ -10705,20 +7775,13 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "console": { "default": "internalConsole", "description": "Where to launch the debug target.", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], + "enum": ["internalConsole", "integratedTerminal", "externalTerminal"], "enumDescriptions": [ "VS Code Debug Console (which doesn't support to read input from a program)", "VS Code's integrated terminal", @@ -10738,9 +7801,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -10754,17 +7815,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -10775,30 +7829,19 @@ "experimentalNetworking": { "default": "auto", "description": "Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.", - "enum": [ - "auto", - "on", - "off" - ], + "enum": ["auto", "on", "off"], "type": "string" }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -10807,27 +7850,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -10843,52 +7874,29 @@ "program": { "default": "", "description": "Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": true, "description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.", "oneOf": [ - { - "type": "boolean" - }, + { "type": "boolean" }, { "properties": { - "delay": { - "default": 1000, - "minimum": 0, - "type": "number" - }, - "maxAttempts": { - "default": 10, - "minimum": 0, - "type": "number" - } + "delay": { "default": 1000, "minimum": 0, "type": "number" }, + "maxAttempts": { "default": 10, "minimum": 0, "type": "number" } }, "type": "object" } @@ -10897,27 +7905,18 @@ "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], + "items": { "type": "string" }, + "tags": ["setup"], "type": "array" }, "runtimeExecutable": { "default": "node", "markdownDescription": "Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -10930,39 +7929,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -10993,10 +7974,7 @@ "stopOnEntry": { "default": true, "description": "Automatically stop program after launch.", - "type": [ - "boolean", - "string" - ] + "type": ["boolean", "string"] }, "timeout": { "default": 10000, @@ -11040,10 +8018,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -11059,9 +8034,7 @@ }, { "additionalProperties": false, - "default": { - "program": "npm start" - }, + "default": { "program": "npm start" }, "description": "JavaScript Debug Terminal", "properties": { "autoAttachChildProcesses": { @@ -11072,22 +8045,14 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "command": { "default": "npm start", "description": "Command to run in the launched terminal. If not provided, the terminal will open without launching a program.", - "tags": [ - "setup" - ], - "type": [ - "string", - "null" - ] + "tags": ["setup"], + "type": ["string", "null"] }, "customDescriptionGenerator": { "description": "Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ", @@ -11102,9 +8067,7 @@ "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", "docDefault": "localRoot || ${ZED_WORKTREE_ROOT}", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -11118,17 +8081,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -11139,10 +8095,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -11151,27 +8104,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -11182,30 +8123,17 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -11213,39 +8141,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -11315,10 +8225,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -11338,39 +8245,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -11431,19 +8320,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -11457,9 +8340,7 @@ "url": { "default": "http://localhost:8080", "description": "Will search for a tab with this exact url and attach to it, if found", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "urlFilter": { @@ -11475,24 +8356,17 @@ "userDataDir": { "default": true, "description": "By default, the browser is launched with a separate user profile in a temp folder. Use this option to override it. Set to false to launch with your default user profile. A new browser can't be launched if an instance is already running from `userDataDir`.", - "type": [ - "string", - "boolean" - ] + "type": ["string", "boolean"] }, "vueComponentPaths": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.vue" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.vue"], "description": "A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.", "type": "array" }, "webRoot": { "default": "${ZED_WORKTREE_ROOT}", "description": "This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" } } @@ -11500,18 +8374,8 @@ }, { "if": { - "properties": { - "type": { - "const": "msedge" - }, - "request": { - "const": "attach" - } - }, - "required": [ - "type", - "request" - ] + "properties": { "type": { "const": "msedge" }, "request": { "const": "attach" } }, + "required": ["type", "request"] }, "then": { "properties": { @@ -11523,26 +8387,12 @@ "browserAttachLocation": { "default": null, "description": "Forces the browser to attach in one location. In a remote workspace (through ssh or WSL, for example) this can be used to attach to a browser on the remote machine rather than locally.", - "oneOf": [ - { - "type": "null" - }, - { - "enum": [ - "ui", - "workspace" - ], - "type": "string" - } - ] + "oneOf": [{ "type": "null" }, { "enum": ["ui", "workspace"], "type": "string" }] }, "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "customDescriptionGenerator": { @@ -11572,33 +8422,18 @@ "inspectUri": { "default": null, "description": "Format to use to rewrite the inspectUri: It's a template string that interpolates keys in `{curlyBraces}`. Available keys are:\n - `url.*` is the parsed address of the running application. For instance, `{url.port}`, `{url.hostname}`\n - `port` is the debug port that Chrome is listening on.\n - `browserInspectUri` is the inspector URI on the launched browser\n - `browserInspectUriPath` is the path part of the inspector URI on the launched browser (e.g.: \"/devtools/browser/e9ec0098-306e-472a-8133-5e42488929c2\").\n - `wsProtocol` is the hinted websocket protocol. This is set to `wss` if the original URL is `https`, or `ws` otherwise.\n", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pathMapping": { @@ -11614,39 +8449,20 @@ "perScriptSourcemaps": { "default": "auto", "description": "Whether scripts are loaded individually with unique sourcemaps containing the basename of the source file. This can be set to optimize sourcemap handling when dealing with lots of small scripts. If set to \"auto\", we'll detect known cases where this is appropriate.", - "enum": [ - "yes", - "no", - "auto" - ], + "enum": ["yes", "no", "auto"], "type": "string" }, "port": { "default": 9229, "description": "Port to use to remote debugging the browser, given as `--remote-debugging-port` when launching the browser.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ], - "tags": [ - "setup" - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }], + "tags": ["setup"] }, "resolveSourceMapLocations": { "default": null, "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": false, @@ -11657,37 +8473,20 @@ "oneOf": [ { "additionalProperties": false, - "default": { - "program": "node my-server.js" - }, + "default": { "program": "node my-server.js" }, "description": "Configures a web server to start up. Takes the same configuration as the 'node' launch task.", "properties": { "args": { "default": [], "description": "Command line arguments passed to the program.\n\nCan be an array of strings or a single string. When the program is launched in a terminal, setting this property to a single string will result in the arguments not being escaped for the shell.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array", - "string" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array", "string"] }, "attachSimplePort": { "default": 9229, "description": "If set, attaches to the process via the given port. This is generally no longer necessary for Node.js programs and loses the ability to debug child processes, but can be useful in more esoteric scenarios such as with Deno and Docker launches. If set to 0, a random port will be chosen and --inspect-brk added to the launch arguments automatically.", - "oneOf": [ - { - "type": "integer" - }, - { - "pattern": "^\\${.*}$", - "type": "string" - } - ] + "oneOf": [{ "type": "integer" }, { "pattern": "^\\${.*}$", "type": "string" }] }, "autoAttachChildProcesses": { "default": true, @@ -11697,20 +8496,13 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "console": { "default": "internalConsole", "description": "Where to launch the debug target.", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], + "enum": ["internalConsole", "integratedTerminal", "externalTerminal"], "enumDescriptions": [ "VS Code Debug Console (which doesn't support to read input from a program)", "VS Code's integrated terminal", @@ -11730,9 +8522,7 @@ "cwd": { "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -11746,17 +8536,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -11767,30 +8550,19 @@ "experimentalNetworking": { "default": "auto", "description": "Enable experimental inspection in Node.js. When set to `auto` this is enabled for versions of Node.js that support it. It can be set to `on` or `off` to enable or disable it explicitly.", - "enum": [ - "auto", - "on", - "off" - ], + "enum": ["auto", "on", "off"], "type": "string" }, "killBehavior": { "default": "forceful", - "enum": [ - "forceful", - "polite", - "none" - ], + "enum": ["forceful", "polite", "none"], "markdownDescription": "Configures how debug processes are killed when stopping the session. Can be:\n\n- forceful (default): forcefully tears down the process tree. Sends SIGKILL on posix, or `taskkill.exe /F` on Windows.\n- polite: gracefully tears down the process tree. It's possible that misbehaving processes continue to run after shutdown in this way. Sends SIGTERM on posix, or `taskkill.exe` with no `/F` (force) flag on Windows.\n- none: no termination will happen.", "type": "string" }, "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -11799,27 +8571,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -11835,52 +8595,29 @@ "program": { "default": "", "description": "Absolute path to the program. Generated value is guessed by looking at package.json and opened files. Edit this attribute.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "restart": { "default": true, "description": "Try to reconnect to the program if we lose connection. If set to `true`, we'll try once a second, forever. You can customize the interval and maximum number of attempts by specifying the `delay` and `maxAttempts` in an object instead.", "oneOf": [ - { - "type": "boolean" - }, + { "type": "boolean" }, { "properties": { - "delay": { - "default": 1000, - "minimum": 0, - "type": "number" - }, - "maxAttempts": { - "default": 10, - "minimum": 0, - "type": "number" - } + "delay": { "default": 1000, "minimum": 0, "type": "number" }, + "maxAttempts": { "default": 10, "minimum": 0, "type": "number" } }, "type": "object" } @@ -11889,27 +8626,18 @@ "runtimeArgs": { "default": [], "description": "Optional arguments passed to the runtime executable.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], + "items": { "type": "string" }, + "tags": ["setup"], "type": "array" }, "runtimeExecutable": { "default": "node", "markdownDescription": "Runtime to use. Either an absolute path or the name of a runtime available on the PATH. If omitted `node` is assumed.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -11922,39 +8650,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -11985,10 +8695,7 @@ "stopOnEntry": { "default": true, "description": "Automatically stop program after launch.", - "type": [ - "boolean", - "string" - ] + "type": ["boolean", "string"] }, "timeout": { "default": 10000, @@ -12032,10 +8739,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -12051,9 +8755,7 @@ }, { "additionalProperties": false, - "default": { - "program": "npm start" - }, + "default": { "program": "npm start" }, "description": "JavaScript Debug Terminal", "properties": { "autoAttachChildProcesses": { @@ -12064,22 +8766,14 @@ "cascadeTerminateToConfigurations": { "default": [], "description": "A list of debug sessions which, when this debug session is terminated, will also be stopped.", - "items": { - "type": "string", - "uniqueItems": true - }, + "items": { "type": "string", "uniqueItems": true }, "type": "array" }, "command": { "default": "npm start", "description": "Command to run in the launched terminal. If not provided, the terminal will open without launching a program.", - "tags": [ - "setup" - ], - "type": [ - "string", - "null" - ] + "tags": ["setup"], + "type": ["string", "null"] }, "customDescriptionGenerator": { "description": "Customize the textual description the debugger shows for objects (local variables, etc...). Samples:\n 1. this.toString() // will call toString to print all objects\n 2. this.customDescription ? this.customDescription() : defaultValue // Use customDescription method if available, if not return defaultValue\n 3. function (def) { return this.customDescription ? this.customDescription() : def } // Use customDescription method if available, if not return defaultValue\n ", @@ -12094,9 +8788,7 @@ "default": "${ZED_WORKTREE_ROOT}", "description": "Absolute path to the working directory of the program being debugged. If you've set localRoot then cwd will match that value otherwise it falls back to your workspaceFolder", "docDefault": "localRoot || ${ZED_WORKTREE_ROOT}", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "enableContentValidation": { @@ -12110,17 +8802,10 @@ "type": "boolean" }, "env": { - "additionalProperties": { - "type": [ - "string", - "null" - ] - }, + "additionalProperties": { "type": ["string", "null"] }, "default": {}, "markdownDescription": "Environment variables passed to the program. The value `null` removes the variable from the environment.", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "object" }, "envFile": { @@ -12131,10 +8816,7 @@ "localRoot": { "default": null, "description": "Path to the local directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "nodeVersionHint": { "default": 12, @@ -12143,27 +8825,15 @@ "type": "number" }, "outFiles": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.(m|c|)js", "!**/node_modules/**"], "description": "If source maps are enabled, these glob patterns specify the generated JavaScript files. If a pattern starts with `!` the files are excluded. If not specified, the generated code is expected in the same directory as its source.", - "items": { - "type": "string" - }, - "tags": [ - "setup" - ], - "type": [ - "array" - ] + "items": { "type": "string" }, + "tags": ["setup"], + "type": ["array"] }, "outputCapture": { "default": "console", - "enum": [ - "console", - "std" - ], + "enum": ["console", "std"], "markdownDescription": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`." }, "pauseForSourceMap": { @@ -12174,30 +8844,17 @@ "remoteRoot": { "default": null, "description": "Absolute path to the remote directory containing the program.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "resolveSourceMapLocations": { - "default": [ - "${ZED_WORKTREE_ROOT}/**", - "!**/node_modules/**" - ], + "default": ["${ZED_WORKTREE_ROOT}/**", "!**/node_modules/**"], "description": "A list of minimatch patterns for locations (folders and URLs) in which source maps can be used to resolve local files. This can be used to avoid incorrectly breaking in external source mapped code. Patterns can be prefixed with \"!\" to exclude them. May be set to an empty array or null to avoid restriction.", - "items": { - "type": "string" - }, - "type": [ - "array", - "null" - ] + "items": { "type": "string" }, + "type": ["array", "null"] }, "runtimeSourcemapPausePatterns": { "default": [], - "items": { - "type": "string" - }, + "items": { "type": "string" }, "markdownDescription": "A list of patterns at which to manually insert entrypoint breakpoints. This can be useful to give the debugger an opportunity to set breakpoints when using sourcemaps that don't exist or can't be detected before launch, such as [with the Serverless framework](https://github.com/microsoft/vscode-js-debug/issues/492).", "type": "array" }, @@ -12205,39 +8862,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -12307,10 +8946,7 @@ "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -12330,39 +8966,21 @@ "default": true, "description": "Show the async calls that led to the current call stack.", "oneOf": [ + { "type": "boolean" }, { - "type": "boolean" - }, - { - "properties": { - "onAttach": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onAttach" - ], + "properties": { "onAttach": { "default": 32, "type": "number" } }, + "required": ["onAttach"], "type": "object" }, { - "properties": { - "onceBreakpointResolved": { - "default": 32, - "type": "number" - } - }, - "required": [ - "onceBreakpointResolved" - ], + "properties": { "onceBreakpointResolved": { "default": 32, "type": "number" } }, + "required": ["onceBreakpointResolved"], "type": "object" } ] }, "skipFiles": { - "default": [ - "${/**" - ], + "default": ["${/**"], "description": "An array of file or folder names, or path globs, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/node_modules/**\", \"!**/node_modules/my-module/**\"]`", "type": "array" }, @@ -12392,10 +9010,7 @@ }, "targetSelection": { "default": "automatic", - "enum": [ - "pick", - "automatic" - ], + "enum": ["pick", "automatic"], "markdownDescription": "Whether to attach to all targets that match the URL filter (\"automatic\") or ask to pick one (\"pick\").", "type": "string" }, @@ -12432,19 +9047,13 @@ "default": true, "description": "Configures what diagnostic output is produced.", "oneOf": [ - { - "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", - "type": "boolean" - }, + { "description": "Trace may be set to 'true' to write diagnostic logs to the disk.", "type": "boolean" }, { "additionalProperties": false, "properties": { "logFile": { "description": "Configures where on disk logs are written.", - "type": [ - "string", - "null" - ] + "type": ["string", "null"] }, "stdio": { "description": "Whether to return trace data from the launched application or browser.", @@ -12458,9 +9067,7 @@ "url": { "default": "http://localhost:8080", "description": "Will search for a tab with this exact url and attach to it, if found", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" }, "urlFilter": { @@ -12469,30 +9076,20 @@ "type": "string" }, "useWebView": { - "default": { - "pipeName": "MyPipeName" - }, + "default": { "pipeName": "MyPipeName" }, "description": "An object containing the `pipeName` of a debug pipe for a UWP hosted Webview2. This is the \"MyTestSharedMemory\" when creating the pipe \"\\\\.\\pipe\\LOCAL\\MyTestSharedMemory\"", - "properties": { - "pipeName": { - "type": "string" - } - }, + "properties": { "pipeName": { "type": "string" } }, "type": "object" }, "vueComponentPaths": { - "default": [ - "${ZED_WORKTREE_ROOT}/**/*.vue" - ], + "default": ["${ZED_WORKTREE_ROOT}/**/*.vue"], "description": "A list of file glob patterns to find `*.vue` components. By default, searches the entire workspace. This needs to be specified due to extra lookups that Vue's sourcemaps require in Vue CLI 4. You can disable this special handling by setting this to an empty array.", "type": "array" }, "webRoot": { "default": "${ZED_WORKTREE_ROOT}", "description": "This specifies the workspace absolute path to the webserver root. Used to resolve paths like `/app.js` to files on disk. Shorthand for a pathMapping for \"/\"", - "tags": [ - "setup" - ], + "tags": ["setup"], "type": "string" } } @@ -12514,9 +9111,7 @@ ] } }, - "required": [ - "type" - ] + "required": ["type"] } ] } diff --git a/crates/dap_adapters/src/codelldb.rs b/crates/dap_adapters/src/codelldb.rs index e200ccff0656a5f65ab4949b80f791ca212e8c47..fd35bc748532f6879615b06fc8d03a24a618a300 100644 --- a/crates/dap_adapters/src/codelldb.rs +++ b/crates/dap_adapters/src/codelldb.rs @@ -341,7 +341,7 @@ impl DebugAdapter for CodeLldbDebugAdapter { let version_path = if let Ok(version) = self.fetch_latest_adapter_version(delegate).await { adapters::download_adapter_from_github( - self.name(), + Self::ADAPTER_NAME, version.clone(), adapters::DownloadedFileType::Vsix, paths::debug_adapters_dir(), diff --git a/crates/dap_adapters/src/dap_adapters.rs b/crates/dap_adapters/src/dap_adapters.rs index 3f7c0e8088767b00534a4ce7f2e437c9fb67d818..5a3331212b12314574c0ce647972dda9f759a8da 100644 --- a/crates/dap_adapters/src/dap_adapters.rs +++ b/crates/dap_adapters/src/dap_adapters.rs @@ -7,25 +7,29 @@ mod python; use std::sync::Arc; -use anyhow::Result; +use anyhow::{Context as _, Result}; use async_trait::async_trait; use codelldb::CodeLldbDebugAdapter; +use collections::HashMap; use dap::{ DapRegistry, adapters::{ self, AdapterVersion, DapDelegate, DebugAdapter, DebugAdapterBinary, DebugAdapterName, - GithubRepo, + DownloadedFileType, GithubRepo, }, configure_tcp_connection, }; +use fs::Fs as _; use gdb::GdbDebugAdapter; use go::GoDebugAdapter; -use gpui::{App, BorrowAppContext}; +use gpui::{App, BorrowAppContext, http_client::github::GithubRelease}; pub use javascript::JsDebugAdapter; use php::PhpDebugAdapter; -use python::PythonDebugAdapter; +pub use python::PythonDebugAdapter; +use serde::{Deserialize, Serialize}; use serde_json::json; -use task::{DebugScenario, ZedDebugConfig}; +use task::{DebugScenario, EnvVariableReplacer, VariableName, ZedDebugConfig}; +use tempfile::TempDir; pub fn init(cx: &mut App) { cx.update_default_global(|registry: &mut DapRegistry, _cx| { @@ -44,18 +48,25 @@ pub fn init(cx: &mut App) { } #[cfg(feature = "update-schemas")] -struct UpdateSchemasDapDelegate { +#[derive(Clone)] +pub struct UpdateSchemasDapDelegate { client: std::sync::Arc, fs: std::sync::Arc, + executor: gpui::BackgroundExecutor, } #[cfg(feature = "update-schemas")] impl UpdateSchemasDapDelegate { - fn new(executor: gpui::BackgroundExecutor) -> Self { + pub fn new() -> Self { + let executor = gpui::background_executor(); // FIXME let client = Arc::new(reqwest_client::ReqwestClient::user_agent("Cole").unwrap()); let fs = Arc::new(fs::RealFs::new(None, executor.clone())); - Self { client, fs } + Self { + client, + fs, + executor, + } } } @@ -80,7 +91,9 @@ impl dap::adapters::DapDelegate for UpdateSchemasDapDelegate { fn fs(&self) -> Arc { self.fs.clone() } - fn output_to_console(&self, _msg: String) {} + fn output_to_console(&self, msg: String) { + eprintln!("{msg}") + } async fn which(&self, _command: &std::ffi::OsStr) -> Option { unreachable!() } @@ -91,3 +104,142 @@ impl dap::adapters::DapDelegate for UpdateSchemasDapDelegate { unreachable!() } } + +#[cfg(feature = "update-schemas")] +#[derive(Debug, Serialize, Deserialize)] +struct PackageJsonConfigurationAttributes { + #[serde(default, skip_serializing_if = "Option::is_none")] + launch: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + attach: Option, +} + +#[cfg(feature = "update-schemas")] +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +struct PackageJsonDebugger { + r#type: String, + configuration_attributes: PackageJsonConfigurationAttributes, +} + +#[cfg(feature = "update-schemas")] +#[derive(Debug, Serialize, Deserialize)] +struct PackageJsonContributes { + debuggers: Vec, +} + +#[cfg(feature = "update-schemas")] +#[derive(Debug, Serialize, Deserialize)] +struct PackageJson { + contributes: PackageJsonContributes, +} + +fn get_vsix_package_json( + temp_dir: &TempDir, + repo: &str, + asset_name: impl FnOnce(&GithubRelease) -> anyhow::Result, + delegate: UpdateSchemasDapDelegate, +) -> anyhow::Result<(String, Option)> { + let temp_dir = std::fs::canonicalize(temp_dir.path())?; + let fs = delegate.fs.clone(); + let client = delegate.client.clone(); + let executor = delegate.executor.clone(); + + executor.block(async move { + let release = adapters::latest_github_release(repo, true, false, client.clone()).await?; + + let asset_name = asset_name(&release)?; + let version = AdapterVersion { + tag_name: release.tag_name, + url: release + .assets + .iter() + .find(|asset| asset.name == asset_name) + .with_context(|| format!("no asset found matching {asset_name:?}"))? + .browser_download_url + .clone(), + }; + + let path = adapters::download_adapter_from_github( + "schemas", + version, + DownloadedFileType::Vsix, + &temp_dir, + &delegate, + ) + .await?; + let package_json = fs + .load(&path.join("extension").join("package.json")) + .await?; + let package_nls_json = fs + .load(&path.join("extension").join("package.nls.json")) + .await + .ok(); + anyhow::Ok((package_json, package_nls_json)) + }) +} + +fn parse_package_json( + package_json: String, + package_nls_json: Option, +) -> anyhow::Result { + let package_nls_json = package_nls_json + .map(|package_nls_json| { + let package_nls_json = + serde_json::from_str::>(&package_nls_json)?; + let package_nls_json = package_nls_json + .into_iter() + .filter_map(|(k, v)| { + let v = v.as_str()?; + Some((k, v.to_owned())) + }) + .collect(); + anyhow::Ok(package_nls_json) + }) + .transpose()? + .unwrap_or_default(); + + let package_json: serde_json::Value = serde_json::from_str(&package_json)?; + + struct Replacer { + package_nls_json: HashMap, + env: EnvVariableReplacer, + } + + impl Replacer { + fn replace(&self, input: serde_json::Value) -> serde_json::Value { + match input { + serde_json::Value::String(s) => { + if s.starts_with("%") && s.ends_with("%") { + self.package_nls_json + .get(s.trim_matches('%')) + .map(|s| s.as_str().into()) + .unwrap_or("(missing)".into()) + } else { + self.env.replace(&s).into() + } + } + serde_json::Value::Array(arr) => { + serde_json::Value::Array(arr.into_iter().map(|v| self.replace(v)).collect()) + } + serde_json::Value::Object(obj) => serde_json::Value::Object( + obj.into_iter().map(|(k, v)| (k, self.replace(v))).collect(), + ), + _ => input, + } + } + } + + let env = EnvVariableReplacer::new(HashMap::from_iter([( + "workspaceFolder".to_owned(), + VariableName::WorktreeRoot.to_string(), + )])); + let replacer = Replacer { + env, + package_nls_json, + }; + let package_json = replacer.replace(package_json); + + let package_json: PackageJson = serde_json::from_value(package_json)?; + Ok(package_json) +} diff --git a/crates/dap_adapters/src/javascript.rs b/crates/dap_adapters/src/javascript.rs index 1cd180b713567a179de7f0646ea4a65428533b8a..9c3ec857b16b48b5876b42f04f851130db01a2b3 100644 --- a/crates/dap_adapters/src/javascript.rs +++ b/crates/dap_adapters/src/javascript.rs @@ -1,17 +1,15 @@ use adapters::latest_github_release; use anyhow::Context as _; use dap::{StartDebuggingRequestArguments, adapters::DebugTaskDefinition}; -use fs::Fs; -use gpui::{AsyncApp, BackgroundExecutor}; -use serde::{Deserialize, Serialize}; +use gpui::AsyncApp; use serde_json::Value; use std::{ borrow::Cow, collections::HashMap, - path::{Path, PathBuf}, + path::PathBuf, sync::{LazyLock, OnceLock}, }; -use task::{DebugRequest, EnvVariableReplacer, VariableName}; +use task::DebugRequest; use tempfile::TempDir; use util::{ResultExt, maybe}; @@ -252,7 +250,7 @@ impl DebugAdapter for JsDebugAdapter { delegate.output_to_console(format!("Checking latest version of {}...", self.name())); if let Some(version) = self.fetch_latest_adapter_version(delegate).await.log_err() { adapters::download_adapter_from_github( - self.name(), + Self::ADAPTER_NAME, version, adapters::DownloadedFileType::GzipTar, paths::debug_adapters_dir(), @@ -282,132 +280,23 @@ impl DebugAdapter for JsDebugAdapter { impl JsDebugAdapter { pub fn get_schema( temp_dir: &TempDir, - output_dir: &Path, - executor: BackgroundExecutor, - ) -> anyhow::Result<()> { - #[derive(Serialize, Deserialize)] - struct PackageJsonConfigurationAttributes { - #[serde(default, skip_serializing_if = "Option::is_none")] - launch: Option, - #[serde(default, skip_serializing_if = "Option::is_none")] - attach: Option, - } - - #[derive(Serialize, Deserialize)] - #[serde(rename_all = "camelCase")] - struct PackageJsonDebugger { - r#type: String, - configuration_attributes: PackageJsonConfigurationAttributes, - } - - #[derive(Serialize, Deserialize)] - struct PackageJsonContributes { - debuggers: Vec, - } - - #[derive(Serialize, Deserialize)] - struct PackageJson { - contributes: PackageJsonContributes, - } - - let temp_dir = std::fs::canonicalize(temp_dir.path())?; - let delegate = UpdateSchemasDapDelegate::new(executor.clone()); - let fs = delegate.fs.clone(); - let client = delegate.client.clone(); - - let (package_json, package_nls_json) = executor.block(async move { - let release = latest_github_release( - &format!("microsoft/{}", Self::ADAPTER_NPM_NAME), - true, - false, - client.clone(), - ) - .await?; - - let version = release - .tag_name - .strip_prefix("v") - .context("parse version")?; - let asset_name = format!("ms-vscode.js-debug.{version}.vsix",); - let version = AdapterVersion { - tag_name: release.tag_name, - url: release - .assets - .iter() - .find(|asset| asset.name == asset_name) - .with_context(|| format!("no asset found matching {asset_name:?}"))? - .browser_download_url - .clone(), - }; - - let path = adapters::download_adapter_from_github( - DebugAdapterName(Self::ADAPTER_NAME.into()), - version, - adapters::DownloadedFileType::Vsix, - &temp_dir, - &delegate, - ) - .await?; - let package_json = fs - .load(&path.join("extension").join("package.json")) - .await?; - let package_nls_json = fs - .load(&path.join("extension").join("package.nls.json")) - .await?; - anyhow::Ok((package_json, package_nls_json)) - })?; - - let package_nls_json = - serde_json::from_str::>(&package_nls_json)? - .into_iter() - .filter_map(|(k, v)| { - let v = v.as_str()?; - Some((k, v.to_owned())) - }) - .collect(); - - let package_json: serde_json::Value = serde_json::from_str(&package_json)?; - - struct Replacer { - package_nls_json: HashMap, - env: EnvVariableReplacer, - } - - impl Replacer { - fn replace(&self, input: serde_json::Value) -> serde_json::Value { - match input { - serde_json::Value::String(s) => { - if s.starts_with("%") && s.ends_with("%") { - self.package_nls_json - .get(s.trim_matches('%')) - .map(|s| s.as_str().into()) - .unwrap_or("(missing)".into()) - } else { - self.env.replace(&s).into() - } - } - serde_json::Value::Array(arr) => { - serde_json::Value::Array(arr.into_iter().map(|v| self.replace(v)).collect()) - } - serde_json::Value::Object(obj) => serde_json::Value::Object( - obj.into_iter().map(|(k, v)| (k, self.replace(v))).collect(), - ), - _ => input, - } - } - } - - let env = EnvVariableReplacer::new(HashMap::from_iter([( - "workspaceFolder".to_owned(), - VariableName::WorktreeRoot.to_string(), - )])); - let replacer = Replacer { - env, - package_nls_json, - }; - let package_json = replacer.replace(package_json); + delegate: UpdateSchemasDapDelegate, + ) -> anyhow::Result { + let (package_json, package_nls_json) = get_vsix_package_json( + temp_dir, + &format!("microsoft/{}", Self::ADAPTER_NPM_NAME), + |release| { + let version = release + .tag_name + .strip_prefix("v") + .context("parse version")?; + let asset_name = format!("ms-vscode.js-debug.{version}.vsix"); + Ok(asset_name) + }, + delegate, + )?; - let package_json: PackageJson = serde_json::from_value(package_json)?; + let package_json = parse_package_json(package_json, package_nls_json)?; let types = package_json .contributes @@ -461,15 +350,7 @@ impl JsDebugAdapter { let schema = json!({ "allOf": conjuncts }); - - // FIXME figure out what to do about formatting - let mut schema = serde_json::to_string_pretty(&schema)?; - schema.push('\n'); - std::fs::write( - output_dir.join(Self::ADAPTER_NAME).with_extension("json"), - schema, - )?; - Ok(()) + Ok(schema) } } diff --git a/crates/dap_adapters/src/php.rs b/crates/dap_adapters/src/php.rs index 7d0ea2bbb9fa816cfa447f8401c7c9c8bed5fb4f..96678dc2f36a30b8b048a03aa403b57052d216e5 100644 --- a/crates/dap_adapters/src/php.rs +++ b/crates/dap_adapters/src/php.rs @@ -348,7 +348,7 @@ impl DebugAdapter for PhpDebugAdapter { delegate.output_to_console(format!("Checking latest version of {}...", self.name())); if let Some(version) = self.fetch_latest_adapter_version(delegate).await.log_err() { adapters::download_adapter_from_github( - self.name(), + Self::ADAPTER_NAME, version, adapters::DownloadedFileType::Vsix, paths::debug_adapters_dir(), diff --git a/crates/dap_adapters/src/python.rs b/crates/dap_adapters/src/python.rs index 606926f28d812b6f1e3282566b032b85a2ca5cd0..06fdd4bf8a18c107fb99fdbe4a277a722114a39a 100644 --- a/crates/dap_adapters/src/python.rs +++ b/crates/dap_adapters/src/python.rs @@ -8,21 +8,24 @@ use language::{LanguageName, Toolchain}; use serde_json::Value; use std::borrow::Cow; use std::net::Ipv4Addr; +use std::sync::LazyLock; use std::{ collections::HashMap, ffi::OsStr, path::{Path, PathBuf}, sync::OnceLock, }; +#[cfg(feature = "update-schemas")] +use tempfile::TempDir; use util::ResultExt; #[derive(Default)] -pub(crate) struct PythonDebugAdapter { +pub struct PythonDebugAdapter { checked: OnceLock<()>, } impl PythonDebugAdapter { - const ADAPTER_NAME: &'static str = "Debugpy"; + pub const ADAPTER_NAME: &'static str = "Debugpy"; const DEBUG_ADAPTER_NAME: DebugAdapterName = DebugAdapterName(SharedString::new_static(Self::ADAPTER_NAME)); const ADAPTER_PACKAGE_NAME: &'static str = "debugpy"; @@ -106,6 +109,7 @@ impl PythonDebugAdapter { request, }) } + async fn fetch_latest_adapter_version( &self, delegate: &Arc, @@ -124,7 +128,7 @@ impl PythonDebugAdapter { delegate: Arc, ) -> Result<()> { let version_path = adapters::download_adapter_from_github( - adapter_name, + adapter_name.as_ref(), version, adapters::DownloadedFileType::GzipTar, paths::debug_adapters_dir(), @@ -261,336 +265,11 @@ impl DebugAdapter for PythonDebugAdapter { } fn dap_schema(&self) -> Cow<'static, serde_json::Value> { - Cow::Owned(json!({ - "properties": { - "request": { - "type": "string", - "enum": ["attach", "launch"], - "description": "Debug adapter request type" - }, - "autoReload": { - "default": {}, - "description": "Configures automatic reload of code on edit.", - "properties": { - "enable": { - "default": false, - "description": "Automatically reload code on edit.", - "type": "boolean" - }, - "exclude": { - "default": [ - "**/.git/**", - "**/.metadata/**", - "**/__pycache__/**", - "**/node_modules/**", - "**/site-packages/**" - ], - "description": "Glob patterns of paths to exclude from auto reload.", - "items": { - "type": "string" - }, - "type": "array" - }, - "include": { - "default": [ - "**/*.py", - "**/*.pyw" - ], - "description": "Glob patterns of paths to include in auto reload.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "debugAdapterPath": { - "description": "Path (fully qualified) to the python debug adapter executable.", - "type": "string" - }, - "django": { - "default": false, - "description": "Django debugging.", - "type": "boolean" - }, - "jinja": { - "default": null, - "description": "Jinja template debugging (e.g. Flask).", - "enum": [ - false, - null, - true - ] - }, - "justMyCode": { - "default": true, - "description": "If true, show and debug only user-written code. If false, show and debug all code, including library calls.", - "type": "boolean" - }, - "logToFile": { - "default": false, - "description": "Enable logging of debugger events to a log file. This file can be found in the debugpy extension install folder.", - "type": "boolean" - }, - "pathMappings": { - "default": [], - "items": { - "label": "Path mapping", - "properties": { - "localRoot": { - "default": "${ZED_WORKTREE_ROOT}", - "label": "Local source root.", - "type": "string" - }, - "remoteRoot": { - "default": "", - "label": "Remote source root.", - "type": "string" - } - }, - "required": [ - "localRoot", - "remoteRoot" - ], - "type": "object" - }, - "label": "Path mappings.", - "type": "array" - }, - "redirectOutput": { - "default": true, - "description": "Redirect output.", - "type": "boolean" - }, - "showReturnValue": { - "default": true, - "description": "Show return value of functions when stepping.", - "type": "boolean" - }, - "subProcess": { - "default": false, - "description": "Whether to enable Sub Process debugging", - "type": "boolean" - }, - "consoleName": { - "default": "Python Debug Console", - "description": "Display name of the debug console or terminal", - "type": "string" - }, - "clientOS": { - "default": null, - "description": "OS that VS code is using.", - "enum": [ - "windows", - null, - "unix" - ] - } - }, - "required": ["request"], - "allOf": [ - { - "if": { - "properties": { - "request": { - "enum": ["attach"] - } - } - }, - "then": { - "properties": { - "connect": { - "label": "Attach by connecting to debugpy over a socket.", - "properties": { - "host": { - "default": "127.0.0.1", - "description": "Hostname or IP address to connect to.", - "type": "string" - }, - "port": { - "description": "Port to connect to.", - "type": [ - "number", - "string" - ] - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "listen": { - "label": "Attach by listening for incoming socket connection from debugpy", - "properties": { - "host": { - "default": "127.0.0.1", - "description": "Hostname or IP address of the interface to listen on.", - "type": "string" - }, - "port": { - "description": "Port to listen on.", - "type": [ - "number", - "string" - ] - } - }, - "required": [ - "port" - ], - "type": "object" - }, - "processId": { - "anyOf": [ - { - "default": "${command:pickProcess}", - "description": "Use process picker to select a process to attach, or Process ID as integer.", - "enum": [ - "${command:pickProcess}" - ] - }, - { - "description": "ID of the local process to attach to.", - "type": "integer" - } - ] - } - } - } - }, - { - "if": { - "properties": { - "request": { - "enum": ["launch"] - } - } - }, - "then": { - "properties": { - "args": { - "default": [], - "description": "Command line arguments passed to the program. For string type arguments, it will pass through the shell as is, and therefore all shell variable expansions will apply. But for the array type, the values will be shell-escaped.", - "items": { - "type": "string" - }, - "anyOf": [ - { - "default": "${command:pickArgs}", - "enum": [ - "${command:pickArgs}" - ] - }, - { - "type": [ - "array", - "string" - ] - } - ] - }, - "console": { - "default": "integratedTerminal", - "description": "Where to launch the debug target: internal console, integrated terminal, or external terminal.", - "enum": [ - "externalTerminal", - "integratedTerminal", - "internalConsole" - ] - }, - "cwd": { - "default": "${ZED_WORKTREE_ROOT}", - "description": "Absolute path to the working directory of the program being debugged. Default is the root directory of the file (leave empty).", - "type": "string" - }, - "autoStartBrowser": { - "default": false, - "description": "Open external browser to launch the application", - "type": "boolean" - }, - "env": { - "additionalProperties": { - "type": "string" - }, - "default": {}, - "description": "Environment variables defined as a key value pair. Property ends up being the Environment Variable and the value of the property ends up being the value of the Env Variable.", - "type": "object" - }, - "envFile": { - "default": "${ZED_WORKTREE_ROOT}/.env", - "description": "Absolute path to a file containing environment variable definitions.", - "type": "string" - }, - "gevent": { - "default": false, - "description": "Enable debugging of gevent monkey-patched code.", - "type": "boolean" - }, - "module": { - "default": "", - "description": "Name of the module to be debugged.", - "type": "string" - }, - "program": { - "default": "${ZED_FILE}", - "description": "Absolute path to the program.", - "type": "string" - }, - "purpose": { - "default": [], - "description": "Tells extension to use this configuration for test debugging, or when using debug-in-terminal command.", - "items": { - "enum": [ - "debug-test", - "debug-in-terminal" - ], - "enumDescriptions": [ - "Use this configuration while debugging tests using test view or test debug commands.", - "Use this configuration while debugging a file using debug in terminal button in the editor." - ] - }, - "type": "array" - }, - "pyramid": { - "default": false, - "description": "Whether debugging Pyramid applications.", - "type": "boolean" - }, - "python": { - "default": "${command:python.interpreterPath}", - "description": "Absolute path to the Python interpreter executable; overrides workspace configuration if set.", - "type": "string" - }, - "pythonArgs": { - "default": [], - "description": "Command-line arguments passed to the Python interpreter. To pass arguments to the debug target, use \"args\".", - "items": { - "type": "string" - }, - "type": "array" - }, - "stopOnEntry": { - "default": false, - "description": "Automatically stop after launch.", - "type": "boolean" - }, - "sudo": { - "default": false, - "description": "Running debug program under elevated permissions (on Unix).", - "type": "boolean" - }, - "guiEventLoop": { - "default": "matplotlib", - "description": "The GUI event loop that's going to run. Possible values: \"matplotlib\", \"wx\", \"qt\", \"none\", or a custom function that'll be imported and run.", - "type": "string" - } - } - } - } - ] - })) + static SCHEMA: LazyLock = LazyLock::new(|| { + const RAW_SCHEMA: &str = include_str!("../schemas/Debugpy.json"); + serde_json::from_str(RAW_SCHEMA).unwrap() + }); + Cow::Borrowed(&*SCHEMA) } async fn get_binary( @@ -673,6 +352,86 @@ impl DebugAdapter for PythonDebugAdapter { } } +#[cfg(feature = "update-schemas")] +impl PythonDebugAdapter { + pub fn get_schema( + temp_dir: &TempDir, + delegate: UpdateSchemasDapDelegate, + ) -> anyhow::Result { + let temp_dir = std::fs::canonicalize(temp_dir.path())?; + let fs = delegate.fs.clone(); + let executor = delegate.executor.clone(); + + let (package_json, package_nls_json) = executor.block(async move { + let version = fetch_latest_adapter_version_from_github( + GithubRepo { + repo_name: "vscode-python-debugger".into(), + repo_owner: "microsoft".into(), + }, + &delegate, + ) + .await?; + + let path = adapters::download_adapter_from_github( + "schemas", + version, + adapters::DownloadedFileType::GzipTar, + &temp_dir, + &delegate, + ) + .await?; + + let path = util::fs::find_file_name_in_dir(path.as_path(), |file_name| { + file_name.starts_with("microsoft-vscode-python-debugger-") + }) + .await + .context("find python debugger extension in download")?; + + let package_json = fs.load(&path.join("package.json")).await?; + let package_nls_json = fs.load(&path.join("package.nls.json")).await.ok(); + + anyhow::Ok((package_json, package_nls_json)) + })?; + + let package_json = parse_package_json(package_json, package_nls_json)?; + + let [debugger] = + <[_; 1]>::try_from(package_json.contributes.debuggers).map_err(|debuggers| { + anyhow::anyhow!("unexpected number of python debuggers: {}", debuggers.len()) + })?; + + let configuration_attributes = debugger.configuration_attributes; + let conjuncts = configuration_attributes + .launch + .map(|schema| ("launch", schema)) + .into_iter() + .chain( + configuration_attributes + .attach + .map(|schema| ("attach", schema)), + ) + .map(|(request, schema)| { + json!({ + "if": { + "properties": { + "request": { + "const": request + } + }, + "required": ["request"] + }, + "then": schema + }) + }) + .collect::>(); + + let schema = json!({ + "allOf": conjuncts + }); + Ok(schema) + } +} + async fn fetch_latest_adapter_version_from_github( github_repo: GithubRepo, delegate: &dyn DapDelegate, diff --git a/crates/dap_adapters/src/update_schemas.rs b/crates/dap_adapters/src/update_schemas.rs index 597ff8957603068976c001bc3fc46bfa6f14bc0b..ea5ff20efcb362906b19cc21ad5e6bb3e373ab07 100644 --- a/crates/dap_adapters/src/update_schemas.rs +++ b/crates/dap_adapters/src/update_schemas.rs @@ -1,13 +1,32 @@ -use std::path::Path; +use std::{path::Path, process::Command}; -use dap_adapters::JsDebugAdapter; -use gpui::background_executor; +use dap_adapters::{JsDebugAdapter, PythonDebugAdapter, UpdateSchemasDapDelegate}; use tempfile::TempDir; fn main() -> anyhow::Result<()> { let temp_dir = TempDir::new()?; let output_dir = Path::new("crates/dap_adapters/schemas"); - let executor = background_executor(); - JsDebugAdapter::get_schema(&temp_dir, output_dir, executor.clone())?; + let delegate = UpdateSchemasDapDelegate::new(); + + let schema = JsDebugAdapter::get_schema(&temp_dir, delegate.clone())?; + std::fs::write( + &output_dir + .join(JsDebugAdapter::ADAPTER_NAME) + .with_extension("json"), + serde_json::to_string(&schema)?, + )?; + let schema = PythonDebugAdapter::get_schema(&temp_dir, delegate.clone())?; + std::fs::write( + &output_dir + .join(PythonDebugAdapter::ADAPTER_NAME) + .with_extension("json"), + serde_json::to_string(&schema)?, + )?; + + Command::new("npx") + .arg("prettier") + .arg("--write") + .arg(output_dir.join("*")) + .status()?; Ok(()) }