From 8cd67f816a5d34564f2e50f6c60948e68fb66efc Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Mon, 18 Apr 2022 16:53:54 -0700 Subject: [PATCH 01/12] Make SDK build of OmniSharp the default --- package.json | 25 +---- src/features/diagnosticsProvider.ts | 2 +- src/features/fileOpenCloseProvider.ts | 5 + src/features/reportIssue.ts | 9 +- src/observers/OptionChangeObserver.ts | 1 - src/omnisharp/OmniSharpMonoResolver.ts | 42 +++---- src/omnisharp/launcher.ts | 38 ++----- src/omnisharp/options.ts | 29 ----- tasks/offlinePackagingTasks.ts | 16 +-- test-plan.md | 11 -- test/unitTests/Fakes/FakeMonoResolver.ts | 6 +- test/unitTests/Fakes/FakeOptions.ts | 1 - .../OptionChangeObserver.test.ts | 2 +- test/unitTests/features/reportIssue.test.ts | 15 +-- .../omnisharp/OmniSharpMonoResolver.test.ts | 104 +----------------- test/unitTests/optionStream.test.ts | 1 - test/unitTests/options.test.ts | 37 ------- 17 files changed, 64 insertions(+), 280 deletions(-) diff --git a/package.json b/package.json index fabdfee27..e1f43bed9 100644 --- a/package.json +++ b/package.json @@ -925,25 +925,10 @@ }, "omnisharp.useModernNet": { "type": "boolean", - "default": false, + "default": true, "scope": "window", - "title": "Use .NET 6 build of OmniSharp (experimental)", - "description": "Use OmniSharp build for .NET 6. This version _does not_ support non-SDK-style .NET Framework projects, including Unity. SDK-style Framework, .NET Core, and .NET 5+ projects should see significant performance improvements, but there may still be bugs. Please open issues if you find any bugs." - }, - "omnisharp.useGlobalMono": { - "type": "string", - "default": "auto", - "enum": [ - "auto", - "always", - "never" - ], - "enumDescriptions": [ - "Automatically launch OmniSharp with internal \"mono\", since \"mono\" 6.12.0 does not support .NET Core 3.1.40x or .NET 5 SDKs.", - "Always launch OmniSharp with \"mono\". If version 6.4.0 or greater is not available on the PATH, an error will be printed.", - "Never launch OmniSharp on a globally-installed Mono." - ], - "description": "Launch OmniSharp with the globally-installed Mono. If set to \"always\", \"mono\" version 6.4.0 or greater must be available on the PATH. If set to \"auto\", OmniSharp will be launched with \"mono\" if version 6.4.0 or greater is available on the PATH." + "title": "Use .NET 6 build of OmniSharp", + "description": "Use OmniSharp build for .NET 6. This version _does not_ support non-SDK-style .NET Framework projects, including Unity. SDK-style Framework, .NET Core, and .NET 5+ projects should see significant performance improvements." }, "omnisharp.monoPath": { "type": [ @@ -952,7 +937,7 @@ ], "default": null, "scope": "machine", - "description": "Specifies the path to a mono installation to use when \"useGlobalMono\" is set to \"always\", instead of the default system one. Example: \"/Library/Frameworks/Mono.framework/Versions/Current\"" + "description": "Specifies the path to a mono installation to use when \"useModernNet\" is set to false, instead of the default system one. Example: \"/Library/Frameworks/Mono.framework/Versions/Current\"" }, "omnisharp.dotnetPath": { "type": [ @@ -4073,4 +4058,4 @@ } ] } -} +} \ No newline at end of file diff --git a/src/features/diagnosticsProvider.ts b/src/features/diagnosticsProvider.ts index 4a903ef39..7d8f48c92 100644 --- a/src/features/diagnosticsProvider.ts +++ b/src/features/diagnosticsProvider.ts @@ -137,7 +137,7 @@ class DiagnosticsProvider extends AbstractSupport { this._subscriptions.push(this._validateCurrentDocumentPipe .pipe(debounceTime(750)) - .subscribe(x => this._validateDocument(x))); + .subscribe(async x => this._validateDocument(x))); this._subscriptions.push(this._validateAllPipe .pipe(debounceTime(3000)) diff --git a/src/features/fileOpenCloseProvider.ts b/src/features/fileOpenCloseProvider.ts index e1e8e7787..fe7cad785 100644 --- a/src/features/fileOpenCloseProvider.ts +++ b/src/features/fileOpenCloseProvider.ts @@ -1,3 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + import { IDisposable } from "../Disposable"; import { OmniSharpServer } from "../omnisharp/server"; import * as vscode from 'vscode'; diff --git a/src/features/reportIssue.ts b/src/features/reportIssue.ts index 5a87d5ebc..be8bcf373 100644 --- a/src/features/reportIssue.ts +++ b/src/features/reportIssue.ts @@ -85,12 +85,9 @@ async function getMonoIfPlatformValid(isValidPlatformForMono: boolean, options: if (isValidPlatformForMono) { let monoVersion: string; try { - let globalMonoInfo = await monoResolver.getHostExecutableInfo(options); - if (globalMonoInfo) { - monoVersion = `OmniSharp using global mono :${globalMonoInfo.version}`; - } - else { - monoVersion = `OmniSharp using built-in mono`; + let monoInfo = await monoResolver.getHostExecutableInfo(options); + if (monoInfo) { + monoVersion = `OmniSharp using mono :${monoInfo.version}`; } } catch (error) { diff --git a/src/observers/OptionChangeObserver.ts b/src/observers/OptionChangeObserver.ts index 3553131c1..9b7caa118 100644 --- a/src/observers/OptionChangeObserver.ts +++ b/src/observers/OptionChangeObserver.ts @@ -14,7 +14,6 @@ type OptionsKey = keyof Options; const omniSharpOptions: ReadonlyArray = [ "path", - "useGlobalMono", "enableMsBuildLoadProjectsOnDemand", "waitForDebugger", "loggingLevel", diff --git a/src/omnisharp/OmniSharpMonoResolver.ts b/src/omnisharp/OmniSharpMonoResolver.ts index 53bfd8e6e..0d505fe67 100644 --- a/src/omnisharp/OmniSharpMonoResolver.ts +++ b/src/omnisharp/OmniSharpMonoResolver.ts @@ -17,15 +17,16 @@ export class OmniSharpMonoResolver implements IHostExecutableResolver { } private async configureEnvironmentAndGetInfo(options: Options): Promise { - let env = { ...process.env }; + const env = { ...process.env }; let monoPath: string; - if (options.useGlobalMono !== "never" && options.monoPath !== undefined) { + + if (options.monoPath !== undefined) { env['PATH'] = path.join(options.monoPath, 'bin') + path.delimiter + env['PATH']; env['MONO_GAC_PREFIX'] = options.monoPath; monoPath = options.monoPath; } - let version = await this.getMonoVersion(env); + const version = await this.getMonoVersion(env); return { version, @@ -35,30 +36,21 @@ export class OmniSharpMonoResolver implements IHostExecutableResolver { } public async getHostExecutableInfo(options: Options): Promise { - let monoInfo = await this.configureEnvironmentAndGetInfo(options); - let isValid = monoInfo.version && satisfies(monoInfo.version, `>=${this.minimumMonoVersion}`); - if (options.useGlobalMono === "always") { - let isMissing = monoInfo.version === undefined; - if (isMissing) { - const suggestedAction = options.monoPath - ? "Update the \"omnisharp.monoPath\" setting to point to the folder containing Mono's '/bin' folder." - : "Ensure that Mono's '/bin' folder is added to your environment's PATH variable."; - throw new Error(`Unable to find Mono. ${suggestedAction}`); - } - - if (!isValid) { - throw new Error(`Found Mono version ${monoInfo.version}. Cannot start OmniSharp because Mono version >=${this.minimumMonoVersion} is required.`); - } - - return monoInfo; + const monoInfo = await this.configureEnvironmentAndGetInfo(options); + const isValid = monoInfo.version && satisfies(monoInfo.version, `>=${this.minimumMonoVersion}`); + + const isMissing = monoInfo.version === undefined; + if (isMissing) { + const suggestedAction = options.monoPath + ? "Update the \"omnisharp.monoPath\" setting to point to the folder containing Mono's '/bin' folder." + : "Ensure that Mono's '/bin' folder is added to your environment's PATH variable."; + throw new Error(`Unable to find Mono. ${suggestedAction}`); } - else if (options.useGlobalMono === "auto" && isValid) { - // While waiting for Mono to ship with a MSBuild version 16.8 or higher, we will treat "auto" - // as "Use included Mono". - // return monoInfo; + + if (!isValid) { + throw new Error(`Found Mono version ${monoInfo.version}. Cannot start OmniSharp because Mono version >=${this.minimumMonoVersion} is required.`); } - return undefined; + return monoInfo; } } - diff --git a/src/omnisharp/launcher.ts b/src/omnisharp/launcher.ts index 51cc82219..6ff40e810 100644 --- a/src/omnisharp/launcher.ts +++ b/src/omnisharp/launcher.ts @@ -312,21 +312,7 @@ async function launch(cwd: string, args: string[], launchInfo: LaunchInfo, platf return launchWindows(launchInfo.LaunchPath, cwd, args); } - let monoInfo = await monoResolver.getHostExecutableInfo(options); - - if (monoInfo) { - const launchPath = launchInfo.MonoLaunchPath || launchInfo.LaunchPath; - let childEnv = monoInfo.env; - return { - ...launchNixMono(launchPath, cwd, args, childEnv, options.waitForDebugger), - hostIsMono: true, - hostVersion: monoInfo.version, - hostPath: monoInfo.path - }; - } - else { - return launchNix(launchInfo.LaunchPath, cwd, args); - } + return await launchNix(launchInfo, cwd, args, options, monoResolver); } function getConfigurationValue(globalConfig: vscode.WorkspaceConfiguration, csharpConfig: vscode.WorkspaceConfiguration, @@ -393,20 +379,20 @@ function launchWindows(launchPath: string, cwd: string, args: string[]): LaunchR }; } -function launchNix(launchPath: string, cwd: string, args: string[]): LaunchResult { - let process = spawn(launchPath, args, { - detached: false, - cwd: cwd - }); +async function launchNix(launchInfo: LaunchInfo, cwd: string, args: string[], options: Options, monoResolver: IHostExecutableResolver): Promise { + const monoInfo = await monoResolver.getHostExecutableInfo(options); + const launchPath = launchInfo.MonoLaunchPath || launchInfo.LaunchPath; return { - process, + process: launchNixMono(launchPath, cwd, args, monoInfo.env, options.waitForDebugger), command: launchPath, - hostIsMono: false + hostIsMono: true, + hostVersion: monoInfo.version, + hostPath: monoInfo.path }; } -function launchNixMono(launchPath: string, cwd: string, args: string[], environment: NodeJS.ProcessEnv, useDebugger: boolean): LaunchResult { +function launchNixMono(launchPath: string, cwd: string, args: string[], environment: NodeJS.ProcessEnv, useDebugger: boolean): ChildProcess { let argsCopy = args.slice(0); // create copy of details args argsCopy.unshift(launchPath); argsCopy.unshift("--assembly-loader=strict"); @@ -422,9 +408,5 @@ function launchNixMono(launchPath: string, cwd: string, args: string[], environm env: environment }); - return { - process, - command: launchPath, - hostIsMono: true - }; + return process; } diff --git a/src/omnisharp/options.ts b/src/omnisharp/options.ts index 1025f5b0a..51e3f9709 100644 --- a/src/omnisharp/options.ts +++ b/src/omnisharp/options.ts @@ -9,7 +9,6 @@ export class Options { constructor( public path: string, public useModernNet: boolean, - public useGlobalMono: string, public waitForDebugger: boolean, public loggingLevel: string, public autoStart: boolean, @@ -62,8 +61,6 @@ export class Options { // are supported below. In particular, these are: // // - "csharp.omnisharp" -> "omnisharp.path" - // - "csharp.omnisharpUsesMono" -> "omnisharp.useMono" - // - "omnisharp.useMono" -> "omnisharp.useGlobalMono" const omnisharpConfig = vscode.workspace.getConfiguration('omnisharp'); const csharpConfig = vscode.workspace.getConfiguration('csharp'); @@ -71,7 +68,6 @@ export class Options { const path = Options.readPathOption(csharpConfig, omnisharpConfig); const useModernNet = omnisharpConfig.get("useModernNet", false); - const useGlobalMono = Options.readUseGlobalMonoOption(omnisharpConfig, csharpConfig); const monoPath = omnisharpConfig.get('monoPath', undefined) || undefined; const dotnetPath = omnisharpConfig.get('dotnetPath', undefined) || undefined; @@ -143,7 +139,6 @@ export class Options { return new Options( path, useModernNet, - useGlobalMono, waitForDebugger, loggingLevel, autoStart, @@ -232,28 +227,4 @@ export class Options { return null; } } - - private static readUseGlobalMonoOption(omnisharpConfig: WorkspaceConfiguration, csharpConfig: WorkspaceConfiguration): string { - function toUseGlobalMonoValue(value: boolean): string { - // True means 'always' and false means 'auto'. - return value ? "always" : "auto"; - } - - if (omnisharpConfig.has('useGlobalMono')) { - // If 'omnisharp.useGlobalMono' setting was found, just use it. - return omnisharpConfig.get('useGlobalMono', "auto"); - } - else if (omnisharpConfig.has('useMono')) { - // BACKCOMPAT: If 'omnisharp.useMono' setting was found, true maps to "always" and false maps to "auto" - return toUseGlobalMonoValue(omnisharpConfig.get('useMono')); - } - else if (csharpConfig.has('omnisharpUsesMono')) { - // BACKCOMPAT: If 'csharp.omnisharpUsesMono' setting was found, true maps to "always" and false maps to "auto" - return toUseGlobalMonoValue(csharpConfig.get('omnisharpUsesMono')); - } - else { - // Otherwise, the default value is "auto". - return "auto"; - } - } } diff --git a/tasks/offlinePackagingTasks.ts b/tasks/offlinePackagingTasks.ts index 147e361a6..86cd34134 100644 --- a/tasks/offlinePackagingTasks.ts +++ b/tasks/offlinePackagingTasks.ts @@ -23,14 +23,16 @@ import { getRuntimeDependenciesPackages } from '../src/tools/RuntimeDependencyPa import { getAbsolutePathPackagesToInstall } from '../src/packageManager/getAbsolutePathPackagesToInstall'; import { isValidDownload } from '../src/packageManager/isValidDownload'; +const includeFrameworkOmniSharp = false; + export const offlinePackages = [ - { platformInfo: new PlatformInformation('win32', 'x86_64'), id: "win32-x64", isFramework: true }, - { platformInfo: new PlatformInformation('win32', 'x86'), id: "win32-ia32", isFramework: true }, - { platformInfo: new PlatformInformation('win32', 'arm64'), id: "win32-arm64", isFramework: true }, - { platformInfo: new PlatformInformation('linux', 'x86_64'), id: "linux-x64", isFramework: true }, - { platformInfo: new PlatformInformation('linux', 'arm64'), id: "linux-arm64", isFramework: true }, - { platformInfo: new PlatformInformation('darwin', 'x86_64'), id: "darwin-x64", isFramework: true }, - { platformInfo: new PlatformInformation('darwin', 'arm64'), id: "darwin-arm64", isFramework: true }, + { platformInfo: new PlatformInformation('win32', 'x86_64'), id: "win32-x64", isFramework: includeFrameworkOmniSharp }, + { platformInfo: new PlatformInformation('win32', 'x86'), id: "win32-ia32", isFramework: includeFrameworkOmniSharp }, + { platformInfo: new PlatformInformation('win32', 'arm64'), id: "win32-arm64", isFramework: includeFrameworkOmniSharp }, + { platformInfo: new PlatformInformation('linux', 'x86_64'), id: "linux-x64", isFramework: includeFrameworkOmniSharp }, + { platformInfo: new PlatformInformation('linux', 'arm64'), id: "linux-arm64", isFramework: includeFrameworkOmniSharp }, + { platformInfo: new PlatformInformation('darwin', 'x86_64'), id: "darwin-x64", isFramework: includeFrameworkOmniSharp }, + { platformInfo: new PlatformInformation('darwin', 'arm64'), id: "darwin-arm64", isFramework: includeFrameworkOmniSharp }, ]; export function getPackageName(packageJSON: any, vscodePlatformId: string) { diff --git a/test-plan.md b/test-plan.md index 6e029814f..a4e6dd960 100644 --- a/test-plan.md +++ b/test-plan.md @@ -475,17 +475,6 @@ Changing this option should result in a notification message at the bottom right * if the option is not set, the OmniSharp log should indicate that the registered MSBuild instance is either the Standalone MSBuild, a Visual Studio MSBuild instance, or a Mono MSBuild isntance. * if the option is set, the OmniSharp log should inlcude text like the following "OmniSharp server started with .NET 6.0.100" and "Registered MSBuild instance: .NET Core SDK 6.0.100 17.0.0 - "/usr/local/share/dotnet/sdk/6.0.100/". All language services should continue to work as expected when an SDK-style project is open. - #### omnisharp.useGlobalMono (for Linux/Mac) - This option can be set to any of the following values: - * "auto" - Will launch OmniSharp using mono if version>=5.2.0 is installed but will launch using the run script if that is not so. - * "always" - Will launch OmniSharp using mono if version>=5.2.0 is installed and will throw an error otherwise. - * "never" - Launches OmniSharp without using the global mono - - The value of OmniSharp path displayed in the OmniSharp log can be used to know if OmniSharp has launched using mono or not. If it is running using global mono, the path will end with "OmniSharp.exe" else the path will end with "run". - For using this option, mono version greater than or equal to 5.2.0 must be installed. If that is not so, setting this option to true, should give an error. - * If the option is not set, the OmniSharp path displayed in the "OmniSharp Log" should end with "run" - * If the option is set, the OmniSharp path as mentioned above should end with "OmniSharp.exe" - #### omnisharp.path Setting this path to any of the values as listed below, should start the OmniSharp server and display the correct OmniSharp path in the `OmniSharp Log`(View --> Output--> OmniSharp Log). * undefined - OmniSharp server must start using the copy of omnisharp shipped with the extension, that is, the OmniSharp path must be the extension path, followed by .omnisharp followed by the default omnisharp version as present in the package.json and the platform-specific executable. diff --git a/test/unitTests/Fakes/FakeMonoResolver.ts b/test/unitTests/Fakes/FakeMonoResolver.ts index 74dd14389..adb75f390 100644 --- a/test/unitTests/Fakes/FakeMonoResolver.ts +++ b/test/unitTests/Fakes/FakeMonoResolver.ts @@ -13,14 +13,14 @@ export const fakeMonoInfo: HostExecutableInformation = { }; export class FakeMonoResolver implements IHostExecutableResolver { - public getGlobalMonoCalled: boolean; + public getMonoCalled: boolean; constructor(public willReturnMonoInfo = true) { - this.getGlobalMonoCalled = false; + this.getMonoCalled = false; } async getHostExecutableInfo(): Promise { - this.getGlobalMonoCalled = true; + this.getMonoCalled = true; if (this.willReturnMonoInfo) { return Promise.resolve(fakeMonoInfo); } diff --git a/test/unitTests/Fakes/FakeOptions.ts b/test/unitTests/Fakes/FakeOptions.ts index f4b940a90..222ce14d0 100644 --- a/test/unitTests/Fakes/FakeOptions.ts +++ b/test/unitTests/Fakes/FakeOptions.ts @@ -9,7 +9,6 @@ export function getEmptyOptions(): Options { return new Options( /* path */"", /* useModernNet */false, - /* useGlobalMono */"", /* waitForDebugger */false, /* loggingLevel */"", /* autoStart */false, diff --git a/test/unitTests/OptionObserver/OptionChangeObserver.test.ts b/test/unitTests/OptionObserver/OptionChangeObserver.test.ts index 9e6e15ee2..acf49774f 100644 --- a/test/unitTests/OptionObserver/OptionChangeObserver.test.ts +++ b/test/unitTests/OptionObserver/OptionChangeObserver.test.ts @@ -39,7 +39,7 @@ suite("OmniSharpConfigChangeObserver", () => { { config: "omnisharp", section: "path", value: "somePath" }, { config: "omnisharp", section: "waitForDebugger", value: true }, { config: "omnisharp", section: "enableMsBuildLoadProjectsOnDemand", value: true }, - { config: "omnisharp", section: "useGlobalMono", value: "always" }, + { config: "omnisharp", section: "useModernNet", value: true }, { config: "omnisharp", section: 'loggingLevel', value: 'verbose' } ].forEach(elem => { suite(`When the ${elem.config} ${elem.section} changes`, () => { diff --git a/test/unitTests/features/reportIssue.test.ts b/test/unitTests/features/reportIssue.test.ts index f1f4fce9c..c87b7bea3 100644 --- a/test/unitTests/features/reportIssue.test.ts +++ b/test/unitTests/features/reportIssue.test.ts @@ -100,25 +100,18 @@ suite(`${reportIssue.name}`, () => { test("mono information is obtained when it is a valid mono platform", async () => { await reportIssue(vscode, eventStream, getDotnetInfo, isValidForMono, options, fakeMonoResolver); - expect(fakeMonoResolver.getGlobalMonoCalled).to.be.equal(true); + expect(fakeMonoResolver.getMonoCalled).to.be.equal(true); }); - test("mono version is put in the body when shouldUseGlobalMono returns a monoInfo", async () => { + test("mono version is put in the body when it is a valid mono platform", async () => { await reportIssue(vscode, eventStream, getDotnetInfo, isValidForMono, options, fakeMonoResolver); - expect(fakeMonoResolver.getGlobalMonoCalled).to.be.equal(true); + expect(fakeMonoResolver.getMonoCalled).to.be.equal(true); expect(issueBody).to.contain(fakeMonoInfo.version); }); - test("built-in mono usage message is put in the body when shouldUseGlobalMono returns a null", async () => { - fakeMonoResolver = new FakeMonoResolver(false); - await reportIssue(vscode, eventStream, getDotnetInfo, isValidForMono, options, fakeMonoResolver); - expect(fakeMonoResolver.getGlobalMonoCalled).to.be.equal(true); - expect(issueBody).to.contain(`OmniSharp using built-in mono`); - }); - test("mono information is not obtained when it is not a valid mono platform", async () => { await reportIssue(vscode, eventStream, getDotnetInfo, false, options, fakeMonoResolver); - expect(fakeMonoResolver.getGlobalMonoCalled).to.be.equal(false); + expect(fakeMonoResolver.getMonoCalled).to.be.equal(false); }); test("The url contains the name, publisher and version for all the extensions that are not builtin", async () => { diff --git a/test/unitTests/omnisharp/OmniSharpMonoResolver.test.ts b/test/unitTests/omnisharp/OmniSharpMonoResolver.test.ts index 806087b41..3f15ccb17 100644 --- a/test/unitTests/omnisharp/OmniSharpMonoResolver.test.ts +++ b/test/unitTests/omnisharp/OmniSharpMonoResolver.test.ts @@ -14,7 +14,6 @@ chaiUse(require('chai-as-promised')); suite(`${OmniSharpMonoResolver.name}`, () => { let getMonoCalled: boolean; - let environment: NodeJS.ProcessEnv; let options: Options; const monoPath = "monoPath"; @@ -23,12 +22,8 @@ suite(`${OmniSharpMonoResolver.name}`, () => { const requiredMonoVersion = "6.4.0"; const higherMonoVersion = "6.6.0"; - // Sets the meaning of UseGlobalMono "auto". When false, "auto" means "never". - const autoMeansAlways = false; - const getMono = (version: string) => async (env: NodeJS.ProcessEnv) => { getMonoCalled = true; - environment = env; return Promise.resolve(version); }; @@ -37,122 +32,35 @@ suite(`${OmniSharpMonoResolver.name}`, () => { options = getEmptyOptions(); }); - test(`it returns undefined if the version is less than ${requiredMonoVersion} and useGlobalMono is auto`, async () => { - let monoResolver = new OmniSharpMonoResolver(getMono(lowerMonoVersion)); - let monoInfo = await monoResolver.getHostExecutableInfo({ - ...options, - useGlobalMono: "auto", - monoPath: monoPath - }); - expect(monoInfo).to.be.undefined; - }); - - test("it returns undefined if useGlobalMono is never", async () => { + test(`it returns the path and version if the version is greater than or equal to ${requiredMonoVersion}`, async () => { let monoResolver = new OmniSharpMonoResolver(getMono(higherMonoVersion)); let monoInfo = await monoResolver.getHostExecutableInfo({ ...options, - useGlobalMono: "never", monoPath: monoPath }); - expect(monoInfo).to.be.undefined; - }); - test(`it returns the path and version if the version is greater than or equal to ${requiredMonoVersion} and useGlobalMono is always`, async () => { - let monoResolver = new OmniSharpMonoResolver(getMono(requiredMonoVersion)); - let monoInfo = await monoResolver.getHostExecutableInfo({ - ...options, - useGlobalMono: "always", - monoPath: monoPath - }); - - expect(monoInfo.version).to.be.equal(requiredMonoVersion); + expect(monoInfo.version).to.be.equal(higherMonoVersion); expect(monoInfo.path).to.be.equal(monoPath); }); - test(`it returns the path and version if the version is greater than or equal to ${requiredMonoVersion} and useGlobalMono is auto`, async () => { - let monoResolver = new OmniSharpMonoResolver(getMono(higherMonoVersion)); - let monoInfo = await monoResolver.getHostExecutableInfo({ - ...options, - useGlobalMono: "auto", - monoPath: monoPath - }); - - if (!autoMeansAlways) { - expect(monoInfo).to.be.undefined; - } - else { - expect(monoInfo.version).to.be.equal(higherMonoVersion); - expect(monoInfo.path).to.be.equal(monoPath); - } - }); - - test(`it throws exception if getGlobalMonoInfo is always and version<${requiredMonoVersion}`, async () => { + test(`it throws exception if version is less than ${requiredMonoVersion}`, async () => { let monoResolver = new OmniSharpMonoResolver(getMono(lowerMonoVersion)); await expect(monoResolver.getHostExecutableInfo({ ...options, - useGlobalMono: "always", monoPath: monoPath })).to.be.rejected; }); - test("sets the environment with the monoPath id useGlobalMono is auto", async () => { + test("sets the environment with the monoPath", async () => { let monoResolver = new OmniSharpMonoResolver(getMono(requiredMonoVersion)); let monoInfo = await monoResolver.getHostExecutableInfo({ ...options, - useGlobalMono: "auto", - monoPath: monoPath - }); - - if (!autoMeansAlways) { - expect(monoInfo).to.be.undefined; - } - else { - expect(monoInfo.env["PATH"]).to.contain(join(monoPath, 'bin')); - expect(monoInfo.env["MONO_GAC_PREFIX"]).to.be.equal(monoPath); - } - }); - - test("sets the environment with the monoPath id useGlobalMono is auto", async () => { - let monoResolver = new OmniSharpMonoResolver(getMono(requiredMonoVersion)); - let monoInfo = await monoResolver.getHostExecutableInfo({ - ...options, - useGlobalMono: "auto", - monoPath: monoPath - }); - - if (!autoMeansAlways) { - expect(monoInfo).to.be.undefined; - } - else { - expect(monoInfo.env["PATH"]).to.contain(join(monoPath, 'bin')); - expect(monoInfo.env["MONO_GAC_PREFIX"]).to.be.equal(monoPath); - } - }); - - test("doesn't set the environment with the monoPath if useGlobalMono is never", async () => { - let monoResolver = new OmniSharpMonoResolver(getMono(requiredMonoVersion)); - await monoResolver.getHostExecutableInfo({ - ...options, - useGlobalMono: "never", - monoPath: monoPath - }); - - expect(getMonoCalled).to.be.equal(true); - expect(environment["PATH"] || "").to.not.contain(join(monoPath, 'bin')); - expect(environment["MONO_GAC_PREFIX"]).to.be.undefined; - }); - - test("getMono is called with the environment that includes the monoPath if the useGlobalMono is auto or always", async () => { - let monoResolver = new OmniSharpMonoResolver(getMono(requiredMonoVersion)); - await monoResolver.getHostExecutableInfo({ - ...options, - useGlobalMono: "auto", monoPath: monoPath }); expect(getMonoCalled).to.be.equal(true); - expect(environment["PATH"]).to.contain(join(monoPath, 'bin')); - expect(environment["MONO_GAC_PREFIX"]).to.be.equal(monoPath); + expect(monoInfo.env["PATH"]).to.contain(join(monoPath, 'bin')); + expect(monoInfo.env["MONO_GAC_PREFIX"]).to.be.equal(monoPath); }); }); diff --git a/test/unitTests/optionStream.test.ts b/test/unitTests/optionStream.test.ts index df53949c5..e9807b7de 100644 --- a/test/unitTests/optionStream.test.ts +++ b/test/unitTests/optionStream.test.ts @@ -37,7 +37,6 @@ suite('OptionStream', () => { test('Returns the default options if there is no change', () => { expect(options.path).to.be.null; - options.useGlobalMono.should.equal("auto"); options.waitForDebugger.should.equal(false); options.loggingLevel.should.equal("information"); options.autoStart.should.equal(true); diff --git a/test/unitTests/options.test.ts b/test/unitTests/options.test.ts index 357a27211..723565f1c 100644 --- a/test/unitTests/options.test.ts +++ b/test/unitTests/options.test.ts @@ -14,7 +14,6 @@ suite("Options tests", () => { const vscode = getVSCodeWithConfig(); const options = Options.Read(vscode); expect(options.path).to.be.null; - options.useGlobalMono.should.equal("auto"); expect(options.monoPath).to.be.undefined; options.waitForDebugger.should.equal(false); options.loggingLevel.should.equal("information"); @@ -82,42 +81,6 @@ suite("Options tests", () => { options.loggingLevel.should.equal("debug"); }); - test('BACK-COMPAT: "omnisharp.useMono": true == "omnisharp.useGlobalMono": "always"', () => { - const vscode = getVSCodeWithConfig(); - updateConfig(vscode, 'omnisharp', 'useMono', true); - - const options = Options.Read(vscode); - - options.useGlobalMono.should.equal("always"); - }); - - test('BACK-COMPAT: "omnisharp.useMono": false == "omnisharp.useGlobalMono": "auto"', () => { - const vscode = getVSCodeWithConfig(); - updateConfig(vscode, 'omnisharp', 'useMono', false); - - const options = Options.Read(vscode); - - options.useGlobalMono.should.equal("auto"); - }); - - test('BACK-COMPAT: "csharp.omnisharpUsesMono": true == "omnisharp.useGlobalMono": "always"', () => { - const vscode = getVSCodeWithConfig(); - updateConfig(vscode, 'csharp', 'omnisharpUsesMono', true); - - const options = Options.Read(vscode); - - options.useGlobalMono.should.equal("always"); - }); - - test('BACK-COMPAT: "csharp.omnisharpUsesMono": false == "omnisharp.useGlobalMono": "auto"', () => { - const vscode = getVSCodeWithConfig(); - updateConfig(vscode, 'csharp', 'omnisharpUsesMono', false); - - const options = Options.Read(vscode); - - options.useGlobalMono.should.equal("auto"); - }); - test('BACK-COMPAT: "csharp.omnisharp" is used if it is set and "omnisharp.path" is not', () => { const vscode = getVSCodeWithConfig(); updateConfig(vscode, 'csharp', 'omnisharp', 'OldPath'); From fb85899758af0987fb519f2047cb8fb7232ac74e Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Tue, 17 May 2022 11:58:18 -0700 Subject: [PATCH 02/12] Do not hardcode a VSC version to use during integrationTests --- test/runIntegrationTests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/runIntegrationTests.ts b/test/runIntegrationTests.ts index 3bdd3ddc6..1257cea72 100644 --- a/test/runIntegrationTests.ts +++ b/test/runIntegrationTests.ts @@ -44,7 +44,7 @@ async function main() { } // Download VS Code, unzip it and run the integration test - await runTests({ version: "1.65.0", extensionDevelopmentPath, extensionTestsPath, launchArgs: [workspacePath, '-n', '--verbose'], extensionTestsEnv: process.env }); + await runTests({ extensionDevelopmentPath, extensionTestsPath, launchArgs: [workspacePath, '-n', '--verbose'], extensionTestsEnv: process.env }); } catch (err) { console.error(err); console.error('Failed to run tests'); From 97702a6c8b433e2a578ab81457f3ce493f949823 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Tue, 17 May 2022 11:58:50 -0700 Subject: [PATCH 03/12] Do not hardcode a VSC version to use during feature tests --- test/runFeatureTests.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/runFeatureTests.ts b/test/runFeatureTests.ts index bbc364717..cd552660f 100644 --- a/test/runFeatureTests.ts +++ b/test/runFeatureTests.ts @@ -18,7 +18,7 @@ async function main() { const extensionTestsPath = path.resolve(__dirname, './featureTests/index'); // Download VS Code, unzip it and run the integration test - await runTests({ version: "1.65.0", extensionDevelopmentPath, extensionTestsPath, launchArgs: ['-n', '--verbose'] }); + await runTests({ extensionDevelopmentPath, extensionTestsPath, launchArgs: ['-n', '--verbose'] }); } catch (err) { console.error(err); console.error('Failed to run tests'); @@ -26,4 +26,4 @@ async function main() { } } -main(); \ No newline at end of file +main(); From 9b08cb100d939cf5cd1b3d9c35da1c167c54aecd Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Tue, 17 May 2022 12:13:47 -0700 Subject: [PATCH 04/12] Properly default useModernNet option --- src/omnisharp/options.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/omnisharp/options.ts b/src/omnisharp/options.ts index f0999b967..06cf0e478 100644 --- a/src/omnisharp/options.ts +++ b/src/omnisharp/options.ts @@ -67,7 +67,7 @@ export class Options { const razorConfig = vscode.workspace.getConfiguration('razor'); const path = Options.readPathOption(csharpConfig, omnisharpConfig); - const useModernNet = omnisharpConfig.get("useModernNet", false); + const useModernNet = omnisharpConfig.get("useModernNet", true); // VS Code coerces unset string settings to the empty string. // Thus, to avoid dealing with the empty string AND undefined, @@ -92,7 +92,7 @@ export class Options { const useEditorFormattingSettings = omnisharpConfig.get('useEditorFormattingSettings', true); const enableRoslynAnalyzers = omnisharpConfig.get('enableRoslynAnalyzers', false); - const enableEditorConfigSupport = omnisharpConfig.get('enableEditorConfigSupport', false); + const enableEditorConfigSupport = omnisharpConfig.get('enableEditorConfigSupport', true); const enableDecompilationSupport = omnisharpConfig.get('enableDecompilationSupport', false); const enableImportCompletion = omnisharpConfig.get('enableImportCompletion', false); const enableAsyncCompletion = omnisharpConfig.get('enableAsyncCompletion', false); @@ -105,7 +105,7 @@ export class Options { const showTestsCodeLens = csharpConfig.get('testsCodeLens.enabled', true); const filteredSymbolsCodeLens = csharpConfig.get('referencesCodeLens.filteredSymbols', []); - const useSemanticHighlighting = csharpConfig.get('semanticHighlighting.enabled', false); + const useSemanticHighlighting = csharpConfig.get('semanticHighlighting.enabled', true); const inlayHintsEnableForParameters = csharpConfig.get('inlayHints.parameters.enabled', false); const inlayHintsForLiteralParameters = csharpConfig.get('inlayHints.parameters.forLiteralParameters', false); From 64049b69c4ddfa25173fa668745070961ea981b2 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Tue, 17 May 2022 12:27:20 -0700 Subject: [PATCH 05/12] Update Unit tests --- test/unitTests/OptionObserver/OptionChangeObserver.test.ts | 2 +- test/unitTests/optionStream.test.ts | 2 +- test/unitTests/options.test.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/unitTests/OptionObserver/OptionChangeObserver.test.ts b/test/unitTests/OptionObserver/OptionChangeObserver.test.ts index acf49774f..b7e9ea9e7 100644 --- a/test/unitTests/OptionObserver/OptionChangeObserver.test.ts +++ b/test/unitTests/OptionObserver/OptionChangeObserver.test.ts @@ -39,7 +39,7 @@ suite("OmniSharpConfigChangeObserver", () => { { config: "omnisharp", section: "path", value: "somePath" }, { config: "omnisharp", section: "waitForDebugger", value: true }, { config: "omnisharp", section: "enableMsBuildLoadProjectsOnDemand", value: true }, - { config: "omnisharp", section: "useModernNet", value: true }, + { config: "omnisharp", section: "useModernNet", value: false }, { config: "omnisharp", section: 'loggingLevel', value: 'verbose' } ].forEach(elem => { suite(`When the ${elem.config} ${elem.section} changes`, () => { diff --git a/test/unitTests/optionStream.test.ts b/test/unitTests/optionStream.test.ts index 46eef2d91..9b91b8d24 100644 --- a/test/unitTests/optionStream.test.ts +++ b/test/unitTests/optionStream.test.ts @@ -51,7 +51,7 @@ suite('OptionStream', () => { options.maxFindSymbolsItems.should.equal(1000); options.enableMsBuildLoadProjectsOnDemand.should.equal(false); options.enableRoslynAnalyzers.should.equal(false); - options.enableEditorConfigSupport.should.equal(false); + options.enableEditorConfigSupport.should.equal(true); options.enableDecompilationSupport.should.equal(false); options.enableImportCompletion.should.equal(false); options.enableAsyncCompletion.should.equal(false); diff --git a/test/unitTests/options.test.ts b/test/unitTests/options.test.ts index 34ef57aea..611363ebd 100644 --- a/test/unitTests/options.test.ts +++ b/test/unitTests/options.test.ts @@ -30,7 +30,7 @@ suite("Options tests", () => { options.maxFindSymbolsItems.should.equal(1000); options.enableMsBuildLoadProjectsOnDemand.should.equal(false); options.enableRoslynAnalyzers.should.equal(false); - options.enableEditorConfigSupport.should.equal(false); + options.enableEditorConfigSupport.should.equal(true); options.enableDecompilationSupport.should.equal(false); options.enableImportCompletion.should.equal(false); options.analyzeOpenDocumentsOnly.should.equal(false); From c6f5b3e3ecb037777c80e5c5f0acffb49e11f4eb Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Tue, 17 May 2022 14:07:29 -0700 Subject: [PATCH 06/12] Move to new testing npm package --- package-lock.json | 110 +- package.json | 8074 +++++++++++----------- src/observers/OmnisharpLoggerObserver.ts | 2 +- test/runFeatureTests.ts | 3 +- test/runIntegrationTests.ts | 3 +- 5 files changed, 4097 insertions(+), 4095 deletions(-) diff --git a/package-lock.json b/package-lock.json index e3626570f..2c708ca95 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,6 +48,7 @@ "@types/unzipper": "^0.9.1", "@types/vscode": "1.65.0", "@types/yauzl": "2.9.1", + "@vscode/test-electron": "2.1.3", "archiver": "5.3.0", "chai": "4.3.4", "chai-arrays": "2.2.0", @@ -72,7 +73,6 @@ "typescript": "4.2.4", "unzipper": "0.10.11", "vsce": "1.100.2", - "vscode-test": "1.6.1", "webpack": "5.34.0", "webpack-cli": "4.6.0" }, @@ -351,6 +351,36 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "node_modules/@vscode/test-electron": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.1.3.tgz", + "integrity": "sha512-ps/yJ/9ToUZtR1dHfWi1mDXtep1VoyyrmGKC3UnIbScToRQvbUjyy1VMqnMEW3EpMmC3g7+pyThIPtPyCLHyow==", + "dev": true, + "dependencies": { + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "rimraf": "^3.0.2", + "unzipper": "^0.10.11" + }, + "engines": { + "node": ">=8.9.3" + } + }, + "node_modules/@vscode/test-electron/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", @@ -8782,38 +8812,6 @@ "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.0.tgz", "integrity": "sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==" }, - "node_modules/vscode-test": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.6.1.tgz", - "integrity": "sha512-086q88T2ca1k95mUzffvbzb7esqQNvJgiwY4h29ukPhFo8u+vXOOmelUoU5EQUHs3Of8+JuQ3oGdbVCqaxuTXA==", - "deprecated": "This package has been renamed to @vscode/test-electron, please update to the new name", - "dev": true, - "license": "MIT", - "dependencies": { - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "rimraf": "^3.0.2", - "unzipper": "^0.10.11" - }, - "engines": { - "node": ">=8.9.3" - } - }, - "node_modules/vscode-test/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/vscode-uri": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.8.tgz", @@ -9634,6 +9632,29 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "@vscode/test-electron": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.1.3.tgz", + "integrity": "sha512-ps/yJ/9ToUZtR1dHfWi1mDXtep1VoyyrmGKC3UnIbScToRQvbUjyy1VMqnMEW3EpMmC3g7+pyThIPtPyCLHyow==", + "dev": true, + "requires": { + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "rimraf": "^3.0.2", + "unzipper": "^0.10.11" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, "@webassemblyjs/ast": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", @@ -16360,29 +16381,6 @@ "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.0.tgz", "integrity": "sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==" }, - "vscode-test": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.6.1.tgz", - "integrity": "sha512-086q88T2ca1k95mUzffvbzb7esqQNvJgiwY4h29ukPhFo8u+vXOOmelUoU5EQUHs3Of8+JuQ3oGdbVCqaxuTXA==", - "dev": true, - "requires": { - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "rimraf": "^3.0.2", - "unzipper": "^0.10.11" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, "vscode-uri": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.8.tgz", diff --git a/package.json b/package.json index 2a98df471..9152935d2 100644 --- a/package.json +++ b/package.json @@ -1,4036 +1,4042 @@ { - "name": "csharp", - "publisher": "ms-dotnettools", - "version": "1.24.5", - "description": "C# for Visual Studio Code (powered by OmniSharp).", - "displayName": "C#", - "author": "Microsoft Corporation", - "license": "SEE LICENSE IN RuntimeLicenses/license.txt", - "icon": "images/csharpIcon.png", - "preview": false, - "bugs": { - "url": "https://github.com/OmniSharp/omnisharp-vscode/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/OmniSharp/omnisharp-vscode.git" - }, - "categories": [ - "Debuggers", - "Programming Languages", - "Linters", - "Snippets" - ], - "keywords": [ - "multi-root ready", - ".NET", - "ASP.NET", - ".NET Core", - "dotnet" - ], - "capabilities": { - "virtualWorkspaces": false, - "untrustedWorkspaces": { - "supported": false - } - }, - "defaults": { - "omniSharp": "1.38.2", - "razor": "6.0.0-preview.5.21358.6" - }, - "main": "./dist/extension", - "scripts": { - "vscode:prepublish": "tsc -p ./ && webpack --mode production", - "compile": "tsc -p ./ && gulp tslint", - "compileDev": "tsc -p ./ && gulp tslint && webpack --mode development", - "watch": "tsc -watch -p ./", - "tdd": "mocha --config ./.mocharc.jsonc --watch --watch-extensions ts test/unitTests/**/*.test.ts*", - "test": "tsc -p ./ && gulp test", - "test:unit": "tsc -p ./ && gulp test:unit", - "test:feature": "tsc -p ./ && gulp test:feature", - "test:integration": "tsc -p ./ && gulp test:integration", - "test:integration:singleCsproj": "tsc -p ./ && gulp test:integration:singleCsproj", - "test:integration:slnWithCsproj": "tsc -p ./ && gulp test:integration:slnWithCsproj", - "test:integration:slnFilterWithCsproj": "tsc -p ./ && gulp test:integration:slnFilterWithCsproj", - "test:release": "mocha --config ./.mocharc.jsonc test/releaseTests/**/*.test.ts", - "test:artifacts": "mocha --config ./.mocharc.jsonc test/artifactTests/**/*.test.ts", - "unpackage:vsix": "gulp vsix:release:unpackage", - "gulp": "gulp" - }, - "dependencies": { - "@types/cross-spawn": "^6.0.2", - "async-file": "2.0.2", - "cross-spawn": "^6.0.5", - "fs-extra": "9.1.0", - "http-proxy-agent": "4.0.1", - "https-proxy-agent": "5.0.0", - "jsonc-parser": "3.0.0", - "microsoft.aspnetcore.razor.vscode": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/0ab4b9b270542715d9ffa7ee05c809fb/microsoft.aspnetcore.razor.vscode-6.0.0-preview.5.21358.6.tgz", - "node-machine-id": "1.1.12", - "request-light": "0.4.0", - "rxjs": "6.6.7", - "semver": "5.6.0", - "stream": "0.0.2", - "strip-bom": "5.0.0", - "strip-bom-buf": "2.0.0", - "tmp": "0.0.33", - "vscode-debugprotocol": "1.33.0", - "vscode-extension-telemetry": "0.1.6", - "vscode-languageserver-protocol": "3.16.0", - "vscode-nls": "5.0.0", - "yauzl": "2.10.0" - }, - "devDependencies": { - "@types/archiver": "5.1.0", - "@types/chai": "4.2.16", - "@types/chai-arrays": "2.0.0", - "@types/chai-as-promised": "7.1.3", - "@types/chai-string": "1.4.2", - "@types/del": "3.0.1", - "@types/fs-extra": "5.0.4", - "@types/gulp": "4.0.5", - "@types/minimist": "1.2.1", - "@types/mocha": "5.2.5", - "@types/node": "10.12.24", - "@types/semver": "5.5.0", - "@types/tmp": "0.0.33", - "@types/unzipper": "^0.9.1", - "@types/vscode": "1.65.0", - "@types/yauzl": "2.9.1", - "archiver": "5.3.0", - "chai": "4.3.4", - "chai-arrays": "2.2.0", - "chai-as-promised": "7.1.1", - "chai-fs": "2.0.0", - "chai-string": "1.5.0", - "del": "3.0.0", - "find-versions": "4.0.0", - "get-port": "5.1.1", - "glob-promise": "4.1.0", - "gulp": "4.0.2", - "gulp-tslint": "8.1.4", - "mocha": "8.3.2", - "mock-fs": "4.13.0", - "mock-http-server": "1.4.2", - "npm-run-all": "4.1.5", - "ts-loader": "9.0.0", - "ts-node": "9.1.1", - "tslint": "5.12.1", - "tslint-microsoft-contrib": "6.0.0", - "tslint-no-unused-expression-chai": "0.1.4", - "typescript": "4.2.4", - "unzipper": "0.10.11", - "vsce": "1.100.2", - "vscode-test": "1.6.1", - "webpack": "5.34.0", - "webpack-cli": "4.6.0" - }, - "runtimeDependencies": [ - { - "id": "OmniSharp", - "description": "OmniSharp for Windows (.NET 4.7.2 / x86)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x86-1.38.2.zip", - "installPath": ".omnisharp/1.38.2", - "platforms": [ - "win32" - ], - "architectures": [ - "x86" - ], - "installTestPath": "./.omnisharp/1.38.2/OmniSharp.exe", - "platformId": "win-x86", - "isFramework": true, - "integrity": "B2E414B2A7155B2A484DB182B69223B0AEF9EB1F8E1CB6155C6C5E9D07A78CF8" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Windows (.NET 6 / x86)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x86-net6.0-1.38.2.zip", - "installPath": ".omnisharp/1.38.2-net6.0", - "platforms": [ - "win32" - ], - "architectures": [ - "x86" - ], - "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", - "platformId": "win-x86", - "isFramework": false, - "integrity": "EAA8D28669049E68E458CC7224C2B9069F575CEA51B8B36D4F4D51C7532D0419" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Windows (.NET 4.7.2 / x64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x64-1.38.2.zip", - "installPath": ".omnisharp/1.38.2", - "platforms": [ - "win32" - ], - "architectures": [ - "x86_64" - ], - "installTestPath": "./.omnisharp/1.38.2/OmniSharp.exe", - "platformId": "win-x64", - "isFramework": true, - "integrity": "1F94980CA0FAB7B6AE17195FBB9FC0A677EA4BB96A376CF68B32A0D59650522D" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Windows (.NET 6 / x64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x64-net6.0-1.38.2.zip", - "installPath": ".omnisharp/1.38.2-net6.0", - "platforms": [ - "win32" - ], - "architectures": [ - "x86_64" - ], - "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", - "platformId": "win-x64", - "isFramework": false, - "integrity": "88B82CC9D7D1E8757F3DE457833FE29BACCEA35EE16C8790513BF0129316ECC4" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Windows (.NET 4.7.2 / arm64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-arm64-1.38.2.zip", - "installPath": ".omnisharp/1.38.2", - "platforms": [ - "win32" - ], - "architectures": [ - "arm64" - ], - "installTestPath": "./.omnisharp/1.38.2/OmniSharp.exe", - "platformId": "win-arm64", - "isFramework": true, - "integrity": "ECA2B07CBAEACF1D1E755ECCAF57459F0DD36A30C176251D18146440A0852E9B" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Windows (.NET 6 / arm64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-arm64-net6.0-1.38.2.zip", - "installPath": ".omnisharp/1.38.2-net6.0", - "platforms": [ - "win32" - ], - "architectures": [ - "arm64" - ], - "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", - "platformId": "win-arm64", - "isFramework": false, - "integrity": "ACAEA0B0EDD5ABDC23196AC7C4C928005C6FF97D829CA96515842C87C30C27AE" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for OSX (Mono / x64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-osx-1.38.2.zip", - "installPath": ".omnisharp/1.38.2", - "platforms": [ - "darwin" - ], - "binaries": [ - "./mono.osx", - "./run" - ], - "installTestPath": "./.omnisharp/1.38.2/run", - "platformId": "osx", - "isFramework": true, - "integrity": "9C934684359FC1488803075B549D9B57F8E41129B61C344DA7CF202C4918FEB6" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for OSX (.NET 6 / x64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-osx-x64-net6.0-1.38.2.zip", - "installPath": ".omnisharp/1.38.2-net6.0", - "platforms": [ - "darwin" - ], - "architectures": [ - "x86_64" - ], - "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", - "platformId": "osx-x64", - "isFramework": false, - "integrity": "F32B94A4601E532C7380AEBE9498B20793EDC538671BFF516C2EED4CBAE84DAF" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for OSX (.NET 6 / arm64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-osx-arm64-net6.0-1.38.2.zip", - "installPath": ".omnisharp/1.38.2-net6.0", - "platforms": [ - "darwin" - ], - "architectures": [ - "arm64" - ], - "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", - "platformId": "osx-arm64", - "isFramework": false, - "integrity": "58BA4910DFE978B5D873BAA062123C0FEDEB2E89A685F22825355C54E9BF7D90" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Linux (Mono / x86)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-x86-1.38.2.zip", - "installPath": ".omnisharp/1.38.2", - "platforms": [ - "linux" - ], - "architectures": [ - "x86", - "i686" - ], - "binaries": [ - "./mono.linux-x86", - "./run" - ], - "installTestPath": "./.omnisharp/1.38.2/run", - "platformId": "linux-x86", - "isFramework": true, - "integrity": "3F230B3C6DB0D48B5E4D51C45BB52F6B568AD1CC8CEEA7D50128123C17A77CD1" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Linux (Mono / x64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-x64-1.38.2.zip", - "installPath": ".omnisharp/1.38.2", - "platforms": [ - "linux" - ], - "architectures": [ - "x86_64" - ], - "binaries": [ - "./mono.linux-x86_64", - "./run" - ], - "installTestPath": "./.omnisharp/1.38.2/run", - "platformId": "linux-x64", - "isFramework": true, - "integrity": "F29A5E1E2A8EAAED8DF8AD37F838453986B8650E453EFCE56506AD8CC132EBE1" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Linux (.NET 6 / x64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-x64-net6.0-1.38.2.zip", - "installPath": ".omnisharp/1.38.2-net6.0", - "platforms": [ - "linux" - ], - "architectures": [ - "x86_64" - ], - "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", - "platformId": "linux-x64", - "isFramework": false, - "integrity": "1F778F40FB54C4B11CB6CDFAB30266DAF2F327133685576BC8BD9D6EF2439C1F" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Linux (Framework / arm64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-arm64-1.38.2.zip", - "installPath": ".omnisharp/1.38.2", - "platforms": [ - "linux" - ], - "architectures": [ - "arm64" - ], - "binaries": [ - "./mono.linux-arm64", - "./run" - ], - "installTestPath": "./.omnisharp/1.38.2/run", - "platformId": "linux-arm64", - "isFramework": true, - "integrity": "156D92F6C9F8381BCEE2C6C77F92C4B79C5E33AC6E7F7F61935FABD75F7AAFBD" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Linux (.NET 6 / arm64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-arm64-net6.0-1.38.2.zip", - "installPath": ".omnisharp/1.38.2-net6.0", - "platforms": [ - "linux" - ], - "architectures": [ - "arm64" - ], - "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", - "platformId": "linux-arm64", - "isFramework": false, - "integrity": "28AB43CC4BDD3FFE805E44A723A80235E8150E055056E44A0D772AD7BECAB045" - }, - { - "id": "Debugger", - "description": ".NET Core Debugger (Windows / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-win7-x64.zip", - "installPath": ".debugger", - "platforms": [ - "win32" - ], - "architectures": [ - "x86_64" - ], - "installTestPath": "./.debugger/vsdbg-ui.exe", - "integrity": "07E9EAD8DC5B1F8A1B049E128B50AF5282637DBAFCDAED0E61245925B659FD15" - }, - { - "id": "Debugger", - "description": ".NET Core Debugger (Windows / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-win10-arm64.zip", - "installPath": ".debugger", - "platforms": [ - "win32" - ], - "architectures": [ - "arm64" - ], - "installTestPath": "./.debugger/vsdbg-ui.exe", - "integrity": "669BFDBBEBF4C9589BDD44C7E1A1055F7D7705BB315E7CA8809398FD784A4371" - }, - { - "id": "Debugger", - "description": ".NET Core Debugger (macOS / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-osx-x64.zip", - "installPath": ".debugger/x86_64", - "platforms": [ - "darwin" - ], - "architectures": [ - "x86_64", - "arm64" - ], - "binaries": [ - "./vsdbg-ui", - "./vsdbg" - ], - "installTestPath": "./.debugger/x86_64/vsdbg-ui", - "integrity": "287B1E27269A47DF8C11DC69613C0B0964969DD169CED3B33EF6F7934D5F5C14" - }, - { - "id": "Debugger", - "description": ".NET Core Debugger (macOS / arm64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-osx-arm64.zip", - "installPath": ".debugger/arm64", - "platforms": [ - "darwin" - ], - "architectures": [ - "arm64" - ], - "binaries": [ - "./vsdbg-ui", - "./vsdbg" - ], - "installTestPath": "./.debugger/arm64/vsdbg-ui", - "integrity": "ADFFF192A5B19C063E2B52408A168950E357E9C2AD0FCACBD143CBD9DBAF4941" - }, - { - "id": "Debugger", - "description": ".NET Core Debugger (linux / ARM)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-linux-arm.zip", - "installPath": ".debugger", - "platforms": [ - "linux" - ], - "architectures": [ - "arm" - ], - "binaries": [ - "./vsdbg-ui", - "./vsdbg" - ], - "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "F972B4EAAF64D03BC7D6CBE26FA8BE37AAAE23FC64BF62209FBF5768B364D55E" - }, - { - "id": "Debugger", - "description": ".NET Core Debugger (linux / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-linux-arm64.zip", - "installPath": ".debugger", - "platforms": [ - "linux" - ], - "architectures": [ - "arm64" - ], - "binaries": [ - "./vsdbg-ui", - "./vsdbg" - ], - "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "7C373A85A1FF85719E9446197FB9B9B58E8E02266D083C682C8AC70AE8B97F7E" - }, - { - "id": "Debugger", - "description": ".NET Core Debugger (linux / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-linux-x64.zip", - "installPath": ".debugger", - "platforms": [ - "linux" - ], - "architectures": [ - "x86_64" - ], - "binaries": [ - "./vsdbg-ui", - "./vsdbg" - ], - "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "4A116A96B99009DD59081CB0BD981E33C8FCA4C96F0CF2953B23591C692C7C26" - }, - { - "id": "Razor", - "description": "Razor Language Server (Windows / x64)", - "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/a654aaa3c8090ca1751d7f7646a7b000/razorlanguageserver-win-x64-6.0.0-preview.5.21358.6.zip", - "installPath": ".razor", - "platforms": [ - "win32" - ], - "architectures": [ - "x86_64" - ] - }, - { - "id": "Razor", - "description": "Razor Language Server (Windows / x86)", - "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/18e1cdfce3f4f074905cf0fd89f8d07f/razorlanguageserver-win-x86-6.0.0-preview.5.21358.6.zip", - "installPath": ".razor", - "platforms": [ - "win32" - ], - "architectures": [ - "x86", - "arm64" - ] - }, - { - "id": "Razor", - "description": "Razor Language Server (Linux / x64)", - "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/b846e9c7d7afdba54a72fae1dcb6c42c/razorlanguageserver-linux-x64-6.0.0-preview.5.21358.6.zip", - "installPath": ".razor", - "platforms": [ - "linux" - ], - "architectures": [ - "x86_64" - ], - "binaries": [ - "./rzls" - ] - }, - { - "id": "Razor", - "description": "Razor Language Server (macOS / x64)", - "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/ad846449769eb2ae810d0236823a6aaa/razorlanguageserver-osx-x64-6.0.0-preview.5.21358.6.zip", - "installPath": ".razor", - "platforms": [ - "darwin" - ], - "architectures": [ - "x86_64", - "arm64" - ], - "binaries": [ - "./rzls" - ] - } - ], - "engines": { - "vscode": "^1.65.0" - }, - "activationEvents": [ - "onDebugInitialConfigurations", - "onDebugResolve:blazorwasm", - "onDebugResolve:coreclr", - "onDebugResolve:clr", - "onLanguage:csharp", - "onLanguage:aspnetcorerazor", - "onCommand:o.restart", - "onCommand:o.pickProjectAndStart", - "onCommand:o.showOutput", - "onCommand:dotnet.restore.project", - "onCommand:dotnet.restore.all", - "onCommand:dotnet.generateAssets", - "onCommand:csharp.downloadDebugger", - "onCommand:csharp.listProcess", - "onCommand:csharp.listRemoteProcess", - "onCommand:csharp.listRemoteDockerProcess", - "onCommand:omnisharp.registerLanguageMiddleware", - "workspaceContains:project.json", - "workspaceContains:**/*.{csproj,sln,slnf,csx,cake}" - ], - "contributes": { - "themes": [ - { - "label": "Visual Studio 2019 Dark", - "uiTheme": "vs-dark", - "path": "./themes/vs2019_dark.json" - }, - { - "label": "Visual Studio 2019 Light", - "uiTheme": "vs", - "path": "./themes/vs2019_light.json" - } - ], - "configuration": { - "title": "C# configuration", - "properties": { - "csharp.format.enable": { - "type": "boolean", - "default": true, - "description": "Enable/disable default C# formatter (requires restart)." - }, - "csharp.suppressDotnetInstallWarning": { - "type": "boolean", - "default": false, - "description": "Suppress the warning that the .NET Core SDK is not on the path." - }, - "csharp.unitTestDebuggingOptions": { - "type": "object", - "description": "Options to use with the debugger when launching for unit test debugging. Any launch.json option is valid here.", - "default": {}, - "properties": { - "sourceFileMap": { - "type": "object", - "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", - "additionalProperties": { - "type": "string" - }, - "default": { - "": "" - } - }, - "justMyCode": { - "type": "boolean", - "description": "Optional flag to only show user code.", - "default": true - }, - "requireExactSource": { - "type": "boolean", - "description": "Optional flag to require current source code to match the pdb.", - "default": true - }, - "enableStepFiltering": { - "type": "boolean", - "description": "Optional flag to enable stepping over Properties and Operators.", - "default": true - }, - "logging": { - "description": "Optional flags to determine what types of messages should be logged to the output window.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "exceptions": { - "type": "boolean", - "description": "Optional flag to determine whether exception messages should be logged to the output window.", - "default": true - }, - "moduleLoad": { - "type": "boolean", - "description": "Optional flag to determine whether module load events should be logged to the output window.", - "default": true - }, - "programOutput": { - "type": "boolean", - "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", - "default": true - }, - "engineLogging": { - "type": "boolean", - "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", - "default": false - }, - "browserStdOut": { - "type": "boolean", - "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", - "default": true - }, - "elapsedTiming": { - "type": "boolean", - "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", - "default": false - }, - "threadExit": { - "type": "boolean", - "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", - "default": false - }, - "processExit": { - "type": "boolean", - "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", - "default": true - } - } - }, - "suppressJITOptimizations": { - "type": "boolean", - "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", - "default": false - }, - "symbolOptions": { - "description": "Options to control how symbols (.pdb files) are found and loaded.", - "default": { - "searchPaths": [], - "searchMicrosoftSymbolServer": false, - "searchNuGetOrgSymbolServer": false - }, - "type": "object", - "properties": { - "searchPaths": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of symbol server URLs (example: http\u200b://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", - "default": [] - }, - "searchMicrosoftSymbolServer": { - "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https\u200b://msdl.microsoft.com\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "searchNuGetOrgSymbolServer": { - "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https\u200b://symbols.nuget.org\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "cachePath": { - "type": "string", - "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", - "default": "~/.dotnet/symbolcache" - }, - "moduleFilter": { - "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", - "default": { - "mode": "loadAllButExcluded", - "excludedModules": [] - }, - "type": "object", - "required": [ - "mode" - ], - "properties": { - "mode": { - "type": "string", - "enum": [ - "loadAllButExcluded", - "loadOnlyIncluded" - ], - "enumDescriptions": [ - "Load symbols for all modules unless the module is in the 'excludedModules' array.", - "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." - ], - "description": "Controls which of the two basic operating modes the module filter operates in.", - "default": "loadAllButExcluded" - }, - "excludedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", - "default": [] - }, - "includedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": [ - "MyExampleModule.dll" - ] - }, - "includeSymbolsNextToModules": { - "type": "boolean", - "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": true - } - } - } - } - }, - "sourceLinkOptions": { - "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", - "default": { - "*": { - "enabled": true - } - }, - "type": "object", - "additionalItems": { - "type": "object", - "properties": { - "enabled": { - "title": "boolean", - "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", - "default": "true" - } - } - } - }, - "allowFastEvaluate": { - "type": "boolean", - "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", - "default": true - }, - "targetArchitecture": { - "type": "string", - "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." - }, - "type": { - "type": "string", - "enum": [ - "coreclr", - "clr" - ], - "description": "Type type of code to debug. Can be either 'coreclr' for .NET Core debugging, or 'clr' for Desktop .NET Framework. 'clr' only works on Windows as the Desktop framework is Windows-only.", - "default": "coreclr" - }, - "debugServer": { - "type": "number", - "description": "For debug extension development only: if a port is specified VS Code tries to connect to a debug adapter running in server mode", - "default": 4711 - } - } - }, - "csharp.suppressDotnetRestoreNotification": { - "type": "boolean", - "default": false, - "description": "Suppress the notification window to perform a 'dotnet restore' when dependencies can't be resolved." - }, - "csharp.suppressProjectJsonWarning": { - "type": "boolean", - "default": false, - "description": "Suppress the warning that project.json is no longer a supported project format for .NET Core applications" - }, - "csharp.suppressBuildAssetsNotification": { - "type": "boolean", - "default": false, - "description": "Suppress the notification window to add missing assets to build or debug the application." - }, - "csharp.suppressHiddenDiagnostics": { - "type": "boolean", - "default": true, - "description": "Suppress 'hidden' diagnostics (such as 'unnecessary using directives') from appearing in the editor or the Problems pane." - }, - "csharp.referencesCodeLens.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether the references CodeLens should be shown." - }, - "csharp.referencesCodeLens.filteredSymbols": { - "type": "array", - "items": { - "type": "string" - }, - "default": [], - "description": "Array of custom symbol names for which CodeLens should be disabled." - }, - "csharp.testsCodeLens.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether the run and debug test CodeLens should be shown." - }, - "csharp.maxProjectFileCountForDiagnosticAnalysis": { - "type": "number", - "default": 1000, - "description": "Specifies the maximum number of files for which diagnostics are reported for the whole workspace. If this limit is exceeded, diagnostics will be shown for currently opened files only. Specify 0 or less to disable the limit completely." - }, - "csharp.semanticHighlighting.enabled": { - "type": "boolean", - "default": true, - "description": "Enable/disable Semantic Highlighting for C# files (Razor files currently unsupported). Defaults to false. Close open files for changes to take effect.", - "scope": "window" - }, - "csharp.showOmnisharpLogOnError": { - "type": "boolean", - "default": true, - "description": "Shows the OmniSharp log in the Output pane when OmniSharp reports an error." - }, - "csharp.inlayHints.parameters.enabled": { - "type": "boolean", - "default": false, - "description": "Display inline parameter name hints" - }, - "csharp.inlayHints.parameters.forLiteralParameters": { - "type": "boolean", - "default": false, - "description": "Show hints for literals" - }, - "csharp.inlayHints.parameters.forObjectCreationParameters": { - "type": "boolean", - "default": false, - "description": "Show hints for 'new' expressions" - }, - "csharp.inlayHints.parameters.forIndexerParameters": { - "type": "boolean", - "default": false, - "description": "Show hints for indexers" - }, - "csharp.inlayHints.parameters.forOtherParameters": { - "type": "boolean", - "default": false, - "description": "Show hints for everything else" - }, - "csharp.inlayHints.parameters.suppressForParametersThatDifferOnlyBySuffix": { - "type": "boolean", - "default": false, - "description": "Suppress hints when parameter names differ only by suffix" - }, - "csharp.inlayHints.parameters.suppressForParametersThatMatchMethodIntent": { - "type": "boolean", - "default": false, - "description": "Suppress hints when parameter name matches the method's intent" - }, - "csharp.inlayHints.parameters.suppressForParametersThatMatchArgumentName": { - "type": "boolean", - "default": false, - "description": "Suppress hints when argument matches parameter name" - }, - "csharp.inlayHints.types.enabled": { - "type": "boolean", - "default": false, - "description": "Display inline type hints" - }, - "csharp.inlayHints.types.forImplicitVariableTypes": { - "type": "boolean", - "default": false, - "description": "Show hints for variables with inferred types" - }, - "csharp.inlayHints.types.forLambdaParameterTypes": { - "type": "boolean", - "default": false, - "description": "Show hints for lambda parameter types" - }, - "csharp.inlayHints.types.forImplicitObjectCreation": { - "type": "boolean", - "default": false, - "description": "Show hints for implicit object creation" - }, - "omnisharp.path": { - "type": "string", - "scope": "machine", - "description": "Specifies the path to OmniSharp. When left empty the OmniSharp version pinned to the C# Extension is used. This can be the absolute path to an OmniSharp executable, a specific version number, or \"latest\". If a version number or \"latest\" is specified, the appropriate version of OmniSharp will be downloaded on your behalf. Setting \"latest\" is an opt-in into latest beta releases of OmniSharp." - }, - "omnisharp.useModernNet": { - "type": "boolean", - "default": true, - "scope": "window", - "title": "Use .NET 6 build of OmniSharp", - "description": "Use OmniSharp build for .NET 6. This version _does not_ support non-SDK-style .NET Framework projects, including Unity. SDK-style Framework, .NET Core, and .NET 5+ projects should see significant performance improvements." - }, - "omnisharp.monoPath": { - "type": "string", - "scope": "machine", - "description": "Specifies the path to a mono installation to use when \"useModernNet\" is set to false, instead of the default system one. Example: \"/Library/Frameworks/Mono.framework/Versions/Current\"" - }, - "omnisharp.dotnetPath": { - "type": "string", - "scope": "window", - "description": "Specified the path to a dotnet installation to use when \"useModernNet\" is set to true, instead of the default system one. Example: \"/home/username/mycustomdotnetdirectory\"." - }, - "omnisharp.waitForDebugger": { - "type": "boolean", - "default": false, - "description": "Pass the --debug flag when launching the OmniSharp server to allow a debugger to be attached." - }, - "omnisharp.loggingLevel": { - "type": "string", - "default": "information", - "enum": [ - "trace", - "debug", - "information", - "warning", - "error", - "critical" - ], - "description": "Specifies the level of logging output from the OmniSharp server." - }, - "omnisharp.autoStart": { - "type": "boolean", - "default": true, - "description": "Specifies whether the OmniSharp server will be automatically started or not. If false, OmniSharp can be started with the 'Restart OmniSharp' command" - }, - "omnisharp.projectLoadTimeout": { - "type": "number", - "default": 60, - "description": "The time Visual Studio Code will wait for the OmniSharp server to start. Time is expressed in seconds." - }, - "omnisharp.maxProjectResults": { - "type": "number", - "default": 250, - "description": "The maximum number of projects to be shown in the 'Select Project' dropdown (maximum 250)." - }, - "omnisharp.defaultLaunchSolution": { - "type": "string", - "description": "The name of the default solution used at start up if the repo has multiple solutions. e.g.'MyAwesomeSolution.sln'. Default value is `null` which will cause the first in alphabetical order to be chosen." - }, - "omnisharp.useEditorFormattingSettings": { - "type": "boolean", - "default": true, - "description": "Specifes whether OmniSharp should use VS Code editor settings for C# code formatting (use of tabs, indentation size)." - }, - "omnisharp.minFindSymbolsFilterLength": { - "type": "number", - "default": 0, - "description": "The minimum number of characters to enter before 'Go to Symbol in Workspace' operation shows any results." - }, - "omnisharp.maxFindSymbolsItems": { - "type": "number", - "default": 1000, - "description": "The maximum number of items that 'Go to Symbol in Workspace' operation can show. The limit is applied only when a positive number is specified here." - }, - "omnisharp.disableMSBuildDiagnosticWarning": { - "type": "boolean", - "default": false, - "description": "Specifies whether notifications should be shown if OmniSharp encounters warnings or errors loading a project. Note that these warnings/errors are always emitted to the OmniSharp log" - }, - "omnisharp.enableMsBuildLoadProjectsOnDemand": { - "type": "boolean", - "default": false, - "description": "If true, MSBuild project system will only load projects for files that were opened in the editor. This setting is useful for big C# codebases and allows for faster initialization of code navigation features only for projects that are relevant to code that is being edited. With this setting enabled OmniSharp may load fewer projects and may thus display incomplete reference lists for symbols." - }, - "omnisharp.enableRoslynAnalyzers": { - "type": "boolean", - "default": false, - "description": "Enables support for roslyn analyzers, code fixes and rulesets." - }, - "omnisharp.enableEditorConfigSupport": { - "type": "boolean", - "default": true, - "description": "Enables support for reading code style, naming convention and analyzer settings from .editorconfig." - }, - "omnisharp.enableDecompilationSupport": { - "type": "boolean", - "default": false, - "scope": "machine", - "description": "Enables support for decompiling external references instead of viewing metadata." - }, - "omnisharp.enableImportCompletion": { - "type": "boolean", - "default": false, - "description": "Enables support for showing unimported types and unimported extension methods in completion lists. When committed, the appropriate using directive will be added at the top of the current file. This option can have a negative impact on initial completion responsiveness, particularly for the first few completion sessions after opening a solution." - }, - "omnisharp.organizeImportsOnFormat": { - "type": "boolean", - "default": false, - "description": "Specifies whether 'using' directives should be grouped and sorted during document formatting." - }, - "omnisharp.enableAsyncCompletion": { - "type": "boolean", - "default": false, - "description": "(EXPERIMENTAL) Enables support for resolving completion edits asynchronously. This can speed up time to show the completion list, particularly override and partial method completion lists, at the cost of slight delays after inserting a completion item. Most completion items will have no noticeable impact with this feature, but typing immediately after inserting an override or partial method completion, before the insert is completed, can have unpredictable results." - }, - "omnisharp.analyzeOpenDocumentsOnly": { - "type": "boolean", - "default": false, - "description": "Only run analyzers against open files when 'enableRoslynAnalyzers' is true" - }, - "omnisharp.testRunSettings": { - "type": "string", - "description": "Path to the .runsettings file which should be used when running unit tests." - }, - "razor.plugin.path": { - "type": "string", - "scope": "machine", - "description": "Overrides the path to the Razor plugin dll." - }, - "razor.devmode": { - "type": "boolean", - "default": false, - "description": "Forces the omnisharp-vscode extension to run in a mode that enables local Razor.VSCode deving." - }, - "razor.disabled": { - "type": "boolean", - "default": false, - "description": "Specifies whether to disable Razor language features." - }, - "razor.languageServer.directory": { - "type": "string", - "scope": "machine", - "description": "Overrides the path to the Razor Language Server directory." - }, - "razor.languageServer.debug": { - "type": "boolean", - "default": false, - "description": "Specifies whether to wait for debug attach when launching the language server." - }, - "razor.trace": { - "type": "string", - "default": "Off", - "enum": [ - "Off", - "Messages", - "Verbose" - ], - "enumDescriptions": [ - "Does not log messages from the Razor extension", - "Logs only some messages from the Razor extension", - "Logs all messages from the Razor extension" - ], - "description": "Specifies whether to output all messages [Verbose], some messages [Messages] or not at all [Off]." - }, - "razor.format.enable": { - "type": "boolean", - "scope": "window", - "default": true, - "description": "Enable/disable default Razor formatter." - } - } - }, - "jsonValidation": [ - { - "fileMatch": [ - "appsettings.json", - "appsettings.*.json" - ], - "url": "https://json.schemastore.org/appsettings" - }, - { - "fileMatch": "project.json", - "url": "http://json.schemastore.org/project" - }, - { - "fileMatch": "omnisharp.json", - "url": "http://json.schemastore.org/omnisharp" - }, - { - "fileMatch": "global.json", - "url": "http://json.schemastore.org/global" - } - ], - "commands": [ - { - "command": "o.restart", - "title": "Restart OmniSharp", - "category": "OmniSharp" - }, - { - "command": "o.pickProjectAndStart", - "title": "Select Project", - "category": "OmniSharp" - }, - { - "command": "o.fixAll.solution", - "title": "Fix all occurrences of a code issue within solution", - "category": "OmniSharp" - }, - { - "command": "o.fixAll.project", - "title": "Fix all occurrences of a code issue within project", - "category": "OmniSharp" - }, - { - "command": "o.fixAll.document", - "title": "Fix all occurrences of a code issue within document", - "category": "OmniSharp" - }, - { - "command": "o.reanalyze.allProjects", - "title": "Analyze all projects", - "category": "OmniSharp" - }, - { - "command": "o.reanalyze.currentProject", - "title": "Analyze current project", - "category": "OmniSharp" - }, - { - "command": "dotnet.generateAssets", - "title": "Generate Assets for Build and Debug", - "category": ".NET" - }, - { - "command": "dotnet.restore.project", - "title": "Restore Project", - "category": ".NET" - }, - { - "command": "dotnet.restore.all", - "title": "Restore All Projects", - "category": ".NET" - }, - { - "command": "csharp.downloadDebugger", - "title": "Download .NET Core Debugger", - "category": "Debug" - }, - { - "command": "csharp.listProcess", - "title": "List process for attach", - "category": "CSharp" - }, - { - "command": "csharp.listRemoteProcess", - "title": "List processes on remote connection for attach", - "category": "CSharp" - }, - { - "command": "csharp.listRemoteDockerProcess", - "title": "List processes on Docker connection", - "category": "CSharp" - }, - { - "command": "csharp.reportIssue", - "title": "Report an issue", - "category": "CSharp" - }, - { - "command": "csharp.showDecompilationTerms", - "title": "Show the decompiler terms agreement", - "category": "CSharp" - }, - { - "command": "extension.showRazorCSharpWindow", - "title": "Show Razor CSharp", - "category": "Razor" - }, - { - "command": "extension.showRazorHtmlWindow", - "title": "Show Razor Html", - "category": "Razor" - }, - { - "command": "razor.reportIssue", - "title": "Report a Razor issue", - "category": "Razor" - }, - { - "command": "dotnet.test.runTestsInContext", - "title": "Run Tests in Context", - "category": ".NET" - }, - { - "command": "dotnet.test.debugTestsInContext", - "title": "Debug Tests in Context", - "category": ".NET" - } - ], - "keybindings": [ - { - "command": "o.showOutput", - "key": "Ctrl+Shift+F9", - "mac": "Cmd+Shift+F9" - } - ], - "snippets": [ - { - "language": "csharp", - "path": "./snippets/csharp.json" - } - ], - "breakpoints": [ - { - "language": "csharp" - }, - { - "language": "razor" - }, - { - "language": "qsharp" - }, - { - "language": "aspnetcorerazor" - } - ], - "debuggers": [ - { - "type": "coreclr", - "label": ".NET 5+ and .NET Core", - "languages": [ - "csharp", - "razor", - "qsharp", - "aspnetcorerazor" - ], - "variables": { - "pickProcess": "csharp.listProcess", - "pickRemoteProcess": "csharp.listRemoteProcess", - "pickRemoteDockerProcess": "csharp.listRemoteDockerProcess" - }, - "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217", - "configurationAttributes": { - "launch": { - "type": "object", - "required": [ - "program" - ], - "properties": { - "program": { - "type": "string", - "description": "Path to the application dll or .NET Core host executable to launch.\nThis property normally takes the form: '${workspaceFolder}/bin/Debug/(target-framework)/(project-name.dll)'\nExample: '${workspaceFolder}/bin/Debug/netcoreapp1.1/MyProject.dll'\n\nWhere:\n(target-framework) is the framework that the debugged project is being built for. This is normally found in the project file as the 'TargetFramework' property.\n(project-name.dll) is the name of debugged project's build output dll. This is normally the same as the project file name but with a '.dll' extension.", - "default": "${workspaceFolder}/bin/Debug//.dll" - }, - "cwd": { - "type": "string", - "description": "Path to the working directory of the program being debugged. Default is the current workspace.", - "default": "${workspaceFolder}" - }, - "args": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the program.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the program.", - "default": "" - } - ] - }, - "stopAtEntry": { - "type": "boolean", - "description": "If true, the debugger should stop at the entry point of the target.", - "default": false - }, - "launchBrowser": { - "description": "Describes options to launch a web browser as part of launch", - "default": { - "enabled": true - }, - "type": "object", - "required": [ - "enabled" - ], - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether web browser launch is enabled", - "default": true - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. This is used only if the platform-specific element (`osx`, `linux` or `windows`) doesn't specify a value for `args`. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "${auto-detect-url}" - }, - "osx": { - "description": "OSX-specific web launch configuration options. By default, this will start the browser using `open`.", - "default": { - "command": "open", - "args": "${auto-detect-url}" - }, - "type": "object", - "required": [ - "command" - ], - "properties": { - "command": { - "type": "string", - "description": "The executable which will start the web browser", - "default": "open" - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "${auto-detect-url}" - } - } - }, - "linux": { - "description": "Linux-specific web launch configuration options. By default, this will start the browser using `xdg-open`.", - "default": { - "command": "xdg-open", - "args": "${auto-detect-url}" - }, - "type": "object", - "required": [ - "command" - ], - "properties": { - "command": { - "type": "string", - "description": "The executable which will start the web browser", - "default": "xdg-open" - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "${auto-detect-url}" - } - } - }, - "windows": { - "description": "Windows-specific web launch configuration options. By default, this will start the browser using `cmd /c start`.", - "default": { - "command": "cmd.exe", - "args": "/C start ${auto-detect-url}" - }, - "type": "object", - "required": [ - "command" - ], - "properties": { - "command": { - "type": "string", - "description": "The executable which will start the web browser", - "default": "cmd.exe" - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "/C start ${auto-detect-url}" - } - } - } - } - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the program.", - "default": {} - }, - "envFile": { - "type": "string", - "description": "Environment variables passed to the program by a file.", - "default": "${workspaceFolder}/.env" - }, - "console": { - "type": "string", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], - "enumDescriptions": [ - "Output to the VS Code Debug Console. This doesn't support reading console input (ex:Console.ReadLine)", - "VS Code's integrated terminal", - "External terminal that can be configured via user settings" - ], - "description": "Where to launch the debug target.", - "default": "internalConsole" - }, - "externalConsole": { - "type": "boolean", - "description": "Attribute 'externalConsole' is deprecated, use 'console' instead.", - "default": false - }, - "launchSettingsFilePath": { - "type": "string", - "description": "The path to a launchSettings.json file. If this isn't set, the debugger will search in '{cwd}/Properties/launchSettings.json'.", - "default": "${workspaceFolder}/Properties/launchSettings.json" - }, - "launchSettingsProfile": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "If specified, indicates the name of the profile in launchSettings.json to use. This is ignored if launchSettings.json is not found. launchSettings.json will be read from the path specified should be the 'launchSettingsFilePath' property, or {cwd}/Properties/launchSettings.json if that isn't set. If this is set to null or an empty string then launchSettings.json is ignored. If this value is not specified the first 'Project' profile will be used.", - "default": "" - }, - "sourceFileMap": { - "type": "object", - "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", - "additionalProperties": { - "type": "string" - }, - "default": { - "": "" - } - }, - "justMyCode": { - "type": "boolean", - "description": "Optional flag to only show user code.", - "default": true - }, - "requireExactSource": { - "type": "boolean", - "description": "Optional flag to require current source code to match the pdb.", - "default": true - }, - "enableStepFiltering": { - "type": "boolean", - "description": "Optional flag to enable stepping over Properties and Operators.", - "default": true - }, - "logging": { - "description": "Optional flags to determine what types of messages should be logged to the output window.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "exceptions": { - "type": "boolean", - "description": "Optional flag to determine whether exception messages should be logged to the output window.", - "default": true - }, - "moduleLoad": { - "type": "boolean", - "description": "Optional flag to determine whether module load events should be logged to the output window.", - "default": true - }, - "programOutput": { - "type": "boolean", - "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", - "default": true - }, - "engineLogging": { - "type": "boolean", - "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", - "default": false - }, - "browserStdOut": { - "type": "boolean", - "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", - "default": true - }, - "elapsedTiming": { - "type": "boolean", - "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", - "default": false - }, - "threadExit": { - "type": "boolean", - "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", - "default": false - }, - "processExit": { - "type": "boolean", - "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", - "default": true - } - } - }, - "pipeTransport": { - "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", - "type": "object", - "required": [ - "debuggerPath" - ], - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [], - "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "debuggerPath": { - "type": "string", - "description": "The full path to the debugger on the target machine.", - "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "windows": { - "description": "Windows-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "osx": { - "description": "OSX-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "linux": { - "description": "Linux-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - } - } - }, - "suppressJITOptimizations": { - "type": "boolean", - "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", - "default": false - }, - "symbolOptions": { - "description": "Options to control how symbols (.pdb files) are found and loaded.", - "default": { - "searchPaths": [], - "searchMicrosoftSymbolServer": false, - "searchNuGetOrgSymbolServer": false - }, - "type": "object", - "properties": { - "searchPaths": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of symbol server URLs (example: http\u200b://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", - "default": [] - }, - "searchMicrosoftSymbolServer": { - "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https\u200b://msdl.microsoft.com\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "searchNuGetOrgSymbolServer": { - "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https\u200b://symbols.nuget.org\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "cachePath": { - "type": "string", - "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", - "default": "~/.dotnet/symbolcache" - }, - "moduleFilter": { - "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", - "default": { - "mode": "loadAllButExcluded", - "excludedModules": [] - }, - "type": "object", - "required": [ - "mode" - ], - "properties": { - "mode": { - "type": "string", - "enum": [ - "loadAllButExcluded", - "loadOnlyIncluded" - ], - "enumDescriptions": [ - "Load symbols for all modules unless the module is in the 'excludedModules' array.", - "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." - ], - "description": "Controls which of the two basic operating modes the module filter operates in.", - "default": "loadAllButExcluded" - }, - "excludedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", - "default": [] - }, - "includedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": [ - "MyExampleModule.dll" - ] - }, - "includeSymbolsNextToModules": { - "type": "boolean", - "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": true - } - } - } - } - }, - "sourceLinkOptions": { - "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", - "default": { - "*": { - "enabled": true - } - }, - "type": "object", - "additionalItems": { - "type": "object", - "properties": { - "enabled": { - "title": "boolean", - "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", - "default": "true" - } - } - } - }, - "allowFastEvaluate": { - "type": "boolean", - "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", - "default": true - }, - "targetOutputLogPath": { - "type": "string", - "description": "When set, text that the target application writes to stdout and stderr (ex: Console.WriteLine) will be saved to the specified file. This option is ignored if console is set to something other than internalConsole.", - "default": "${workspaceFolder}/out.txt" - }, - "targetArchitecture": { - "type": "string", - "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." - } - } - }, - "attach": { - "type": "object", - "required": [], - "properties": { - "processName": { - "type": "string", - "description": "", - "default": "The process name to attach to. If this is used, 'processId' should not be used." - }, - "processId": { - "anyOf": [ - { - "type": "string", - "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", - "default": "" - }, - { - "type": "integer", - "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", - "default": 0 - } - ] - }, - "sourceFileMap": { - "type": "object", - "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", - "additionalProperties": { - "type": "string" - }, - "default": { - "": "" - } - }, - "justMyCode": { - "type": "boolean", - "description": "Optional flag to only show user code.", - "default": true - }, - "requireExactSource": { - "type": "boolean", - "description": "Optional flag to require current source code to match the pdb.", - "default": true - }, - "enableStepFiltering": { - "type": "boolean", - "description": "Optional flag to enable stepping over Properties and Operators.", - "default": true - }, - "logging": { - "description": "Optional flags to determine what types of messages should be logged to the output window.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "exceptions": { - "type": "boolean", - "description": "Optional flag to determine whether exception messages should be logged to the output window.", - "default": true - }, - "moduleLoad": { - "type": "boolean", - "description": "Optional flag to determine whether module load events should be logged to the output window.", - "default": true - }, - "programOutput": { - "type": "boolean", - "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", - "default": true - }, - "engineLogging": { - "type": "boolean", - "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", - "default": false - }, - "browserStdOut": { - "type": "boolean", - "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", - "default": true - }, - "elapsedTiming": { - "type": "boolean", - "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", - "default": false - }, - "threadExit": { - "type": "boolean", - "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", - "default": false - }, - "processExit": { - "type": "boolean", - "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", - "default": true - } - } - }, - "pipeTransport": { - "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", - "type": "object", - "required": [ - "debuggerPath" - ], - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [], - "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "debuggerPath": { - "type": "string", - "description": "The full path to the debugger on the target machine.", - "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "windows": { - "description": "Windows-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "osx": { - "description": "OSX-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "linux": { - "description": "Linux-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - } - } - }, - "suppressJITOptimizations": { - "type": "boolean", - "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", - "default": false - }, - "symbolOptions": { - "description": "Options to control how symbols (.pdb files) are found and loaded.", - "default": { - "searchPaths": [], - "searchMicrosoftSymbolServer": false, - "searchNuGetOrgSymbolServer": false - }, - "type": "object", - "properties": { - "searchPaths": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of symbol server URLs (example: http\u200b://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", - "default": [] - }, - "searchMicrosoftSymbolServer": { - "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https\u200b://msdl.microsoft.com\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "searchNuGetOrgSymbolServer": { - "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https\u200b://symbols.nuget.org\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "cachePath": { - "type": "string", - "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", - "default": "~/.dotnet/symbolcache" - }, - "moduleFilter": { - "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", - "default": { - "mode": "loadAllButExcluded", - "excludedModules": [] - }, - "type": "object", - "required": [ - "mode" - ], - "properties": { - "mode": { - "type": "string", - "enum": [ - "loadAllButExcluded", - "loadOnlyIncluded" - ], - "enumDescriptions": [ - "Load symbols for all modules unless the module is in the 'excludedModules' array.", - "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." - ], - "description": "Controls which of the two basic operating modes the module filter operates in.", - "default": "loadAllButExcluded" - }, - "excludedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", - "default": [] - }, - "includedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": [ - "MyExampleModule.dll" - ] - }, - "includeSymbolsNextToModules": { - "type": "boolean", - "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": true - } - } - } - } - }, - "sourceLinkOptions": { - "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", - "default": { - "*": { - "enabled": true - } - }, - "type": "object", - "additionalItems": { - "type": "object", - "properties": { - "enabled": { - "title": "boolean", - "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", - "default": "true" - } - } - } - }, - "allowFastEvaluate": { - "type": "boolean", - "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", - "default": true - }, - "targetArchitecture": { - "type": "string", - "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." - } - } - } - }, - "configurationSnippets": [ - { - "label": ".NET: Launch .NET Core Console App", - "description": "Launch a .NET Core Console App with a debugger.", - "body": { - "name": ".NET Core Launch (console)", - "type": "coreclr", - "request": "launch", - "preLaunchTask": "build", - "program": "^\"\\${workspaceFolder}/bin/Debug/${1:}/${2:}\"", - "args": [], - "cwd": "^\"\\${workspaceFolder}\"", - "stopAtEntry": false, - "console": "internalConsole" - } - }, - { - "label": ".NET: Attach to local .NET Core Console App", - "description": "Attach a debugger to a .NET Core Console App.", - "body": { - "name": ".NET Core Attach", - "type": "coreclr", - "request": "attach" - } - }, - { - "label": ".NET: Launch a local .NET Core Web App", - "description": "Launch a .NET Core Web App with both a browser and a debugger.", - "body": { - "name": ".NET Core Launch (web)", - "type": "coreclr", - "request": "launch", - "preLaunchTask": "build", - "program": "^\"\\${workspaceFolder}/bin/Debug/${1:}/${2:}\"", - "args": [], - "cwd": "^\"\\${workspaceFolder}\"", - "stopAtEntry": false, - "serverReadyAction": { - "action": "openExternally", - "pattern": "\\\\bNow listening on:\\\\s+(https?://\\\\S+)" - }, - "env": { - "ASPNETCORE_ENVIRONMENT": "Development" - }, - "sourceFileMap": { - "/Views": "^\"\\${workspaceFolder}/Views\"" - } - } - }, - { - "label": ".NET: Launch a remote .NET Core Console App", - "description": "Launch a .NET Core Console App on a remote machine.", - "body": { - "name": ".NET Core Launch (console)", - "type": "coreclr", - "request": "launch", - "preLaunchTask": "build", - "program": "^\"\\${workspaceFolder}/bin/Debug/${1:}/${2:}\"", - "args": [], - "cwd": "^\"\\${workspaceFolder}\"", - "stopAtEntry": false, - "console": "internalConsole", - "pipeTransport": { - "pipeCwd": "^\"\\${workspaceFolder}\"", - "pipeProgram": "^\"${3:enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'}\"", - "pipeArgs": [], - "debuggerPath": "^\"${4:enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg}\"" - } - } - }, - { - "label": ".NET: Attach to remote .NET Core Console App", - "description": "Attach a debugger to a .NET Core Console App on a remote machine.", - "body": { - "name": ".NET Core Attach", - "type": "coreclr", - "request": "attach", - "pipeTransport": { - "pipeCwd": "^\"\\${workspaceFolder}\"", - "pipeProgram": "^\"${1:enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'}\"", - "pipeArgs": [], - "debuggerPath": "^\"${2:enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg}\"" - } - } - } - ] - }, - { - "type": "clr", - "label": ".NET Framework 4.x (Windows only)", - "languages": [ - "csharp", - "razor", - "qsharp", - "aspnetcorerazor" - ], - "variables": { - "pickProcess": "csharp.listProcess", - "pickRemoteProcess": "csharp.listRemoteProcess", - "pickRemoteDockerProcess": "csharp.listRemoteDockerProcess" - }, - "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217", - "configurationAttributes": { - "launch": { - "type": "object", - "required": [ - "program" - ], - "properties": { - "program": { - "type": "string", - "description": "Path to the application dll or .NET Core host executable to launch.\nThis property normally takes the form: '${workspaceFolder}/bin/Debug/(target-framework)/(project-name.dll)'\nExample: '${workspaceFolder}/bin/Debug/netcoreapp1.1/MyProject.dll'\n\nWhere:\n(target-framework) is the framework that the debugged project is being built for. This is normally found in the project file as the 'TargetFramework' property.\n(project-name.dll) is the name of debugged project's build output dll. This is normally the same as the project file name but with a '.dll' extension.", - "default": "${workspaceFolder}/bin/Debug//.dll" - }, - "cwd": { - "type": "string", - "description": "Path to the working directory of the program being debugged. Default is the current workspace.", - "default": "${workspaceFolder}" - }, - "args": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the program.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the program.", - "default": "" - } - ] - }, - "stopAtEntry": { - "type": "boolean", - "description": "If true, the debugger should stop at the entry point of the target.", - "default": false - }, - "launchBrowser": { - "description": "Describes options to launch a web browser as part of launch", - "default": { - "enabled": true - }, - "type": "object", - "required": [ - "enabled" - ], - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether web browser launch is enabled", - "default": true - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. This is used only if the platform-specific element (`osx`, `linux` or `windows`) doesn't specify a value for `args`. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "${auto-detect-url}" - }, - "osx": { - "description": "OSX-specific web launch configuration options. By default, this will start the browser using `open`.", - "default": { - "command": "open", - "args": "${auto-detect-url}" - }, - "type": "object", - "required": [ - "command" - ], - "properties": { - "command": { - "type": "string", - "description": "The executable which will start the web browser", - "default": "open" - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "${auto-detect-url}" - } - } - }, - "linux": { - "description": "Linux-specific web launch configuration options. By default, this will start the browser using `xdg-open`.", - "default": { - "command": "xdg-open", - "args": "${auto-detect-url}" - }, - "type": "object", - "required": [ - "command" - ], - "properties": { - "command": { - "type": "string", - "description": "The executable which will start the web browser", - "default": "xdg-open" - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "${auto-detect-url}" - } - } - }, - "windows": { - "description": "Windows-specific web launch configuration options. By default, this will start the browser using `cmd /c start`.", - "default": { - "command": "cmd.exe", - "args": "/C start ${auto-detect-url}" - }, - "type": "object", - "required": [ - "command" - ], - "properties": { - "command": { - "type": "string", - "description": "The executable which will start the web browser", - "default": "cmd.exe" - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "/C start ${auto-detect-url}" - } - } - } - } - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the program.", - "default": {} - }, - "envFile": { - "type": "string", - "description": "Environment variables passed to the program by a file.", - "default": "${workspaceFolder}/.env" - }, - "console": { - "type": "string", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], - "enumDescriptions": [ - "Output to the VS Code Debug Console. This doesn't support reading console input (ex:Console.ReadLine)", - "VS Code's integrated terminal", - "External terminal that can be configured via user settings" - ], - "description": "Where to launch the debug target.", - "default": "internalConsole" - }, - "externalConsole": { - "type": "boolean", - "description": "Attribute 'externalConsole' is deprecated, use 'console' instead.", - "default": false - }, - "launchSettingsFilePath": { - "type": "string", - "description": "The path to a launchSettings.json file. If this isn't set, the debugger will search in '{cwd}/Properties/launchSettings.json'.", - "default": "${workspaceFolder}/Properties/launchSettings.json" - }, - "launchSettingsProfile": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "If specified, indicates the name of the profile in launchSettings.json to use. This is ignored if launchSettings.json is not found. launchSettings.json will be read from the path specified should be the 'launchSettingsFilePath' property, or {cwd}/Properties/launchSettings.json if that isn't set. If this is set to null or an empty string then launchSettings.json is ignored. If this value is not specified the first 'Project' profile will be used.", - "default": "" - }, - "sourceFileMap": { - "type": "object", - "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", - "additionalProperties": { - "type": "string" - }, - "default": { - "": "" - } - }, - "justMyCode": { - "type": "boolean", - "description": "Optional flag to only show user code.", - "default": true - }, - "requireExactSource": { - "type": "boolean", - "description": "Optional flag to require current source code to match the pdb.", - "default": true - }, - "enableStepFiltering": { - "type": "boolean", - "description": "Optional flag to enable stepping over Properties and Operators.", - "default": true - }, - "logging": { - "description": "Optional flags to determine what types of messages should be logged to the output window.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "exceptions": { - "type": "boolean", - "description": "Optional flag to determine whether exception messages should be logged to the output window.", - "default": true - }, - "moduleLoad": { - "type": "boolean", - "description": "Optional flag to determine whether module load events should be logged to the output window.", - "default": true - }, - "programOutput": { - "type": "boolean", - "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", - "default": true - }, - "engineLogging": { - "type": "boolean", - "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", - "default": false - }, - "browserStdOut": { - "type": "boolean", - "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", - "default": true - }, - "elapsedTiming": { - "type": "boolean", - "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", - "default": false - }, - "threadExit": { - "type": "boolean", - "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", - "default": false - }, - "processExit": { - "type": "boolean", - "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", - "default": true - } - } - }, - "pipeTransport": { - "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", - "type": "object", - "required": [ - "debuggerPath" - ], - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [], - "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "debuggerPath": { - "type": "string", - "description": "The full path to the debugger on the target machine.", - "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "windows": { - "description": "Windows-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "osx": { - "description": "OSX-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "linux": { - "description": "Linux-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - } - } - }, - "suppressJITOptimizations": { - "type": "boolean", - "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", - "default": false - }, - "symbolOptions": { - "description": "Options to control how symbols (.pdb files) are found and loaded.", - "default": { - "searchPaths": [], - "searchMicrosoftSymbolServer": false, - "searchNuGetOrgSymbolServer": false - }, - "type": "object", - "properties": { - "searchPaths": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of symbol server URLs (example: http\u200b://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", - "default": [] - }, - "searchMicrosoftSymbolServer": { - "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https\u200b://msdl.microsoft.com\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "searchNuGetOrgSymbolServer": { - "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https\u200b://symbols.nuget.org\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "cachePath": { - "type": "string", - "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", - "default": "~/.dotnet/symbolcache" - }, - "moduleFilter": { - "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", - "default": { - "mode": "loadAllButExcluded", - "excludedModules": [] - }, - "type": "object", - "required": [ - "mode" - ], - "properties": { - "mode": { - "type": "string", - "enum": [ - "loadAllButExcluded", - "loadOnlyIncluded" - ], - "enumDescriptions": [ - "Load symbols for all modules unless the module is in the 'excludedModules' array.", - "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." - ], - "description": "Controls which of the two basic operating modes the module filter operates in.", - "default": "loadAllButExcluded" - }, - "excludedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", - "default": [] - }, - "includedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": [ - "MyExampleModule.dll" - ] - }, - "includeSymbolsNextToModules": { - "type": "boolean", - "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": true - } - } - } - } - }, - "sourceLinkOptions": { - "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", - "default": { - "*": { - "enabled": true - } - }, - "type": "object", - "additionalItems": { - "type": "object", - "properties": { - "enabled": { - "title": "boolean", - "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", - "default": "true" - } - } - } - }, - "allowFastEvaluate": { - "type": "boolean", - "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", - "default": true - }, - "targetOutputLogPath": { - "type": "string", - "description": "When set, text that the target application writes to stdout and stderr (ex: Console.WriteLine) will be saved to the specified file. This option is ignored if console is set to something other than internalConsole.", - "default": "${workspaceFolder}/out.txt" - }, - "targetArchitecture": { - "type": "string", - "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." - } - } - }, - "attach": { - "type": "object", - "required": [], - "properties": { - "processName": { - "type": "string", - "description": "", - "default": "The process name to attach to. If this is used, 'processId' should not be used." - }, - "processId": { - "anyOf": [ - { - "type": "string", - "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", - "default": "" - }, - { - "type": "integer", - "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", - "default": 0 - } - ] - }, - "sourceFileMap": { - "type": "object", - "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", - "additionalProperties": { - "type": "string" - }, - "default": { - "": "" - } - }, - "justMyCode": { - "type": "boolean", - "description": "Optional flag to only show user code.", - "default": true - }, - "requireExactSource": { - "type": "boolean", - "description": "Optional flag to require current source code to match the pdb.", - "default": true - }, - "enableStepFiltering": { - "type": "boolean", - "description": "Optional flag to enable stepping over Properties and Operators.", - "default": true - }, - "logging": { - "description": "Optional flags to determine what types of messages should be logged to the output window.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "exceptions": { - "type": "boolean", - "description": "Optional flag to determine whether exception messages should be logged to the output window.", - "default": true - }, - "moduleLoad": { - "type": "boolean", - "description": "Optional flag to determine whether module load events should be logged to the output window.", - "default": true - }, - "programOutput": { - "type": "boolean", - "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", - "default": true - }, - "engineLogging": { - "type": "boolean", - "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", - "default": false - }, - "browserStdOut": { - "type": "boolean", - "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", - "default": true - }, - "elapsedTiming": { - "type": "boolean", - "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", - "default": false - }, - "threadExit": { - "type": "boolean", - "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", - "default": false - }, - "processExit": { - "type": "boolean", - "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", - "default": true - } - } - }, - "pipeTransport": { - "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", - "type": "object", - "required": [ - "debuggerPath" - ], - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [], - "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "debuggerPath": { - "type": "string", - "description": "The full path to the debugger on the target machine.", - "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "windows": { - "description": "Windows-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "osx": { - "description": "OSX-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "linux": { - "description": "Linux-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - } - } - }, - "suppressJITOptimizations": { - "type": "boolean", - "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", - "default": false - }, - "symbolOptions": { - "description": "Options to control how symbols (.pdb files) are found and loaded.", - "default": { - "searchPaths": [], - "searchMicrosoftSymbolServer": false, - "searchNuGetOrgSymbolServer": false - }, - "type": "object", - "properties": { - "searchPaths": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of symbol server URLs (example: http\u200b://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", - "default": [] - }, - "searchMicrosoftSymbolServer": { - "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https\u200b://msdl.microsoft.com\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "searchNuGetOrgSymbolServer": { - "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https\u200b://symbols.nuget.org\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "cachePath": { - "type": "string", - "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", - "default": "~/.dotnet/symbolcache" - }, - "moduleFilter": { - "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", - "default": { - "mode": "loadAllButExcluded", - "excludedModules": [] - }, - "type": "object", - "required": [ - "mode" - ], - "properties": { - "mode": { - "type": "string", - "enum": [ - "loadAllButExcluded", - "loadOnlyIncluded" - ], - "enumDescriptions": [ - "Load symbols for all modules unless the module is in the 'excludedModules' array.", - "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." - ], - "description": "Controls which of the two basic operating modes the module filter operates in.", - "default": "loadAllButExcluded" - }, - "excludedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", - "default": [] - }, - "includedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": [ - "MyExampleModule.dll" - ] - }, - "includeSymbolsNextToModules": { - "type": "boolean", - "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": true - } - } - } - } - }, - "sourceLinkOptions": { - "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", - "default": { - "*": { - "enabled": true - } - }, - "type": "object", - "additionalItems": { - "type": "object", - "properties": { - "enabled": { - "title": "boolean", - "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", - "default": "true" - } - } - } - }, - "allowFastEvaluate": { - "type": "boolean", - "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", - "default": true - }, - "targetArchitecture": { - "type": "string", - "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." - } - } - } - } - }, - { - "type": "blazorwasm", - "label": "Blazor WebAssembly Debug", - "initialConfigurations": [ - { - "type": "blazorwasm", - "name": "Launch and Debug Blazor WebAssembly Application", - "request": "launch" - } - ], - "configurationAttributes": { - "launch": { - "properties": { - "cwd": { - "type": "string", - "description": "The directory of the Blazor WebAssembly app, defaults to the workspace folder.", - "default": "${workspaceFolder}" - }, - "url": { - "type": "string", - "description": "The URL of the application", - "default": "https://localhost:5001" - }, - "browser": { - "type": "string", - "description": "The debugging browser to launch (Edge or Chrome)", - "default": "edge", - "enum": [ - "chrome", - "edge" - ] - }, - "trace": { - "type": [ - "boolean", - "string" - ], - "default": "true", - "enum": [ - "verbose", - true - ], - "description": "If true, verbose logs from JS debugger are sent to log file. If 'verbose', send logs to console." - }, - "hosted": { - "type": "boolean", - "default": "false", - "description": "True if the app is a hosted Blazor WebAssembly app, false otherwise." - }, - "webRoot": { - "type": "string", - "default": "${workspaceFolder}", - "description": "Specifies the absolute path to the webserver root." - }, - "timeout": { - "type": "number", - "default": 30000, - "description": "Retry for this number of milliseconds to connect to browser." - }, - "program": { - "type": "string", - "default": "${workspaceFolder}/Server/bin/Debug//", - "description": "The path of the DLL to execute when launching a hosted server app" - }, - "env": { - "type": "object", - "description": "Environment variables passed to dotnet. Only valid for hosted apps." - }, - "dotNetConfig": { - "description": "Options passed to the underlying .NET debugger. For more info, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger.md.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "justMyCode": { - "type": "boolean", - "description": "Optional flag to only show user code.", - "default": true - }, - "logging": { - "description": "Optional flags to determine what types of messages should be logged to the output window. Applicable only for the app server of hosted Blazor WASM apps.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "exceptions": { - "type": "boolean", - "description": "Optional flag to determine whether exception messages should be logged to the output window.", - "default": true - }, - "moduleLoad": { - "type": "boolean", - "description": "Optional flag to determine whether module load events should be logged to the output window.", - "default": true - }, - "programOutput": { - "type": "boolean", - "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", - "default": true - }, - "engineLogging": { - "type": "boolean", - "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", - "default": false - }, - "browserStdOut": { - "type": "boolean", - "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", - "default": true - }, - "elapsedTiming": { - "type": "boolean", - "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", - "default": false - }, - "threadExit": { - "type": "boolean", - "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", - "default": false - }, - "processExit": { - "type": "boolean", - "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", - "default": true - } - } - }, - "sourceFileMap": { - "type": "object", - "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", - "additionalProperties": { - "type": "string" - }, - "default": { - "": "" - } - } - } - }, - "browserConfig": { - "description": "Options based to the underlying JavaScript debugger. For more info, see https://github.com/microsoft/vscode-js-debug/blob/master/OPTIONS.md.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "outputCapture": { - "enum": [ - "console", - "std" - ], - "description": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.", - "default": "console" - } - } - } - } - }, - "attach": { - "properties": { - "url": { - "type": "string", - "description": "The URL of the application", - "default": "https://localhost:5001" - }, - "cwd": { - "type": "string", - "description": "The directory of the Blazor WebAssembly app, defaults to the workspace folder.", - "default": "${workspaceFolder}" - }, - "browser": { - "type": "string", - "description": "The debugging browser to launch (Edge or Chrome)", - "default": "chrome", - "enum": [ - "chrome", - "edge" - ] - }, - "trace": { - "type": [ - "boolean", - "string" - ], - "default": "true", - "enum": [ - "verbose", - true - ], - "description": "If true, verbose logs from JS debugger are sent to log file. If 'verbose', send logs to console." - }, - "webRoot": { - "type": "string", - "default": "${workspaceFolder}", - "description": "Specifies the absolute path to the webserver root." - }, - "timeout": { - "type": "number", - "default": 30000, - "description": "Retry for this number of milliseconds to connect to browser." - } - } - } - } - } - ], - "semanticTokenTypes": [ - { - "id": "razorTagHelperElement", - "description": "A Razor TagHelper Element" - }, - { - "id": "razorTagHelperAttribute", - "description": "A Razor TagHelper Attribute" - }, - { - "id": "razorTransition", - "description": "A Razor transition" - }, - { - "id": "razorDirectiveAttribute", - "description": "A Razor Directive Attribute" - }, - { - "id": "razorDirectiveColon", - "description": "A colon between directive attribute parameters" - }, - { - "id": "razorDirective", - "description": "A Razor directive such as 'code' or 'function'" - }, - { - "id": "razorComment", - "description": "A Razor comment" - }, - { - "id": "markupCommentPunctuation", - "description": "The '@' or '*' of a Razor comment." - }, - { - "id": "markupTagDelimiter", - "description": "Markup delimiters like '<', '>', and '/'." - }, - { - "id": "markupOperator", - "description": "Delimiter for Markup Attribute Key-Value pairs." - }, - { - "id": "markupElement", - "description": "The name of a Markup element." - }, - { - "id": "markupAttribute", - "description": "The name of a Markup attribute." - }, - { - "id": "markupComment", - "description": "The contents of a Markup comment." - }, - { - "id": "markupCommentPunctuation", - "description": "The begining or ending punctuation of a Markup comment." - }, - { - "id": "plainKeyword", - "description": "Represents a keyword" - }, - { - "id": "controlKeyword", - "description": "Represents a control-flow keyword" - }, - { - "id": "operatorOverloaded", - "description": "Represents a custom implementation of an operator" - }, - { - "id": "preprocessorKeyword", - "description": "Represents" - }, - { - "id": "preprocessorText", - "description": "Represents" - }, - { - "id": "excludedCode", - "description": "" - }, - { - "id": "punctuation", - "description": "" - }, - { - "id": "stringVerbatim", - "description": "" - }, - { - "id": "stringEscapeCharacter", - "description": "" - }, - { - "id": "delegate", - "description": "" - }, - { - "id": "module", - "description": "" - }, - { - "id": "extensionMethod", - "description": "" - }, - { - "id": "field", - "description": "" - }, - { - "id": "local", - "description": "" - }, - { - "id": "xmlDocCommentAttributeName", - "description": "" - }, - { - "id": "xmlDocCommentAttributeQuotes", - "description": "" - }, - { - "id": "xmlDocCommentAttributeValue", - "description": "" - }, - { - "id": "xmlDocCommentCDataSection", - "description": "" - }, - { - "id": "xmlDocCommentComment", - "description": "" - }, - { - "id": "xmlDocCommentDelimiter", - "description": "" - }, - { - "id": "xmlDocCommentEntityReference", - "description": "" - }, - { - "id": "xmlDocCommentName", - "description": "" - }, - { - "id": "xmlDocCommentProcessingInstruction", - "description": "" - }, - { - "id": "xmlDocCommentText", - "description": "" - }, - { - "id": "regexComment", - "description": "" - }, - { - "id": "regexCharacterClass", - "description": "" - }, - { - "id": "regexAnchor", - "description": "" - }, - { - "id": "regexQuantifier", - "description": "" - }, - { - "id": "regexGrouping", - "description": "" - }, - { - "id": "regexAlternation", - "description": "" - }, - { - "id": "regexSelfEscapedCharacter", - "description": "" - }, - { - "id": "regexOtherEscape", - "description": "" - } - ], - "semanticTokenModifiers": [], - "semanticTokenScopes": [ - { - "language": "aspnetcorerazor", - "scopes": { - "razorTagHelperElement": [ - "entity.name.class.element.taghelper" - ], - "razorTagHelperAttribute": [ - "entity.name.class.attribute.taghelper" - ], - "razorTransition": [ - "keyword.control.razor.transition" - ], - "razorDirectiveAttribute": [ - "keyword.control.razor.directive.attribute", - "keyword.control.cshtml.directive.attribute" - ], - "razorDirectiveColon": [ - "keyword.control.razor.directive.colon", - "keyword.control.cshtml.directive.colon" - ], - "razorDirective": [ - "keyword.control.razor.directive", - "keyword.control.cshtml.directive" - ], - "razorComment": [ - "comment.block.razor" - ], - "razorCommentTransition": [ - "meta.comment.razor", - "keyword.control.cshtml.transition" - ], - "razorCommentStar": [ - "keyword.control.razor.comment.star", - "meta.comment.razor" - ], - "angleBracket": [ - "punctuation.definition.tag" - ], - "forwardSlash": [ - "punctuation.definition.tag" - ], - "equals": [ - "punctuation.separator.key-value.html" - ], - "markupElement": [ - "entity.name.tag.html" - ], - "markupAttribute": [ - "entity.other.attribute-name.html" - ], - "markupComment": [ - "comment.block.html" - ], - "markupCommentPunctuation": [ - "punctuation.definition.comment.html", - "comment.block.html" - ] - } - }, - { - "language": "csharp", - "scopes": { - "plainKeyword": [ - "keyword.cs" - ], - "controlKeyword": [ - "keyword.control.cs" - ], - "operatorOverloaded": [ - "entity.name.function.member.overload.cs" - ], - "preprocessorKeyword": [ - "keyword.preprocessor.cs" - ], - "preprocessorText": [ - "meta.preprocessor.string.cs" - ], - "excludedCode": [ - "support.other.excluded.cs" - ], - "punctuation": [ - "punctuation.cs" - ], - "stringVerbatim": [ - "string.verbatim.cs" - ], - "stringEscapeCharacter": [ - "constant.character.escape.cs" - ], - "delegate": [ - "entity.name.type.delegate.cs" - ], - "module": [ - "entity.name.type.module.cs" - ], - "extensionMethod": [ - "entity.name.function.extension.cs" - ], - "field": [ - "entity.name.variable.field.cs" - ], - "local": [ - "entity.name.variable.local.cs" - ], - "xmlDocCommentAttributeName": [ - "comment.documentation.attribute.name.cs" - ], - "xmlDocCommentAttributeQuotes": [ - "comment.documentation.attribute.quotes.cs" - ], - "xmlDocCommentAttributeValue": [ - "comment.documentation.attribute.value.cs" - ], - "xmlDocCommentCDataSection": [ - "comment.documentation.cdata.cs" - ], - "xmlDocCommentComment": [ - "comment.documentation.comment.cs" - ], - "xmlDocCommentDelimiter": [ - "comment.documentation.delimiter.cs" - ], - "xmlDocCommentEntityReference": [ - "comment.documentation.entityReference.cs" - ], - "xmlDocCommentName": [ - "comment.documentation.name.cs" - ], - "xmlDocCommentProcessingInstruction": [ - "comment.documentation.processingInstruction.cs" - ], - "xmlDocCommentText": [ - "comment.documentation.cs" - ], - "regexComment": [ - "string.regexp.comment.cs" - ], - "regexCharacterClass": [ - "constant.character.character-class.regexp.cs" - ], - "regexAnchor": [ - "keyword.control.anchor.regexp.cs" - ], - "regexQuantifier": [ - "keyword.operator.quantifier.regexp.cs" - ], - "regexGrouping": [ - "punctuation.definition.group.regexp.cs" - ], - "regexAlternation": [ - "keyword.operator.or.regexp.cs" - ], - "regexSelfEscapedCharacter": [ - "string.regexp.self-escaped-character.cs" - ], - "regexOtherEscape": [ - "string.regexp.other-escape.cs" - ] - } - } - ], - "languages": [ - { - "id": "aspnetcorerazor", - "extensions": [ - ".cshtml", - ".razor" - ], - "mimetypes": [ - "text/x-cshtml" - ], - "configuration": "./src/razor/language-configuration.json", - "aliases": [ - "ASP.NET Razor" - ] - } - ], - "grammars": [ - { - "language": "aspnetcorerazor", - "scopeName": "text.aspnetcorerazor", - "path": "./src/razor/syntaxes/aspnetcorerazor.tmLanguage.json" - } - ], - "menus": { - "commandPalette": [ - { - "command": "dotnet.test.runTestsInContext", - "when": "editorLangId == csharp" - }, - { - "command": "dotnet.test.debugTestsInContext", - "when": "editorLangId == csharp" - } - ], - "editor/title": [ - { - "command": "extension.showRazorCSharpWindow", - "when": "resourceLangId == aspnetcorerazor" - }, - { - "command": "extension.showRazorHtmlWindow", - "when": "resourceLangId == aspnetcorerazor" - }, - { - "command": "razor.reportIssue", - "when": "resourceLangId == aspnetcorerazor" - } - ], - "editor/context": [ - { - "command": "dotnet.test.runTestsInContext", - "when": "editorLangId == csharp", - "group": "2_dotnet@1" - }, - { - "command": "dotnet.test.debugTestsInContext", - "when": "editorLangId == csharp", - "group": "2_dotnet@2" - } - ] - }, - "viewsWelcome": [ - { - "view": "debug", - "contents": "[Generate C# Assets for Build and Debug](command:dotnet.generateAssets)\n\nTo learn more about launch.json, see [Configuring launch.json for C# debugging](https://aka.ms/VSCode-CS-LaunchJson).", - "when": "debugStartLanguage == csharp" - } - ] - } + "name": "csharp", + "publisher": "ms-dotnettools", + "version": "1.24.5", + "description": "C# for Visual Studio Code (powered by OmniSharp).", + "displayName": "C#", + "author": "Microsoft Corporation", + "license": "SEE LICENSE IN RuntimeLicenses/license.txt", + "icon": "images/csharpIcon.png", + "preview": false, + "bugs": { + "url": "https://github.com/OmniSharp/omnisharp-vscode/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/OmniSharp/omnisharp-vscode.git" + }, + "categories": [ + "Debuggers", + "Programming Languages", + "Linters", + "Snippets" + ], + "keywords": [ + "multi-root ready", + ".NET", + "ASP.NET", + ".NET Core", + "dotnet" + ], + "capabilities": { + "virtualWorkspaces": false, + "untrustedWorkspaces": { + "supported": false + } + }, + "defaults": { + "omniSharp": "1.38.2", + "razor": "6.0.0-preview.5.21358.6" + }, + "main": "./dist/extension", + "scripts": { + "vscode:prepublish": "tsc -p ./ && webpack --mode production", + "compile": "tsc -p ./ && gulp tslint", + "compileDev": "tsc -p ./ && gulp tslint && webpack --mode development", + "watch": "tsc -watch -p ./", + "tdd": "mocha --config ./.mocharc.jsonc --watch --watch-extensions ts test/unitTests/**/*.test.ts*", + "test": "tsc -p ./ && gulp test", + "test:unit": "tsc -p ./ && gulp test:unit", + "test:feature": "tsc -p ./ && gulp test:feature", + "test:integration": "tsc -p ./ && gulp test:integration", + "test:integration:singleCsproj": "tsc -p ./ && gulp test:integration:singleCsproj", + "test:integration:slnWithCsproj": "tsc -p ./ && gulp test:integration:slnWithCsproj", + "test:integration:slnFilterWithCsproj": "tsc -p ./ && gulp test:integration:slnFilterWithCsproj", + "test:release": "mocha --config ./.mocharc.jsonc test/releaseTests/**/*.test.ts", + "test:artifacts": "mocha --config ./.mocharc.jsonc test/artifactTests/**/*.test.ts", + "unpackage:vsix": "gulp vsix:release:unpackage", + "gulp": "gulp" + }, + "dependencies": { + "@types/cross-spawn": "^6.0.2", + "async-file": "2.0.2", + "cross-spawn": "^6.0.5", + "fs-extra": "9.1.0", + "http-proxy-agent": "4.0.1", + "https-proxy-agent": "5.0.0", + "jsonc-parser": "3.0.0", + "microsoft.aspnetcore.razor.vscode": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/0ab4b9b270542715d9ffa7ee05c809fb/microsoft.aspnetcore.razor.vscode-6.0.0-preview.5.21358.6.tgz", + "node-machine-id": "1.1.12", + "request-light": "0.4.0", + "rxjs": "6.6.7", + "semver": "5.6.0", + "stream": "0.0.2", + "strip-bom": "5.0.0", + "strip-bom-buf": "2.0.0", + "tmp": "0.0.33", + "vscode-debugprotocol": "1.33.0", + "vscode-extension-telemetry": "0.1.6", + "vscode-languageserver-protocol": "3.16.0", + "vscode-nls": "5.0.0", + "yauzl": "2.10.0" + }, + "devDependencies": { + "@types/archiver": "5.1.0", + "@types/chai": "4.2.16", + "@types/chai-arrays": "2.0.0", + "@types/chai-as-promised": "7.1.3", + "@types/chai-string": "1.4.2", + "@types/del": "3.0.1", + "@types/fs-extra": "5.0.4", + "@types/gulp": "4.0.5", + "@types/minimist": "1.2.1", + "@types/mocha": "5.2.5", + "@types/node": "10.12.24", + "@types/semver": "5.5.0", + "@types/tmp": "0.0.33", + "@types/unzipper": "^0.9.1", + "@types/vscode": "1.65.0", + "@types/yauzl": "2.9.1", + "@vscode/test-electron": "2.1.3", + "archiver": "5.3.0", + "chai": "4.3.4", + "chai-arrays": "2.2.0", + "chai-as-promised": "7.1.1", + "chai-fs": "2.0.0", + "chai-string": "1.5.0", + "del": "3.0.0", + "find-versions": "4.0.0", + "get-port": "5.1.1", + "glob-promise": "4.1.0", + "gulp": "4.0.2", + "gulp-tslint": "8.1.4", + "mocha": "8.3.2", + "mock-fs": "4.13.0", + "mock-http-server": "1.4.2", + "npm-run-all": "4.1.5", + "ts-loader": "9.0.0", + "ts-node": "9.1.1", + "tslint": "5.12.1", + "tslint-microsoft-contrib": "6.0.0", + "tslint-no-unused-expression-chai": "0.1.4", + "typescript": "4.2.4", + "unzipper": "0.10.11", + "vsce": "1.100.2", + "webpack": "5.34.0", + "webpack-cli": "4.6.0" + }, + "runtimeDependencies": [ + { + "id": "OmniSharp", + "description": "OmniSharp for Windows (.NET 4.7.2 / x86)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x86-1.38.2.zip", + "installPath": ".omnisharp/1.38.2", + "platforms": [ + "win32" + ], + "architectures": [ + "x86" + ], + "installTestPath": "./.omnisharp/1.38.2/OmniSharp.exe", + "platformId": "win-x86", + "isFramework": true, + "integrity": "B2E414B2A7155B2A484DB182B69223B0AEF9EB1F8E1CB6155C6C5E9D07A78CF8" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Windows (.NET 6 / x86)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x86-net6.0-1.38.2.zip", + "installPath": ".omnisharp/1.38.2-net6.0", + "platforms": [ + "win32" + ], + "architectures": [ + "x86" + ], + "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", + "platformId": "win-x86", + "isFramework": false, + "integrity": "EAA8D28669049E68E458CC7224C2B9069F575CEA51B8B36D4F4D51C7532D0419" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Windows (.NET 4.7.2 / x64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x64-1.38.2.zip", + "installPath": ".omnisharp/1.38.2", + "platforms": [ + "win32" + ], + "architectures": [ + "x86_64" + ], + "installTestPath": "./.omnisharp/1.38.2/OmniSharp.exe", + "platformId": "win-x64", + "isFramework": true, + "integrity": "1F94980CA0FAB7B6AE17195FBB9FC0A677EA4BB96A376CF68B32A0D59650522D" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Windows (.NET 6 / x64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x64-net6.0-1.38.2.zip", + "installPath": ".omnisharp/1.38.2-net6.0", + "platforms": [ + "win32" + ], + "architectures": [ + "x86_64" + ], + "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", + "platformId": "win-x64", + "isFramework": false, + "integrity": "88B82CC9D7D1E8757F3DE457833FE29BACCEA35EE16C8790513BF0129316ECC4" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Windows (.NET 4.7.2 / arm64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-arm64-1.38.2.zip", + "installPath": ".omnisharp/1.38.2", + "platforms": [ + "win32" + ], + "architectures": [ + "arm64" + ], + "installTestPath": "./.omnisharp/1.38.2/OmniSharp.exe", + "platformId": "win-arm64", + "isFramework": true, + "integrity": "ECA2B07CBAEACF1D1E755ECCAF57459F0DD36A30C176251D18146440A0852E9B" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Windows (.NET 6 / arm64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-arm64-net6.0-1.38.2.zip", + "installPath": ".omnisharp/1.38.2-net6.0", + "platforms": [ + "win32" + ], + "architectures": [ + "arm64" + ], + "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", + "platformId": "win-arm64", + "isFramework": false, + "integrity": "ACAEA0B0EDD5ABDC23196AC7C4C928005C6FF97D829CA96515842C87C30C27AE" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for OSX (Mono / x64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-osx-1.38.2.zip", + "installPath": ".omnisharp/1.38.2", + "platforms": [ + "darwin" + ], + "binaries": [ + "./mono.osx", + "./run" + ], + "installTestPath": "./.omnisharp/1.38.2/run", + "platformId": "osx", + "isFramework": true, + "integrity": "9C934684359FC1488803075B549D9B57F8E41129B61C344DA7CF202C4918FEB6" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for OSX (.NET 6 / x64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-osx-x64-net6.0-1.38.2.zip", + "installPath": ".omnisharp/1.38.2-net6.0", + "platforms": [ + "darwin" + ], + "architectures": [ + "x86_64" + ], + "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", + "platformId": "osx-x64", + "isFramework": false, + "integrity": "F32B94A4601E532C7380AEBE9498B20793EDC538671BFF516C2EED4CBAE84DAF" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for OSX (.NET 6 / arm64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-osx-arm64-net6.0-1.38.2.zip", + "installPath": ".omnisharp/1.38.2-net6.0", + "platforms": [ + "darwin" + ], + "architectures": [ + "arm64" + ], + "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", + "platformId": "osx-arm64", + "isFramework": false, + "integrity": "58BA4910DFE978B5D873BAA062123C0FEDEB2E89A685F22825355C54E9BF7D90" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Linux (Mono / x86)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-x86-1.38.2.zip", + "installPath": ".omnisharp/1.38.2", + "platforms": [ + "linux" + ], + "architectures": [ + "x86", + "i686" + ], + "binaries": [ + "./mono.linux-x86", + "./run" + ], + "installTestPath": "./.omnisharp/1.38.2/run", + "platformId": "linux-x86", + "isFramework": true, + "integrity": "3F230B3C6DB0D48B5E4D51C45BB52F6B568AD1CC8CEEA7D50128123C17A77CD1" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Linux (Mono / x64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-x64-1.38.2.zip", + "installPath": ".omnisharp/1.38.2", + "platforms": [ + "linux" + ], + "architectures": [ + "x86_64" + ], + "binaries": [ + "./mono.linux-x86_64", + "./run" + ], + "installTestPath": "./.omnisharp/1.38.2/run", + "platformId": "linux-x64", + "isFramework": true, + "integrity": "F29A5E1E2A8EAAED8DF8AD37F838453986B8650E453EFCE56506AD8CC132EBE1" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Linux (.NET 6 / x64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-x64-net6.0-1.38.2.zip", + "installPath": ".omnisharp/1.38.2-net6.0", + "platforms": [ + "linux" + ], + "architectures": [ + "x86_64" + ], + "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", + "platformId": "linux-x64", + "isFramework": false, + "integrity": "1F778F40FB54C4B11CB6CDFAB30266DAF2F327133685576BC8BD9D6EF2439C1F" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Linux (Framework / arm64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-arm64-1.38.2.zip", + "installPath": ".omnisharp/1.38.2", + "platforms": [ + "linux" + ], + "architectures": [ + "arm64" + ], + "binaries": [ + "./mono.linux-arm64", + "./run" + ], + "installTestPath": "./.omnisharp/1.38.2/run", + "platformId": "linux-arm64", + "isFramework": true, + "integrity": "156D92F6C9F8381BCEE2C6C77F92C4B79C5E33AC6E7F7F61935FABD75F7AAFBD" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Linux (.NET 6 / arm64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-arm64-net6.0-1.38.2.zip", + "installPath": ".omnisharp/1.38.2-net6.0", + "platforms": [ + "linux" + ], + "architectures": [ + "arm64" + ], + "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", + "platformId": "linux-arm64", + "isFramework": false, + "integrity": "28AB43CC4BDD3FFE805E44A723A80235E8150E055056E44A0D772AD7BECAB045" + }, + { + "id": "Debugger", + "description": ".NET Core Debugger (Windows / x64)", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-win7-x64.zip", + "installPath": ".debugger", + "platforms": [ + "win32" + ], + "architectures": [ + "x86_64" + ], + "installTestPath": "./.debugger/vsdbg-ui.exe", + "integrity": "07E9EAD8DC5B1F8A1B049E128B50AF5282637DBAFCDAED0E61245925B659FD15" + }, + { + "id": "Debugger", + "description": ".NET Core Debugger (Windows / ARM64)", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-win10-arm64.zip", + "installPath": ".debugger", + "platforms": [ + "win32" + ], + "architectures": [ + "arm64" + ], + "installTestPath": "./.debugger/vsdbg-ui.exe", + "integrity": "669BFDBBEBF4C9589BDD44C7E1A1055F7D7705BB315E7CA8809398FD784A4371" + }, + { + "id": "Debugger", + "description": ".NET Core Debugger (macOS / x64)", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-osx-x64.zip", + "installPath": ".debugger/x86_64", + "platforms": [ + "darwin" + ], + "architectures": [ + "x86_64", + "arm64" + ], + "binaries": [ + "./vsdbg-ui", + "./vsdbg" + ], + "installTestPath": "./.debugger/x86_64/vsdbg-ui", + "integrity": "287B1E27269A47DF8C11DC69613C0B0964969DD169CED3B33EF6F7934D5F5C14" + }, + { + "id": "Debugger", + "description": ".NET Core Debugger (macOS / arm64)", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-osx-arm64.zip", + "installPath": ".debugger/arm64", + "platforms": [ + "darwin" + ], + "architectures": [ + "arm64" + ], + "binaries": [ + "./vsdbg-ui", + "./vsdbg" + ], + "installTestPath": "./.debugger/arm64/vsdbg-ui", + "integrity": "ADFFF192A5B19C063E2B52408A168950E357E9C2AD0FCACBD143CBD9DBAF4941" + }, + { + "id": "Debugger", + "description": ".NET Core Debugger (linux / ARM)", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-linux-arm.zip", + "installPath": ".debugger", + "platforms": [ + "linux" + ], + "architectures": [ + "arm" + ], + "binaries": [ + "./vsdbg-ui", + "./vsdbg" + ], + "installTestPath": "./.debugger/vsdbg-ui", + "integrity": "F972B4EAAF64D03BC7D6CBE26FA8BE37AAAE23FC64BF62209FBF5768B364D55E" + }, + { + "id": "Debugger", + "description": ".NET Core Debugger (linux / ARM64)", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-linux-arm64.zip", + "installPath": ".debugger", + "platforms": [ + "linux" + ], + "architectures": [ + "arm64" + ], + "binaries": [ + "./vsdbg-ui", + "./vsdbg" + ], + "installTestPath": "./.debugger/vsdbg-ui", + "integrity": "7C373A85A1FF85719E9446197FB9B9B58E8E02266D083C682C8AC70AE8B97F7E" + }, + { + "id": "Debugger", + "description": ".NET Core Debugger (linux / x64)", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-linux-x64.zip", + "installPath": ".debugger", + "platforms": [ + "linux" + ], + "architectures": [ + "x86_64" + ], + "binaries": [ + "./vsdbg-ui", + "./vsdbg" + ], + "installTestPath": "./.debugger/vsdbg-ui", + "integrity": "4A116A96B99009DD59081CB0BD981E33C8FCA4C96F0CF2953B23591C692C7C26" + }, + { + "id": "Razor", + "description": "Razor Language Server (Windows / x64)", + "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/a654aaa3c8090ca1751d7f7646a7b000/razorlanguageserver-win-x64-6.0.0-preview.5.21358.6.zip", + "installPath": ".razor", + "platforms": [ + "win32" + ], + "architectures": [ + "x86_64" + ] + }, + { + "id": "Razor", + "description": "Razor Language Server (Windows / x86)", + "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/18e1cdfce3f4f074905cf0fd89f8d07f/razorlanguageserver-win-x86-6.0.0-preview.5.21358.6.zip", + "installPath": ".razor", + "platforms": [ + "win32" + ], + "architectures": [ + "x86", + "arm64" + ] + }, + { + "id": "Razor", + "description": "Razor Language Server (Linux / x64)", + "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/b846e9c7d7afdba54a72fae1dcb6c42c/razorlanguageserver-linux-x64-6.0.0-preview.5.21358.6.zip", + "installPath": ".razor", + "platforms": [ + "linux" + ], + "architectures": [ + "x86_64" + ], + "binaries": [ + "./rzls" + ] + }, + { + "id": "Razor", + "description": "Razor Language Server (macOS / x64)", + "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/ad846449769eb2ae810d0236823a6aaa/razorlanguageserver-osx-x64-6.0.0-preview.5.21358.6.zip", + "installPath": ".razor", + "platforms": [ + "darwin" + ], + "architectures": [ + "x86_64", + "arm64" + ], + "binaries": [ + "./rzls" + ] + } + ], + "engines": { + "vscode": "^1.65.0" + }, + "activationEvents": [ + "onDebugInitialConfigurations", + "onDebugResolve:blazorwasm", + "onDebugResolve:coreclr", + "onDebugResolve:clr", + "onLanguage:csharp", + "onLanguage:aspnetcorerazor", + "onCommand:o.restart", + "onCommand:o.pickProjectAndStart", + "onCommand:o.showOutput", + "onCommand:dotnet.restore.project", + "onCommand:dotnet.restore.all", + "onCommand:dotnet.generateAssets", + "onCommand:csharp.downloadDebugger", + "onCommand:csharp.listProcess", + "onCommand:csharp.listRemoteProcess", + "onCommand:csharp.listRemoteDockerProcess", + "onCommand:omnisharp.registerLanguageMiddleware", + "workspaceContains:project.json", + "workspaceContains:**/*.{csproj,sln,slnf,csx,cake}" + ], + "contributes": { + "themes": [ + { + "label": "Visual Studio 2019 Dark", + "uiTheme": "vs-dark", + "path": "./themes/vs2019_dark.json" + }, + { + "label": "Visual Studio 2019 Light", + "uiTheme": "vs", + "path": "./themes/vs2019_light.json" + } + ], + "configuration": { + "title": "C# configuration", + "properties": { + "csharp.format.enable": { + "type": "boolean", + "default": true, + "description": "Enable/disable default C# formatter (requires restart)." + }, + "csharp.suppressDotnetInstallWarning": { + "type": "boolean", + "default": false, + "description": "Suppress the warning that the .NET Core SDK is not on the path." + }, + "csharp.unitTestDebuggingOptions": { + "type": "object", + "description": "Options to use with the debugger when launching for unit test debugging. Any launch.json option is valid here.", + "default": {}, + "properties": { + "sourceFileMap": { + "type": "object", + "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", + "additionalProperties": { + "type": "string" + }, + "default": { + "": "" + } + }, + "justMyCode": { + "type": "boolean", + "description": "Optional flag to only show user code.", + "default": true + }, + "requireExactSource": { + "type": "boolean", + "description": "Optional flag to require current source code to match the pdb.", + "default": true + }, + "enableStepFiltering": { + "type": "boolean", + "description": "Optional flag to enable stepping over Properties and Operators.", + "default": true + }, + "logging": { + "description": "Optional flags to determine what types of messages should be logged to the output window.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "exceptions": { + "type": "boolean", + "description": "Optional flag to determine whether exception messages should be logged to the output window.", + "default": true + }, + "moduleLoad": { + "type": "boolean", + "description": "Optional flag to determine whether module load events should be logged to the output window.", + "default": true + }, + "programOutput": { + "type": "boolean", + "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", + "default": true + }, + "engineLogging": { + "type": "boolean", + "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", + "default": false + }, + "browserStdOut": { + "type": "boolean", + "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", + "default": true + }, + "elapsedTiming": { + "type": "boolean", + "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", + "default": false + }, + "threadExit": { + "type": "boolean", + "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", + "default": false + }, + "processExit": { + "type": "boolean", + "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", + "default": true + } + } + }, + "suppressJITOptimizations": { + "type": "boolean", + "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", + "default": false + }, + "symbolOptions": { + "description": "Options to control how symbols (.pdb files) are found and loaded.", + "default": { + "searchPaths": [], + "searchMicrosoftSymbolServer": false, + "searchNuGetOrgSymbolServer": false + }, + "type": "object", + "properties": { + "searchPaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "default": [] + }, + "searchMicrosoftSymbolServer": { + "type": "boolean", + "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "searchNuGetOrgSymbolServer": { + "type": "boolean", + "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "cachePath": { + "type": "string", + "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", + "default": "~/.dotnet/symbolcache" + }, + "moduleFilter": { + "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", + "default": { + "mode": "loadAllButExcluded", + "excludedModules": [] + }, + "type": "object", + "required": [ + "mode" + ], + "properties": { + "mode": { + "type": "string", + "enum": [ + "loadAllButExcluded", + "loadOnlyIncluded" + ], + "enumDescriptions": [ + "Load symbols for all modules unless the module is in the 'excludedModules' array.", + "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." + ], + "description": "Controls which of the two basic operating modes the module filter operates in.", + "default": "loadAllButExcluded" + }, + "excludedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", + "default": [] + }, + "includedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": [ + "MyExampleModule.dll" + ] + }, + "includeSymbolsNextToModules": { + "type": "boolean", + "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": true + } + } + } + } + }, + "sourceLinkOptions": { + "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", + "default": { + "*": { + "enabled": true + } + }, + "type": "object", + "additionalItems": { + "type": "object", + "properties": { + "enabled": { + "title": "boolean", + "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", + "default": "true" + } + } + } + }, + "allowFastEvaluate": { + "type": "boolean", + "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", + "default": true + }, + "targetArchitecture": { + "type": "string", + "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." + }, + "type": { + "type": "string", + "enum": [ + "coreclr", + "clr" + ], + "description": "Type type of code to debug. Can be either 'coreclr' for .NET Core debugging, or 'clr' for Desktop .NET Framework. 'clr' only works on Windows as the Desktop framework is Windows-only.", + "default": "coreclr" + }, + "debugServer": { + "type": "number", + "description": "For debug extension development only: if a port is specified VS Code tries to connect to a debug adapter running in server mode", + "default": 4711 + } + } + }, + "csharp.suppressDotnetRestoreNotification": { + "type": "boolean", + "default": false, + "description": "Suppress the notification window to perform a 'dotnet restore' when dependencies can't be resolved." + }, + "csharp.suppressProjectJsonWarning": { + "type": "boolean", + "default": false, + "description": "Suppress the warning that project.json is no longer a supported project format for .NET Core applications" + }, + "csharp.suppressBuildAssetsNotification": { + "type": "boolean", + "default": false, + "description": "Suppress the notification window to add missing assets to build or debug the application." + }, + "csharp.suppressHiddenDiagnostics": { + "type": "boolean", + "default": true, + "description": "Suppress 'hidden' diagnostics (such as 'unnecessary using directives') from appearing in the editor or the Problems pane." + }, + "csharp.referencesCodeLens.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether the references CodeLens should be shown." + }, + "csharp.referencesCodeLens.filteredSymbols": { + "type": "array", + "items": { + "type": "string" + }, + "default": [], + "description": "Array of custom symbol names for which CodeLens should be disabled." + }, + "csharp.testsCodeLens.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether the run and debug test CodeLens should be shown." + }, + "csharp.maxProjectFileCountForDiagnosticAnalysis": { + "type": "number", + "default": 1000, + "description": "Specifies the maximum number of files for which diagnostics are reported for the whole workspace. If this limit is exceeded, diagnostics will be shown for currently opened files only. Specify 0 or less to disable the limit completely." + }, + "csharp.semanticHighlighting.enabled": { + "type": "boolean", + "default": true, + "description": "Enable/disable Semantic Highlighting for C# files (Razor files currently unsupported). Defaults to false. Close open files for changes to take effect.", + "scope": "window" + }, + "csharp.showOmnisharpLogOnError": { + "type": "boolean", + "default": true, + "description": "Shows the OmniSharp log in the Output pane when OmniSharp reports an error." + }, + "csharp.inlayHints.parameters.enabled": { + "type": "boolean", + "default": false, + "description": "Display inline parameter name hints" + }, + "csharp.inlayHints.parameters.forLiteralParameters": { + "type": "boolean", + "default": false, + "description": "Show hints for literals" + }, + "csharp.inlayHints.parameters.forObjectCreationParameters": { + "type": "boolean", + "default": false, + "description": "Show hints for 'new' expressions" + }, + "csharp.inlayHints.parameters.forIndexerParameters": { + "type": "boolean", + "default": false, + "description": "Show hints for indexers" + }, + "csharp.inlayHints.parameters.forOtherParameters": { + "type": "boolean", + "default": false, + "description": "Show hints for everything else" + }, + "csharp.inlayHints.parameters.suppressForParametersThatDifferOnlyBySuffix": { + "type": "boolean", + "default": false, + "description": "Suppress hints when parameter names differ only by suffix" + }, + "csharp.inlayHints.parameters.suppressForParametersThatMatchMethodIntent": { + "type": "boolean", + "default": false, + "description": "Suppress hints when parameter name matches the method's intent" + }, + "csharp.inlayHints.parameters.suppressForParametersThatMatchArgumentName": { + "type": "boolean", + "default": false, + "description": "Suppress hints when argument matches parameter name" + }, + "csharp.inlayHints.types.enabled": { + "type": "boolean", + "default": false, + "description": "Display inline type hints" + }, + "csharp.inlayHints.types.forImplicitVariableTypes": { + "type": "boolean", + "default": false, + "description": "Show hints for variables with inferred types" + }, + "csharp.inlayHints.types.forLambdaParameterTypes": { + "type": "boolean", + "default": false, + "description": "Show hints for lambda parameter types" + }, + "csharp.inlayHints.types.forImplicitObjectCreation": { + "type": "boolean", + "default": false, + "description": "Show hints for implicit object creation" + }, + "omnisharp.path": { + "type": "string", + "scope": "machine", + "description": "Specifies the path to OmniSharp. When left empty the OmniSharp version pinned to the C# Extension is used. This can be the absolute path to an OmniSharp executable, a specific version number, or \"latest\". If a version number or \"latest\" is specified, the appropriate version of OmniSharp will be downloaded on your behalf. Setting \"latest\" is an opt-in into latest beta releases of OmniSharp." + }, + "omnisharp.useModernNet": { + "type": "boolean", + "default": true, + "scope": "window", + "title": "Use .NET 6 build of OmniSharp", + "description": "Use OmniSharp build for .NET 6. This version _does not_ support non-SDK-style .NET Framework projects, including Unity. SDK-style Framework, .NET Core, and .NET 5+ projects should see significant performance improvements." + }, + "omnisharp.monoPath": { + "type": "string", + "scope": "machine", + "description": "Specifies the path to a mono installation to use when \"useModernNet\" is set to false, instead of the default system one. Example: \"/Library/Frameworks/Mono.framework/Versions/Current\"" + }, + "omnisharp.dotnetPath": { + "type": "string", + "scope": "window", + "description": "Specified the path to a dotnet installation to use when \"useModernNet\" is set to true, instead of the default system one. Example: \"/home/username/mycustomdotnetdirectory\"." + }, + "omnisharp.waitForDebugger": { + "type": "boolean", + "default": false, + "description": "Pass the --debug flag when launching the OmniSharp server to allow a debugger to be attached." + }, + "omnisharp.loggingLevel": { + "type": "string", + "default": "information", + "enum": [ + "trace", + "debug", + "information", + "warning", + "error", + "critical" + ], + "description": "Specifies the level of logging output from the OmniSharp server." + }, + "omnisharp.autoStart": { + "type": "boolean", + "default": true, + "description": "Specifies whether the OmniSharp server will be automatically started or not. If false, OmniSharp can be started with the 'Restart OmniSharp' command" + }, + "omnisharp.projectLoadTimeout": { + "type": "number", + "default": 60, + "description": "The time Visual Studio Code will wait for the OmniSharp server to start. Time is expressed in seconds." + }, + "omnisharp.maxProjectResults": { + "type": "number", + "default": 250, + "description": "The maximum number of projects to be shown in the 'Select Project' dropdown (maximum 250)." + }, + "omnisharp.defaultLaunchSolution": { + "type": "string", + "description": "The name of the default solution used at start up if the repo has multiple solutions. e.g.'MyAwesomeSolution.sln'. Default value is `null` which will cause the first in alphabetical order to be chosen." + }, + "omnisharp.useEditorFormattingSettings": { + "type": "boolean", + "default": true, + "description": "Specifes whether OmniSharp should use VS Code editor settings for C# code formatting (use of tabs, indentation size)." + }, + "omnisharp.minFindSymbolsFilterLength": { + "type": "number", + "default": 0, + "description": "The minimum number of characters to enter before 'Go to Symbol in Workspace' operation shows any results." + }, + "omnisharp.maxFindSymbolsItems": { + "type": "number", + "default": 1000, + "description": "The maximum number of items that 'Go to Symbol in Workspace' operation can show. The limit is applied only when a positive number is specified here." + }, + "omnisharp.disableMSBuildDiagnosticWarning": { + "type": "boolean", + "default": false, + "description": "Specifies whether notifications should be shown if OmniSharp encounters warnings or errors loading a project. Note that these warnings/errors are always emitted to the OmniSharp log" + }, + "omnisharp.enableMsBuildLoadProjectsOnDemand": { + "type": "boolean", + "default": false, + "description": "If true, MSBuild project system will only load projects for files that were opened in the editor. This setting is useful for big C# codebases and allows for faster initialization of code navigation features only for projects that are relevant to code that is being edited. With this setting enabled OmniSharp may load fewer projects and may thus display incomplete reference lists for symbols." + }, + "omnisharp.enableRoslynAnalyzers": { + "type": "boolean", + "default": false, + "description": "Enables support for roslyn analyzers, code fixes and rulesets." + }, + "omnisharp.enableEditorConfigSupport": { + "type": "boolean", + "default": true, + "description": "Enables support for reading code style, naming convention and analyzer settings from .editorconfig." + }, + "omnisharp.enableDecompilationSupport": { + "type": "boolean", + "default": false, + "scope": "machine", + "description": "Enables support for decompiling external references instead of viewing metadata." + }, + "omnisharp.enableImportCompletion": { + "type": "boolean", + "default": false, + "description": "Enables support for showing unimported types and unimported extension methods in completion lists. When committed, the appropriate using directive will be added at the top of the current file. This option can have a negative impact on initial completion responsiveness, particularly for the first few completion sessions after opening a solution." + }, + "omnisharp.organizeImportsOnFormat": { + "type": "boolean", + "default": false, + "description": "Specifies whether 'using' directives should be grouped and sorted during document formatting." + }, + "omnisharp.enableAsyncCompletion": { + "type": "boolean", + "default": false, + "description": "(EXPERIMENTAL) Enables support for resolving completion edits asynchronously. This can speed up time to show the completion list, particularly override and partial method completion lists, at the cost of slight delays after inserting a completion item. Most completion items will have no noticeable impact with this feature, but typing immediately after inserting an override or partial method completion, before the insert is completed, can have unpredictable results." + }, + "omnisharp.analyzeOpenDocumentsOnly": { + "type": "boolean", + "default": false, + "description": "Only run analyzers against open files when 'enableRoslynAnalyzers' is true" + }, + "omnisharp.testRunSettings": { + "type": "string", + "description": "Path to the .runsettings file which should be used when running unit tests." + }, + "razor.plugin.path": { + "type": "string", + "scope": "machine", + "description": "Overrides the path to the Razor plugin dll." + }, + "razor.devmode": { + "type": "boolean", + "default": false, + "description": "Forces the omnisharp-vscode extension to run in a mode that enables local Razor.VSCode deving." + }, + "razor.disabled": { + "type": "boolean", + "default": false, + "description": "Specifies whether to disable Razor language features." + }, + "razor.languageServer.directory": { + "type": "string", + "scope": "machine", + "description": "Overrides the path to the Razor Language Server directory." + }, + "razor.languageServer.debug": { + "type": "boolean", + "default": false, + "description": "Specifies whether to wait for debug attach when launching the language server." + }, + "razor.trace": { + "type": "string", + "default": "Off", + "enum": [ + "Off", + "Messages", + "Verbose" + ], + "enumDescriptions": [ + "Does not log messages from the Razor extension", + "Logs only some messages from the Razor extension", + "Logs all messages from the Razor extension" + ], + "description": "Specifies whether to output all messages [Verbose], some messages [Messages] or not at all [Off]." + }, + "razor.format.enable": { + "type": "boolean", + "scope": "window", + "default": true, + "description": "Enable/disable default Razor formatter." + } + } + }, + "jsonValidation": [ + { + "fileMatch": [ + "appsettings.json", + "appsettings.*.json" + ], + "url": "https://json.schemastore.org/appsettings" + }, + { + "fileMatch": "project.json", + "url": "http://json.schemastore.org/project" + }, + { + "fileMatch": "omnisharp.json", + "url": "http://json.schemastore.org/omnisharp" + }, + { + "fileMatch": "global.json", + "url": "http://json.schemastore.org/global" + } + ], + "commands": [ + { + "command": "o.restart", + "title": "Restart OmniSharp", + "category": "OmniSharp" + }, + { + "command": "o.pickProjectAndStart", + "title": "Select Project", + "category": "OmniSharp" + }, + { + "command": "o.fixAll.solution", + "title": "Fix all occurrences of a code issue within solution", + "category": "OmniSharp" + }, + { + "command": "o.fixAll.project", + "title": "Fix all occurrences of a code issue within project", + "category": "OmniSharp" + }, + { + "command": "o.fixAll.document", + "title": "Fix all occurrences of a code issue within document", + "category": "OmniSharp" + }, + { + "command": "o.reanalyze.allProjects", + "title": "Analyze all projects", + "category": "OmniSharp" + }, + { + "command": "o.reanalyze.currentProject", + "title": "Analyze current project", + "category": "OmniSharp" + }, + { + "command": "dotnet.generateAssets", + "title": "Generate Assets for Build and Debug", + "category": ".NET" + }, + { + "command": "dotnet.restore.project", + "title": "Restore Project", + "category": ".NET" + }, + { + "command": "dotnet.restore.all", + "title": "Restore All Projects", + "category": ".NET" + }, + { + "command": "csharp.downloadDebugger", + "title": "Download .NET Core Debugger", + "category": "Debug" + }, + { + "command": "csharp.listProcess", + "title": "List process for attach", + "category": "CSharp" + }, + { + "command": "csharp.listRemoteProcess", + "title": "List processes on remote connection for attach", + "category": "CSharp" + }, + { + "command": "csharp.listRemoteDockerProcess", + "title": "List processes on Docker connection", + "category": "CSharp" + }, + { + "command": "csharp.reportIssue", + "title": "Report an issue", + "category": "CSharp" + }, + { + "command": "csharp.showDecompilationTerms", + "title": "Show the decompiler terms agreement", + "category": "CSharp" + }, + { + "command": "extension.showRazorCSharpWindow", + "title": "Show Razor CSharp", + "category": "Razor" + }, + { + "command": "extension.showRazorHtmlWindow", + "title": "Show Razor Html", + "category": "Razor" + }, + { + "command": "razor.reportIssue", + "title": "Report a Razor issue", + "category": "Razor" + }, + { + "command": "dotnet.test.runTestsInContext", + "title": "Run Tests in Context", + "category": ".NET" + }, + { + "command": "dotnet.test.debugTestsInContext", + "title": "Debug Tests in Context", + "category": ".NET" + } + ], + "keybindings": [ + { + "command": "o.showOutput", + "key": "Ctrl+Shift+F9", + "mac": "Cmd+Shift+F9" + } + ], + "snippets": [ + { + "language": "csharp", + "path": "./snippets/csharp.json" + } + ], + "breakpoints": [ + { + "language": "csharp" + }, + { + "language": "razor" + }, + { + "language": "qsharp" + }, + { + "language": "aspnetcorerazor" + } + ], + "debuggers": [ + { + "type": "coreclr", + "label": ".NET 5+ and .NET Core", + "languages": [ + "csharp", + "razor", + "qsharp", + "aspnetcorerazor" + ], + "variables": { + "pickProcess": "csharp.listProcess", + "pickRemoteProcess": "csharp.listRemoteProcess", + "pickRemoteDockerProcess": "csharp.listRemoteDockerProcess" + }, + "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217", + "configurationAttributes": { + "launch": { + "type": "object", + "required": [ + "program" + ], + "properties": { + "program": { + "type": "string", + "description": "Path to the application dll or .NET Core host executable to launch.\nThis property normally takes the form: '${workspaceFolder}/bin/Debug/(target-framework)/(project-name.dll)'\nExample: '${workspaceFolder}/bin/Debug/netcoreapp1.1/MyProject.dll'\n\nWhere:\n(target-framework) is the framework that the debugged project is being built for. This is normally found in the project file as the 'TargetFramework' property.\n(project-name.dll) is the name of debugged project's build output dll. This is normally the same as the project file name but with a '.dll' extension.", + "default": "${workspaceFolder}/bin/Debug//.dll" + }, + "cwd": { + "type": "string", + "description": "Path to the working directory of the program being debugged. Default is the current workspace.", + "default": "${workspaceFolder}" + }, + "args": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the program.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the program.", + "default": "" + } + ] + }, + "stopAtEntry": { + "type": "boolean", + "description": "If true, the debugger should stop at the entry point of the target.", + "default": false + }, + "launchBrowser": { + "description": "Describes options to launch a web browser as part of launch", + "default": { + "enabled": true + }, + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether web browser launch is enabled", + "default": true + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. This is used only if the platform-specific element (`osx`, `linux` or `windows`) doesn't specify a value for `args`. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "${auto-detect-url}" + }, + "osx": { + "description": "OSX-specific web launch configuration options. By default, this will start the browser using `open`.", + "default": { + "command": "open", + "args": "${auto-detect-url}" + }, + "type": "object", + "required": [ + "command" + ], + "properties": { + "command": { + "type": "string", + "description": "The executable which will start the web browser", + "default": "open" + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "${auto-detect-url}" + } + } + }, + "linux": { + "description": "Linux-specific web launch configuration options. By default, this will start the browser using `xdg-open`.", + "default": { + "command": "xdg-open", + "args": "${auto-detect-url}" + }, + "type": "object", + "required": [ + "command" + ], + "properties": { + "command": { + "type": "string", + "description": "The executable which will start the web browser", + "default": "xdg-open" + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "${auto-detect-url}" + } + } + }, + "windows": { + "description": "Windows-specific web launch configuration options. By default, this will start the browser using `cmd /c start`.", + "default": { + "command": "cmd.exe", + "args": "/C start ${auto-detect-url}" + }, + "type": "object", + "required": [ + "command" + ], + "properties": { + "command": { + "type": "string", + "description": "The executable which will start the web browser", + "default": "cmd.exe" + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "/C start ${auto-detect-url}" + } + } + } + } + }, + "env": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the program.", + "default": {} + }, + "envFile": { + "type": "string", + "description": "Environment variables passed to the program by a file.", + "default": "${workspaceFolder}/.env" + }, + "console": { + "type": "string", + "enum": [ + "internalConsole", + "integratedTerminal", + "externalTerminal" + ], + "enumDescriptions": [ + "Output to the VS Code Debug Console. This doesn't support reading console input (ex:Console.ReadLine)", + "VS Code's integrated terminal", + "External terminal that can be configured via user settings" + ], + "description": "Where to launch the debug target.", + "default": "internalConsole" + }, + "externalConsole": { + "type": "boolean", + "description": "Attribute 'externalConsole' is deprecated, use 'console' instead.", + "default": false + }, + "launchSettingsFilePath": { + "type": "string", + "description": "The path to a launchSettings.json file. If this isn't set, the debugger will search in '{cwd}/Properties/launchSettings.json'.", + "default": "${workspaceFolder}/Properties/launchSettings.json" + }, + "launchSettingsProfile": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "If specified, indicates the name of the profile in launchSettings.json to use. This is ignored if launchSettings.json is not found. launchSettings.json will be read from the path specified should be the 'launchSettingsFilePath' property, or {cwd}/Properties/launchSettings.json if that isn't set. If this is set to null or an empty string then launchSettings.json is ignored. If this value is not specified the first 'Project' profile will be used.", + "default": "" + }, + "sourceFileMap": { + "type": "object", + "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", + "additionalProperties": { + "type": "string" + }, + "default": { + "": "" + } + }, + "justMyCode": { + "type": "boolean", + "description": "Optional flag to only show user code.", + "default": true + }, + "requireExactSource": { + "type": "boolean", + "description": "Optional flag to require current source code to match the pdb.", + "default": true + }, + "enableStepFiltering": { + "type": "boolean", + "description": "Optional flag to enable stepping over Properties and Operators.", + "default": true + }, + "logging": { + "description": "Optional flags to determine what types of messages should be logged to the output window.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "exceptions": { + "type": "boolean", + "description": "Optional flag to determine whether exception messages should be logged to the output window.", + "default": true + }, + "moduleLoad": { + "type": "boolean", + "description": "Optional flag to determine whether module load events should be logged to the output window.", + "default": true + }, + "programOutput": { + "type": "boolean", + "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", + "default": true + }, + "engineLogging": { + "type": "boolean", + "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", + "default": false + }, + "browserStdOut": { + "type": "boolean", + "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", + "default": true + }, + "elapsedTiming": { + "type": "boolean", + "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", + "default": false + }, + "threadExit": { + "type": "boolean", + "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", + "default": false + }, + "processExit": { + "type": "boolean", + "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", + "default": true + } + } + }, + "pipeTransport": { + "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", + "type": "object", + "required": [ + "debuggerPath" + ], + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [], + "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "debuggerPath": { + "type": "string", + "description": "The full path to the debugger on the target machine.", + "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "windows": { + "description": "Windows-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "osx": { + "description": "OSX-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "linux": { + "description": "Linux-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + } + } + }, + "suppressJITOptimizations": { + "type": "boolean", + "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", + "default": false + }, + "symbolOptions": { + "description": "Options to control how symbols (.pdb files) are found and loaded.", + "default": { + "searchPaths": [], + "searchMicrosoftSymbolServer": false, + "searchNuGetOrgSymbolServer": false + }, + "type": "object", + "properties": { + "searchPaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "default": [] + }, + "searchMicrosoftSymbolServer": { + "type": "boolean", + "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "searchNuGetOrgSymbolServer": { + "type": "boolean", + "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "cachePath": { + "type": "string", + "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", + "default": "~/.dotnet/symbolcache" + }, + "moduleFilter": { + "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", + "default": { + "mode": "loadAllButExcluded", + "excludedModules": [] + }, + "type": "object", + "required": [ + "mode" + ], + "properties": { + "mode": { + "type": "string", + "enum": [ + "loadAllButExcluded", + "loadOnlyIncluded" + ], + "enumDescriptions": [ + "Load symbols for all modules unless the module is in the 'excludedModules' array.", + "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." + ], + "description": "Controls which of the two basic operating modes the module filter operates in.", + "default": "loadAllButExcluded" + }, + "excludedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", + "default": [] + }, + "includedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": [ + "MyExampleModule.dll" + ] + }, + "includeSymbolsNextToModules": { + "type": "boolean", + "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": true + } + } + } + } + }, + "sourceLinkOptions": { + "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", + "default": { + "*": { + "enabled": true + } + }, + "type": "object", + "additionalItems": { + "type": "object", + "properties": { + "enabled": { + "title": "boolean", + "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", + "default": "true" + } + } + } + }, + "allowFastEvaluate": { + "type": "boolean", + "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", + "default": true + }, + "targetOutputLogPath": { + "type": "string", + "description": "When set, text that the target application writes to stdout and stderr (ex: Console.WriteLine) will be saved to the specified file. This option is ignored if console is set to something other than internalConsole.", + "default": "${workspaceFolder}/out.txt" + }, + "targetArchitecture": { + "type": "string", + "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." + } + } + }, + "attach": { + "type": "object", + "required": [], + "properties": { + "processName": { + "type": "string", + "description": "", + "default": "The process name to attach to. If this is used, 'processId' should not be used." + }, + "processId": { + "anyOf": [ + { + "type": "string", + "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", + "default": "" + }, + { + "type": "integer", + "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", + "default": 0 + } + ] + }, + "sourceFileMap": { + "type": "object", + "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", + "additionalProperties": { + "type": "string" + }, + "default": { + "": "" + } + }, + "justMyCode": { + "type": "boolean", + "description": "Optional flag to only show user code.", + "default": true + }, + "requireExactSource": { + "type": "boolean", + "description": "Optional flag to require current source code to match the pdb.", + "default": true + }, + "enableStepFiltering": { + "type": "boolean", + "description": "Optional flag to enable stepping over Properties and Operators.", + "default": true + }, + "logging": { + "description": "Optional flags to determine what types of messages should be logged to the output window.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "exceptions": { + "type": "boolean", + "description": "Optional flag to determine whether exception messages should be logged to the output window.", + "default": true + }, + "moduleLoad": { + "type": "boolean", + "description": "Optional flag to determine whether module load events should be logged to the output window.", + "default": true + }, + "programOutput": { + "type": "boolean", + "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", + "default": true + }, + "engineLogging": { + "type": "boolean", + "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", + "default": false + }, + "browserStdOut": { + "type": "boolean", + "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", + "default": true + }, + "elapsedTiming": { + "type": "boolean", + "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", + "default": false + }, + "threadExit": { + "type": "boolean", + "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", + "default": false + }, + "processExit": { + "type": "boolean", + "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", + "default": true + } + } + }, + "pipeTransport": { + "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", + "type": "object", + "required": [ + "debuggerPath" + ], + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [], + "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "debuggerPath": { + "type": "string", + "description": "The full path to the debugger on the target machine.", + "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "windows": { + "description": "Windows-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "osx": { + "description": "OSX-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "linux": { + "description": "Linux-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + } + } + }, + "suppressJITOptimizations": { + "type": "boolean", + "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", + "default": false + }, + "symbolOptions": { + "description": "Options to control how symbols (.pdb files) are found and loaded.", + "default": { + "searchPaths": [], + "searchMicrosoftSymbolServer": false, + "searchNuGetOrgSymbolServer": false + }, + "type": "object", + "properties": { + "searchPaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "default": [] + }, + "searchMicrosoftSymbolServer": { + "type": "boolean", + "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "searchNuGetOrgSymbolServer": { + "type": "boolean", + "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "cachePath": { + "type": "string", + "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", + "default": "~/.dotnet/symbolcache" + }, + "moduleFilter": { + "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", + "default": { + "mode": "loadAllButExcluded", + "excludedModules": [] + }, + "type": "object", + "required": [ + "mode" + ], + "properties": { + "mode": { + "type": "string", + "enum": [ + "loadAllButExcluded", + "loadOnlyIncluded" + ], + "enumDescriptions": [ + "Load symbols for all modules unless the module is in the 'excludedModules' array.", + "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." + ], + "description": "Controls which of the two basic operating modes the module filter operates in.", + "default": "loadAllButExcluded" + }, + "excludedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", + "default": [] + }, + "includedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": [ + "MyExampleModule.dll" + ] + }, + "includeSymbolsNextToModules": { + "type": "boolean", + "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": true + } + } + } + } + }, + "sourceLinkOptions": { + "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", + "default": { + "*": { + "enabled": true + } + }, + "type": "object", + "additionalItems": { + "type": "object", + "properties": { + "enabled": { + "title": "boolean", + "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", + "default": "true" + } + } + } + }, + "allowFastEvaluate": { + "type": "boolean", + "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", + "default": true + }, + "targetArchitecture": { + "type": "string", + "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." + } + } + } + }, + "configurationSnippets": [ + { + "label": ".NET: Launch .NET Core Console App", + "description": "Launch a .NET Core Console App with a debugger.", + "body": { + "name": ".NET Core Launch (console)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + "program": "^\"\\${workspaceFolder}/bin/Debug/${1:}/${2:}\"", + "args": [], + "cwd": "^\"\\${workspaceFolder}\"", + "stopAtEntry": false, + "console": "internalConsole" + } + }, + { + "label": ".NET: Attach to local .NET Core Console App", + "description": "Attach a debugger to a .NET Core Console App.", + "body": { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach" + } + }, + { + "label": ".NET: Launch a local .NET Core Web App", + "description": "Launch a .NET Core Web App with both a browser and a debugger.", + "body": { + "name": ".NET Core Launch (web)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + "program": "^\"\\${workspaceFolder}/bin/Debug/${1:}/${2:}\"", + "args": [], + "cwd": "^\"\\${workspaceFolder}\"", + "stopAtEntry": false, + "serverReadyAction": { + "action": "openExternally", + "pattern": "\\\\bNow listening on:\\\\s+(https?://\\\\S+)" + }, + "env": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "sourceFileMap": { + "/Views": "^\"\\${workspaceFolder}/Views\"" + } + } + }, + { + "label": ".NET: Launch a remote .NET Core Console App", + "description": "Launch a .NET Core Console App on a remote machine.", + "body": { + "name": ".NET Core Launch (console)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + "program": "^\"\\${workspaceFolder}/bin/Debug/${1:}/${2:}\"", + "args": [], + "cwd": "^\"\\${workspaceFolder}\"", + "stopAtEntry": false, + "console": "internalConsole", + "pipeTransport": { + "pipeCwd": "^\"\\${workspaceFolder}\"", + "pipeProgram": "^\"${3:enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'}\"", + "pipeArgs": [], + "debuggerPath": "^\"${4:enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg}\"" + } + } + }, + { + "label": ".NET: Attach to remote .NET Core Console App", + "description": "Attach a debugger to a .NET Core Console App on a remote machine.", + "body": { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach", + "pipeTransport": { + "pipeCwd": "^\"\\${workspaceFolder}\"", + "pipeProgram": "^\"${1:enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'}\"", + "pipeArgs": [], + "debuggerPath": "^\"${2:enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg}\"" + } + } + } + ] + }, + { + "type": "clr", + "label": ".NET Framework 4.x (Windows only)", + "languages": [ + "csharp", + "razor", + "qsharp", + "aspnetcorerazor" + ], + "variables": { + "pickProcess": "csharp.listProcess", + "pickRemoteProcess": "csharp.listRemoteProcess", + "pickRemoteDockerProcess": "csharp.listRemoteDockerProcess" + }, + "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217", + "configurationAttributes": { + "launch": { + "type": "object", + "required": [ + "program" + ], + "properties": { + "program": { + "type": "string", + "description": "Path to the application dll or .NET Core host executable to launch.\nThis property normally takes the form: '${workspaceFolder}/bin/Debug/(target-framework)/(project-name.dll)'\nExample: '${workspaceFolder}/bin/Debug/netcoreapp1.1/MyProject.dll'\n\nWhere:\n(target-framework) is the framework that the debugged project is being built for. This is normally found in the project file as the 'TargetFramework' property.\n(project-name.dll) is the name of debugged project's build output dll. This is normally the same as the project file name but with a '.dll' extension.", + "default": "${workspaceFolder}/bin/Debug//.dll" + }, + "cwd": { + "type": "string", + "description": "Path to the working directory of the program being debugged. Default is the current workspace.", + "default": "${workspaceFolder}" + }, + "args": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the program.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the program.", + "default": "" + } + ] + }, + "stopAtEntry": { + "type": "boolean", + "description": "If true, the debugger should stop at the entry point of the target.", + "default": false + }, + "launchBrowser": { + "description": "Describes options to launch a web browser as part of launch", + "default": { + "enabled": true + }, + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether web browser launch is enabled", + "default": true + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. This is used only if the platform-specific element (`osx`, `linux` or `windows`) doesn't specify a value for `args`. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "${auto-detect-url}" + }, + "osx": { + "description": "OSX-specific web launch configuration options. By default, this will start the browser using `open`.", + "default": { + "command": "open", + "args": "${auto-detect-url}" + }, + "type": "object", + "required": [ + "command" + ], + "properties": { + "command": { + "type": "string", + "description": "The executable which will start the web browser", + "default": "open" + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "${auto-detect-url}" + } + } + }, + "linux": { + "description": "Linux-specific web launch configuration options. By default, this will start the browser using `xdg-open`.", + "default": { + "command": "xdg-open", + "args": "${auto-detect-url}" + }, + "type": "object", + "required": [ + "command" + ], + "properties": { + "command": { + "type": "string", + "description": "The executable which will start the web browser", + "default": "xdg-open" + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "${auto-detect-url}" + } + } + }, + "windows": { + "description": "Windows-specific web launch configuration options. By default, this will start the browser using `cmd /c start`.", + "default": { + "command": "cmd.exe", + "args": "/C start ${auto-detect-url}" + }, + "type": "object", + "required": [ + "command" + ], + "properties": { + "command": { + "type": "string", + "description": "The executable which will start the web browser", + "default": "cmd.exe" + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "/C start ${auto-detect-url}" + } + } + } + } + }, + "env": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the program.", + "default": {} + }, + "envFile": { + "type": "string", + "description": "Environment variables passed to the program by a file.", + "default": "${workspaceFolder}/.env" + }, + "console": { + "type": "string", + "enum": [ + "internalConsole", + "integratedTerminal", + "externalTerminal" + ], + "enumDescriptions": [ + "Output to the VS Code Debug Console. This doesn't support reading console input (ex:Console.ReadLine)", + "VS Code's integrated terminal", + "External terminal that can be configured via user settings" + ], + "description": "Where to launch the debug target.", + "default": "internalConsole" + }, + "externalConsole": { + "type": "boolean", + "description": "Attribute 'externalConsole' is deprecated, use 'console' instead.", + "default": false + }, + "launchSettingsFilePath": { + "type": "string", + "description": "The path to a launchSettings.json file. If this isn't set, the debugger will search in '{cwd}/Properties/launchSettings.json'.", + "default": "${workspaceFolder}/Properties/launchSettings.json" + }, + "launchSettingsProfile": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "If specified, indicates the name of the profile in launchSettings.json to use. This is ignored if launchSettings.json is not found. launchSettings.json will be read from the path specified should be the 'launchSettingsFilePath' property, or {cwd}/Properties/launchSettings.json if that isn't set. If this is set to null or an empty string then launchSettings.json is ignored. If this value is not specified the first 'Project' profile will be used.", + "default": "" + }, + "sourceFileMap": { + "type": "object", + "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", + "additionalProperties": { + "type": "string" + }, + "default": { + "": "" + } + }, + "justMyCode": { + "type": "boolean", + "description": "Optional flag to only show user code.", + "default": true + }, + "requireExactSource": { + "type": "boolean", + "description": "Optional flag to require current source code to match the pdb.", + "default": true + }, + "enableStepFiltering": { + "type": "boolean", + "description": "Optional flag to enable stepping over Properties and Operators.", + "default": true + }, + "logging": { + "description": "Optional flags to determine what types of messages should be logged to the output window.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "exceptions": { + "type": "boolean", + "description": "Optional flag to determine whether exception messages should be logged to the output window.", + "default": true + }, + "moduleLoad": { + "type": "boolean", + "description": "Optional flag to determine whether module load events should be logged to the output window.", + "default": true + }, + "programOutput": { + "type": "boolean", + "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", + "default": true + }, + "engineLogging": { + "type": "boolean", + "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", + "default": false + }, + "browserStdOut": { + "type": "boolean", + "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", + "default": true + }, + "elapsedTiming": { + "type": "boolean", + "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", + "default": false + }, + "threadExit": { + "type": "boolean", + "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", + "default": false + }, + "processExit": { + "type": "boolean", + "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", + "default": true + } + } + }, + "pipeTransport": { + "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", + "type": "object", + "required": [ + "debuggerPath" + ], + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [], + "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "debuggerPath": { + "type": "string", + "description": "The full path to the debugger on the target machine.", + "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "windows": { + "description": "Windows-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "osx": { + "description": "OSX-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "linux": { + "description": "Linux-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + } + } + }, + "suppressJITOptimizations": { + "type": "boolean", + "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", + "default": false + }, + "symbolOptions": { + "description": "Options to control how symbols (.pdb files) are found and loaded.", + "default": { + "searchPaths": [], + "searchMicrosoftSymbolServer": false, + "searchNuGetOrgSymbolServer": false + }, + "type": "object", + "properties": { + "searchPaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "default": [] + }, + "searchMicrosoftSymbolServer": { + "type": "boolean", + "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "searchNuGetOrgSymbolServer": { + "type": "boolean", + "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "cachePath": { + "type": "string", + "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", + "default": "~/.dotnet/symbolcache" + }, + "moduleFilter": { + "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", + "default": { + "mode": "loadAllButExcluded", + "excludedModules": [] + }, + "type": "object", + "required": [ + "mode" + ], + "properties": { + "mode": { + "type": "string", + "enum": [ + "loadAllButExcluded", + "loadOnlyIncluded" + ], + "enumDescriptions": [ + "Load symbols for all modules unless the module is in the 'excludedModules' array.", + "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." + ], + "description": "Controls which of the two basic operating modes the module filter operates in.", + "default": "loadAllButExcluded" + }, + "excludedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", + "default": [] + }, + "includedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": [ + "MyExampleModule.dll" + ] + }, + "includeSymbolsNextToModules": { + "type": "boolean", + "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": true + } + } + } + } + }, + "sourceLinkOptions": { + "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", + "default": { + "*": { + "enabled": true + } + }, + "type": "object", + "additionalItems": { + "type": "object", + "properties": { + "enabled": { + "title": "boolean", + "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", + "default": "true" + } + } + } + }, + "allowFastEvaluate": { + "type": "boolean", + "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", + "default": true + }, + "targetOutputLogPath": { + "type": "string", + "description": "When set, text that the target application writes to stdout and stderr (ex: Console.WriteLine) will be saved to the specified file. This option is ignored if console is set to something other than internalConsole.", + "default": "${workspaceFolder}/out.txt" + }, + "targetArchitecture": { + "type": "string", + "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." + } + } + }, + "attach": { + "type": "object", + "required": [], + "properties": { + "processName": { + "type": "string", + "description": "", + "default": "The process name to attach to. If this is used, 'processId' should not be used." + }, + "processId": { + "anyOf": [ + { + "type": "string", + "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", + "default": "" + }, + { + "type": "integer", + "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", + "default": 0 + } + ] + }, + "sourceFileMap": { + "type": "object", + "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", + "additionalProperties": { + "type": "string" + }, + "default": { + "": "" + } + }, + "justMyCode": { + "type": "boolean", + "description": "Optional flag to only show user code.", + "default": true + }, + "requireExactSource": { + "type": "boolean", + "description": "Optional flag to require current source code to match the pdb.", + "default": true + }, + "enableStepFiltering": { + "type": "boolean", + "description": "Optional flag to enable stepping over Properties and Operators.", + "default": true + }, + "logging": { + "description": "Optional flags to determine what types of messages should be logged to the output window.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "exceptions": { + "type": "boolean", + "description": "Optional flag to determine whether exception messages should be logged to the output window.", + "default": true + }, + "moduleLoad": { + "type": "boolean", + "description": "Optional flag to determine whether module load events should be logged to the output window.", + "default": true + }, + "programOutput": { + "type": "boolean", + "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", + "default": true + }, + "engineLogging": { + "type": "boolean", + "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", + "default": false + }, + "browserStdOut": { + "type": "boolean", + "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", + "default": true + }, + "elapsedTiming": { + "type": "boolean", + "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", + "default": false + }, + "threadExit": { + "type": "boolean", + "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", + "default": false + }, + "processExit": { + "type": "boolean", + "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", + "default": true + } + } + }, + "pipeTransport": { + "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", + "type": "object", + "required": [ + "debuggerPath" + ], + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [], + "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "debuggerPath": { + "type": "string", + "description": "The full path to the debugger on the target machine.", + "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "windows": { + "description": "Windows-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "osx": { + "description": "OSX-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "linux": { + "description": "Linux-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + } + } + }, + "suppressJITOptimizations": { + "type": "boolean", + "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", + "default": false + }, + "symbolOptions": { + "description": "Options to control how symbols (.pdb files) are found and loaded.", + "default": { + "searchPaths": [], + "searchMicrosoftSymbolServer": false, + "searchNuGetOrgSymbolServer": false + }, + "type": "object", + "properties": { + "searchPaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "default": [] + }, + "searchMicrosoftSymbolServer": { + "type": "boolean", + "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "searchNuGetOrgSymbolServer": { + "type": "boolean", + "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "cachePath": { + "type": "string", + "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", + "default": "~/.dotnet/symbolcache" + }, + "moduleFilter": { + "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", + "default": { + "mode": "loadAllButExcluded", + "excludedModules": [] + }, + "type": "object", + "required": [ + "mode" + ], + "properties": { + "mode": { + "type": "string", + "enum": [ + "loadAllButExcluded", + "loadOnlyIncluded" + ], + "enumDescriptions": [ + "Load symbols for all modules unless the module is in the 'excludedModules' array.", + "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." + ], + "description": "Controls which of the two basic operating modes the module filter operates in.", + "default": "loadAllButExcluded" + }, + "excludedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", + "default": [] + }, + "includedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": [ + "MyExampleModule.dll" + ] + }, + "includeSymbolsNextToModules": { + "type": "boolean", + "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": true + } + } + } + } + }, + "sourceLinkOptions": { + "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", + "default": { + "*": { + "enabled": true + } + }, + "type": "object", + "additionalItems": { + "type": "object", + "properties": { + "enabled": { + "title": "boolean", + "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", + "default": "true" + } + } + } + }, + "allowFastEvaluate": { + "type": "boolean", + "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", + "default": true + }, + "targetArchitecture": { + "type": "string", + "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." + } + } + } + } + }, + { + "type": "blazorwasm", + "label": "Blazor WebAssembly Debug", + "initialConfigurations": [ + { + "type": "blazorwasm", + "name": "Launch and Debug Blazor WebAssembly Application", + "request": "launch" + } + ], + "configurationAttributes": { + "launch": { + "properties": { + "cwd": { + "type": "string", + "description": "The directory of the Blazor WebAssembly app, defaults to the workspace folder.", + "default": "${workspaceFolder}" + }, + "url": { + "type": "string", + "description": "The URL of the application", + "default": "https://localhost:5001" + }, + "browser": { + "type": "string", + "description": "The debugging browser to launch (Edge or Chrome)", + "default": "edge", + "enum": [ + "chrome", + "edge" + ] + }, + "trace": { + "type": [ + "boolean", + "string" + ], + "default": "true", + "enum": [ + "verbose", + true + ], + "description": "If true, verbose logs from JS debugger are sent to log file. If 'verbose', send logs to console." + }, + "hosted": { + "type": "boolean", + "default": "false", + "description": "True if the app is a hosted Blazor WebAssembly app, false otherwise." + }, + "webRoot": { + "type": "string", + "default": "${workspaceFolder}", + "description": "Specifies the absolute path to the webserver root." + }, + "timeout": { + "type": "number", + "default": 30000, + "description": "Retry for this number of milliseconds to connect to browser." + }, + "program": { + "type": "string", + "default": "${workspaceFolder}/Server/bin/Debug//", + "description": "The path of the DLL to execute when launching a hosted server app" + }, + "env": { + "type": "object", + "description": "Environment variables passed to dotnet. Only valid for hosted apps." + }, + "dotNetConfig": { + "description": "Options passed to the underlying .NET debugger. For more info, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger.md.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "justMyCode": { + "type": "boolean", + "description": "Optional flag to only show user code.", + "default": true + }, + "logging": { + "description": "Optional flags to determine what types of messages should be logged to the output window. Applicable only for the app server of hosted Blazor WASM apps.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "exceptions": { + "type": "boolean", + "description": "Optional flag to determine whether exception messages should be logged to the output window.", + "default": true + }, + "moduleLoad": { + "type": "boolean", + "description": "Optional flag to determine whether module load events should be logged to the output window.", + "default": true + }, + "programOutput": { + "type": "boolean", + "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", + "default": true + }, + "engineLogging": { + "type": "boolean", + "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", + "default": false + }, + "browserStdOut": { + "type": "boolean", + "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", + "default": true + }, + "elapsedTiming": { + "type": "boolean", + "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", + "default": false + }, + "threadExit": { + "type": "boolean", + "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", + "default": false + }, + "processExit": { + "type": "boolean", + "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", + "default": true + } + } + }, + "sourceFileMap": { + "type": "object", + "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", + "additionalProperties": { + "type": "string" + }, + "default": { + "": "" + } + } + } + }, + "browserConfig": { + "description": "Options based to the underlying JavaScript debugger. For more info, see https://github.com/microsoft/vscode-js-debug/blob/master/OPTIONS.md.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "outputCapture": { + "enum": [ + "console", + "std" + ], + "description": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.", + "default": "console" + } + } + } + } + }, + "attach": { + "properties": { + "url": { + "type": "string", + "description": "The URL of the application", + "default": "https://localhost:5001" + }, + "cwd": { + "type": "string", + "description": "The directory of the Blazor WebAssembly app, defaults to the workspace folder.", + "default": "${workspaceFolder}" + }, + "browser": { + "type": "string", + "description": "The debugging browser to launch (Edge or Chrome)", + "default": "chrome", + "enum": [ + "chrome", + "edge" + ] + }, + "trace": { + "type": [ + "boolean", + "string" + ], + "default": "true", + "enum": [ + "verbose", + true + ], + "description": "If true, verbose logs from JS debugger are sent to log file. If 'verbose', send logs to console." + }, + "webRoot": { + "type": "string", + "default": "${workspaceFolder}", + "description": "Specifies the absolute path to the webserver root." + }, + "timeout": { + "type": "number", + "default": 30000, + "description": "Retry for this number of milliseconds to connect to browser." + } + } + } + } + } + ], + "semanticTokenTypes": [ + { + "id": "razorTagHelperElement", + "description": "A Razor TagHelper Element" + }, + { + "id": "razorTagHelperAttribute", + "description": "A Razor TagHelper Attribute" + }, + { + "id": "razorTransition", + "description": "A Razor transition" + }, + { + "id": "razorDirectiveAttribute", + "description": "A Razor Directive Attribute" + }, + { + "id": "razorDirectiveColon", + "description": "A colon between directive attribute parameters" + }, + { + "id": "razorDirective", + "description": "A Razor directive such as 'code' or 'function'" + }, + { + "id": "razorComment", + "description": "A Razor comment" + }, + { + "id": "markupCommentPunctuation", + "description": "The '@' or '*' of a Razor comment." + }, + { + "id": "markupTagDelimiter", + "description": "Markup delimiters like '<', '>', and '/'." + }, + { + "id": "markupOperator", + "description": "Delimiter for Markup Attribute Key-Value pairs." + }, + { + "id": "markupElement", + "description": "The name of a Markup element." + }, + { + "id": "markupAttribute", + "description": "The name of a Markup attribute." + }, + { + "id": "markupComment", + "description": "The contents of a Markup comment." + }, + { + "id": "markupCommentPunctuation", + "description": "The begining or ending punctuation of a Markup comment." + }, + { + "id": "plainKeyword", + "description": "Represents a keyword" + }, + { + "id": "controlKeyword", + "description": "Represents a control-flow keyword" + }, + { + "id": "operatorOverloaded", + "description": "Represents a custom implementation of an operator" + }, + { + "id": "preprocessorKeyword", + "description": "Represents" + }, + { + "id": "preprocessorText", + "description": "Represents" + }, + { + "id": "excludedCode", + "description": "" + }, + { + "id": "punctuation", + "description": "" + }, + { + "id": "stringVerbatim", + "description": "" + }, + { + "id": "stringEscapeCharacter", + "description": "" + }, + { + "id": "delegate", + "description": "" + }, + { + "id": "module", + "description": "" + }, + { + "id": "extensionMethod", + "description": "" + }, + { + "id": "field", + "description": "" + }, + { + "id": "local", + "description": "" + }, + { + "id": "xmlDocCommentAttributeName", + "description": "" + }, + { + "id": "xmlDocCommentAttributeQuotes", + "description": "" + }, + { + "id": "xmlDocCommentAttributeValue", + "description": "" + }, + { + "id": "xmlDocCommentCDataSection", + "description": "" + }, + { + "id": "xmlDocCommentComment", + "description": "" + }, + { + "id": "xmlDocCommentDelimiter", + "description": "" + }, + { + "id": "xmlDocCommentEntityReference", + "description": "" + }, + { + "id": "xmlDocCommentName", + "description": "" + }, + { + "id": "xmlDocCommentProcessingInstruction", + "description": "" + }, + { + "id": "xmlDocCommentText", + "description": "" + }, + { + "id": "regexComment", + "description": "" + }, + { + "id": "regexCharacterClass", + "description": "" + }, + { + "id": "regexAnchor", + "description": "" + }, + { + "id": "regexQuantifier", + "description": "" + }, + { + "id": "regexGrouping", + "description": "" + }, + { + "id": "regexAlternation", + "description": "" + }, + { + "id": "regexSelfEscapedCharacter", + "description": "" + }, + { + "id": "regexOtherEscape", + "description": "" + } + ], + "semanticTokenModifiers": [], + "semanticTokenScopes": [ + { + "language": "aspnetcorerazor", + "scopes": { + "razorTagHelperElement": [ + "entity.name.class.element.taghelper" + ], + "razorTagHelperAttribute": [ + "entity.name.class.attribute.taghelper" + ], + "razorTransition": [ + "keyword.control.razor.transition" + ], + "razorDirectiveAttribute": [ + "keyword.control.razor.directive.attribute", + "keyword.control.cshtml.directive.attribute" + ], + "razorDirectiveColon": [ + "keyword.control.razor.directive.colon", + "keyword.control.cshtml.directive.colon" + ], + "razorDirective": [ + "keyword.control.razor.directive", + "keyword.control.cshtml.directive" + ], + "razorComment": [ + "comment.block.razor" + ], + "razorCommentTransition": [ + "meta.comment.razor", + "keyword.control.cshtml.transition" + ], + "razorCommentStar": [ + "keyword.control.razor.comment.star", + "meta.comment.razor" + ], + "angleBracket": [ + "punctuation.definition.tag" + ], + "forwardSlash": [ + "punctuation.definition.tag" + ], + "equals": [ + "punctuation.separator.key-value.html" + ], + "markupElement": [ + "entity.name.tag.html" + ], + "markupAttribute": [ + "entity.other.attribute-name.html" + ], + "markupComment": [ + "comment.block.html" + ], + "markupCommentPunctuation": [ + "punctuation.definition.comment.html", + "comment.block.html" + ] + } + }, + { + "language": "csharp", + "scopes": { + "plainKeyword": [ + "keyword.cs" + ], + "controlKeyword": [ + "keyword.control.cs" + ], + "operatorOverloaded": [ + "entity.name.function.member.overload.cs" + ], + "preprocessorKeyword": [ + "keyword.preprocessor.cs" + ], + "preprocessorText": [ + "meta.preprocessor.string.cs" + ], + "excludedCode": [ + "support.other.excluded.cs" + ], + "punctuation": [ + "punctuation.cs" + ], + "stringVerbatim": [ + "string.verbatim.cs" + ], + "stringEscapeCharacter": [ + "constant.character.escape.cs" + ], + "delegate": [ + "entity.name.type.delegate.cs" + ], + "module": [ + "entity.name.type.module.cs" + ], + "extensionMethod": [ + "entity.name.function.extension.cs" + ], + "field": [ + "entity.name.variable.field.cs" + ], + "local": [ + "entity.name.variable.local.cs" + ], + "xmlDocCommentAttributeName": [ + "comment.documentation.attribute.name.cs" + ], + "xmlDocCommentAttributeQuotes": [ + "comment.documentation.attribute.quotes.cs" + ], + "xmlDocCommentAttributeValue": [ + "comment.documentation.attribute.value.cs" + ], + "xmlDocCommentCDataSection": [ + "comment.documentation.cdata.cs" + ], + "xmlDocCommentComment": [ + "comment.documentation.comment.cs" + ], + "xmlDocCommentDelimiter": [ + "comment.documentation.delimiter.cs" + ], + "xmlDocCommentEntityReference": [ + "comment.documentation.entityReference.cs" + ], + "xmlDocCommentName": [ + "comment.documentation.name.cs" + ], + "xmlDocCommentProcessingInstruction": [ + "comment.documentation.processingInstruction.cs" + ], + "xmlDocCommentText": [ + "comment.documentation.cs" + ], + "regexComment": [ + "string.regexp.comment.cs" + ], + "regexCharacterClass": [ + "constant.character.character-class.regexp.cs" + ], + "regexAnchor": [ + "keyword.control.anchor.regexp.cs" + ], + "regexQuantifier": [ + "keyword.operator.quantifier.regexp.cs" + ], + "regexGrouping": [ + "punctuation.definition.group.regexp.cs" + ], + "regexAlternation": [ + "keyword.operator.or.regexp.cs" + ], + "regexSelfEscapedCharacter": [ + "string.regexp.self-escaped-character.cs" + ], + "regexOtherEscape": [ + "string.regexp.other-escape.cs" + ] + } + } + ], + "languages": [ + { + "id": "aspnetcorerazor", + "extensions": [ + ".cshtml", + ".razor" + ], + "mimetypes": [ + "text/x-cshtml" + ], + "configuration": "./src/razor/language-configuration.json", + "aliases": [ + "ASP.NET Razor" + ] + } + ], + "grammars": [ + { + "language": "aspnetcorerazor", + "scopeName": "text.aspnetcorerazor", + "path": "./src/razor/syntaxes/aspnetcorerazor.tmLanguage.json" + } + ], + "menus": { + "commandPalette": [ + { + "command": "dotnet.test.runTestsInContext", + "when": "editorLangId == csharp" + }, + { + "command": "dotnet.test.debugTestsInContext", + "when": "editorLangId == csharp" + } + ], + "editor/title": [ + { + "command": "extension.showRazorCSharpWindow", + "when": "resourceLangId == aspnetcorerazor" + }, + { + "command": "extension.showRazorHtmlWindow", + "when": "resourceLangId == aspnetcorerazor" + }, + { + "command": "razor.reportIssue", + "when": "resourceLangId == aspnetcorerazor" + } + ], + "editor/context": [ + { + "command": "dotnet.test.runTestsInContext", + "when": "editorLangId == csharp", + "group": "2_dotnet@1" + }, + { + "command": "dotnet.test.debugTestsInContext", + "when": "editorLangId == csharp", + "group": "2_dotnet@2" + } + ] + }, + "viewsWelcome": [ + { + "view": "debug", + "contents": "[Generate C# Assets for Build and Debug](command:dotnet.generateAssets)\n\nTo learn more about launch.json, see [Configuring launch.json for C# debugging](https://aka.ms/VSCode-CS-LaunchJson).", + "when": "debugStartLanguage == csharp" + } + ] + }, + "__metadata": { + "id": "d0bfc4ab-1d3a-4487-8782-7cf6027b4fff", + "publisherDisplayName": "Microsoft", + "publisherId": "d05e23de-3974-4ff0-8d47-23ee77830092", + "isPreReleaseVersion": false + } } \ No newline at end of file diff --git a/src/observers/OmnisharpLoggerObserver.ts b/src/observers/OmnisharpLoggerObserver.ts index 309af92f4..a640eeca7 100644 --- a/src/observers/OmnisharpLoggerObserver.ts +++ b/src/observers/OmnisharpLoggerObserver.ts @@ -58,7 +58,7 @@ export class OmnisharpLoggerObserver extends BaseLoggerObserver { this.logger.append(`OmniSharp server started`); if (event.hostVersion) { this.logger.append(` with ${event.hostIsMono ? 'Mono' : '.NET'} ${event.hostVersion}`); - if (event.hostPath !== undefined) { + if (event.hostPath.length > 0) { this.logger.append(` (${event.hostPath})`); } } diff --git a/test/runFeatureTests.ts b/test/runFeatureTests.ts index cd552660f..3e4f64d88 100644 --- a/test/runFeatureTests.ts +++ b/test/runFeatureTests.ts @@ -4,8 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as path from 'path'; - -import { runTests } from 'vscode-test'; +import { runTests } from '@vscode/test-electron'; async function main() { try { diff --git a/test/runIntegrationTests.ts b/test/runIntegrationTests.ts index 1257cea72..fcc02cc01 100644 --- a/test/runIntegrationTests.ts +++ b/test/runIntegrationTests.ts @@ -4,8 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as path from 'path'; - -import { runTests } from 'vscode-test'; +import { runTests } from '@vscode/test-electron'; import { execChildProcess } from '../src/common'; function getSln(workspacePath: string): string | undefined { From c6e88e7cb7b0c112aca0742c0ca9c574de6b7af1 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Tue, 17 May 2022 14:11:19 -0700 Subject: [PATCH 07/12] Fix null exception --- src/observers/OmnisharpLoggerObserver.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/observers/OmnisharpLoggerObserver.ts b/src/observers/OmnisharpLoggerObserver.ts index a640eeca7..274a79c84 100644 --- a/src/observers/OmnisharpLoggerObserver.ts +++ b/src/observers/OmnisharpLoggerObserver.ts @@ -58,7 +58,7 @@ export class OmnisharpLoggerObserver extends BaseLoggerObserver { this.logger.append(`OmniSharp server started`); if (event.hostVersion) { this.logger.append(` with ${event.hostIsMono ? 'Mono' : '.NET'} ${event.hostVersion}`); - if (event.hostPath.length > 0) { + if (event.hostPath?.length > 0) { this.logger.append(` (${event.hostPath})`); } } From 737cd7ebbdb5a9f56f4d96eef7b162c144e6a4ca Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Wed, 18 May 2022 11:37:50 -0700 Subject: [PATCH 08/12] Install NET 6 SDK in CI --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9801a0c42..be75d9df2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,10 +18,10 @@ jobs: - name: Setup virtual display run: /usr/bin/Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & - - name: Install .NET Core 5.0 SDK + - name: Install .NET Core 6.0 SDK uses: actions/setup-dotnet@v1.7.2 with: - dotnet-version: 5.0.x + dotnet-version: 6.0.x - name: Install Node.js 15.x uses: actions/setup-node@v1 From 91a863c97eefdf50df6be2f48740800cbdf83657 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Wed, 18 May 2022 13:01:24 -0700 Subject: [PATCH 09/12] Revert "Do not hardcode VSC version" --- test/runFeatureTests.ts | 2 +- test/runIntegrationTests.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/runFeatureTests.ts b/test/runFeatureTests.ts index 3e4f64d88..e15073d00 100644 --- a/test/runFeatureTests.ts +++ b/test/runFeatureTests.ts @@ -17,7 +17,7 @@ async function main() { const extensionTestsPath = path.resolve(__dirname, './featureTests/index'); // Download VS Code, unzip it and run the integration test - await runTests({ extensionDevelopmentPath, extensionTestsPath, launchArgs: ['-n', '--verbose'] }); + await runTests({ version: "1.65.0", extensionDevelopmentPath, extensionTestsPath, launchArgs: ['-n', '--verbose'] }); } catch (err) { console.error(err); console.error('Failed to run tests'); diff --git a/test/runIntegrationTests.ts b/test/runIntegrationTests.ts index fcc02cc01..978e440ea 100644 --- a/test/runIntegrationTests.ts +++ b/test/runIntegrationTests.ts @@ -43,7 +43,7 @@ async function main() { } // Download VS Code, unzip it and run the integration test - await runTests({ extensionDevelopmentPath, extensionTestsPath, launchArgs: [workspacePath, '-n', '--verbose'], extensionTestsEnv: process.env }); + await runTests({ version: "1.65.0", extensionDevelopmentPath, extensionTestsPath, launchArgs: [workspacePath, '-n', '--verbose'], extensionTestsEnv: process.env }); } catch (err) { console.error(err); console.error('Failed to run tests'); From d32e78a2a2737e7439e90c3ab376dde45e77ee12 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Wed, 18 May 2022 15:08:20 -0700 Subject: [PATCH 10/12] Fix package.json indentation. Update .editorconfig. --- .editorconfig | 2 +- package.json | 8080 ++++++++++++++++++++++++------------------------- 2 files changed, 4041 insertions(+), 4041 deletions(-) diff --git a/.editorconfig b/.editorconfig index 15e8611b7..7086a0511 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,6 +10,6 @@ indent_size = 4 trim_trailing_whitespace = true # 2 space indentation and utf-8 for *.yml, package.json, and .json files under src -[{*.yml,package.json,src/**/*.json}] +[{*.yml,package.json,*.json}] indent_size = 2 charset = utf-8 diff --git a/package.json b/package.json index 9152935d2..1654449d1 100644 --- a/package.json +++ b/package.json @@ -1,4042 +1,4042 @@ { - "name": "csharp", - "publisher": "ms-dotnettools", - "version": "1.24.5", - "description": "C# for Visual Studio Code (powered by OmniSharp).", - "displayName": "C#", - "author": "Microsoft Corporation", - "license": "SEE LICENSE IN RuntimeLicenses/license.txt", - "icon": "images/csharpIcon.png", - "preview": false, - "bugs": { - "url": "https://github.com/OmniSharp/omnisharp-vscode/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/OmniSharp/omnisharp-vscode.git" - }, - "categories": [ - "Debuggers", - "Programming Languages", - "Linters", - "Snippets" - ], - "keywords": [ - "multi-root ready", - ".NET", - "ASP.NET", - ".NET Core", - "dotnet" - ], - "capabilities": { - "virtualWorkspaces": false, - "untrustedWorkspaces": { - "supported": false - } - }, - "defaults": { - "omniSharp": "1.38.2", - "razor": "6.0.0-preview.5.21358.6" - }, - "main": "./dist/extension", - "scripts": { - "vscode:prepublish": "tsc -p ./ && webpack --mode production", - "compile": "tsc -p ./ && gulp tslint", - "compileDev": "tsc -p ./ && gulp tslint && webpack --mode development", - "watch": "tsc -watch -p ./", - "tdd": "mocha --config ./.mocharc.jsonc --watch --watch-extensions ts test/unitTests/**/*.test.ts*", - "test": "tsc -p ./ && gulp test", - "test:unit": "tsc -p ./ && gulp test:unit", - "test:feature": "tsc -p ./ && gulp test:feature", - "test:integration": "tsc -p ./ && gulp test:integration", - "test:integration:singleCsproj": "tsc -p ./ && gulp test:integration:singleCsproj", - "test:integration:slnWithCsproj": "tsc -p ./ && gulp test:integration:slnWithCsproj", - "test:integration:slnFilterWithCsproj": "tsc -p ./ && gulp test:integration:slnFilterWithCsproj", - "test:release": "mocha --config ./.mocharc.jsonc test/releaseTests/**/*.test.ts", - "test:artifacts": "mocha --config ./.mocharc.jsonc test/artifactTests/**/*.test.ts", - "unpackage:vsix": "gulp vsix:release:unpackage", - "gulp": "gulp" - }, - "dependencies": { - "@types/cross-spawn": "^6.0.2", - "async-file": "2.0.2", - "cross-spawn": "^6.0.5", - "fs-extra": "9.1.0", - "http-proxy-agent": "4.0.1", - "https-proxy-agent": "5.0.0", - "jsonc-parser": "3.0.0", - "microsoft.aspnetcore.razor.vscode": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/0ab4b9b270542715d9ffa7ee05c809fb/microsoft.aspnetcore.razor.vscode-6.0.0-preview.5.21358.6.tgz", - "node-machine-id": "1.1.12", - "request-light": "0.4.0", - "rxjs": "6.6.7", - "semver": "5.6.0", - "stream": "0.0.2", - "strip-bom": "5.0.0", - "strip-bom-buf": "2.0.0", - "tmp": "0.0.33", - "vscode-debugprotocol": "1.33.0", - "vscode-extension-telemetry": "0.1.6", - "vscode-languageserver-protocol": "3.16.0", - "vscode-nls": "5.0.0", - "yauzl": "2.10.0" - }, - "devDependencies": { - "@types/archiver": "5.1.0", - "@types/chai": "4.2.16", - "@types/chai-arrays": "2.0.0", - "@types/chai-as-promised": "7.1.3", - "@types/chai-string": "1.4.2", - "@types/del": "3.0.1", - "@types/fs-extra": "5.0.4", - "@types/gulp": "4.0.5", - "@types/minimist": "1.2.1", - "@types/mocha": "5.2.5", - "@types/node": "10.12.24", - "@types/semver": "5.5.0", - "@types/tmp": "0.0.33", - "@types/unzipper": "^0.9.1", - "@types/vscode": "1.65.0", - "@types/yauzl": "2.9.1", - "@vscode/test-electron": "2.1.3", - "archiver": "5.3.0", - "chai": "4.3.4", - "chai-arrays": "2.2.0", - "chai-as-promised": "7.1.1", - "chai-fs": "2.0.0", - "chai-string": "1.5.0", - "del": "3.0.0", - "find-versions": "4.0.0", - "get-port": "5.1.1", - "glob-promise": "4.1.0", - "gulp": "4.0.2", - "gulp-tslint": "8.1.4", - "mocha": "8.3.2", - "mock-fs": "4.13.0", - "mock-http-server": "1.4.2", - "npm-run-all": "4.1.5", - "ts-loader": "9.0.0", - "ts-node": "9.1.1", - "tslint": "5.12.1", - "tslint-microsoft-contrib": "6.0.0", - "tslint-no-unused-expression-chai": "0.1.4", - "typescript": "4.2.4", - "unzipper": "0.10.11", - "vsce": "1.100.2", - "webpack": "5.34.0", - "webpack-cli": "4.6.0" - }, - "runtimeDependencies": [ - { - "id": "OmniSharp", - "description": "OmniSharp for Windows (.NET 4.7.2 / x86)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x86-1.38.2.zip", - "installPath": ".omnisharp/1.38.2", - "platforms": [ - "win32" - ], - "architectures": [ - "x86" - ], - "installTestPath": "./.omnisharp/1.38.2/OmniSharp.exe", - "platformId": "win-x86", - "isFramework": true, - "integrity": "B2E414B2A7155B2A484DB182B69223B0AEF9EB1F8E1CB6155C6C5E9D07A78CF8" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Windows (.NET 6 / x86)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x86-net6.0-1.38.2.zip", - "installPath": ".omnisharp/1.38.2-net6.0", - "platforms": [ - "win32" - ], - "architectures": [ - "x86" - ], - "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", - "platformId": "win-x86", - "isFramework": false, - "integrity": "EAA8D28669049E68E458CC7224C2B9069F575CEA51B8B36D4F4D51C7532D0419" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Windows (.NET 4.7.2 / x64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x64-1.38.2.zip", - "installPath": ".omnisharp/1.38.2", - "platforms": [ - "win32" - ], - "architectures": [ - "x86_64" - ], - "installTestPath": "./.omnisharp/1.38.2/OmniSharp.exe", - "platformId": "win-x64", - "isFramework": true, - "integrity": "1F94980CA0FAB7B6AE17195FBB9FC0A677EA4BB96A376CF68B32A0D59650522D" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Windows (.NET 6 / x64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x64-net6.0-1.38.2.zip", - "installPath": ".omnisharp/1.38.2-net6.0", - "platforms": [ - "win32" - ], - "architectures": [ - "x86_64" - ], - "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", - "platformId": "win-x64", - "isFramework": false, - "integrity": "88B82CC9D7D1E8757F3DE457833FE29BACCEA35EE16C8790513BF0129316ECC4" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Windows (.NET 4.7.2 / arm64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-arm64-1.38.2.zip", - "installPath": ".omnisharp/1.38.2", - "platforms": [ - "win32" - ], - "architectures": [ - "arm64" - ], - "installTestPath": "./.omnisharp/1.38.2/OmniSharp.exe", - "platformId": "win-arm64", - "isFramework": true, - "integrity": "ECA2B07CBAEACF1D1E755ECCAF57459F0DD36A30C176251D18146440A0852E9B" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Windows (.NET 6 / arm64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-arm64-net6.0-1.38.2.zip", - "installPath": ".omnisharp/1.38.2-net6.0", - "platforms": [ - "win32" - ], - "architectures": [ - "arm64" - ], - "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", - "platformId": "win-arm64", - "isFramework": false, - "integrity": "ACAEA0B0EDD5ABDC23196AC7C4C928005C6FF97D829CA96515842C87C30C27AE" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for OSX (Mono / x64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-osx-1.38.2.zip", - "installPath": ".omnisharp/1.38.2", - "platforms": [ - "darwin" - ], - "binaries": [ - "./mono.osx", - "./run" - ], - "installTestPath": "./.omnisharp/1.38.2/run", - "platformId": "osx", - "isFramework": true, - "integrity": "9C934684359FC1488803075B549D9B57F8E41129B61C344DA7CF202C4918FEB6" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for OSX (.NET 6 / x64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-osx-x64-net6.0-1.38.2.zip", - "installPath": ".omnisharp/1.38.2-net6.0", - "platforms": [ - "darwin" - ], - "architectures": [ - "x86_64" - ], - "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", - "platformId": "osx-x64", - "isFramework": false, - "integrity": "F32B94A4601E532C7380AEBE9498B20793EDC538671BFF516C2EED4CBAE84DAF" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for OSX (.NET 6 / arm64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-osx-arm64-net6.0-1.38.2.zip", - "installPath": ".omnisharp/1.38.2-net6.0", - "platforms": [ - "darwin" - ], - "architectures": [ - "arm64" - ], - "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", - "platformId": "osx-arm64", - "isFramework": false, - "integrity": "58BA4910DFE978B5D873BAA062123C0FEDEB2E89A685F22825355C54E9BF7D90" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Linux (Mono / x86)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-x86-1.38.2.zip", - "installPath": ".omnisharp/1.38.2", - "platforms": [ - "linux" - ], - "architectures": [ - "x86", - "i686" - ], - "binaries": [ - "./mono.linux-x86", - "./run" - ], - "installTestPath": "./.omnisharp/1.38.2/run", - "platformId": "linux-x86", - "isFramework": true, - "integrity": "3F230B3C6DB0D48B5E4D51C45BB52F6B568AD1CC8CEEA7D50128123C17A77CD1" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Linux (Mono / x64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-x64-1.38.2.zip", - "installPath": ".omnisharp/1.38.2", - "platforms": [ - "linux" - ], - "architectures": [ - "x86_64" - ], - "binaries": [ - "./mono.linux-x86_64", - "./run" - ], - "installTestPath": "./.omnisharp/1.38.2/run", - "platformId": "linux-x64", - "isFramework": true, - "integrity": "F29A5E1E2A8EAAED8DF8AD37F838453986B8650E453EFCE56506AD8CC132EBE1" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Linux (.NET 6 / x64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-x64-net6.0-1.38.2.zip", - "installPath": ".omnisharp/1.38.2-net6.0", - "platforms": [ - "linux" - ], - "architectures": [ - "x86_64" - ], - "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", - "platformId": "linux-x64", - "isFramework": false, - "integrity": "1F778F40FB54C4B11CB6CDFAB30266DAF2F327133685576BC8BD9D6EF2439C1F" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Linux (Framework / arm64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-arm64-1.38.2.zip", - "installPath": ".omnisharp/1.38.2", - "platforms": [ - "linux" - ], - "architectures": [ - "arm64" - ], - "binaries": [ - "./mono.linux-arm64", - "./run" - ], - "installTestPath": "./.omnisharp/1.38.2/run", - "platformId": "linux-arm64", - "isFramework": true, - "integrity": "156D92F6C9F8381BCEE2C6C77F92C4B79C5E33AC6E7F7F61935FABD75F7AAFBD" - }, - { - "id": "OmniSharp", - "description": "OmniSharp for Linux (.NET 6 / arm64)", - "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-arm64-net6.0-1.38.2.zip", - "installPath": ".omnisharp/1.38.2-net6.0", - "platforms": [ - "linux" - ], - "architectures": [ - "arm64" - ], - "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", - "platformId": "linux-arm64", - "isFramework": false, - "integrity": "28AB43CC4BDD3FFE805E44A723A80235E8150E055056E44A0D772AD7BECAB045" - }, - { - "id": "Debugger", - "description": ".NET Core Debugger (Windows / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-win7-x64.zip", - "installPath": ".debugger", - "platforms": [ - "win32" - ], - "architectures": [ - "x86_64" - ], - "installTestPath": "./.debugger/vsdbg-ui.exe", - "integrity": "07E9EAD8DC5B1F8A1B049E128B50AF5282637DBAFCDAED0E61245925B659FD15" - }, - { - "id": "Debugger", - "description": ".NET Core Debugger (Windows / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-win10-arm64.zip", - "installPath": ".debugger", - "platforms": [ - "win32" - ], - "architectures": [ - "arm64" - ], - "installTestPath": "./.debugger/vsdbg-ui.exe", - "integrity": "669BFDBBEBF4C9589BDD44C7E1A1055F7D7705BB315E7CA8809398FD784A4371" - }, - { - "id": "Debugger", - "description": ".NET Core Debugger (macOS / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-osx-x64.zip", - "installPath": ".debugger/x86_64", - "platforms": [ - "darwin" - ], - "architectures": [ - "x86_64", - "arm64" - ], - "binaries": [ - "./vsdbg-ui", - "./vsdbg" - ], - "installTestPath": "./.debugger/x86_64/vsdbg-ui", - "integrity": "287B1E27269A47DF8C11DC69613C0B0964969DD169CED3B33EF6F7934D5F5C14" - }, - { - "id": "Debugger", - "description": ".NET Core Debugger (macOS / arm64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-osx-arm64.zip", - "installPath": ".debugger/arm64", - "platforms": [ - "darwin" - ], - "architectures": [ - "arm64" - ], - "binaries": [ - "./vsdbg-ui", - "./vsdbg" - ], - "installTestPath": "./.debugger/arm64/vsdbg-ui", - "integrity": "ADFFF192A5B19C063E2B52408A168950E357E9C2AD0FCACBD143CBD9DBAF4941" - }, - { - "id": "Debugger", - "description": ".NET Core Debugger (linux / ARM)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-linux-arm.zip", - "installPath": ".debugger", - "platforms": [ - "linux" - ], - "architectures": [ - "arm" - ], - "binaries": [ - "./vsdbg-ui", - "./vsdbg" - ], - "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "F972B4EAAF64D03BC7D6CBE26FA8BE37AAAE23FC64BF62209FBF5768B364D55E" - }, - { - "id": "Debugger", - "description": ".NET Core Debugger (linux / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-linux-arm64.zip", - "installPath": ".debugger", - "platforms": [ - "linux" - ], - "architectures": [ - "arm64" - ], - "binaries": [ - "./vsdbg-ui", - "./vsdbg" - ], - "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "7C373A85A1FF85719E9446197FB9B9B58E8E02266D083C682C8AC70AE8B97F7E" - }, - { - "id": "Debugger", - "description": ".NET Core Debugger (linux / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-linux-x64.zip", - "installPath": ".debugger", - "platforms": [ - "linux" - ], - "architectures": [ - "x86_64" - ], - "binaries": [ - "./vsdbg-ui", - "./vsdbg" - ], - "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "4A116A96B99009DD59081CB0BD981E33C8FCA4C96F0CF2953B23591C692C7C26" - }, - { - "id": "Razor", - "description": "Razor Language Server (Windows / x64)", - "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/a654aaa3c8090ca1751d7f7646a7b000/razorlanguageserver-win-x64-6.0.0-preview.5.21358.6.zip", - "installPath": ".razor", - "platforms": [ - "win32" - ], - "architectures": [ - "x86_64" - ] - }, - { - "id": "Razor", - "description": "Razor Language Server (Windows / x86)", - "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/18e1cdfce3f4f074905cf0fd89f8d07f/razorlanguageserver-win-x86-6.0.0-preview.5.21358.6.zip", - "installPath": ".razor", - "platforms": [ - "win32" - ], - "architectures": [ - "x86", - "arm64" - ] - }, - { - "id": "Razor", - "description": "Razor Language Server (Linux / x64)", - "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/b846e9c7d7afdba54a72fae1dcb6c42c/razorlanguageserver-linux-x64-6.0.0-preview.5.21358.6.zip", - "installPath": ".razor", - "platforms": [ - "linux" - ], - "architectures": [ - "x86_64" - ], - "binaries": [ - "./rzls" - ] - }, - { - "id": "Razor", - "description": "Razor Language Server (macOS / x64)", - "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/ad846449769eb2ae810d0236823a6aaa/razorlanguageserver-osx-x64-6.0.0-preview.5.21358.6.zip", - "installPath": ".razor", - "platforms": [ - "darwin" - ], - "architectures": [ - "x86_64", - "arm64" - ], - "binaries": [ - "./rzls" - ] - } - ], - "engines": { - "vscode": "^1.65.0" - }, - "activationEvents": [ - "onDebugInitialConfigurations", - "onDebugResolve:blazorwasm", - "onDebugResolve:coreclr", - "onDebugResolve:clr", - "onLanguage:csharp", - "onLanguage:aspnetcorerazor", - "onCommand:o.restart", - "onCommand:o.pickProjectAndStart", - "onCommand:o.showOutput", - "onCommand:dotnet.restore.project", - "onCommand:dotnet.restore.all", - "onCommand:dotnet.generateAssets", - "onCommand:csharp.downloadDebugger", - "onCommand:csharp.listProcess", - "onCommand:csharp.listRemoteProcess", - "onCommand:csharp.listRemoteDockerProcess", - "onCommand:omnisharp.registerLanguageMiddleware", - "workspaceContains:project.json", - "workspaceContains:**/*.{csproj,sln,slnf,csx,cake}" - ], - "contributes": { - "themes": [ - { - "label": "Visual Studio 2019 Dark", - "uiTheme": "vs-dark", - "path": "./themes/vs2019_dark.json" - }, - { - "label": "Visual Studio 2019 Light", - "uiTheme": "vs", - "path": "./themes/vs2019_light.json" - } - ], - "configuration": { - "title": "C# configuration", - "properties": { - "csharp.format.enable": { - "type": "boolean", - "default": true, - "description": "Enable/disable default C# formatter (requires restart)." - }, - "csharp.suppressDotnetInstallWarning": { - "type": "boolean", - "default": false, - "description": "Suppress the warning that the .NET Core SDK is not on the path." - }, - "csharp.unitTestDebuggingOptions": { - "type": "object", - "description": "Options to use with the debugger when launching for unit test debugging. Any launch.json option is valid here.", - "default": {}, - "properties": { - "sourceFileMap": { - "type": "object", - "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", - "additionalProperties": { - "type": "string" - }, - "default": { - "": "" - } - }, - "justMyCode": { - "type": "boolean", - "description": "Optional flag to only show user code.", - "default": true - }, - "requireExactSource": { - "type": "boolean", - "description": "Optional flag to require current source code to match the pdb.", - "default": true - }, - "enableStepFiltering": { - "type": "boolean", - "description": "Optional flag to enable stepping over Properties and Operators.", - "default": true - }, - "logging": { - "description": "Optional flags to determine what types of messages should be logged to the output window.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "exceptions": { - "type": "boolean", - "description": "Optional flag to determine whether exception messages should be logged to the output window.", - "default": true - }, - "moduleLoad": { - "type": "boolean", - "description": "Optional flag to determine whether module load events should be logged to the output window.", - "default": true - }, - "programOutput": { - "type": "boolean", - "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", - "default": true - }, - "engineLogging": { - "type": "boolean", - "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", - "default": false - }, - "browserStdOut": { - "type": "boolean", - "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", - "default": true - }, - "elapsedTiming": { - "type": "boolean", - "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", - "default": false - }, - "threadExit": { - "type": "boolean", - "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", - "default": false - }, - "processExit": { - "type": "boolean", - "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", - "default": true - } - } - }, - "suppressJITOptimizations": { - "type": "boolean", - "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", - "default": false - }, - "symbolOptions": { - "description": "Options to control how symbols (.pdb files) are found and loaded.", - "default": { - "searchPaths": [], - "searchMicrosoftSymbolServer": false, - "searchNuGetOrgSymbolServer": false - }, - "type": "object", - "properties": { - "searchPaths": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", - "default": [] - }, - "searchMicrosoftSymbolServer": { - "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "searchNuGetOrgSymbolServer": { - "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "cachePath": { - "type": "string", - "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", - "default": "~/.dotnet/symbolcache" - }, - "moduleFilter": { - "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", - "default": { - "mode": "loadAllButExcluded", - "excludedModules": [] - }, - "type": "object", - "required": [ - "mode" - ], - "properties": { - "mode": { - "type": "string", - "enum": [ - "loadAllButExcluded", - "loadOnlyIncluded" - ], - "enumDescriptions": [ - "Load symbols for all modules unless the module is in the 'excludedModules' array.", - "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." - ], - "description": "Controls which of the two basic operating modes the module filter operates in.", - "default": "loadAllButExcluded" - }, - "excludedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", - "default": [] - }, - "includedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": [ - "MyExampleModule.dll" - ] - }, - "includeSymbolsNextToModules": { - "type": "boolean", - "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": true - } - } - } - } - }, - "sourceLinkOptions": { - "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", - "default": { - "*": { - "enabled": true - } - }, - "type": "object", - "additionalItems": { - "type": "object", - "properties": { - "enabled": { - "title": "boolean", - "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", - "default": "true" - } - } - } - }, - "allowFastEvaluate": { - "type": "boolean", - "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", - "default": true - }, - "targetArchitecture": { - "type": "string", - "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." - }, - "type": { - "type": "string", - "enum": [ - "coreclr", - "clr" - ], - "description": "Type type of code to debug. Can be either 'coreclr' for .NET Core debugging, or 'clr' for Desktop .NET Framework. 'clr' only works on Windows as the Desktop framework is Windows-only.", - "default": "coreclr" - }, - "debugServer": { - "type": "number", - "description": "For debug extension development only: if a port is specified VS Code tries to connect to a debug adapter running in server mode", - "default": 4711 - } - } - }, - "csharp.suppressDotnetRestoreNotification": { - "type": "boolean", - "default": false, - "description": "Suppress the notification window to perform a 'dotnet restore' when dependencies can't be resolved." - }, - "csharp.suppressProjectJsonWarning": { - "type": "boolean", - "default": false, - "description": "Suppress the warning that project.json is no longer a supported project format for .NET Core applications" - }, - "csharp.suppressBuildAssetsNotification": { - "type": "boolean", - "default": false, - "description": "Suppress the notification window to add missing assets to build or debug the application." - }, - "csharp.suppressHiddenDiagnostics": { - "type": "boolean", - "default": true, - "description": "Suppress 'hidden' diagnostics (such as 'unnecessary using directives') from appearing in the editor or the Problems pane." - }, - "csharp.referencesCodeLens.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether the references CodeLens should be shown." - }, - "csharp.referencesCodeLens.filteredSymbols": { - "type": "array", - "items": { - "type": "string" - }, - "default": [], - "description": "Array of custom symbol names for which CodeLens should be disabled." - }, - "csharp.testsCodeLens.enabled": { - "type": "boolean", - "default": true, - "description": "Specifies whether the run and debug test CodeLens should be shown." - }, - "csharp.maxProjectFileCountForDiagnosticAnalysis": { - "type": "number", - "default": 1000, - "description": "Specifies the maximum number of files for which diagnostics are reported for the whole workspace. If this limit is exceeded, diagnostics will be shown for currently opened files only. Specify 0 or less to disable the limit completely." - }, - "csharp.semanticHighlighting.enabled": { - "type": "boolean", - "default": true, - "description": "Enable/disable Semantic Highlighting for C# files (Razor files currently unsupported). Defaults to false. Close open files for changes to take effect.", - "scope": "window" - }, - "csharp.showOmnisharpLogOnError": { - "type": "boolean", - "default": true, - "description": "Shows the OmniSharp log in the Output pane when OmniSharp reports an error." - }, - "csharp.inlayHints.parameters.enabled": { - "type": "boolean", - "default": false, - "description": "Display inline parameter name hints" - }, - "csharp.inlayHints.parameters.forLiteralParameters": { - "type": "boolean", - "default": false, - "description": "Show hints for literals" - }, - "csharp.inlayHints.parameters.forObjectCreationParameters": { - "type": "boolean", - "default": false, - "description": "Show hints for 'new' expressions" - }, - "csharp.inlayHints.parameters.forIndexerParameters": { - "type": "boolean", - "default": false, - "description": "Show hints for indexers" - }, - "csharp.inlayHints.parameters.forOtherParameters": { - "type": "boolean", - "default": false, - "description": "Show hints for everything else" - }, - "csharp.inlayHints.parameters.suppressForParametersThatDifferOnlyBySuffix": { - "type": "boolean", - "default": false, - "description": "Suppress hints when parameter names differ only by suffix" - }, - "csharp.inlayHints.parameters.suppressForParametersThatMatchMethodIntent": { - "type": "boolean", - "default": false, - "description": "Suppress hints when parameter name matches the method's intent" - }, - "csharp.inlayHints.parameters.suppressForParametersThatMatchArgumentName": { - "type": "boolean", - "default": false, - "description": "Suppress hints when argument matches parameter name" - }, - "csharp.inlayHints.types.enabled": { - "type": "boolean", - "default": false, - "description": "Display inline type hints" - }, - "csharp.inlayHints.types.forImplicitVariableTypes": { - "type": "boolean", - "default": false, - "description": "Show hints for variables with inferred types" - }, - "csharp.inlayHints.types.forLambdaParameterTypes": { - "type": "boolean", - "default": false, - "description": "Show hints for lambda parameter types" - }, - "csharp.inlayHints.types.forImplicitObjectCreation": { - "type": "boolean", - "default": false, - "description": "Show hints for implicit object creation" - }, - "omnisharp.path": { - "type": "string", - "scope": "machine", - "description": "Specifies the path to OmniSharp. When left empty the OmniSharp version pinned to the C# Extension is used. This can be the absolute path to an OmniSharp executable, a specific version number, or \"latest\". If a version number or \"latest\" is specified, the appropriate version of OmniSharp will be downloaded on your behalf. Setting \"latest\" is an opt-in into latest beta releases of OmniSharp." - }, - "omnisharp.useModernNet": { - "type": "boolean", - "default": true, - "scope": "window", - "title": "Use .NET 6 build of OmniSharp", - "description": "Use OmniSharp build for .NET 6. This version _does not_ support non-SDK-style .NET Framework projects, including Unity. SDK-style Framework, .NET Core, and .NET 5+ projects should see significant performance improvements." - }, - "omnisharp.monoPath": { - "type": "string", - "scope": "machine", - "description": "Specifies the path to a mono installation to use when \"useModernNet\" is set to false, instead of the default system one. Example: \"/Library/Frameworks/Mono.framework/Versions/Current\"" - }, - "omnisharp.dotnetPath": { - "type": "string", - "scope": "window", - "description": "Specified the path to a dotnet installation to use when \"useModernNet\" is set to true, instead of the default system one. Example: \"/home/username/mycustomdotnetdirectory\"." - }, - "omnisharp.waitForDebugger": { - "type": "boolean", - "default": false, - "description": "Pass the --debug flag when launching the OmniSharp server to allow a debugger to be attached." - }, - "omnisharp.loggingLevel": { - "type": "string", - "default": "information", - "enum": [ - "trace", - "debug", - "information", - "warning", - "error", - "critical" - ], - "description": "Specifies the level of logging output from the OmniSharp server." - }, - "omnisharp.autoStart": { - "type": "boolean", - "default": true, - "description": "Specifies whether the OmniSharp server will be automatically started or not. If false, OmniSharp can be started with the 'Restart OmniSharp' command" - }, - "omnisharp.projectLoadTimeout": { - "type": "number", - "default": 60, - "description": "The time Visual Studio Code will wait for the OmniSharp server to start. Time is expressed in seconds." - }, - "omnisharp.maxProjectResults": { - "type": "number", - "default": 250, - "description": "The maximum number of projects to be shown in the 'Select Project' dropdown (maximum 250)." - }, - "omnisharp.defaultLaunchSolution": { - "type": "string", - "description": "The name of the default solution used at start up if the repo has multiple solutions. e.g.'MyAwesomeSolution.sln'. Default value is `null` which will cause the first in alphabetical order to be chosen." - }, - "omnisharp.useEditorFormattingSettings": { - "type": "boolean", - "default": true, - "description": "Specifes whether OmniSharp should use VS Code editor settings for C# code formatting (use of tabs, indentation size)." - }, - "omnisharp.minFindSymbolsFilterLength": { - "type": "number", - "default": 0, - "description": "The minimum number of characters to enter before 'Go to Symbol in Workspace' operation shows any results." - }, - "omnisharp.maxFindSymbolsItems": { - "type": "number", - "default": 1000, - "description": "The maximum number of items that 'Go to Symbol in Workspace' operation can show. The limit is applied only when a positive number is specified here." - }, - "omnisharp.disableMSBuildDiagnosticWarning": { - "type": "boolean", - "default": false, - "description": "Specifies whether notifications should be shown if OmniSharp encounters warnings or errors loading a project. Note that these warnings/errors are always emitted to the OmniSharp log" - }, - "omnisharp.enableMsBuildLoadProjectsOnDemand": { - "type": "boolean", - "default": false, - "description": "If true, MSBuild project system will only load projects for files that were opened in the editor. This setting is useful for big C# codebases and allows for faster initialization of code navigation features only for projects that are relevant to code that is being edited. With this setting enabled OmniSharp may load fewer projects and may thus display incomplete reference lists for symbols." - }, - "omnisharp.enableRoslynAnalyzers": { - "type": "boolean", - "default": false, - "description": "Enables support for roslyn analyzers, code fixes and rulesets." - }, - "omnisharp.enableEditorConfigSupport": { - "type": "boolean", - "default": true, - "description": "Enables support for reading code style, naming convention and analyzer settings from .editorconfig." - }, - "omnisharp.enableDecompilationSupport": { - "type": "boolean", - "default": false, - "scope": "machine", - "description": "Enables support for decompiling external references instead of viewing metadata." - }, - "omnisharp.enableImportCompletion": { - "type": "boolean", - "default": false, - "description": "Enables support for showing unimported types and unimported extension methods in completion lists. When committed, the appropriate using directive will be added at the top of the current file. This option can have a negative impact on initial completion responsiveness, particularly for the first few completion sessions after opening a solution." - }, - "omnisharp.organizeImportsOnFormat": { - "type": "boolean", - "default": false, - "description": "Specifies whether 'using' directives should be grouped and sorted during document formatting." - }, - "omnisharp.enableAsyncCompletion": { - "type": "boolean", - "default": false, - "description": "(EXPERIMENTAL) Enables support for resolving completion edits asynchronously. This can speed up time to show the completion list, particularly override and partial method completion lists, at the cost of slight delays after inserting a completion item. Most completion items will have no noticeable impact with this feature, but typing immediately after inserting an override or partial method completion, before the insert is completed, can have unpredictable results." - }, - "omnisharp.analyzeOpenDocumentsOnly": { - "type": "boolean", - "default": false, - "description": "Only run analyzers against open files when 'enableRoslynAnalyzers' is true" - }, - "omnisharp.testRunSettings": { - "type": "string", - "description": "Path to the .runsettings file which should be used when running unit tests." - }, - "razor.plugin.path": { - "type": "string", - "scope": "machine", - "description": "Overrides the path to the Razor plugin dll." - }, - "razor.devmode": { - "type": "boolean", - "default": false, - "description": "Forces the omnisharp-vscode extension to run in a mode that enables local Razor.VSCode deving." - }, - "razor.disabled": { - "type": "boolean", - "default": false, - "description": "Specifies whether to disable Razor language features." - }, - "razor.languageServer.directory": { - "type": "string", - "scope": "machine", - "description": "Overrides the path to the Razor Language Server directory." - }, - "razor.languageServer.debug": { - "type": "boolean", - "default": false, - "description": "Specifies whether to wait for debug attach when launching the language server." - }, - "razor.trace": { - "type": "string", - "default": "Off", - "enum": [ - "Off", - "Messages", - "Verbose" - ], - "enumDescriptions": [ - "Does not log messages from the Razor extension", - "Logs only some messages from the Razor extension", - "Logs all messages from the Razor extension" - ], - "description": "Specifies whether to output all messages [Verbose], some messages [Messages] or not at all [Off]." - }, - "razor.format.enable": { - "type": "boolean", - "scope": "window", - "default": true, - "description": "Enable/disable default Razor formatter." - } - } - }, - "jsonValidation": [ - { - "fileMatch": [ - "appsettings.json", - "appsettings.*.json" - ], - "url": "https://json.schemastore.org/appsettings" - }, - { - "fileMatch": "project.json", - "url": "http://json.schemastore.org/project" - }, - { - "fileMatch": "omnisharp.json", - "url": "http://json.schemastore.org/omnisharp" - }, - { - "fileMatch": "global.json", - "url": "http://json.schemastore.org/global" - } - ], - "commands": [ - { - "command": "o.restart", - "title": "Restart OmniSharp", - "category": "OmniSharp" - }, - { - "command": "o.pickProjectAndStart", - "title": "Select Project", - "category": "OmniSharp" - }, - { - "command": "o.fixAll.solution", - "title": "Fix all occurrences of a code issue within solution", - "category": "OmniSharp" - }, - { - "command": "o.fixAll.project", - "title": "Fix all occurrences of a code issue within project", - "category": "OmniSharp" - }, - { - "command": "o.fixAll.document", - "title": "Fix all occurrences of a code issue within document", - "category": "OmniSharp" - }, - { - "command": "o.reanalyze.allProjects", - "title": "Analyze all projects", - "category": "OmniSharp" - }, - { - "command": "o.reanalyze.currentProject", - "title": "Analyze current project", - "category": "OmniSharp" - }, - { - "command": "dotnet.generateAssets", - "title": "Generate Assets for Build and Debug", - "category": ".NET" - }, - { - "command": "dotnet.restore.project", - "title": "Restore Project", - "category": ".NET" - }, - { - "command": "dotnet.restore.all", - "title": "Restore All Projects", - "category": ".NET" - }, - { - "command": "csharp.downloadDebugger", - "title": "Download .NET Core Debugger", - "category": "Debug" - }, - { - "command": "csharp.listProcess", - "title": "List process for attach", - "category": "CSharp" - }, - { - "command": "csharp.listRemoteProcess", - "title": "List processes on remote connection for attach", - "category": "CSharp" - }, - { - "command": "csharp.listRemoteDockerProcess", - "title": "List processes on Docker connection", - "category": "CSharp" - }, - { - "command": "csharp.reportIssue", - "title": "Report an issue", - "category": "CSharp" - }, - { - "command": "csharp.showDecompilationTerms", - "title": "Show the decompiler terms agreement", - "category": "CSharp" - }, - { - "command": "extension.showRazorCSharpWindow", - "title": "Show Razor CSharp", - "category": "Razor" - }, - { - "command": "extension.showRazorHtmlWindow", - "title": "Show Razor Html", - "category": "Razor" - }, - { - "command": "razor.reportIssue", - "title": "Report a Razor issue", - "category": "Razor" - }, - { - "command": "dotnet.test.runTestsInContext", - "title": "Run Tests in Context", - "category": ".NET" - }, - { - "command": "dotnet.test.debugTestsInContext", - "title": "Debug Tests in Context", - "category": ".NET" - } - ], - "keybindings": [ - { - "command": "o.showOutput", - "key": "Ctrl+Shift+F9", - "mac": "Cmd+Shift+F9" - } - ], - "snippets": [ - { - "language": "csharp", - "path": "./snippets/csharp.json" - } - ], - "breakpoints": [ - { - "language": "csharp" - }, - { - "language": "razor" - }, - { - "language": "qsharp" - }, - { - "language": "aspnetcorerazor" - } - ], - "debuggers": [ - { - "type": "coreclr", - "label": ".NET 5+ and .NET Core", - "languages": [ - "csharp", - "razor", - "qsharp", - "aspnetcorerazor" - ], - "variables": { - "pickProcess": "csharp.listProcess", - "pickRemoteProcess": "csharp.listRemoteProcess", - "pickRemoteDockerProcess": "csharp.listRemoteDockerProcess" - }, - "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217", - "configurationAttributes": { - "launch": { - "type": "object", - "required": [ - "program" - ], - "properties": { - "program": { - "type": "string", - "description": "Path to the application dll or .NET Core host executable to launch.\nThis property normally takes the form: '${workspaceFolder}/bin/Debug/(target-framework)/(project-name.dll)'\nExample: '${workspaceFolder}/bin/Debug/netcoreapp1.1/MyProject.dll'\n\nWhere:\n(target-framework) is the framework that the debugged project is being built for. This is normally found in the project file as the 'TargetFramework' property.\n(project-name.dll) is the name of debugged project's build output dll. This is normally the same as the project file name but with a '.dll' extension.", - "default": "${workspaceFolder}/bin/Debug//.dll" - }, - "cwd": { - "type": "string", - "description": "Path to the working directory of the program being debugged. Default is the current workspace.", - "default": "${workspaceFolder}" - }, - "args": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the program.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the program.", - "default": "" - } - ] - }, - "stopAtEntry": { - "type": "boolean", - "description": "If true, the debugger should stop at the entry point of the target.", - "default": false - }, - "launchBrowser": { - "description": "Describes options to launch a web browser as part of launch", - "default": { - "enabled": true - }, - "type": "object", - "required": [ - "enabled" - ], - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether web browser launch is enabled", - "default": true - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. This is used only if the platform-specific element (`osx`, `linux` or `windows`) doesn't specify a value for `args`. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "${auto-detect-url}" - }, - "osx": { - "description": "OSX-specific web launch configuration options. By default, this will start the browser using `open`.", - "default": { - "command": "open", - "args": "${auto-detect-url}" - }, - "type": "object", - "required": [ - "command" - ], - "properties": { - "command": { - "type": "string", - "description": "The executable which will start the web browser", - "default": "open" - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "${auto-detect-url}" - } - } - }, - "linux": { - "description": "Linux-specific web launch configuration options. By default, this will start the browser using `xdg-open`.", - "default": { - "command": "xdg-open", - "args": "${auto-detect-url}" - }, - "type": "object", - "required": [ - "command" - ], - "properties": { - "command": { - "type": "string", - "description": "The executable which will start the web browser", - "default": "xdg-open" - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "${auto-detect-url}" - } - } - }, - "windows": { - "description": "Windows-specific web launch configuration options. By default, this will start the browser using `cmd /c start`.", - "default": { - "command": "cmd.exe", - "args": "/C start ${auto-detect-url}" - }, - "type": "object", - "required": [ - "command" - ], - "properties": { - "command": { - "type": "string", - "description": "The executable which will start the web browser", - "default": "cmd.exe" - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "/C start ${auto-detect-url}" - } - } - } - } - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the program.", - "default": {} - }, - "envFile": { - "type": "string", - "description": "Environment variables passed to the program by a file.", - "default": "${workspaceFolder}/.env" - }, - "console": { - "type": "string", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], - "enumDescriptions": [ - "Output to the VS Code Debug Console. This doesn't support reading console input (ex:Console.ReadLine)", - "VS Code's integrated terminal", - "External terminal that can be configured via user settings" - ], - "description": "Where to launch the debug target.", - "default": "internalConsole" - }, - "externalConsole": { - "type": "boolean", - "description": "Attribute 'externalConsole' is deprecated, use 'console' instead.", - "default": false - }, - "launchSettingsFilePath": { - "type": "string", - "description": "The path to a launchSettings.json file. If this isn't set, the debugger will search in '{cwd}/Properties/launchSettings.json'.", - "default": "${workspaceFolder}/Properties/launchSettings.json" - }, - "launchSettingsProfile": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "If specified, indicates the name of the profile in launchSettings.json to use. This is ignored if launchSettings.json is not found. launchSettings.json will be read from the path specified should be the 'launchSettingsFilePath' property, or {cwd}/Properties/launchSettings.json if that isn't set. If this is set to null or an empty string then launchSettings.json is ignored. If this value is not specified the first 'Project' profile will be used.", - "default": "" - }, - "sourceFileMap": { - "type": "object", - "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", - "additionalProperties": { - "type": "string" - }, - "default": { - "": "" - } - }, - "justMyCode": { - "type": "boolean", - "description": "Optional flag to only show user code.", - "default": true - }, - "requireExactSource": { - "type": "boolean", - "description": "Optional flag to require current source code to match the pdb.", - "default": true - }, - "enableStepFiltering": { - "type": "boolean", - "description": "Optional flag to enable stepping over Properties and Operators.", - "default": true - }, - "logging": { - "description": "Optional flags to determine what types of messages should be logged to the output window.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "exceptions": { - "type": "boolean", - "description": "Optional flag to determine whether exception messages should be logged to the output window.", - "default": true - }, - "moduleLoad": { - "type": "boolean", - "description": "Optional flag to determine whether module load events should be logged to the output window.", - "default": true - }, - "programOutput": { - "type": "boolean", - "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", - "default": true - }, - "engineLogging": { - "type": "boolean", - "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", - "default": false - }, - "browserStdOut": { - "type": "boolean", - "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", - "default": true - }, - "elapsedTiming": { - "type": "boolean", - "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", - "default": false - }, - "threadExit": { - "type": "boolean", - "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", - "default": false - }, - "processExit": { - "type": "boolean", - "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", - "default": true - } - } - }, - "pipeTransport": { - "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", - "type": "object", - "required": [ - "debuggerPath" - ], - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [], - "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "debuggerPath": { - "type": "string", - "description": "The full path to the debugger on the target machine.", - "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "windows": { - "description": "Windows-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "osx": { - "description": "OSX-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "linux": { - "description": "Linux-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - } - } - }, - "suppressJITOptimizations": { - "type": "boolean", - "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", - "default": false - }, - "symbolOptions": { - "description": "Options to control how symbols (.pdb files) are found and loaded.", - "default": { - "searchPaths": [], - "searchMicrosoftSymbolServer": false, - "searchNuGetOrgSymbolServer": false - }, - "type": "object", - "properties": { - "searchPaths": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", - "default": [] - }, - "searchMicrosoftSymbolServer": { - "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "searchNuGetOrgSymbolServer": { - "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "cachePath": { - "type": "string", - "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", - "default": "~/.dotnet/symbolcache" - }, - "moduleFilter": { - "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", - "default": { - "mode": "loadAllButExcluded", - "excludedModules": [] - }, - "type": "object", - "required": [ - "mode" - ], - "properties": { - "mode": { - "type": "string", - "enum": [ - "loadAllButExcluded", - "loadOnlyIncluded" - ], - "enumDescriptions": [ - "Load symbols for all modules unless the module is in the 'excludedModules' array.", - "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." - ], - "description": "Controls which of the two basic operating modes the module filter operates in.", - "default": "loadAllButExcluded" - }, - "excludedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", - "default": [] - }, - "includedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": [ - "MyExampleModule.dll" - ] - }, - "includeSymbolsNextToModules": { - "type": "boolean", - "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": true - } - } - } - } - }, - "sourceLinkOptions": { - "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", - "default": { - "*": { - "enabled": true - } - }, - "type": "object", - "additionalItems": { - "type": "object", - "properties": { - "enabled": { - "title": "boolean", - "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", - "default": "true" - } - } - } - }, - "allowFastEvaluate": { - "type": "boolean", - "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", - "default": true - }, - "targetOutputLogPath": { - "type": "string", - "description": "When set, text that the target application writes to stdout and stderr (ex: Console.WriteLine) will be saved to the specified file. This option is ignored if console is set to something other than internalConsole.", - "default": "${workspaceFolder}/out.txt" - }, - "targetArchitecture": { - "type": "string", - "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." - } - } - }, - "attach": { - "type": "object", - "required": [], - "properties": { - "processName": { - "type": "string", - "description": "", - "default": "The process name to attach to. If this is used, 'processId' should not be used." - }, - "processId": { - "anyOf": [ - { - "type": "string", - "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", - "default": "" - }, - { - "type": "integer", - "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", - "default": 0 - } - ] - }, - "sourceFileMap": { - "type": "object", - "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", - "additionalProperties": { - "type": "string" - }, - "default": { - "": "" - } - }, - "justMyCode": { - "type": "boolean", - "description": "Optional flag to only show user code.", - "default": true - }, - "requireExactSource": { - "type": "boolean", - "description": "Optional flag to require current source code to match the pdb.", - "default": true - }, - "enableStepFiltering": { - "type": "boolean", - "description": "Optional flag to enable stepping over Properties and Operators.", - "default": true - }, - "logging": { - "description": "Optional flags to determine what types of messages should be logged to the output window.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "exceptions": { - "type": "boolean", - "description": "Optional flag to determine whether exception messages should be logged to the output window.", - "default": true - }, - "moduleLoad": { - "type": "boolean", - "description": "Optional flag to determine whether module load events should be logged to the output window.", - "default": true - }, - "programOutput": { - "type": "boolean", - "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", - "default": true - }, - "engineLogging": { - "type": "boolean", - "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", - "default": false - }, - "browserStdOut": { - "type": "boolean", - "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", - "default": true - }, - "elapsedTiming": { - "type": "boolean", - "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", - "default": false - }, - "threadExit": { - "type": "boolean", - "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", - "default": false - }, - "processExit": { - "type": "boolean", - "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", - "default": true - } - } - }, - "pipeTransport": { - "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", - "type": "object", - "required": [ - "debuggerPath" - ], - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [], - "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "debuggerPath": { - "type": "string", - "description": "The full path to the debugger on the target machine.", - "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "windows": { - "description": "Windows-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "osx": { - "description": "OSX-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "linux": { - "description": "Linux-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - } - } - }, - "suppressJITOptimizations": { - "type": "boolean", - "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", - "default": false - }, - "symbolOptions": { - "description": "Options to control how symbols (.pdb files) are found and loaded.", - "default": { - "searchPaths": [], - "searchMicrosoftSymbolServer": false, - "searchNuGetOrgSymbolServer": false - }, - "type": "object", - "properties": { - "searchPaths": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", - "default": [] - }, - "searchMicrosoftSymbolServer": { - "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "searchNuGetOrgSymbolServer": { - "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "cachePath": { - "type": "string", - "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", - "default": "~/.dotnet/symbolcache" - }, - "moduleFilter": { - "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", - "default": { - "mode": "loadAllButExcluded", - "excludedModules": [] - }, - "type": "object", - "required": [ - "mode" - ], - "properties": { - "mode": { - "type": "string", - "enum": [ - "loadAllButExcluded", - "loadOnlyIncluded" - ], - "enumDescriptions": [ - "Load symbols for all modules unless the module is in the 'excludedModules' array.", - "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." - ], - "description": "Controls which of the two basic operating modes the module filter operates in.", - "default": "loadAllButExcluded" - }, - "excludedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", - "default": [] - }, - "includedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": [ - "MyExampleModule.dll" - ] - }, - "includeSymbolsNextToModules": { - "type": "boolean", - "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": true - } - } - } - } - }, - "sourceLinkOptions": { - "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", - "default": { - "*": { - "enabled": true - } - }, - "type": "object", - "additionalItems": { - "type": "object", - "properties": { - "enabled": { - "title": "boolean", - "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", - "default": "true" - } - } - } - }, - "allowFastEvaluate": { - "type": "boolean", - "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", - "default": true - }, - "targetArchitecture": { - "type": "string", - "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." - } - } - } - }, - "configurationSnippets": [ - { - "label": ".NET: Launch .NET Core Console App", - "description": "Launch a .NET Core Console App with a debugger.", - "body": { - "name": ".NET Core Launch (console)", - "type": "coreclr", - "request": "launch", - "preLaunchTask": "build", - "program": "^\"\\${workspaceFolder}/bin/Debug/${1:}/${2:}\"", - "args": [], - "cwd": "^\"\\${workspaceFolder}\"", - "stopAtEntry": false, - "console": "internalConsole" - } - }, - { - "label": ".NET: Attach to local .NET Core Console App", - "description": "Attach a debugger to a .NET Core Console App.", - "body": { - "name": ".NET Core Attach", - "type": "coreclr", - "request": "attach" - } - }, - { - "label": ".NET: Launch a local .NET Core Web App", - "description": "Launch a .NET Core Web App with both a browser and a debugger.", - "body": { - "name": ".NET Core Launch (web)", - "type": "coreclr", - "request": "launch", - "preLaunchTask": "build", - "program": "^\"\\${workspaceFolder}/bin/Debug/${1:}/${2:}\"", - "args": [], - "cwd": "^\"\\${workspaceFolder}\"", - "stopAtEntry": false, - "serverReadyAction": { - "action": "openExternally", - "pattern": "\\\\bNow listening on:\\\\s+(https?://\\\\S+)" - }, - "env": { - "ASPNETCORE_ENVIRONMENT": "Development" - }, - "sourceFileMap": { - "/Views": "^\"\\${workspaceFolder}/Views\"" - } - } - }, - { - "label": ".NET: Launch a remote .NET Core Console App", - "description": "Launch a .NET Core Console App on a remote machine.", - "body": { - "name": ".NET Core Launch (console)", - "type": "coreclr", - "request": "launch", - "preLaunchTask": "build", - "program": "^\"\\${workspaceFolder}/bin/Debug/${1:}/${2:}\"", - "args": [], - "cwd": "^\"\\${workspaceFolder}\"", - "stopAtEntry": false, - "console": "internalConsole", - "pipeTransport": { - "pipeCwd": "^\"\\${workspaceFolder}\"", - "pipeProgram": "^\"${3:enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'}\"", - "pipeArgs": [], - "debuggerPath": "^\"${4:enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg}\"" - } - } - }, - { - "label": ".NET: Attach to remote .NET Core Console App", - "description": "Attach a debugger to a .NET Core Console App on a remote machine.", - "body": { - "name": ".NET Core Attach", - "type": "coreclr", - "request": "attach", - "pipeTransport": { - "pipeCwd": "^\"\\${workspaceFolder}\"", - "pipeProgram": "^\"${1:enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'}\"", - "pipeArgs": [], - "debuggerPath": "^\"${2:enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg}\"" - } - } - } - ] - }, - { - "type": "clr", - "label": ".NET Framework 4.x (Windows only)", - "languages": [ - "csharp", - "razor", - "qsharp", - "aspnetcorerazor" - ], - "variables": { - "pickProcess": "csharp.listProcess", - "pickRemoteProcess": "csharp.listRemoteProcess", - "pickRemoteDockerProcess": "csharp.listRemoteDockerProcess" - }, - "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217", - "configurationAttributes": { - "launch": { - "type": "object", - "required": [ - "program" - ], - "properties": { - "program": { - "type": "string", - "description": "Path to the application dll or .NET Core host executable to launch.\nThis property normally takes the form: '${workspaceFolder}/bin/Debug/(target-framework)/(project-name.dll)'\nExample: '${workspaceFolder}/bin/Debug/netcoreapp1.1/MyProject.dll'\n\nWhere:\n(target-framework) is the framework that the debugged project is being built for. This is normally found in the project file as the 'TargetFramework' property.\n(project-name.dll) is the name of debugged project's build output dll. This is normally the same as the project file name but with a '.dll' extension.", - "default": "${workspaceFolder}/bin/Debug//.dll" - }, - "cwd": { - "type": "string", - "description": "Path to the working directory of the program being debugged. Default is the current workspace.", - "default": "${workspaceFolder}" - }, - "args": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the program.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the program.", - "default": "" - } - ] - }, - "stopAtEntry": { - "type": "boolean", - "description": "If true, the debugger should stop at the entry point of the target.", - "default": false - }, - "launchBrowser": { - "description": "Describes options to launch a web browser as part of launch", - "default": { - "enabled": true - }, - "type": "object", - "required": [ - "enabled" - ], - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether web browser launch is enabled", - "default": true - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. This is used only if the platform-specific element (`osx`, `linux` or `windows`) doesn't specify a value for `args`. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "${auto-detect-url}" - }, - "osx": { - "description": "OSX-specific web launch configuration options. By default, this will start the browser using `open`.", - "default": { - "command": "open", - "args": "${auto-detect-url}" - }, - "type": "object", - "required": [ - "command" - ], - "properties": { - "command": { - "type": "string", - "description": "The executable which will start the web browser", - "default": "open" - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "${auto-detect-url}" - } - } - }, - "linux": { - "description": "Linux-specific web launch configuration options. By default, this will start the browser using `xdg-open`.", - "default": { - "command": "xdg-open", - "args": "${auto-detect-url}" - }, - "type": "object", - "required": [ - "command" - ], - "properties": { - "command": { - "type": "string", - "description": "The executable which will start the web browser", - "default": "xdg-open" - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "${auto-detect-url}" - } - } - }, - "windows": { - "description": "Windows-specific web launch configuration options. By default, this will start the browser using `cmd /c start`.", - "default": { - "command": "cmd.exe", - "args": "/C start ${auto-detect-url}" - }, - "type": "object", - "required": [ - "command" - ], - "properties": { - "command": { - "type": "string", - "description": "The executable which will start the web browser", - "default": "cmd.exe" - }, - "args": { - "type": "string", - "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", - "default": "/C start ${auto-detect-url}" - } - } - } - } - }, - "env": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the program.", - "default": {} - }, - "envFile": { - "type": "string", - "description": "Environment variables passed to the program by a file.", - "default": "${workspaceFolder}/.env" - }, - "console": { - "type": "string", - "enum": [ - "internalConsole", - "integratedTerminal", - "externalTerminal" - ], - "enumDescriptions": [ - "Output to the VS Code Debug Console. This doesn't support reading console input (ex:Console.ReadLine)", - "VS Code's integrated terminal", - "External terminal that can be configured via user settings" - ], - "description": "Where to launch the debug target.", - "default": "internalConsole" - }, - "externalConsole": { - "type": "boolean", - "description": "Attribute 'externalConsole' is deprecated, use 'console' instead.", - "default": false - }, - "launchSettingsFilePath": { - "type": "string", - "description": "The path to a launchSettings.json file. If this isn't set, the debugger will search in '{cwd}/Properties/launchSettings.json'.", - "default": "${workspaceFolder}/Properties/launchSettings.json" - }, - "launchSettingsProfile": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "If specified, indicates the name of the profile in launchSettings.json to use. This is ignored if launchSettings.json is not found. launchSettings.json will be read from the path specified should be the 'launchSettingsFilePath' property, or {cwd}/Properties/launchSettings.json if that isn't set. If this is set to null or an empty string then launchSettings.json is ignored. If this value is not specified the first 'Project' profile will be used.", - "default": "" - }, - "sourceFileMap": { - "type": "object", - "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", - "additionalProperties": { - "type": "string" - }, - "default": { - "": "" - } - }, - "justMyCode": { - "type": "boolean", - "description": "Optional flag to only show user code.", - "default": true - }, - "requireExactSource": { - "type": "boolean", - "description": "Optional flag to require current source code to match the pdb.", - "default": true - }, - "enableStepFiltering": { - "type": "boolean", - "description": "Optional flag to enable stepping over Properties and Operators.", - "default": true - }, - "logging": { - "description": "Optional flags to determine what types of messages should be logged to the output window.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "exceptions": { - "type": "boolean", - "description": "Optional flag to determine whether exception messages should be logged to the output window.", - "default": true - }, - "moduleLoad": { - "type": "boolean", - "description": "Optional flag to determine whether module load events should be logged to the output window.", - "default": true - }, - "programOutput": { - "type": "boolean", - "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", - "default": true - }, - "engineLogging": { - "type": "boolean", - "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", - "default": false - }, - "browserStdOut": { - "type": "boolean", - "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", - "default": true - }, - "elapsedTiming": { - "type": "boolean", - "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", - "default": false - }, - "threadExit": { - "type": "boolean", - "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", - "default": false - }, - "processExit": { - "type": "boolean", - "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", - "default": true - } - } - }, - "pipeTransport": { - "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", - "type": "object", - "required": [ - "debuggerPath" - ], - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [], - "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "debuggerPath": { - "type": "string", - "description": "The full path to the debugger on the target machine.", - "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "windows": { - "description": "Windows-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "osx": { - "description": "OSX-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "linux": { - "description": "Linux-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - } - } - }, - "suppressJITOptimizations": { - "type": "boolean", - "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", - "default": false - }, - "symbolOptions": { - "description": "Options to control how symbols (.pdb files) are found and loaded.", - "default": { - "searchPaths": [], - "searchMicrosoftSymbolServer": false, - "searchNuGetOrgSymbolServer": false - }, - "type": "object", - "properties": { - "searchPaths": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", - "default": [] - }, - "searchMicrosoftSymbolServer": { - "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "searchNuGetOrgSymbolServer": { - "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "cachePath": { - "type": "string", - "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", - "default": "~/.dotnet/symbolcache" - }, - "moduleFilter": { - "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", - "default": { - "mode": "loadAllButExcluded", - "excludedModules": [] - }, - "type": "object", - "required": [ - "mode" - ], - "properties": { - "mode": { - "type": "string", - "enum": [ - "loadAllButExcluded", - "loadOnlyIncluded" - ], - "enumDescriptions": [ - "Load symbols for all modules unless the module is in the 'excludedModules' array.", - "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." - ], - "description": "Controls which of the two basic operating modes the module filter operates in.", - "default": "loadAllButExcluded" - }, - "excludedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", - "default": [] - }, - "includedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": [ - "MyExampleModule.dll" - ] - }, - "includeSymbolsNextToModules": { - "type": "boolean", - "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": true - } - } - } - } - }, - "sourceLinkOptions": { - "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", - "default": { - "*": { - "enabled": true - } - }, - "type": "object", - "additionalItems": { - "type": "object", - "properties": { - "enabled": { - "title": "boolean", - "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", - "default": "true" - } - } - } - }, - "allowFastEvaluate": { - "type": "boolean", - "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", - "default": true - }, - "targetOutputLogPath": { - "type": "string", - "description": "When set, text that the target application writes to stdout and stderr (ex: Console.WriteLine) will be saved to the specified file. This option is ignored if console is set to something other than internalConsole.", - "default": "${workspaceFolder}/out.txt" - }, - "targetArchitecture": { - "type": "string", - "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." - } - } - }, - "attach": { - "type": "object", - "required": [], - "properties": { - "processName": { - "type": "string", - "description": "", - "default": "The process name to attach to. If this is used, 'processId' should not be used." - }, - "processId": { - "anyOf": [ - { - "type": "string", - "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", - "default": "" - }, - { - "type": "integer", - "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", - "default": 0 - } - ] - }, - "sourceFileMap": { - "type": "object", - "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", - "additionalProperties": { - "type": "string" - }, - "default": { - "": "" - } - }, - "justMyCode": { - "type": "boolean", - "description": "Optional flag to only show user code.", - "default": true - }, - "requireExactSource": { - "type": "boolean", - "description": "Optional flag to require current source code to match the pdb.", - "default": true - }, - "enableStepFiltering": { - "type": "boolean", - "description": "Optional flag to enable stepping over Properties and Operators.", - "default": true - }, - "logging": { - "description": "Optional flags to determine what types of messages should be logged to the output window.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "exceptions": { - "type": "boolean", - "description": "Optional flag to determine whether exception messages should be logged to the output window.", - "default": true - }, - "moduleLoad": { - "type": "boolean", - "description": "Optional flag to determine whether module load events should be logged to the output window.", - "default": true - }, - "programOutput": { - "type": "boolean", - "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", - "default": true - }, - "engineLogging": { - "type": "boolean", - "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", - "default": false - }, - "browserStdOut": { - "type": "boolean", - "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", - "default": true - }, - "elapsedTiming": { - "type": "boolean", - "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", - "default": false - }, - "threadExit": { - "type": "boolean", - "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", - "default": false - }, - "processExit": { - "type": "boolean", - "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", - "default": true - } - } - }, - "pipeTransport": { - "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", - "type": "object", - "required": [ - "debuggerPath" - ], - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [], - "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "debuggerPath": { - "type": "string", - "description": "The full path to the debugger on the target machine.", - "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "windows": { - "description": "Windows-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "osx": { - "description": "OSX-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - }, - "linux": { - "description": "Linux-specific pipe launch configuration options", - "default": { - "pipeCwd": "${workspaceFolder}", - "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", - "pipeArgs": [] - }, - "type": "object", - "properties": { - "pipeCwd": { - "type": "string", - "description": "The fully qualified path to the working directory for the pipe program.", - "default": "${workspaceFolder}" - }, - "pipeProgram": { - "type": "string", - "description": "The fully qualified pipe command to execute.", - "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" - }, - "pipeArgs": { - "anyOf": [ - { - "type": "array", - "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "items": { - "type": "string" - }, - "default": [] - }, - { - "type": "string", - "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", - "default": "" - } - ], - "default": [] - }, - "quoteArgs": { - "type": "boolean", - "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", - "default": true - }, - "pipeEnv": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Environment variables passed to the pipe program.", - "default": {} - } - } - } - } - }, - "suppressJITOptimizations": { - "type": "boolean", - "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", - "default": false - }, - "symbolOptions": { - "description": "Options to control how symbols (.pdb files) are found and loaded.", - "default": { - "searchPaths": [], - "searchMicrosoftSymbolServer": false, - "searchNuGetOrgSymbolServer": false - }, - "type": "object", - "properties": { - "searchPaths": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", - "default": [] - }, - "searchMicrosoftSymbolServer": { - "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "searchNuGetOrgSymbolServer": { - "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", - "default": false - }, - "cachePath": { - "type": "string", - "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", - "default": "~/.dotnet/symbolcache" - }, - "moduleFilter": { - "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", - "default": { - "mode": "loadAllButExcluded", - "excludedModules": [] - }, - "type": "object", - "required": [ - "mode" - ], - "properties": { - "mode": { - "type": "string", - "enum": [ - "loadAllButExcluded", - "loadOnlyIncluded" - ], - "enumDescriptions": [ - "Load symbols for all modules unless the module is in the 'excludedModules' array.", - "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." - ], - "description": "Controls which of the two basic operating modes the module filter operates in.", - "default": "loadAllButExcluded" - }, - "excludedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", - "default": [] - }, - "includedModules": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": [ - "MyExampleModule.dll" - ] - }, - "includeSymbolsNextToModules": { - "type": "boolean", - "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "default": true - } - } - } - } - }, - "sourceLinkOptions": { - "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", - "default": { - "*": { - "enabled": true - } - }, - "type": "object", - "additionalItems": { - "type": "object", - "properties": { - "enabled": { - "title": "boolean", - "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", - "default": "true" - } - } - } - }, - "allowFastEvaluate": { - "type": "boolean", - "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", - "default": true - }, - "targetArchitecture": { - "type": "string", - "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." - } - } - } - } - }, - { - "type": "blazorwasm", - "label": "Blazor WebAssembly Debug", - "initialConfigurations": [ - { - "type": "blazorwasm", - "name": "Launch and Debug Blazor WebAssembly Application", - "request": "launch" - } - ], - "configurationAttributes": { - "launch": { - "properties": { - "cwd": { - "type": "string", - "description": "The directory of the Blazor WebAssembly app, defaults to the workspace folder.", - "default": "${workspaceFolder}" - }, - "url": { - "type": "string", - "description": "The URL of the application", - "default": "https://localhost:5001" - }, - "browser": { - "type": "string", - "description": "The debugging browser to launch (Edge or Chrome)", - "default": "edge", - "enum": [ - "chrome", - "edge" - ] - }, - "trace": { - "type": [ - "boolean", - "string" - ], - "default": "true", - "enum": [ - "verbose", - true - ], - "description": "If true, verbose logs from JS debugger are sent to log file. If 'verbose', send logs to console." - }, - "hosted": { - "type": "boolean", - "default": "false", - "description": "True if the app is a hosted Blazor WebAssembly app, false otherwise." - }, - "webRoot": { - "type": "string", - "default": "${workspaceFolder}", - "description": "Specifies the absolute path to the webserver root." - }, - "timeout": { - "type": "number", - "default": 30000, - "description": "Retry for this number of milliseconds to connect to browser." - }, - "program": { - "type": "string", - "default": "${workspaceFolder}/Server/bin/Debug//", - "description": "The path of the DLL to execute when launching a hosted server app" - }, - "env": { - "type": "object", - "description": "Environment variables passed to dotnet. Only valid for hosted apps." - }, - "dotNetConfig": { - "description": "Options passed to the underlying .NET debugger. For more info, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger.md.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "justMyCode": { - "type": "boolean", - "description": "Optional flag to only show user code.", - "default": true - }, - "logging": { - "description": "Optional flags to determine what types of messages should be logged to the output window. Applicable only for the app server of hosted Blazor WASM apps.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "exceptions": { - "type": "boolean", - "description": "Optional flag to determine whether exception messages should be logged to the output window.", - "default": true - }, - "moduleLoad": { - "type": "boolean", - "description": "Optional flag to determine whether module load events should be logged to the output window.", - "default": true - }, - "programOutput": { - "type": "boolean", - "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", - "default": true - }, - "engineLogging": { - "type": "boolean", - "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", - "default": false - }, - "browserStdOut": { - "type": "boolean", - "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", - "default": true - }, - "elapsedTiming": { - "type": "boolean", - "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", - "default": false - }, - "threadExit": { - "type": "boolean", - "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", - "default": false - }, - "processExit": { - "type": "boolean", - "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", - "default": true - } - } - }, - "sourceFileMap": { - "type": "object", - "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", - "additionalProperties": { - "type": "string" - }, - "default": { - "": "" - } - } - } - }, - "browserConfig": { - "description": "Options based to the underlying JavaScript debugger. For more info, see https://github.com/microsoft/vscode-js-debug/blob/master/OPTIONS.md.", - "type": "object", - "required": [], - "default": {}, - "properties": { - "outputCapture": { - "enum": [ - "console", - "std" - ], - "description": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.", - "default": "console" - } - } - } - } - }, - "attach": { - "properties": { - "url": { - "type": "string", - "description": "The URL of the application", - "default": "https://localhost:5001" - }, - "cwd": { - "type": "string", - "description": "The directory of the Blazor WebAssembly app, defaults to the workspace folder.", - "default": "${workspaceFolder}" - }, - "browser": { - "type": "string", - "description": "The debugging browser to launch (Edge or Chrome)", - "default": "chrome", - "enum": [ - "chrome", - "edge" - ] - }, - "trace": { - "type": [ - "boolean", - "string" - ], - "default": "true", - "enum": [ - "verbose", - true - ], - "description": "If true, verbose logs from JS debugger are sent to log file. If 'verbose', send logs to console." - }, - "webRoot": { - "type": "string", - "default": "${workspaceFolder}", - "description": "Specifies the absolute path to the webserver root." - }, - "timeout": { - "type": "number", - "default": 30000, - "description": "Retry for this number of milliseconds to connect to browser." - } - } - } - } - } - ], - "semanticTokenTypes": [ - { - "id": "razorTagHelperElement", - "description": "A Razor TagHelper Element" - }, - { - "id": "razorTagHelperAttribute", - "description": "A Razor TagHelper Attribute" - }, - { - "id": "razorTransition", - "description": "A Razor transition" - }, - { - "id": "razorDirectiveAttribute", - "description": "A Razor Directive Attribute" - }, - { - "id": "razorDirectiveColon", - "description": "A colon between directive attribute parameters" - }, - { - "id": "razorDirective", - "description": "A Razor directive such as 'code' or 'function'" - }, - { - "id": "razorComment", - "description": "A Razor comment" - }, - { - "id": "markupCommentPunctuation", - "description": "The '@' or '*' of a Razor comment." - }, - { - "id": "markupTagDelimiter", - "description": "Markup delimiters like '<', '>', and '/'." - }, - { - "id": "markupOperator", - "description": "Delimiter for Markup Attribute Key-Value pairs." - }, - { - "id": "markupElement", - "description": "The name of a Markup element." - }, - { - "id": "markupAttribute", - "description": "The name of a Markup attribute." - }, - { - "id": "markupComment", - "description": "The contents of a Markup comment." - }, - { - "id": "markupCommentPunctuation", - "description": "The begining or ending punctuation of a Markup comment." - }, - { - "id": "plainKeyword", - "description": "Represents a keyword" - }, - { - "id": "controlKeyword", - "description": "Represents a control-flow keyword" - }, - { - "id": "operatorOverloaded", - "description": "Represents a custom implementation of an operator" - }, - { - "id": "preprocessorKeyword", - "description": "Represents" - }, - { - "id": "preprocessorText", - "description": "Represents" - }, - { - "id": "excludedCode", - "description": "" - }, - { - "id": "punctuation", - "description": "" - }, - { - "id": "stringVerbatim", - "description": "" - }, - { - "id": "stringEscapeCharacter", - "description": "" - }, - { - "id": "delegate", - "description": "" - }, - { - "id": "module", - "description": "" - }, - { - "id": "extensionMethod", - "description": "" - }, - { - "id": "field", - "description": "" - }, - { - "id": "local", - "description": "" - }, - { - "id": "xmlDocCommentAttributeName", - "description": "" - }, - { - "id": "xmlDocCommentAttributeQuotes", - "description": "" - }, - { - "id": "xmlDocCommentAttributeValue", - "description": "" - }, - { - "id": "xmlDocCommentCDataSection", - "description": "" - }, - { - "id": "xmlDocCommentComment", - "description": "" - }, - { - "id": "xmlDocCommentDelimiter", - "description": "" - }, - { - "id": "xmlDocCommentEntityReference", - "description": "" - }, - { - "id": "xmlDocCommentName", - "description": "" - }, - { - "id": "xmlDocCommentProcessingInstruction", - "description": "" - }, - { - "id": "xmlDocCommentText", - "description": "" - }, - { - "id": "regexComment", - "description": "" - }, - { - "id": "regexCharacterClass", - "description": "" - }, - { - "id": "regexAnchor", - "description": "" - }, - { - "id": "regexQuantifier", - "description": "" - }, - { - "id": "regexGrouping", - "description": "" - }, - { - "id": "regexAlternation", - "description": "" - }, - { - "id": "regexSelfEscapedCharacter", - "description": "" - }, - { - "id": "regexOtherEscape", - "description": "" - } - ], - "semanticTokenModifiers": [], - "semanticTokenScopes": [ - { - "language": "aspnetcorerazor", - "scopes": { - "razorTagHelperElement": [ - "entity.name.class.element.taghelper" - ], - "razorTagHelperAttribute": [ - "entity.name.class.attribute.taghelper" - ], - "razorTransition": [ - "keyword.control.razor.transition" - ], - "razorDirectiveAttribute": [ - "keyword.control.razor.directive.attribute", - "keyword.control.cshtml.directive.attribute" - ], - "razorDirectiveColon": [ - "keyword.control.razor.directive.colon", - "keyword.control.cshtml.directive.colon" - ], - "razorDirective": [ - "keyword.control.razor.directive", - "keyword.control.cshtml.directive" - ], - "razorComment": [ - "comment.block.razor" - ], - "razorCommentTransition": [ - "meta.comment.razor", - "keyword.control.cshtml.transition" - ], - "razorCommentStar": [ - "keyword.control.razor.comment.star", - "meta.comment.razor" - ], - "angleBracket": [ - "punctuation.definition.tag" - ], - "forwardSlash": [ - "punctuation.definition.tag" - ], - "equals": [ - "punctuation.separator.key-value.html" - ], - "markupElement": [ - "entity.name.tag.html" - ], - "markupAttribute": [ - "entity.other.attribute-name.html" - ], - "markupComment": [ - "comment.block.html" - ], - "markupCommentPunctuation": [ - "punctuation.definition.comment.html", - "comment.block.html" - ] - } - }, - { - "language": "csharp", - "scopes": { - "plainKeyword": [ - "keyword.cs" - ], - "controlKeyword": [ - "keyword.control.cs" - ], - "operatorOverloaded": [ - "entity.name.function.member.overload.cs" - ], - "preprocessorKeyword": [ - "keyword.preprocessor.cs" - ], - "preprocessorText": [ - "meta.preprocessor.string.cs" - ], - "excludedCode": [ - "support.other.excluded.cs" - ], - "punctuation": [ - "punctuation.cs" - ], - "stringVerbatim": [ - "string.verbatim.cs" - ], - "stringEscapeCharacter": [ - "constant.character.escape.cs" - ], - "delegate": [ - "entity.name.type.delegate.cs" - ], - "module": [ - "entity.name.type.module.cs" - ], - "extensionMethod": [ - "entity.name.function.extension.cs" - ], - "field": [ - "entity.name.variable.field.cs" - ], - "local": [ - "entity.name.variable.local.cs" - ], - "xmlDocCommentAttributeName": [ - "comment.documentation.attribute.name.cs" - ], - "xmlDocCommentAttributeQuotes": [ - "comment.documentation.attribute.quotes.cs" - ], - "xmlDocCommentAttributeValue": [ - "comment.documentation.attribute.value.cs" - ], - "xmlDocCommentCDataSection": [ - "comment.documentation.cdata.cs" - ], - "xmlDocCommentComment": [ - "comment.documentation.comment.cs" - ], - "xmlDocCommentDelimiter": [ - "comment.documentation.delimiter.cs" - ], - "xmlDocCommentEntityReference": [ - "comment.documentation.entityReference.cs" - ], - "xmlDocCommentName": [ - "comment.documentation.name.cs" - ], - "xmlDocCommentProcessingInstruction": [ - "comment.documentation.processingInstruction.cs" - ], - "xmlDocCommentText": [ - "comment.documentation.cs" - ], - "regexComment": [ - "string.regexp.comment.cs" - ], - "regexCharacterClass": [ - "constant.character.character-class.regexp.cs" - ], - "regexAnchor": [ - "keyword.control.anchor.regexp.cs" - ], - "regexQuantifier": [ - "keyword.operator.quantifier.regexp.cs" - ], - "regexGrouping": [ - "punctuation.definition.group.regexp.cs" - ], - "regexAlternation": [ - "keyword.operator.or.regexp.cs" - ], - "regexSelfEscapedCharacter": [ - "string.regexp.self-escaped-character.cs" - ], - "regexOtherEscape": [ - "string.regexp.other-escape.cs" - ] - } - } - ], - "languages": [ - { - "id": "aspnetcorerazor", - "extensions": [ - ".cshtml", - ".razor" - ], - "mimetypes": [ - "text/x-cshtml" - ], - "configuration": "./src/razor/language-configuration.json", - "aliases": [ - "ASP.NET Razor" - ] - } - ], - "grammars": [ - { - "language": "aspnetcorerazor", - "scopeName": "text.aspnetcorerazor", - "path": "./src/razor/syntaxes/aspnetcorerazor.tmLanguage.json" - } - ], - "menus": { - "commandPalette": [ - { - "command": "dotnet.test.runTestsInContext", - "when": "editorLangId == csharp" - }, - { - "command": "dotnet.test.debugTestsInContext", - "when": "editorLangId == csharp" - } - ], - "editor/title": [ - { - "command": "extension.showRazorCSharpWindow", - "when": "resourceLangId == aspnetcorerazor" - }, - { - "command": "extension.showRazorHtmlWindow", - "when": "resourceLangId == aspnetcorerazor" - }, - { - "command": "razor.reportIssue", - "when": "resourceLangId == aspnetcorerazor" - } - ], - "editor/context": [ - { - "command": "dotnet.test.runTestsInContext", - "when": "editorLangId == csharp", - "group": "2_dotnet@1" - }, - { - "command": "dotnet.test.debugTestsInContext", - "when": "editorLangId == csharp", - "group": "2_dotnet@2" - } - ] - }, - "viewsWelcome": [ - { - "view": "debug", - "contents": "[Generate C# Assets for Build and Debug](command:dotnet.generateAssets)\n\nTo learn more about launch.json, see [Configuring launch.json for C# debugging](https://aka.ms/VSCode-CS-LaunchJson).", - "when": "debugStartLanguage == csharp" - } - ] - }, - "__metadata": { - "id": "d0bfc4ab-1d3a-4487-8782-7cf6027b4fff", - "publisherDisplayName": "Microsoft", - "publisherId": "d05e23de-3974-4ff0-8d47-23ee77830092", - "isPreReleaseVersion": false - } + "name": "csharp", + "publisher": "ms-dotnettools", + "version": "1.24.5", + "description": "C# for Visual Studio Code (powered by OmniSharp).", + "displayName": "C#", + "author": "Microsoft Corporation", + "license": "SEE LICENSE IN RuntimeLicenses/license.txt", + "icon": "images/csharpIcon.png", + "preview": false, + "bugs": { + "url": "https://github.com/OmniSharp/omnisharp-vscode/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/OmniSharp/omnisharp-vscode.git" + }, + "categories": [ + "Debuggers", + "Programming Languages", + "Linters", + "Snippets" + ], + "keywords": [ + "multi-root ready", + ".NET", + "ASP.NET", + ".NET Core", + "dotnet" + ], + "capabilities": { + "virtualWorkspaces": false, + "untrustedWorkspaces": { + "supported": false + } + }, + "defaults": { + "omniSharp": "1.38.2", + "razor": "6.0.0-preview.5.21358.6" + }, + "main": "./dist/extension", + "scripts": { + "vscode:prepublish": "tsc -p ./ && webpack --mode production", + "compile": "tsc -p ./ && gulp tslint", + "compileDev": "tsc -p ./ && gulp tslint && webpack --mode development", + "watch": "tsc -watch -p ./", + "tdd": "mocha --config ./.mocharc.jsonc --watch --watch-extensions ts test/unitTests/**/*.test.ts*", + "test": "tsc -p ./ && gulp test", + "test:unit": "tsc -p ./ && gulp test:unit", + "test:feature": "tsc -p ./ && gulp test:feature", + "test:integration": "tsc -p ./ && gulp test:integration", + "test:integration:singleCsproj": "tsc -p ./ && gulp test:integration:singleCsproj", + "test:integration:slnWithCsproj": "tsc -p ./ && gulp test:integration:slnWithCsproj", + "test:integration:slnFilterWithCsproj": "tsc -p ./ && gulp test:integration:slnFilterWithCsproj", + "test:release": "mocha --config ./.mocharc.jsonc test/releaseTests/**/*.test.ts", + "test:artifacts": "mocha --config ./.mocharc.jsonc test/artifactTests/**/*.test.ts", + "unpackage:vsix": "gulp vsix:release:unpackage", + "gulp": "gulp" + }, + "dependencies": { + "@types/cross-spawn": "^6.0.2", + "async-file": "2.0.2", + "cross-spawn": "^6.0.5", + "fs-extra": "9.1.0", + "http-proxy-agent": "4.0.1", + "https-proxy-agent": "5.0.0", + "jsonc-parser": "3.0.0", + "microsoft.aspnetcore.razor.vscode": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/0ab4b9b270542715d9ffa7ee05c809fb/microsoft.aspnetcore.razor.vscode-6.0.0-preview.5.21358.6.tgz", + "node-machine-id": "1.1.12", + "request-light": "0.4.0", + "rxjs": "6.6.7", + "semver": "5.6.0", + "stream": "0.0.2", + "strip-bom": "5.0.0", + "strip-bom-buf": "2.0.0", + "tmp": "0.0.33", + "vscode-debugprotocol": "1.33.0", + "vscode-extension-telemetry": "0.1.6", + "vscode-languageserver-protocol": "3.16.0", + "vscode-nls": "5.0.0", + "yauzl": "2.10.0" + }, + "devDependencies": { + "@types/archiver": "5.1.0", + "@types/chai": "4.2.16", + "@types/chai-arrays": "2.0.0", + "@types/chai-as-promised": "7.1.3", + "@types/chai-string": "1.4.2", + "@types/del": "3.0.1", + "@types/fs-extra": "5.0.4", + "@types/gulp": "4.0.5", + "@types/minimist": "1.2.1", + "@types/mocha": "5.2.5", + "@types/node": "10.12.24", + "@types/semver": "5.5.0", + "@types/tmp": "0.0.33", + "@types/unzipper": "^0.9.1", + "@types/vscode": "1.65.0", + "@types/yauzl": "2.9.1", + "@vscode/test-electron": "2.1.3", + "archiver": "5.3.0", + "chai": "4.3.4", + "chai-arrays": "2.2.0", + "chai-as-promised": "7.1.1", + "chai-fs": "2.0.0", + "chai-string": "1.5.0", + "del": "3.0.0", + "find-versions": "4.0.0", + "get-port": "5.1.1", + "glob-promise": "4.1.0", + "gulp": "4.0.2", + "gulp-tslint": "8.1.4", + "mocha": "8.3.2", + "mock-fs": "4.13.0", + "mock-http-server": "1.4.2", + "npm-run-all": "4.1.5", + "ts-loader": "9.0.0", + "ts-node": "9.1.1", + "tslint": "5.12.1", + "tslint-microsoft-contrib": "6.0.0", + "tslint-no-unused-expression-chai": "0.1.4", + "typescript": "4.2.4", + "unzipper": "0.10.11", + "vsce": "1.100.2", + "webpack": "5.34.0", + "webpack-cli": "4.6.0" + }, + "runtimeDependencies": [ + { + "id": "OmniSharp", + "description": "OmniSharp for Windows (.NET 4.7.2 / x86)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x86-1.38.2.zip", + "installPath": ".omnisharp/1.38.2", + "platforms": [ + "win32" + ], + "architectures": [ + "x86" + ], + "installTestPath": "./.omnisharp/1.38.2/OmniSharp.exe", + "platformId": "win-x86", + "isFramework": true, + "integrity": "B2E414B2A7155B2A484DB182B69223B0AEF9EB1F8E1CB6155C6C5E9D07A78CF8" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Windows (.NET 6 / x86)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x86-net6.0-1.38.2.zip", + "installPath": ".omnisharp/1.38.2-net6.0", + "platforms": [ + "win32" + ], + "architectures": [ + "x86" + ], + "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", + "platformId": "win-x86", + "isFramework": false, + "integrity": "EAA8D28669049E68E458CC7224C2B9069F575CEA51B8B36D4F4D51C7532D0419" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Windows (.NET 4.7.2 / x64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x64-1.38.2.zip", + "installPath": ".omnisharp/1.38.2", + "platforms": [ + "win32" + ], + "architectures": [ + "x86_64" + ], + "installTestPath": "./.omnisharp/1.38.2/OmniSharp.exe", + "platformId": "win-x64", + "isFramework": true, + "integrity": "1F94980CA0FAB7B6AE17195FBB9FC0A677EA4BB96A376CF68B32A0D59650522D" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Windows (.NET 6 / x64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-x64-net6.0-1.38.2.zip", + "installPath": ".omnisharp/1.38.2-net6.0", + "platforms": [ + "win32" + ], + "architectures": [ + "x86_64" + ], + "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", + "platformId": "win-x64", + "isFramework": false, + "integrity": "88B82CC9D7D1E8757F3DE457833FE29BACCEA35EE16C8790513BF0129316ECC4" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Windows (.NET 4.7.2 / arm64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-arm64-1.38.2.zip", + "installPath": ".omnisharp/1.38.2", + "platforms": [ + "win32" + ], + "architectures": [ + "arm64" + ], + "installTestPath": "./.omnisharp/1.38.2/OmniSharp.exe", + "platformId": "win-arm64", + "isFramework": true, + "integrity": "ECA2B07CBAEACF1D1E755ECCAF57459F0DD36A30C176251D18146440A0852E9B" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Windows (.NET 6 / arm64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-win-arm64-net6.0-1.38.2.zip", + "installPath": ".omnisharp/1.38.2-net6.0", + "platforms": [ + "win32" + ], + "architectures": [ + "arm64" + ], + "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", + "platformId": "win-arm64", + "isFramework": false, + "integrity": "ACAEA0B0EDD5ABDC23196AC7C4C928005C6FF97D829CA96515842C87C30C27AE" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for OSX (Mono / x64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-osx-1.38.2.zip", + "installPath": ".omnisharp/1.38.2", + "platforms": [ + "darwin" + ], + "binaries": [ + "./mono.osx", + "./run" + ], + "installTestPath": "./.omnisharp/1.38.2/run", + "platformId": "osx", + "isFramework": true, + "integrity": "9C934684359FC1488803075B549D9B57F8E41129B61C344DA7CF202C4918FEB6" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for OSX (.NET 6 / x64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-osx-x64-net6.0-1.38.2.zip", + "installPath": ".omnisharp/1.38.2-net6.0", + "platforms": [ + "darwin" + ], + "architectures": [ + "x86_64" + ], + "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", + "platformId": "osx-x64", + "isFramework": false, + "integrity": "F32B94A4601E532C7380AEBE9498B20793EDC538671BFF516C2EED4CBAE84DAF" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for OSX (.NET 6 / arm64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-osx-arm64-net6.0-1.38.2.zip", + "installPath": ".omnisharp/1.38.2-net6.0", + "platforms": [ + "darwin" + ], + "architectures": [ + "arm64" + ], + "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", + "platformId": "osx-arm64", + "isFramework": false, + "integrity": "58BA4910DFE978B5D873BAA062123C0FEDEB2E89A685F22825355C54E9BF7D90" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Linux (Mono / x86)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-x86-1.38.2.zip", + "installPath": ".omnisharp/1.38.2", + "platforms": [ + "linux" + ], + "architectures": [ + "x86", + "i686" + ], + "binaries": [ + "./mono.linux-x86", + "./run" + ], + "installTestPath": "./.omnisharp/1.38.2/run", + "platformId": "linux-x86", + "isFramework": true, + "integrity": "3F230B3C6DB0D48B5E4D51C45BB52F6B568AD1CC8CEEA7D50128123C17A77CD1" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Linux (Mono / x64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-x64-1.38.2.zip", + "installPath": ".omnisharp/1.38.2", + "platforms": [ + "linux" + ], + "architectures": [ + "x86_64" + ], + "binaries": [ + "./mono.linux-x86_64", + "./run" + ], + "installTestPath": "./.omnisharp/1.38.2/run", + "platformId": "linux-x64", + "isFramework": true, + "integrity": "F29A5E1E2A8EAAED8DF8AD37F838453986B8650E453EFCE56506AD8CC132EBE1" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Linux (.NET 6 / x64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-x64-net6.0-1.38.2.zip", + "installPath": ".omnisharp/1.38.2-net6.0", + "platforms": [ + "linux" + ], + "architectures": [ + "x86_64" + ], + "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", + "platformId": "linux-x64", + "isFramework": false, + "integrity": "1F778F40FB54C4B11CB6CDFAB30266DAF2F327133685576BC8BD9D6EF2439C1F" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Linux (Framework / arm64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-arm64-1.38.2.zip", + "installPath": ".omnisharp/1.38.2", + "platforms": [ + "linux" + ], + "architectures": [ + "arm64" + ], + "binaries": [ + "./mono.linux-arm64", + "./run" + ], + "installTestPath": "./.omnisharp/1.38.2/run", + "platformId": "linux-arm64", + "isFramework": true, + "integrity": "156D92F6C9F8381BCEE2C6C77F92C4B79C5E33AC6E7F7F61935FABD75F7AAFBD" + }, + { + "id": "OmniSharp", + "description": "OmniSharp for Linux (.NET 6 / arm64)", + "url": "https://roslynomnisharp.blob.core.windows.net/releases/1.38.2/omnisharp-linux-arm64-net6.0-1.38.2.zip", + "installPath": ".omnisharp/1.38.2-net6.0", + "platforms": [ + "linux" + ], + "architectures": [ + "arm64" + ], + "installTestPath": "./.omnisharp/1.38.2-net6.0/OmniSharp.dll", + "platformId": "linux-arm64", + "isFramework": false, + "integrity": "28AB43CC4BDD3FFE805E44A723A80235E8150E055056E44A0D772AD7BECAB045" + }, + { + "id": "Debugger", + "description": ".NET Core Debugger (Windows / x64)", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-win7-x64.zip", + "installPath": ".debugger", + "platforms": [ + "win32" + ], + "architectures": [ + "x86_64" + ], + "installTestPath": "./.debugger/vsdbg-ui.exe", + "integrity": "07E9EAD8DC5B1F8A1B049E128B50AF5282637DBAFCDAED0E61245925B659FD15" + }, + { + "id": "Debugger", + "description": ".NET Core Debugger (Windows / ARM64)", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-win10-arm64.zip", + "installPath": ".debugger", + "platforms": [ + "win32" + ], + "architectures": [ + "arm64" + ], + "installTestPath": "./.debugger/vsdbg-ui.exe", + "integrity": "669BFDBBEBF4C9589BDD44C7E1A1055F7D7705BB315E7CA8809398FD784A4371" + }, + { + "id": "Debugger", + "description": ".NET Core Debugger (macOS / x64)", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-osx-x64.zip", + "installPath": ".debugger/x86_64", + "platforms": [ + "darwin" + ], + "architectures": [ + "x86_64", + "arm64" + ], + "binaries": [ + "./vsdbg-ui", + "./vsdbg" + ], + "installTestPath": "./.debugger/x86_64/vsdbg-ui", + "integrity": "287B1E27269A47DF8C11DC69613C0B0964969DD169CED3B33EF6F7934D5F5C14" + }, + { + "id": "Debugger", + "description": ".NET Core Debugger (macOS / arm64)", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-osx-arm64.zip", + "installPath": ".debugger/arm64", + "platforms": [ + "darwin" + ], + "architectures": [ + "arm64" + ], + "binaries": [ + "./vsdbg-ui", + "./vsdbg" + ], + "installTestPath": "./.debugger/arm64/vsdbg-ui", + "integrity": "ADFFF192A5B19C063E2B52408A168950E357E9C2AD0FCACBD143CBD9DBAF4941" + }, + { + "id": "Debugger", + "description": ".NET Core Debugger (linux / ARM)", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-linux-arm.zip", + "installPath": ".debugger", + "platforms": [ + "linux" + ], + "architectures": [ + "arm" + ], + "binaries": [ + "./vsdbg-ui", + "./vsdbg" + ], + "installTestPath": "./.debugger/vsdbg-ui", + "integrity": "F972B4EAAF64D03BC7D6CBE26FA8BE37AAAE23FC64BF62209FBF5768B364D55E" + }, + { + "id": "Debugger", + "description": ".NET Core Debugger (linux / ARM64)", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-linux-arm64.zip", + "installPath": ".debugger", + "platforms": [ + "linux" + ], + "architectures": [ + "arm64" + ], + "binaries": [ + "./vsdbg-ui", + "./vsdbg" + ], + "installTestPath": "./.debugger/vsdbg-ui", + "integrity": "7C373A85A1FF85719E9446197FB9B9B58E8E02266D083C682C8AC70AE8B97F7E" + }, + { + "id": "Debugger", + "description": ".NET Core Debugger (linux / x64)", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-1-24-5/coreclr-debug-linux-x64.zip", + "installPath": ".debugger", + "platforms": [ + "linux" + ], + "architectures": [ + "x86_64" + ], + "binaries": [ + "./vsdbg-ui", + "./vsdbg" + ], + "installTestPath": "./.debugger/vsdbg-ui", + "integrity": "4A116A96B99009DD59081CB0BD981E33C8FCA4C96F0CF2953B23591C692C7C26" + }, + { + "id": "Razor", + "description": "Razor Language Server (Windows / x64)", + "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/a654aaa3c8090ca1751d7f7646a7b000/razorlanguageserver-win-x64-6.0.0-preview.5.21358.6.zip", + "installPath": ".razor", + "platforms": [ + "win32" + ], + "architectures": [ + "x86_64" + ] + }, + { + "id": "Razor", + "description": "Razor Language Server (Windows / x86)", + "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/18e1cdfce3f4f074905cf0fd89f8d07f/razorlanguageserver-win-x86-6.0.0-preview.5.21358.6.zip", + "installPath": ".razor", + "platforms": [ + "win32" + ], + "architectures": [ + "x86", + "arm64" + ] + }, + { + "id": "Razor", + "description": "Razor Language Server (Linux / x64)", + "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/b846e9c7d7afdba54a72fae1dcb6c42c/razorlanguageserver-linux-x64-6.0.0-preview.5.21358.6.zip", + "installPath": ".razor", + "platforms": [ + "linux" + ], + "architectures": [ + "x86_64" + ], + "binaries": [ + "./rzls" + ] + }, + { + "id": "Razor", + "description": "Razor Language Server (macOS / x64)", + "url": "https://download.visualstudio.microsoft.com/download/pr/b8678010-2cd7-4201-a5e7-ba57920607d5/ad846449769eb2ae810d0236823a6aaa/razorlanguageserver-osx-x64-6.0.0-preview.5.21358.6.zip", + "installPath": ".razor", + "platforms": [ + "darwin" + ], + "architectures": [ + "x86_64", + "arm64" + ], + "binaries": [ + "./rzls" + ] + } + ], + "engines": { + "vscode": "^1.65.0" + }, + "activationEvents": [ + "onDebugInitialConfigurations", + "onDebugResolve:blazorwasm", + "onDebugResolve:coreclr", + "onDebugResolve:clr", + "onLanguage:csharp", + "onLanguage:aspnetcorerazor", + "onCommand:o.restart", + "onCommand:o.pickProjectAndStart", + "onCommand:o.showOutput", + "onCommand:dotnet.restore.project", + "onCommand:dotnet.restore.all", + "onCommand:dotnet.generateAssets", + "onCommand:csharp.downloadDebugger", + "onCommand:csharp.listProcess", + "onCommand:csharp.listRemoteProcess", + "onCommand:csharp.listRemoteDockerProcess", + "onCommand:omnisharp.registerLanguageMiddleware", + "workspaceContains:project.json", + "workspaceContains:**/*.{csproj,sln,slnf,csx,cake}" + ], + "contributes": { + "themes": [ + { + "label": "Visual Studio 2019 Dark", + "uiTheme": "vs-dark", + "path": "./themes/vs2019_dark.json" + }, + { + "label": "Visual Studio 2019 Light", + "uiTheme": "vs", + "path": "./themes/vs2019_light.json" + } + ], + "configuration": { + "title": "C# configuration", + "properties": { + "csharp.format.enable": { + "type": "boolean", + "default": true, + "description": "Enable/disable default C# formatter (requires restart)." + }, + "csharp.suppressDotnetInstallWarning": { + "type": "boolean", + "default": false, + "description": "Suppress the warning that the .NET Core SDK is not on the path." + }, + "csharp.unitTestDebuggingOptions": { + "type": "object", + "description": "Options to use with the debugger when launching for unit test debugging. Any launch.json option is valid here.", + "default": {}, + "properties": { + "sourceFileMap": { + "type": "object", + "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", + "additionalProperties": { + "type": "string" + }, + "default": { + "": "" + } + }, + "justMyCode": { + "type": "boolean", + "description": "Optional flag to only show user code.", + "default": true + }, + "requireExactSource": { + "type": "boolean", + "description": "Optional flag to require current source code to match the pdb.", + "default": true + }, + "enableStepFiltering": { + "type": "boolean", + "description": "Optional flag to enable stepping over Properties and Operators.", + "default": true + }, + "logging": { + "description": "Optional flags to determine what types of messages should be logged to the output window.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "exceptions": { + "type": "boolean", + "description": "Optional flag to determine whether exception messages should be logged to the output window.", + "default": true + }, + "moduleLoad": { + "type": "boolean", + "description": "Optional flag to determine whether module load events should be logged to the output window.", + "default": true + }, + "programOutput": { + "type": "boolean", + "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", + "default": true + }, + "engineLogging": { + "type": "boolean", + "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", + "default": false + }, + "browserStdOut": { + "type": "boolean", + "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", + "default": true + }, + "elapsedTiming": { + "type": "boolean", + "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", + "default": false + }, + "threadExit": { + "type": "boolean", + "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", + "default": false + }, + "processExit": { + "type": "boolean", + "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", + "default": true + } + } + }, + "suppressJITOptimizations": { + "type": "boolean", + "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", + "default": false + }, + "symbolOptions": { + "description": "Options to control how symbols (.pdb files) are found and loaded.", + "default": { + "searchPaths": [], + "searchMicrosoftSymbolServer": false, + "searchNuGetOrgSymbolServer": false + }, + "type": "object", + "properties": { + "searchPaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "default": [] + }, + "searchMicrosoftSymbolServer": { + "type": "boolean", + "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "searchNuGetOrgSymbolServer": { + "type": "boolean", + "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "cachePath": { + "type": "string", + "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", + "default": "~/.dotnet/symbolcache" + }, + "moduleFilter": { + "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", + "default": { + "mode": "loadAllButExcluded", + "excludedModules": [] + }, + "type": "object", + "required": [ + "mode" + ], + "properties": { + "mode": { + "type": "string", + "enum": [ + "loadAllButExcluded", + "loadOnlyIncluded" + ], + "enumDescriptions": [ + "Load symbols for all modules unless the module is in the 'excludedModules' array.", + "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." + ], + "description": "Controls which of the two basic operating modes the module filter operates in.", + "default": "loadAllButExcluded" + }, + "excludedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", + "default": [] + }, + "includedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": [ + "MyExampleModule.dll" + ] + }, + "includeSymbolsNextToModules": { + "type": "boolean", + "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": true + } + } + } + } + }, + "sourceLinkOptions": { + "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", + "default": { + "*": { + "enabled": true + } + }, + "type": "object", + "additionalItems": { + "type": "object", + "properties": { + "enabled": { + "title": "boolean", + "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", + "default": "true" + } + } + } + }, + "allowFastEvaluate": { + "type": "boolean", + "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", + "default": true + }, + "targetArchitecture": { + "type": "string", + "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." + }, + "type": { + "type": "string", + "enum": [ + "coreclr", + "clr" + ], + "description": "Type type of code to debug. Can be either 'coreclr' for .NET Core debugging, or 'clr' for Desktop .NET Framework. 'clr' only works on Windows as the Desktop framework is Windows-only.", + "default": "coreclr" + }, + "debugServer": { + "type": "number", + "description": "For debug extension development only: if a port is specified VS Code tries to connect to a debug adapter running in server mode", + "default": 4711 + } + } + }, + "csharp.suppressDotnetRestoreNotification": { + "type": "boolean", + "default": false, + "description": "Suppress the notification window to perform a 'dotnet restore' when dependencies can't be resolved." + }, + "csharp.suppressProjectJsonWarning": { + "type": "boolean", + "default": false, + "description": "Suppress the warning that project.json is no longer a supported project format for .NET Core applications" + }, + "csharp.suppressBuildAssetsNotification": { + "type": "boolean", + "default": false, + "description": "Suppress the notification window to add missing assets to build or debug the application." + }, + "csharp.suppressHiddenDiagnostics": { + "type": "boolean", + "default": true, + "description": "Suppress 'hidden' diagnostics (such as 'unnecessary using directives') from appearing in the editor or the Problems pane." + }, + "csharp.referencesCodeLens.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether the references CodeLens should be shown." + }, + "csharp.referencesCodeLens.filteredSymbols": { + "type": "array", + "items": { + "type": "string" + }, + "default": [], + "description": "Array of custom symbol names for which CodeLens should be disabled." + }, + "csharp.testsCodeLens.enabled": { + "type": "boolean", + "default": true, + "description": "Specifies whether the run and debug test CodeLens should be shown." + }, + "csharp.maxProjectFileCountForDiagnosticAnalysis": { + "type": "number", + "default": 1000, + "description": "Specifies the maximum number of files for which diagnostics are reported for the whole workspace. If this limit is exceeded, diagnostics will be shown for currently opened files only. Specify 0 or less to disable the limit completely." + }, + "csharp.semanticHighlighting.enabled": { + "type": "boolean", + "default": true, + "description": "Enable/disable Semantic Highlighting for C# files (Razor files currently unsupported). Defaults to false. Close open files for changes to take effect.", + "scope": "window" + }, + "csharp.showOmnisharpLogOnError": { + "type": "boolean", + "default": true, + "description": "Shows the OmniSharp log in the Output pane when OmniSharp reports an error." + }, + "csharp.inlayHints.parameters.enabled": { + "type": "boolean", + "default": false, + "description": "Display inline parameter name hints" + }, + "csharp.inlayHints.parameters.forLiteralParameters": { + "type": "boolean", + "default": false, + "description": "Show hints for literals" + }, + "csharp.inlayHints.parameters.forObjectCreationParameters": { + "type": "boolean", + "default": false, + "description": "Show hints for 'new' expressions" + }, + "csharp.inlayHints.parameters.forIndexerParameters": { + "type": "boolean", + "default": false, + "description": "Show hints for indexers" + }, + "csharp.inlayHints.parameters.forOtherParameters": { + "type": "boolean", + "default": false, + "description": "Show hints for everything else" + }, + "csharp.inlayHints.parameters.suppressForParametersThatDifferOnlyBySuffix": { + "type": "boolean", + "default": false, + "description": "Suppress hints when parameter names differ only by suffix" + }, + "csharp.inlayHints.parameters.suppressForParametersThatMatchMethodIntent": { + "type": "boolean", + "default": false, + "description": "Suppress hints when parameter name matches the method's intent" + }, + "csharp.inlayHints.parameters.suppressForParametersThatMatchArgumentName": { + "type": "boolean", + "default": false, + "description": "Suppress hints when argument matches parameter name" + }, + "csharp.inlayHints.types.enabled": { + "type": "boolean", + "default": false, + "description": "Display inline type hints" + }, + "csharp.inlayHints.types.forImplicitVariableTypes": { + "type": "boolean", + "default": false, + "description": "Show hints for variables with inferred types" + }, + "csharp.inlayHints.types.forLambdaParameterTypes": { + "type": "boolean", + "default": false, + "description": "Show hints for lambda parameter types" + }, + "csharp.inlayHints.types.forImplicitObjectCreation": { + "type": "boolean", + "default": false, + "description": "Show hints for implicit object creation" + }, + "omnisharp.path": { + "type": "string", + "scope": "machine", + "description": "Specifies the path to OmniSharp. When left empty the OmniSharp version pinned to the C# Extension is used. This can be the absolute path to an OmniSharp executable, a specific version number, or \"latest\". If a version number or \"latest\" is specified, the appropriate version of OmniSharp will be downloaded on your behalf. Setting \"latest\" is an opt-in into latest beta releases of OmniSharp." + }, + "omnisharp.useModernNet": { + "type": "boolean", + "default": true, + "scope": "window", + "title": "Use .NET 6 build of OmniSharp", + "description": "Use OmniSharp build for .NET 6. This version _does not_ support non-SDK-style .NET Framework projects, including Unity. SDK-style Framework, .NET Core, and .NET 5+ projects should see significant performance improvements." + }, + "omnisharp.monoPath": { + "type": "string", + "scope": "machine", + "description": "Specifies the path to a mono installation to use when \"useModernNet\" is set to false, instead of the default system one. Example: \"/Library/Frameworks/Mono.framework/Versions/Current\"" + }, + "omnisharp.dotnetPath": { + "type": "string", + "scope": "window", + "description": "Specified the path to a dotnet installation to use when \"useModernNet\" is set to true, instead of the default system one. Example: \"/home/username/mycustomdotnetdirectory\"." + }, + "omnisharp.waitForDebugger": { + "type": "boolean", + "default": false, + "description": "Pass the --debug flag when launching the OmniSharp server to allow a debugger to be attached." + }, + "omnisharp.loggingLevel": { + "type": "string", + "default": "information", + "enum": [ + "trace", + "debug", + "information", + "warning", + "error", + "critical" + ], + "description": "Specifies the level of logging output from the OmniSharp server." + }, + "omnisharp.autoStart": { + "type": "boolean", + "default": true, + "description": "Specifies whether the OmniSharp server will be automatically started or not. If false, OmniSharp can be started with the 'Restart OmniSharp' command" + }, + "omnisharp.projectLoadTimeout": { + "type": "number", + "default": 60, + "description": "The time Visual Studio Code will wait for the OmniSharp server to start. Time is expressed in seconds." + }, + "omnisharp.maxProjectResults": { + "type": "number", + "default": 250, + "description": "The maximum number of projects to be shown in the 'Select Project' dropdown (maximum 250)." + }, + "omnisharp.defaultLaunchSolution": { + "type": "string", + "description": "The name of the default solution used at start up if the repo has multiple solutions. e.g.'MyAwesomeSolution.sln'. Default value is `null` which will cause the first in alphabetical order to be chosen." + }, + "omnisharp.useEditorFormattingSettings": { + "type": "boolean", + "default": true, + "description": "Specifes whether OmniSharp should use VS Code editor settings for C# code formatting (use of tabs, indentation size)." + }, + "omnisharp.minFindSymbolsFilterLength": { + "type": "number", + "default": 0, + "description": "The minimum number of characters to enter before 'Go to Symbol in Workspace' operation shows any results." + }, + "omnisharp.maxFindSymbolsItems": { + "type": "number", + "default": 1000, + "description": "The maximum number of items that 'Go to Symbol in Workspace' operation can show. The limit is applied only when a positive number is specified here." + }, + "omnisharp.disableMSBuildDiagnosticWarning": { + "type": "boolean", + "default": false, + "description": "Specifies whether notifications should be shown if OmniSharp encounters warnings or errors loading a project. Note that these warnings/errors are always emitted to the OmniSharp log" + }, + "omnisharp.enableMsBuildLoadProjectsOnDemand": { + "type": "boolean", + "default": false, + "description": "If true, MSBuild project system will only load projects for files that were opened in the editor. This setting is useful for big C# codebases and allows for faster initialization of code navigation features only for projects that are relevant to code that is being edited. With this setting enabled OmniSharp may load fewer projects and may thus display incomplete reference lists for symbols." + }, + "omnisharp.enableRoslynAnalyzers": { + "type": "boolean", + "default": false, + "description": "Enables support for roslyn analyzers, code fixes and rulesets." + }, + "omnisharp.enableEditorConfigSupport": { + "type": "boolean", + "default": true, + "description": "Enables support for reading code style, naming convention and analyzer settings from .editorconfig." + }, + "omnisharp.enableDecompilationSupport": { + "type": "boolean", + "default": false, + "scope": "machine", + "description": "Enables support for decompiling external references instead of viewing metadata." + }, + "omnisharp.enableImportCompletion": { + "type": "boolean", + "default": false, + "description": "Enables support for showing unimported types and unimported extension methods in completion lists. When committed, the appropriate using directive will be added at the top of the current file. This option can have a negative impact on initial completion responsiveness, particularly for the first few completion sessions after opening a solution." + }, + "omnisharp.organizeImportsOnFormat": { + "type": "boolean", + "default": false, + "description": "Specifies whether 'using' directives should be grouped and sorted during document formatting." + }, + "omnisharp.enableAsyncCompletion": { + "type": "boolean", + "default": false, + "description": "(EXPERIMENTAL) Enables support for resolving completion edits asynchronously. This can speed up time to show the completion list, particularly override and partial method completion lists, at the cost of slight delays after inserting a completion item. Most completion items will have no noticeable impact with this feature, but typing immediately after inserting an override or partial method completion, before the insert is completed, can have unpredictable results." + }, + "omnisharp.analyzeOpenDocumentsOnly": { + "type": "boolean", + "default": false, + "description": "Only run analyzers against open files when 'enableRoslynAnalyzers' is true" + }, + "omnisharp.testRunSettings": { + "type": "string", + "description": "Path to the .runsettings file which should be used when running unit tests." + }, + "razor.plugin.path": { + "type": "string", + "scope": "machine", + "description": "Overrides the path to the Razor plugin dll." + }, + "razor.devmode": { + "type": "boolean", + "default": false, + "description": "Forces the omnisharp-vscode extension to run in a mode that enables local Razor.VSCode deving." + }, + "razor.disabled": { + "type": "boolean", + "default": false, + "description": "Specifies whether to disable Razor language features." + }, + "razor.languageServer.directory": { + "type": "string", + "scope": "machine", + "description": "Overrides the path to the Razor Language Server directory." + }, + "razor.languageServer.debug": { + "type": "boolean", + "default": false, + "description": "Specifies whether to wait for debug attach when launching the language server." + }, + "razor.trace": { + "type": "string", + "default": "Off", + "enum": [ + "Off", + "Messages", + "Verbose" + ], + "enumDescriptions": [ + "Does not log messages from the Razor extension", + "Logs only some messages from the Razor extension", + "Logs all messages from the Razor extension" + ], + "description": "Specifies whether to output all messages [Verbose], some messages [Messages] or not at all [Off]." + }, + "razor.format.enable": { + "type": "boolean", + "scope": "window", + "default": true, + "description": "Enable/disable default Razor formatter." + } + } + }, + "jsonValidation": [ + { + "fileMatch": [ + "appsettings.json", + "appsettings.*.json" + ], + "url": "https://json.schemastore.org/appsettings" + }, + { + "fileMatch": "project.json", + "url": "http://json.schemastore.org/project" + }, + { + "fileMatch": "omnisharp.json", + "url": "http://json.schemastore.org/omnisharp" + }, + { + "fileMatch": "global.json", + "url": "http://json.schemastore.org/global" + } + ], + "commands": [ + { + "command": "o.restart", + "title": "Restart OmniSharp", + "category": "OmniSharp" + }, + { + "command": "o.pickProjectAndStart", + "title": "Select Project", + "category": "OmniSharp" + }, + { + "command": "o.fixAll.solution", + "title": "Fix all occurrences of a code issue within solution", + "category": "OmniSharp" + }, + { + "command": "o.fixAll.project", + "title": "Fix all occurrences of a code issue within project", + "category": "OmniSharp" + }, + { + "command": "o.fixAll.document", + "title": "Fix all occurrences of a code issue within document", + "category": "OmniSharp" + }, + { + "command": "o.reanalyze.allProjects", + "title": "Analyze all projects", + "category": "OmniSharp" + }, + { + "command": "o.reanalyze.currentProject", + "title": "Analyze current project", + "category": "OmniSharp" + }, + { + "command": "dotnet.generateAssets", + "title": "Generate Assets for Build and Debug", + "category": ".NET" + }, + { + "command": "dotnet.restore.project", + "title": "Restore Project", + "category": ".NET" + }, + { + "command": "dotnet.restore.all", + "title": "Restore All Projects", + "category": ".NET" + }, + { + "command": "csharp.downloadDebugger", + "title": "Download .NET Core Debugger", + "category": "Debug" + }, + { + "command": "csharp.listProcess", + "title": "List process for attach", + "category": "CSharp" + }, + { + "command": "csharp.listRemoteProcess", + "title": "List processes on remote connection for attach", + "category": "CSharp" + }, + { + "command": "csharp.listRemoteDockerProcess", + "title": "List processes on Docker connection", + "category": "CSharp" + }, + { + "command": "csharp.reportIssue", + "title": "Report an issue", + "category": "CSharp" + }, + { + "command": "csharp.showDecompilationTerms", + "title": "Show the decompiler terms agreement", + "category": "CSharp" + }, + { + "command": "extension.showRazorCSharpWindow", + "title": "Show Razor CSharp", + "category": "Razor" + }, + { + "command": "extension.showRazorHtmlWindow", + "title": "Show Razor Html", + "category": "Razor" + }, + { + "command": "razor.reportIssue", + "title": "Report a Razor issue", + "category": "Razor" + }, + { + "command": "dotnet.test.runTestsInContext", + "title": "Run Tests in Context", + "category": ".NET" + }, + { + "command": "dotnet.test.debugTestsInContext", + "title": "Debug Tests in Context", + "category": ".NET" + } + ], + "keybindings": [ + { + "command": "o.showOutput", + "key": "Ctrl+Shift+F9", + "mac": "Cmd+Shift+F9" + } + ], + "snippets": [ + { + "language": "csharp", + "path": "./snippets/csharp.json" + } + ], + "breakpoints": [ + { + "language": "csharp" + }, + { + "language": "razor" + }, + { + "language": "qsharp" + }, + { + "language": "aspnetcorerazor" + } + ], + "debuggers": [ + { + "type": "coreclr", + "label": ".NET 5+ and .NET Core", + "languages": [ + "csharp", + "razor", + "qsharp", + "aspnetcorerazor" + ], + "variables": { + "pickProcess": "csharp.listProcess", + "pickRemoteProcess": "csharp.listRemoteProcess", + "pickRemoteDockerProcess": "csharp.listRemoteDockerProcess" + }, + "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217", + "configurationAttributes": { + "launch": { + "type": "object", + "required": [ + "program" + ], + "properties": { + "program": { + "type": "string", + "description": "Path to the application dll or .NET Core host executable to launch.\nThis property normally takes the form: '${workspaceFolder}/bin/Debug/(target-framework)/(project-name.dll)'\nExample: '${workspaceFolder}/bin/Debug/netcoreapp1.1/MyProject.dll'\n\nWhere:\n(target-framework) is the framework that the debugged project is being built for. This is normally found in the project file as the 'TargetFramework' property.\n(project-name.dll) is the name of debugged project's build output dll. This is normally the same as the project file name but with a '.dll' extension.", + "default": "${workspaceFolder}/bin/Debug//.dll" + }, + "cwd": { + "type": "string", + "description": "Path to the working directory of the program being debugged. Default is the current workspace.", + "default": "${workspaceFolder}" + }, + "args": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the program.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the program.", + "default": "" + } + ] + }, + "stopAtEntry": { + "type": "boolean", + "description": "If true, the debugger should stop at the entry point of the target.", + "default": false + }, + "launchBrowser": { + "description": "Describes options to launch a web browser as part of launch", + "default": { + "enabled": true + }, + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether web browser launch is enabled", + "default": true + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. This is used only if the platform-specific element (`osx`, `linux` or `windows`) doesn't specify a value for `args`. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "${auto-detect-url}" + }, + "osx": { + "description": "OSX-specific web launch configuration options. By default, this will start the browser using `open`.", + "default": { + "command": "open", + "args": "${auto-detect-url}" + }, + "type": "object", + "required": [ + "command" + ], + "properties": { + "command": { + "type": "string", + "description": "The executable which will start the web browser", + "default": "open" + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "${auto-detect-url}" + } + } + }, + "linux": { + "description": "Linux-specific web launch configuration options. By default, this will start the browser using `xdg-open`.", + "default": { + "command": "xdg-open", + "args": "${auto-detect-url}" + }, + "type": "object", + "required": [ + "command" + ], + "properties": { + "command": { + "type": "string", + "description": "The executable which will start the web browser", + "default": "xdg-open" + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "${auto-detect-url}" + } + } + }, + "windows": { + "description": "Windows-specific web launch configuration options. By default, this will start the browser using `cmd /c start`.", + "default": { + "command": "cmd.exe", + "args": "/C start ${auto-detect-url}" + }, + "type": "object", + "required": [ + "command" + ], + "properties": { + "command": { + "type": "string", + "description": "The executable which will start the web browser", + "default": "cmd.exe" + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "/C start ${auto-detect-url}" + } + } + } + } + }, + "env": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the program.", + "default": {} + }, + "envFile": { + "type": "string", + "description": "Environment variables passed to the program by a file.", + "default": "${workspaceFolder}/.env" + }, + "console": { + "type": "string", + "enum": [ + "internalConsole", + "integratedTerminal", + "externalTerminal" + ], + "enumDescriptions": [ + "Output to the VS Code Debug Console. This doesn't support reading console input (ex:Console.ReadLine)", + "VS Code's integrated terminal", + "External terminal that can be configured via user settings" + ], + "description": "Where to launch the debug target.", + "default": "internalConsole" + }, + "externalConsole": { + "type": "boolean", + "description": "Attribute 'externalConsole' is deprecated, use 'console' instead.", + "default": false + }, + "launchSettingsFilePath": { + "type": "string", + "description": "The path to a launchSettings.json file. If this isn't set, the debugger will search in '{cwd}/Properties/launchSettings.json'.", + "default": "${workspaceFolder}/Properties/launchSettings.json" + }, + "launchSettingsProfile": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "If specified, indicates the name of the profile in launchSettings.json to use. This is ignored if launchSettings.json is not found. launchSettings.json will be read from the path specified should be the 'launchSettingsFilePath' property, or {cwd}/Properties/launchSettings.json if that isn't set. If this is set to null or an empty string then launchSettings.json is ignored. If this value is not specified the first 'Project' profile will be used.", + "default": "" + }, + "sourceFileMap": { + "type": "object", + "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", + "additionalProperties": { + "type": "string" + }, + "default": { + "": "" + } + }, + "justMyCode": { + "type": "boolean", + "description": "Optional flag to only show user code.", + "default": true + }, + "requireExactSource": { + "type": "boolean", + "description": "Optional flag to require current source code to match the pdb.", + "default": true + }, + "enableStepFiltering": { + "type": "boolean", + "description": "Optional flag to enable stepping over Properties and Operators.", + "default": true + }, + "logging": { + "description": "Optional flags to determine what types of messages should be logged to the output window.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "exceptions": { + "type": "boolean", + "description": "Optional flag to determine whether exception messages should be logged to the output window.", + "default": true + }, + "moduleLoad": { + "type": "boolean", + "description": "Optional flag to determine whether module load events should be logged to the output window.", + "default": true + }, + "programOutput": { + "type": "boolean", + "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", + "default": true + }, + "engineLogging": { + "type": "boolean", + "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", + "default": false + }, + "browserStdOut": { + "type": "boolean", + "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", + "default": true + }, + "elapsedTiming": { + "type": "boolean", + "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", + "default": false + }, + "threadExit": { + "type": "boolean", + "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", + "default": false + }, + "processExit": { + "type": "boolean", + "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", + "default": true + } + } + }, + "pipeTransport": { + "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", + "type": "object", + "required": [ + "debuggerPath" + ], + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [], + "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "debuggerPath": { + "type": "string", + "description": "The full path to the debugger on the target machine.", + "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "windows": { + "description": "Windows-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "osx": { + "description": "OSX-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "linux": { + "description": "Linux-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + } + } + }, + "suppressJITOptimizations": { + "type": "boolean", + "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", + "default": false + }, + "symbolOptions": { + "description": "Options to control how symbols (.pdb files) are found and loaded.", + "default": { + "searchPaths": [], + "searchMicrosoftSymbolServer": false, + "searchNuGetOrgSymbolServer": false + }, + "type": "object", + "properties": { + "searchPaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "default": [] + }, + "searchMicrosoftSymbolServer": { + "type": "boolean", + "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "searchNuGetOrgSymbolServer": { + "type": "boolean", + "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "cachePath": { + "type": "string", + "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", + "default": "~/.dotnet/symbolcache" + }, + "moduleFilter": { + "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", + "default": { + "mode": "loadAllButExcluded", + "excludedModules": [] + }, + "type": "object", + "required": [ + "mode" + ], + "properties": { + "mode": { + "type": "string", + "enum": [ + "loadAllButExcluded", + "loadOnlyIncluded" + ], + "enumDescriptions": [ + "Load symbols for all modules unless the module is in the 'excludedModules' array.", + "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." + ], + "description": "Controls which of the two basic operating modes the module filter operates in.", + "default": "loadAllButExcluded" + }, + "excludedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", + "default": [] + }, + "includedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": [ + "MyExampleModule.dll" + ] + }, + "includeSymbolsNextToModules": { + "type": "boolean", + "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": true + } + } + } + } + }, + "sourceLinkOptions": { + "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", + "default": { + "*": { + "enabled": true + } + }, + "type": "object", + "additionalItems": { + "type": "object", + "properties": { + "enabled": { + "title": "boolean", + "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", + "default": "true" + } + } + } + }, + "allowFastEvaluate": { + "type": "boolean", + "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", + "default": true + }, + "targetOutputLogPath": { + "type": "string", + "description": "When set, text that the target application writes to stdout and stderr (ex: Console.WriteLine) will be saved to the specified file. This option is ignored if console is set to something other than internalConsole.", + "default": "${workspaceFolder}/out.txt" + }, + "targetArchitecture": { + "type": "string", + "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." + } + } + }, + "attach": { + "type": "object", + "required": [], + "properties": { + "processName": { + "type": "string", + "description": "", + "default": "The process name to attach to. If this is used, 'processId' should not be used." + }, + "processId": { + "anyOf": [ + { + "type": "string", + "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", + "default": "" + }, + { + "type": "integer", + "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", + "default": 0 + } + ] + }, + "sourceFileMap": { + "type": "object", + "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", + "additionalProperties": { + "type": "string" + }, + "default": { + "": "" + } + }, + "justMyCode": { + "type": "boolean", + "description": "Optional flag to only show user code.", + "default": true + }, + "requireExactSource": { + "type": "boolean", + "description": "Optional flag to require current source code to match the pdb.", + "default": true + }, + "enableStepFiltering": { + "type": "boolean", + "description": "Optional flag to enable stepping over Properties and Operators.", + "default": true + }, + "logging": { + "description": "Optional flags to determine what types of messages should be logged to the output window.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "exceptions": { + "type": "boolean", + "description": "Optional flag to determine whether exception messages should be logged to the output window.", + "default": true + }, + "moduleLoad": { + "type": "boolean", + "description": "Optional flag to determine whether module load events should be logged to the output window.", + "default": true + }, + "programOutput": { + "type": "boolean", + "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", + "default": true + }, + "engineLogging": { + "type": "boolean", + "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", + "default": false + }, + "browserStdOut": { + "type": "boolean", + "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", + "default": true + }, + "elapsedTiming": { + "type": "boolean", + "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", + "default": false + }, + "threadExit": { + "type": "boolean", + "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", + "default": false + }, + "processExit": { + "type": "boolean", + "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", + "default": true + } + } + }, + "pipeTransport": { + "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", + "type": "object", + "required": [ + "debuggerPath" + ], + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [], + "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "debuggerPath": { + "type": "string", + "description": "The full path to the debugger on the target machine.", + "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "windows": { + "description": "Windows-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "osx": { + "description": "OSX-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "linux": { + "description": "Linux-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + } + } + }, + "suppressJITOptimizations": { + "type": "boolean", + "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", + "default": false + }, + "symbolOptions": { + "description": "Options to control how symbols (.pdb files) are found and loaded.", + "default": { + "searchPaths": [], + "searchMicrosoftSymbolServer": false, + "searchNuGetOrgSymbolServer": false + }, + "type": "object", + "properties": { + "searchPaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "default": [] + }, + "searchMicrosoftSymbolServer": { + "type": "boolean", + "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "searchNuGetOrgSymbolServer": { + "type": "boolean", + "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "cachePath": { + "type": "string", + "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", + "default": "~/.dotnet/symbolcache" + }, + "moduleFilter": { + "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", + "default": { + "mode": "loadAllButExcluded", + "excludedModules": [] + }, + "type": "object", + "required": [ + "mode" + ], + "properties": { + "mode": { + "type": "string", + "enum": [ + "loadAllButExcluded", + "loadOnlyIncluded" + ], + "enumDescriptions": [ + "Load symbols for all modules unless the module is in the 'excludedModules' array.", + "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." + ], + "description": "Controls which of the two basic operating modes the module filter operates in.", + "default": "loadAllButExcluded" + }, + "excludedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", + "default": [] + }, + "includedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": [ + "MyExampleModule.dll" + ] + }, + "includeSymbolsNextToModules": { + "type": "boolean", + "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": true + } + } + } + } + }, + "sourceLinkOptions": { + "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", + "default": { + "*": { + "enabled": true + } + }, + "type": "object", + "additionalItems": { + "type": "object", + "properties": { + "enabled": { + "title": "boolean", + "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", + "default": "true" + } + } + } + }, + "allowFastEvaluate": { + "type": "boolean", + "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", + "default": true + }, + "targetArchitecture": { + "type": "string", + "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." + } + } + } + }, + "configurationSnippets": [ + { + "label": ".NET: Launch .NET Core Console App", + "description": "Launch a .NET Core Console App with a debugger.", + "body": { + "name": ".NET Core Launch (console)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + "program": "^\"\\${workspaceFolder}/bin/Debug/${1:}/${2:}\"", + "args": [], + "cwd": "^\"\\${workspaceFolder}\"", + "stopAtEntry": false, + "console": "internalConsole" + } + }, + { + "label": ".NET: Attach to local .NET Core Console App", + "description": "Attach a debugger to a .NET Core Console App.", + "body": { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach" + } + }, + { + "label": ".NET: Launch a local .NET Core Web App", + "description": "Launch a .NET Core Web App with both a browser and a debugger.", + "body": { + "name": ".NET Core Launch (web)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + "program": "^\"\\${workspaceFolder}/bin/Debug/${1:}/${2:}\"", + "args": [], + "cwd": "^\"\\${workspaceFolder}\"", + "stopAtEntry": false, + "serverReadyAction": { + "action": "openExternally", + "pattern": "\\\\bNow listening on:\\\\s+(https?://\\\\S+)" + }, + "env": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "sourceFileMap": { + "/Views": "^\"\\${workspaceFolder}/Views\"" + } + } + }, + { + "label": ".NET: Launch a remote .NET Core Console App", + "description": "Launch a .NET Core Console App on a remote machine.", + "body": { + "name": ".NET Core Launch (console)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + "program": "^\"\\${workspaceFolder}/bin/Debug/${1:}/${2:}\"", + "args": [], + "cwd": "^\"\\${workspaceFolder}\"", + "stopAtEntry": false, + "console": "internalConsole", + "pipeTransport": { + "pipeCwd": "^\"\\${workspaceFolder}\"", + "pipeProgram": "^\"${3:enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'}\"", + "pipeArgs": [], + "debuggerPath": "^\"${4:enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg}\"" + } + } + }, + { + "label": ".NET: Attach to remote .NET Core Console App", + "description": "Attach a debugger to a .NET Core Console App on a remote machine.", + "body": { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach", + "pipeTransport": { + "pipeCwd": "^\"\\${workspaceFolder}\"", + "pipeProgram": "^\"${1:enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'}\"", + "pipeArgs": [], + "debuggerPath": "^\"${2:enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg}\"" + } + } + } + ] + }, + { + "type": "clr", + "label": ".NET Framework 4.x (Windows only)", + "languages": [ + "csharp", + "razor", + "qsharp", + "aspnetcorerazor" + ], + "variables": { + "pickProcess": "csharp.listProcess", + "pickRemoteProcess": "csharp.listRemoteProcess", + "pickRemoteDockerProcess": "csharp.listRemoteDockerProcess" + }, + "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217", + "configurationAttributes": { + "launch": { + "type": "object", + "required": [ + "program" + ], + "properties": { + "program": { + "type": "string", + "description": "Path to the application dll or .NET Core host executable to launch.\nThis property normally takes the form: '${workspaceFolder}/bin/Debug/(target-framework)/(project-name.dll)'\nExample: '${workspaceFolder}/bin/Debug/netcoreapp1.1/MyProject.dll'\n\nWhere:\n(target-framework) is the framework that the debugged project is being built for. This is normally found in the project file as the 'TargetFramework' property.\n(project-name.dll) is the name of debugged project's build output dll. This is normally the same as the project file name but with a '.dll' extension.", + "default": "${workspaceFolder}/bin/Debug//.dll" + }, + "cwd": { + "type": "string", + "description": "Path to the working directory of the program being debugged. Default is the current workspace.", + "default": "${workspaceFolder}" + }, + "args": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the program.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the program.", + "default": "" + } + ] + }, + "stopAtEntry": { + "type": "boolean", + "description": "If true, the debugger should stop at the entry point of the target.", + "default": false + }, + "launchBrowser": { + "description": "Describes options to launch a web browser as part of launch", + "default": { + "enabled": true + }, + "type": "object", + "required": [ + "enabled" + ], + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether web browser launch is enabled", + "default": true + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. This is used only if the platform-specific element (`osx`, `linux` or `windows`) doesn't specify a value for `args`. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "${auto-detect-url}" + }, + "osx": { + "description": "OSX-specific web launch configuration options. By default, this will start the browser using `open`.", + "default": { + "command": "open", + "args": "${auto-detect-url}" + }, + "type": "object", + "required": [ + "command" + ], + "properties": { + "command": { + "type": "string", + "description": "The executable which will start the web browser", + "default": "open" + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "${auto-detect-url}" + } + } + }, + "linux": { + "description": "Linux-specific web launch configuration options. By default, this will start the browser using `xdg-open`.", + "default": { + "command": "xdg-open", + "args": "${auto-detect-url}" + }, + "type": "object", + "required": [ + "command" + ], + "properties": { + "command": { + "type": "string", + "description": "The executable which will start the web browser", + "default": "xdg-open" + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "${auto-detect-url}" + } + } + }, + "windows": { + "description": "Windows-specific web launch configuration options. By default, this will start the browser using `cmd /c start`.", + "default": { + "command": "cmd.exe", + "args": "/C start ${auto-detect-url}" + }, + "type": "object", + "required": [ + "command" + ], + "properties": { + "command": { + "type": "string", + "description": "The executable which will start the web browser", + "default": "cmd.exe" + }, + "args": { + "type": "string", + "description": "The arguments to pass to the command to open the browser. Use ${auto-detect-url} to automatically use the address the server is listening to.", + "default": "/C start ${auto-detect-url}" + } + } + } + } + }, + "env": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the program.", + "default": {} + }, + "envFile": { + "type": "string", + "description": "Environment variables passed to the program by a file.", + "default": "${workspaceFolder}/.env" + }, + "console": { + "type": "string", + "enum": [ + "internalConsole", + "integratedTerminal", + "externalTerminal" + ], + "enumDescriptions": [ + "Output to the VS Code Debug Console. This doesn't support reading console input (ex:Console.ReadLine)", + "VS Code's integrated terminal", + "External terminal that can be configured via user settings" + ], + "description": "Where to launch the debug target.", + "default": "internalConsole" + }, + "externalConsole": { + "type": "boolean", + "description": "Attribute 'externalConsole' is deprecated, use 'console' instead.", + "default": false + }, + "launchSettingsFilePath": { + "type": "string", + "description": "The path to a launchSettings.json file. If this isn't set, the debugger will search in '{cwd}/Properties/launchSettings.json'.", + "default": "${workspaceFolder}/Properties/launchSettings.json" + }, + "launchSettingsProfile": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "If specified, indicates the name of the profile in launchSettings.json to use. This is ignored if launchSettings.json is not found. launchSettings.json will be read from the path specified should be the 'launchSettingsFilePath' property, or {cwd}/Properties/launchSettings.json if that isn't set. If this is set to null or an empty string then launchSettings.json is ignored. If this value is not specified the first 'Project' profile will be used.", + "default": "" + }, + "sourceFileMap": { + "type": "object", + "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", + "additionalProperties": { + "type": "string" + }, + "default": { + "": "" + } + }, + "justMyCode": { + "type": "boolean", + "description": "Optional flag to only show user code.", + "default": true + }, + "requireExactSource": { + "type": "boolean", + "description": "Optional flag to require current source code to match the pdb.", + "default": true + }, + "enableStepFiltering": { + "type": "boolean", + "description": "Optional flag to enable stepping over Properties and Operators.", + "default": true + }, + "logging": { + "description": "Optional flags to determine what types of messages should be logged to the output window.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "exceptions": { + "type": "boolean", + "description": "Optional flag to determine whether exception messages should be logged to the output window.", + "default": true + }, + "moduleLoad": { + "type": "boolean", + "description": "Optional flag to determine whether module load events should be logged to the output window.", + "default": true + }, + "programOutput": { + "type": "boolean", + "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", + "default": true + }, + "engineLogging": { + "type": "boolean", + "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", + "default": false + }, + "browserStdOut": { + "type": "boolean", + "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", + "default": true + }, + "elapsedTiming": { + "type": "boolean", + "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", + "default": false + }, + "threadExit": { + "type": "boolean", + "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", + "default": false + }, + "processExit": { + "type": "boolean", + "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", + "default": true + } + } + }, + "pipeTransport": { + "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", + "type": "object", + "required": [ + "debuggerPath" + ], + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [], + "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "debuggerPath": { + "type": "string", + "description": "The full path to the debugger on the target machine.", + "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "windows": { + "description": "Windows-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "osx": { + "description": "OSX-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "linux": { + "description": "Linux-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + } + } + }, + "suppressJITOptimizations": { + "type": "boolean", + "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", + "default": false + }, + "symbolOptions": { + "description": "Options to control how symbols (.pdb files) are found and loaded.", + "default": { + "searchPaths": [], + "searchMicrosoftSymbolServer": false, + "searchNuGetOrgSymbolServer": false + }, + "type": "object", + "properties": { + "searchPaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "default": [] + }, + "searchMicrosoftSymbolServer": { + "type": "boolean", + "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "searchNuGetOrgSymbolServer": { + "type": "boolean", + "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "cachePath": { + "type": "string", + "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", + "default": "~/.dotnet/symbolcache" + }, + "moduleFilter": { + "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", + "default": { + "mode": "loadAllButExcluded", + "excludedModules": [] + }, + "type": "object", + "required": [ + "mode" + ], + "properties": { + "mode": { + "type": "string", + "enum": [ + "loadAllButExcluded", + "loadOnlyIncluded" + ], + "enumDescriptions": [ + "Load symbols for all modules unless the module is in the 'excludedModules' array.", + "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." + ], + "description": "Controls which of the two basic operating modes the module filter operates in.", + "default": "loadAllButExcluded" + }, + "excludedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", + "default": [] + }, + "includedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": [ + "MyExampleModule.dll" + ] + }, + "includeSymbolsNextToModules": { + "type": "boolean", + "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": true + } + } + } + } + }, + "sourceLinkOptions": { + "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", + "default": { + "*": { + "enabled": true + } + }, + "type": "object", + "additionalItems": { + "type": "object", + "properties": { + "enabled": { + "title": "boolean", + "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", + "default": "true" + } + } + } + }, + "allowFastEvaluate": { + "type": "boolean", + "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", + "default": true + }, + "targetOutputLogPath": { + "type": "string", + "description": "When set, text that the target application writes to stdout and stderr (ex: Console.WriteLine) will be saved to the specified file. This option is ignored if console is set to something other than internalConsole.", + "default": "${workspaceFolder}/out.txt" + }, + "targetArchitecture": { + "type": "string", + "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." + } + } + }, + "attach": { + "type": "object", + "required": [], + "properties": { + "processName": { + "type": "string", + "description": "", + "default": "The process name to attach to. If this is used, 'processId' should not be used." + }, + "processId": { + "anyOf": [ + { + "type": "string", + "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", + "default": "" + }, + { + "type": "integer", + "description": "The process id to attach to. Use \"\" to get a list of running processes to attach to. If 'processId' used, 'processName' should not be used.", + "default": 0 + } + ] + }, + "sourceFileMap": { + "type": "object", + "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", + "additionalProperties": { + "type": "string" + }, + "default": { + "": "" + } + }, + "justMyCode": { + "type": "boolean", + "description": "Optional flag to only show user code.", + "default": true + }, + "requireExactSource": { + "type": "boolean", + "description": "Optional flag to require current source code to match the pdb.", + "default": true + }, + "enableStepFiltering": { + "type": "boolean", + "description": "Optional flag to enable stepping over Properties and Operators.", + "default": true + }, + "logging": { + "description": "Optional flags to determine what types of messages should be logged to the output window.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "exceptions": { + "type": "boolean", + "description": "Optional flag to determine whether exception messages should be logged to the output window.", + "default": true + }, + "moduleLoad": { + "type": "boolean", + "description": "Optional flag to determine whether module load events should be logged to the output window.", + "default": true + }, + "programOutput": { + "type": "boolean", + "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", + "default": true + }, + "engineLogging": { + "type": "boolean", + "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", + "default": false + }, + "browserStdOut": { + "type": "boolean", + "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", + "default": true + }, + "elapsedTiming": { + "type": "boolean", + "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", + "default": false + }, + "threadExit": { + "type": "boolean", + "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", + "default": false + }, + "processExit": { + "type": "boolean", + "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", + "default": true + } + } + }, + "pipeTransport": { + "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", + "type": "object", + "required": [ + "debuggerPath" + ], + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [], + "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "debuggerPath": { + "type": "string", + "description": "The full path to the debugger on the target machine.", + "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "windows": { + "description": "Windows-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example 'c:\\tools\\plink.exe'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "osx": { + "description": "OSX-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + }, + "linux": { + "description": "Linux-specific pipe launch configuration options", + "default": { + "pipeCwd": "${workspaceFolder}", + "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", + "pipeArgs": [] + }, + "type": "object", + "properties": { + "pipeCwd": { + "type": "string", + "description": "The fully qualified path to the working directory for the pipe program.", + "default": "${workspaceFolder}" + }, + "pipeProgram": { + "type": "string", + "description": "The fully qualified pipe command to execute.", + "default": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'" + }, + "pipeArgs": { + "anyOf": [ + { + "type": "array", + "description": "Command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "items": { + "type": "string" + }, + "default": [] + }, + { + "type": "string", + "description": "Stringified version of command line arguments passed to the pipe program. Token ${debuggerCommand} in pipeArgs will get replaced by the full debugger command, this token can be specified inline with other arguments. If ${debuggerCommand} isn't used in any argument, the full debugger command will be instead be added to the end of the argument list.", + "default": "" + } + ], + "default": [] + }, + "quoteArgs": { + "type": "boolean", + "description": "Should arguments that contain characters that need to be quoted (example: spaces) be quoted? Defaults to 'true'. If set to false, the debugger command will no longer be automatically quoted.", + "default": true + }, + "pipeEnv": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Environment variables passed to the pipe program.", + "default": {} + } + } + } + } + }, + "suppressJITOptimizations": { + "type": "boolean", + "description": "If true, when an optimized module (.dll compiled in the Release configuration) loads in the target process, the debugger will ask the Just-In-Time compiler to generate code with optimizations disabled. For more information: https://aka.ms/VSCode-CS-LaunchJson#suppress-jit-optimizations", + "default": false + }, + "symbolOptions": { + "description": "Options to control how symbols (.pdb files) are found and loaded.", + "default": { + "searchPaths": [], + "searchMicrosoftSymbolServer": false, + "searchNuGetOrgSymbolServer": false + }, + "type": "object", + "properties": { + "searchPaths": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "default": [] + }, + "searchMicrosoftSymbolServer": { + "type": "boolean", + "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "searchNuGetOrgSymbolServer": { + "type": "boolean", + "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "default": false + }, + "cachePath": { + "type": "string", + "description": "Directory where symbols downloaded from symbol servers should be cached. If unspecified, on Windows the debugger will default to %TEMP%\\SymbolCache, and on Linux and macOS the debugger will default to ~/.dotnet/symbolcache.", + "default": "~/.dotnet/symbolcache" + }, + "moduleFilter": { + "description": "Provides options to control which modules (.dll files) the debugger will attempt to load symbols (.pdb files) for.", + "default": { + "mode": "loadAllButExcluded", + "excludedModules": [] + }, + "type": "object", + "required": [ + "mode" + ], + "properties": { + "mode": { + "type": "string", + "enum": [ + "loadAllButExcluded", + "loadOnlyIncluded" + ], + "enumDescriptions": [ + "Load symbols for all modules unless the module is in the 'excludedModules' array.", + "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting." + ], + "description": "Controls which of the two basic operating modes the module filter operates in.", + "default": "loadAllButExcluded" + }, + "excludedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", + "default": [] + }, + "includedModules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": [ + "MyExampleModule.dll" + ] + }, + "includeSymbolsNextToModules": { + "type": "boolean", + "description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "default": true + } + } + } + } + }, + "sourceLinkOptions": { + "description": "Options to control how Source Link connects to web servers. For more information: https://aka.ms/VSCode-CS-LaunchJson#source-link-options", + "default": { + "*": { + "enabled": true + } + }, + "type": "object", + "additionalItems": { + "type": "object", + "properties": { + "enabled": { + "title": "boolean", + "description": "Is Source Link enabled for this URL? If unspecified, this option defaults to 'true'.", + "default": "true" + } + } + } + }, + "allowFastEvaluate": { + "type": "boolean", + "description": "When true (the default state), the debugger will attempt faster evaluation by simulating execution of simple properties and methods.", + "default": true + }, + "targetArchitecture": { + "type": "string", + "description": "[Only supported in local macOS debugging] The architecture of the debuggee. This will automatically be detected unless this parameter is set. Allowed values are x86_64 or arm64." + } + } + } + } + }, + { + "type": "blazorwasm", + "label": "Blazor WebAssembly Debug", + "initialConfigurations": [ + { + "type": "blazorwasm", + "name": "Launch and Debug Blazor WebAssembly Application", + "request": "launch" + } + ], + "configurationAttributes": { + "launch": { + "properties": { + "cwd": { + "type": "string", + "description": "The directory of the Blazor WebAssembly app, defaults to the workspace folder.", + "default": "${workspaceFolder}" + }, + "url": { + "type": "string", + "description": "The URL of the application", + "default": "https://localhost:5001" + }, + "browser": { + "type": "string", + "description": "The debugging browser to launch (Edge or Chrome)", + "default": "edge", + "enum": [ + "chrome", + "edge" + ] + }, + "trace": { + "type": [ + "boolean", + "string" + ], + "default": "true", + "enum": [ + "verbose", + true + ], + "description": "If true, verbose logs from JS debugger are sent to log file. If 'verbose', send logs to console." + }, + "hosted": { + "type": "boolean", + "default": "false", + "description": "True if the app is a hosted Blazor WebAssembly app, false otherwise." + }, + "webRoot": { + "type": "string", + "default": "${workspaceFolder}", + "description": "Specifies the absolute path to the webserver root." + }, + "timeout": { + "type": "number", + "default": 30000, + "description": "Retry for this number of milliseconds to connect to browser." + }, + "program": { + "type": "string", + "default": "${workspaceFolder}/Server/bin/Debug//", + "description": "The path of the DLL to execute when launching a hosted server app" + }, + "env": { + "type": "object", + "description": "Environment variables passed to dotnet. Only valid for hosted apps." + }, + "dotNetConfig": { + "description": "Options passed to the underlying .NET debugger. For more info, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger.md.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "justMyCode": { + "type": "boolean", + "description": "Optional flag to only show user code.", + "default": true + }, + "logging": { + "description": "Optional flags to determine what types of messages should be logged to the output window. Applicable only for the app server of hosted Blazor WASM apps.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "exceptions": { + "type": "boolean", + "description": "Optional flag to determine whether exception messages should be logged to the output window.", + "default": true + }, + "moduleLoad": { + "type": "boolean", + "description": "Optional flag to determine whether module load events should be logged to the output window.", + "default": true + }, + "programOutput": { + "type": "boolean", + "description": "Optional flag to determine whether program output should be logged to the output window when not using an external console.", + "default": true + }, + "engineLogging": { + "type": "boolean", + "description": "Optional flag to determine whether diagnostic engine logs should be logged to the output window.", + "default": false + }, + "browserStdOut": { + "type": "boolean", + "description": "Optional flag to determine if stdout text from the launching the web browser should be logged to the output window.", + "default": true + }, + "elapsedTiming": { + "type": "boolean", + "description": "If true, engine logging will include `adapterElapsedTime` and `engineElapsedTime` properties to indicate the amount of time, in microseconds, that a request took.", + "default": false + }, + "threadExit": { + "type": "boolean", + "description": "Controls if a message is logged when a thread in the target process exits. Default: `false`.", + "default": false + }, + "processExit": { + "type": "boolean", + "description": "Controls if a message is logged when the target process exits, or debugging is stopped. Default: `true`.", + "default": true + } + } + }, + "sourceFileMap": { + "type": "object", + "description": "Optional source file mappings passed to the debug engine. Example: '{ \"C:\\foo\":\"/home/user/foo\" }'", + "additionalProperties": { + "type": "string" + }, + "default": { + "": "" + } + } + } + }, + "browserConfig": { + "description": "Options based to the underlying JavaScript debugger. For more info, see https://github.com/microsoft/vscode-js-debug/blob/master/OPTIONS.md.", + "type": "object", + "required": [], + "default": {}, + "properties": { + "outputCapture": { + "enum": [ + "console", + "std" + ], + "description": "From where to capture output messages: the default debug API if set to `console`, or stdout/stderr streams if set to `std`.", + "default": "console" + } + } + } + } + }, + "attach": { + "properties": { + "url": { + "type": "string", + "description": "The URL of the application", + "default": "https://localhost:5001" + }, + "cwd": { + "type": "string", + "description": "The directory of the Blazor WebAssembly app, defaults to the workspace folder.", + "default": "${workspaceFolder}" + }, + "browser": { + "type": "string", + "description": "The debugging browser to launch (Edge or Chrome)", + "default": "chrome", + "enum": [ + "chrome", + "edge" + ] + }, + "trace": { + "type": [ + "boolean", + "string" + ], + "default": "true", + "enum": [ + "verbose", + true + ], + "description": "If true, verbose logs from JS debugger are sent to log file. If 'verbose', send logs to console." + }, + "webRoot": { + "type": "string", + "default": "${workspaceFolder}", + "description": "Specifies the absolute path to the webserver root." + }, + "timeout": { + "type": "number", + "default": 30000, + "description": "Retry for this number of milliseconds to connect to browser." + } + } + } + } + } + ], + "semanticTokenTypes": [ + { + "id": "razorTagHelperElement", + "description": "A Razor TagHelper Element" + }, + { + "id": "razorTagHelperAttribute", + "description": "A Razor TagHelper Attribute" + }, + { + "id": "razorTransition", + "description": "A Razor transition" + }, + { + "id": "razorDirectiveAttribute", + "description": "A Razor Directive Attribute" + }, + { + "id": "razorDirectiveColon", + "description": "A colon between directive attribute parameters" + }, + { + "id": "razorDirective", + "description": "A Razor directive such as 'code' or 'function'" + }, + { + "id": "razorComment", + "description": "A Razor comment" + }, + { + "id": "markupCommentPunctuation", + "description": "The '@' or '*' of a Razor comment." + }, + { + "id": "markupTagDelimiter", + "description": "Markup delimiters like '<', '>', and '/'." + }, + { + "id": "markupOperator", + "description": "Delimiter for Markup Attribute Key-Value pairs." + }, + { + "id": "markupElement", + "description": "The name of a Markup element." + }, + { + "id": "markupAttribute", + "description": "The name of a Markup attribute." + }, + { + "id": "markupComment", + "description": "The contents of a Markup comment." + }, + { + "id": "markupCommentPunctuation", + "description": "The begining or ending punctuation of a Markup comment." + }, + { + "id": "plainKeyword", + "description": "Represents a keyword" + }, + { + "id": "controlKeyword", + "description": "Represents a control-flow keyword" + }, + { + "id": "operatorOverloaded", + "description": "Represents a custom implementation of an operator" + }, + { + "id": "preprocessorKeyword", + "description": "Represents" + }, + { + "id": "preprocessorText", + "description": "Represents" + }, + { + "id": "excludedCode", + "description": "" + }, + { + "id": "punctuation", + "description": "" + }, + { + "id": "stringVerbatim", + "description": "" + }, + { + "id": "stringEscapeCharacter", + "description": "" + }, + { + "id": "delegate", + "description": "" + }, + { + "id": "module", + "description": "" + }, + { + "id": "extensionMethod", + "description": "" + }, + { + "id": "field", + "description": "" + }, + { + "id": "local", + "description": "" + }, + { + "id": "xmlDocCommentAttributeName", + "description": "" + }, + { + "id": "xmlDocCommentAttributeQuotes", + "description": "" + }, + { + "id": "xmlDocCommentAttributeValue", + "description": "" + }, + { + "id": "xmlDocCommentCDataSection", + "description": "" + }, + { + "id": "xmlDocCommentComment", + "description": "" + }, + { + "id": "xmlDocCommentDelimiter", + "description": "" + }, + { + "id": "xmlDocCommentEntityReference", + "description": "" + }, + { + "id": "xmlDocCommentName", + "description": "" + }, + { + "id": "xmlDocCommentProcessingInstruction", + "description": "" + }, + { + "id": "xmlDocCommentText", + "description": "" + }, + { + "id": "regexComment", + "description": "" + }, + { + "id": "regexCharacterClass", + "description": "" + }, + { + "id": "regexAnchor", + "description": "" + }, + { + "id": "regexQuantifier", + "description": "" + }, + { + "id": "regexGrouping", + "description": "" + }, + { + "id": "regexAlternation", + "description": "" + }, + { + "id": "regexSelfEscapedCharacter", + "description": "" + }, + { + "id": "regexOtherEscape", + "description": "" + } + ], + "semanticTokenModifiers": [], + "semanticTokenScopes": [ + { + "language": "aspnetcorerazor", + "scopes": { + "razorTagHelperElement": [ + "entity.name.class.element.taghelper" + ], + "razorTagHelperAttribute": [ + "entity.name.class.attribute.taghelper" + ], + "razorTransition": [ + "keyword.control.razor.transition" + ], + "razorDirectiveAttribute": [ + "keyword.control.razor.directive.attribute", + "keyword.control.cshtml.directive.attribute" + ], + "razorDirectiveColon": [ + "keyword.control.razor.directive.colon", + "keyword.control.cshtml.directive.colon" + ], + "razorDirective": [ + "keyword.control.razor.directive", + "keyword.control.cshtml.directive" + ], + "razorComment": [ + "comment.block.razor" + ], + "razorCommentTransition": [ + "meta.comment.razor", + "keyword.control.cshtml.transition" + ], + "razorCommentStar": [ + "keyword.control.razor.comment.star", + "meta.comment.razor" + ], + "angleBracket": [ + "punctuation.definition.tag" + ], + "forwardSlash": [ + "punctuation.definition.tag" + ], + "equals": [ + "punctuation.separator.key-value.html" + ], + "markupElement": [ + "entity.name.tag.html" + ], + "markupAttribute": [ + "entity.other.attribute-name.html" + ], + "markupComment": [ + "comment.block.html" + ], + "markupCommentPunctuation": [ + "punctuation.definition.comment.html", + "comment.block.html" + ] + } + }, + { + "language": "csharp", + "scopes": { + "plainKeyword": [ + "keyword.cs" + ], + "controlKeyword": [ + "keyword.control.cs" + ], + "operatorOverloaded": [ + "entity.name.function.member.overload.cs" + ], + "preprocessorKeyword": [ + "keyword.preprocessor.cs" + ], + "preprocessorText": [ + "meta.preprocessor.string.cs" + ], + "excludedCode": [ + "support.other.excluded.cs" + ], + "punctuation": [ + "punctuation.cs" + ], + "stringVerbatim": [ + "string.verbatim.cs" + ], + "stringEscapeCharacter": [ + "constant.character.escape.cs" + ], + "delegate": [ + "entity.name.type.delegate.cs" + ], + "module": [ + "entity.name.type.module.cs" + ], + "extensionMethod": [ + "entity.name.function.extension.cs" + ], + "field": [ + "entity.name.variable.field.cs" + ], + "local": [ + "entity.name.variable.local.cs" + ], + "xmlDocCommentAttributeName": [ + "comment.documentation.attribute.name.cs" + ], + "xmlDocCommentAttributeQuotes": [ + "comment.documentation.attribute.quotes.cs" + ], + "xmlDocCommentAttributeValue": [ + "comment.documentation.attribute.value.cs" + ], + "xmlDocCommentCDataSection": [ + "comment.documentation.cdata.cs" + ], + "xmlDocCommentComment": [ + "comment.documentation.comment.cs" + ], + "xmlDocCommentDelimiter": [ + "comment.documentation.delimiter.cs" + ], + "xmlDocCommentEntityReference": [ + "comment.documentation.entityReference.cs" + ], + "xmlDocCommentName": [ + "comment.documentation.name.cs" + ], + "xmlDocCommentProcessingInstruction": [ + "comment.documentation.processingInstruction.cs" + ], + "xmlDocCommentText": [ + "comment.documentation.cs" + ], + "regexComment": [ + "string.regexp.comment.cs" + ], + "regexCharacterClass": [ + "constant.character.character-class.regexp.cs" + ], + "regexAnchor": [ + "keyword.control.anchor.regexp.cs" + ], + "regexQuantifier": [ + "keyword.operator.quantifier.regexp.cs" + ], + "regexGrouping": [ + "punctuation.definition.group.regexp.cs" + ], + "regexAlternation": [ + "keyword.operator.or.regexp.cs" + ], + "regexSelfEscapedCharacter": [ + "string.regexp.self-escaped-character.cs" + ], + "regexOtherEscape": [ + "string.regexp.other-escape.cs" + ] + } + } + ], + "languages": [ + { + "id": "aspnetcorerazor", + "extensions": [ + ".cshtml", + ".razor" + ], + "mimetypes": [ + "text/x-cshtml" + ], + "configuration": "./src/razor/language-configuration.json", + "aliases": [ + "ASP.NET Razor" + ] + } + ], + "grammars": [ + { + "language": "aspnetcorerazor", + "scopeName": "text.aspnetcorerazor", + "path": "./src/razor/syntaxes/aspnetcorerazor.tmLanguage.json" + } + ], + "menus": { + "commandPalette": [ + { + "command": "dotnet.test.runTestsInContext", + "when": "editorLangId == csharp" + }, + { + "command": "dotnet.test.debugTestsInContext", + "when": "editorLangId == csharp" + } + ], + "editor/title": [ + { + "command": "extension.showRazorCSharpWindow", + "when": "resourceLangId == aspnetcorerazor" + }, + { + "command": "extension.showRazorHtmlWindow", + "when": "resourceLangId == aspnetcorerazor" + }, + { + "command": "razor.reportIssue", + "when": "resourceLangId == aspnetcorerazor" + } + ], + "editor/context": [ + { + "command": "dotnet.test.runTestsInContext", + "when": "editorLangId == csharp", + "group": "2_dotnet@1" + }, + { + "command": "dotnet.test.debugTestsInContext", + "when": "editorLangId == csharp", + "group": "2_dotnet@2" + } + ] + }, + "viewsWelcome": [ + { + "view": "debug", + "contents": "[Generate C# Assets for Build and Debug](command:dotnet.generateAssets)\n\nTo learn more about launch.json, see [Configuring launch.json for C# debugging](https://aka.ms/VSCode-CS-LaunchJson).", + "when": "debugStartLanguage == csharp" + } + ] + }, + "__metadata": { + "id": "d0bfc4ab-1d3a-4487-8782-7cf6027b4fff", + "publisherDisplayName": "Microsoft", + "publisherId": "d05e23de-3974-4ff0-8d47-23ee77830092", + "isPreReleaseVersion": false + } } \ No newline at end of file From da215dcc1355b8f7b4e14146d29702e7df3035e6 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Wed, 18 May 2022 15:10:19 -0700 Subject: [PATCH 11/12] Revert nonbreaking spaces in package.json --- package.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 1654449d1..6ce09ea03 100644 --- a/package.json +++ b/package.json @@ -687,17 +687,17 @@ "items": { "type": "string" }, - "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "description": "Array of symbol server URLs (example: http\u200b://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", "default": [] }, "searchMicrosoftSymbolServer": { "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "description": "If 'true' the Microsoft Symbol server (https\u200b://msdl.microsoft.com\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", "default": false }, "searchNuGetOrgSymbolServer": { "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "description": "If 'true' the NuGet.org symbol server (https\u200b://symbols.nuget.org\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", "default": false }, "cachePath": { @@ -1746,17 +1746,17 @@ "items": { "type": "string" }, - "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "description": "Array of symbol server URLs (example: http\u200b://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", "default": [] }, "searchMicrosoftSymbolServer": { "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "description": "If 'true' the Microsoft Symbol server (https\u200b://msdl.microsoft.com\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", "default": false }, "searchNuGetOrgSymbolServer": { "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "description": "If 'true' the NuGet.org symbol server (https\u200b://symbols.nuget.org\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", "default": false }, "cachePath": { @@ -2182,17 +2182,17 @@ "items": { "type": "string" }, - "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "description": "Array of symbol server URLs (example: http\u200b://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", "default": [] }, "searchMicrosoftSymbolServer": { "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "description": "If 'true' the Microsoft Symbol server (https\u200b://msdl.microsoft.com\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", "default": false }, "searchNuGetOrgSymbolServer": { "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "description": "If 'true' the NuGet.org symbol server (https\u200b://symbols.nuget.org\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", "default": false }, "cachePath": { @@ -2873,17 +2873,17 @@ "items": { "type": "string" }, - "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "description": "Array of symbol server URLs (example: http\u200b://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", "default": [] }, "searchMicrosoftSymbolServer": { "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "description": "If 'true' the Microsoft Symbol server (https\u200b://msdl.microsoft.com\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", "default": false }, "searchNuGetOrgSymbolServer": { "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "description": "If 'true' the NuGet.org symbol server (https\u200b://symbols.nuget.org\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", "default": false }, "cachePath": { @@ -3309,17 +3309,17 @@ "items": { "type": "string" }, - "description": "Array of symbol server URLs (example: http​://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", + "description": "Array of symbol server URLs (example: http\u200b://MyExampleSymbolServer) or directories (example: /build/symbols) to search for .pdb files. These directories will be searched in addition to the default locations -- next to the module and the path where the pdb was originally dropped to.", "default": [] }, "searchMicrosoftSymbolServer": { "type": "boolean", - "description": "If 'true' the Microsoft Symbol server (https​://msdl.microsoft.com​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "description": "If 'true' the Microsoft Symbol server (https\u200b://msdl.microsoft.com\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", "default": false }, "searchNuGetOrgSymbolServer": { "type": "boolean", - "description": "If 'true' the NuGet.org symbol server (https​://symbols.nuget.org​/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", + "description": "If 'true' the NuGet.org symbol server (https\u200b://symbols.nuget.org\u200b/download/symbols) is added to the symbols search path. If unspecified, this option defaults to 'false'.", "default": false }, "cachePath": { From 7cc164cc31e600016ebba3a3c98e152b76372ebb Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Wed, 18 May 2022 15:12:42 -0700 Subject: [PATCH 12/12] Remove __metadata from package.json --- package.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/package.json b/package.json index 6ce09ea03..3629f0c27 100644 --- a/package.json +++ b/package.json @@ -4032,11 +4032,5 @@ "when": "debugStartLanguage == csharp" } ] - }, - "__metadata": { - "id": "d0bfc4ab-1d3a-4487-8782-7cf6027b4fff", - "publisherDisplayName": "Microsoft", - "publisherId": "d05e23de-3974-4ff0-8d47-23ee77830092", - "isPreReleaseVersion": false } } \ No newline at end of file