From 54672f8b69ab2914a635b5ed5c6d9559ad90c28c Mon Sep 17 00:00:00 2001 From: dibarbet Date: Fri, 27 Sep 2024 23:00:48 +0000 Subject: [PATCH 01/79] Update main version --- version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.json b/version.json index 06cfa80ed..160c6958b 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "2.50", + "version": "2.51", "publicReleaseRefSpec": [ "^refs/heads/release$", "^refs/heads/prerelease$", From 9045e2535f52e1b919683877600492c0c3fa6e44 Mon Sep 17 00:00:00 2001 From: Andrew Hall Date: Tue, 1 Oct 2024 14:45:24 -0700 Subject: [PATCH 02/79] Bump roslyn to 8d8276d4dd218568d003465b0cf6c7bebc633097 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 090a2cbcc..e40dfc69c 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ } }, "defaults": { - "roslyn": "4.13.0-1.24477.2", + "roslyn": "4.13.0-1.24501.3", "omniSharp": "1.39.11", "razor": "9.0.0-preview.24467.1", "razorOmnisharp": "7.0.0-preview.23363.1", From d1dc92ceb1a64309bd8ace46d68bca0dfc049b6c Mon Sep 17 00:00:00 2001 From: Andrew Hall Date: Tue, 1 Oct 2024 14:46:47 -0700 Subject: [PATCH 03/79] Bump razor to cab5217c9fdee5e1973ea04fde6497e4aeacb8e7 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e40dfc69c..2740505bb 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "defaults": { "roslyn": "4.13.0-1.24501.3", "omniSharp": "1.39.11", - "razor": "9.0.0-preview.24467.1", + "razor": "9.0.0-preview.24480.1", "razorOmnisharp": "7.0.0-preview.23363.1", "xamlTools": "17.12.35326.17" }, From e1009fc4a126d08bbe9a00c9efee114367f73023 Mon Sep 17 00:00:00 2001 From: Andrew Hall Date: Tue, 1 Oct 2024 15:01:38 -0700 Subject: [PATCH 04/79] Add changelog --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88db18f42..fd89c582c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ - Diagnostics related feature requests and improvements [#5951](https://github.com/dotnet/vscode-csharp/issues/5951) - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) +# Latest + +* Update Razor to 9.0.0-preview.24480.1 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) + * Fuse fix usings (PR: [#10925](https://github.com/dotnet/razor/pull/10925)) + * Fuse incorrect page directives (PR: [#10907](https://github.com/dotnet/razor/pull/10907)) + * Calculate SuppressAddComponentParameter in tooling (PR: [#10763](https://github.com/dotnet/razor/pull/10763)) + * Fix some `AssumeNotNull` assumptions (PR: [#10901](https://github.com/dotnet/razor/pull/10901)) + * Fixing HTML attribute commit (PR: [#10897](https://github.com/dotnet/razor/pull/10897)) + * Fix `FormattingContext` disposal (PR: [#10887](https://github.com/dotnet/razor/pull/10887)) + * Fix #10891 - Formatting does not respect indentation within Razor comment blocks (PR: [#10893](https://github.com/dotnet/razor/pull/10893)) + # 2.50.x * Update Roslyn to 4.13.0-1.24477.2 (PR: [#<>](https://github.com/dotnet/vscode-csharp/pull/<>)) * Use MSBuild globs to determine which file changes are relevant (PR: [#75139](https://github.com/dotnet/roslyn/pull/75139)) From 700c196048791a058ab387d0ff01fbd854d807ed Mon Sep 17 00:00:00 2001 From: Andrew Hall Date: Tue, 1 Oct 2024 15:31:44 -0700 Subject: [PATCH 05/79] Update CHANGELOG.md Co-authored-by: David Barbet --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fd89c582c..41e9379fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,6 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # Latest - * Update Razor to 9.0.0-preview.24480.1 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) * Fuse fix usings (PR: [#10925](https://github.com/dotnet/razor/pull/10925)) * Fuse incorrect page directives (PR: [#10907](https://github.com/dotnet/razor/pull/10907)) From e961b332bf59e4cf1efe87e5703a7170e1beb589 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Wed, 2 Oct 2024 14:06:29 -0700 Subject: [PATCH 06/79] Update changelog based on last roslyn update --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 41e9379fb..18a05994a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # Latest +* Update Roslyn to 4.13.0-1.24501.3 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) + * Fix issue loading analyzers when using EnforceCodeStyleInBuild (PR: [#75250](https://github.com/dotnet/roslyn/pull/75250)) * Update Razor to 9.0.0-preview.24480.1 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) * Fuse fix usings (PR: [#10925](https://github.com/dotnet/razor/pull/10925)) * Fuse incorrect page directives (PR: [#10907](https://github.com/dotnet/razor/pull/10907)) From caf8515f5dcf6c8a741b4784ab11ba78411d0a40 Mon Sep 17 00:00:00 2001 From: "gel@microsoft.com" Date: Wed, 2 Oct 2024 16:55:25 -0700 Subject: [PATCH 07/79] Add new context object to registerRelatedFilesProvider --- src/lsptoolshost/copilot.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lsptoolshost/copilot.ts b/src/lsptoolshost/copilot.ts index a3c6b3043..c01e6feea 100644 --- a/src/lsptoolshost/copilot.ts +++ b/src/lsptoolshost/copilot.ts @@ -16,6 +16,7 @@ interface CopilotRelatedFilesProviderRegistration { providerId: { extensionId: string; languageId: string }, callback: ( uri: vscode.Uri, + context: { flags: Record }, cancellationToken?: vscode.CancellationToken ) => Promise<{ entries: vscode.Uri[]; traits?: { name: string; value: string }[] }> ): vscode.Disposable; @@ -55,7 +56,7 @@ export function registerCopilotExtension(languageServer: RoslynLanguageServer, c languageId: 'csharp', }; - relatedAPI.registerRelatedFilesProvider(id, async (uri, token) => { + relatedAPI.registerRelatedFilesProvider(id, async (uri, _, token) => { const buildResult = (reports: CopilotRelatedDocumentsReport[], builder?: vscode.Uri[]) => { if (reports) { for (const report of reports) { From 1c1710605427297ef7a31b2011d97da9366115ca Mon Sep 17 00:00:00 2001 From: "gel@microsoft.com" Date: Wed, 2 Oct 2024 17:08:44 -0700 Subject: [PATCH 08/79] Update traits --- src/lsptoolshost/copilot.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lsptoolshost/copilot.ts b/src/lsptoolshost/copilot.ts index c01e6feea..65c6519d4 100644 --- a/src/lsptoolshost/copilot.ts +++ b/src/lsptoolshost/copilot.ts @@ -11,6 +11,13 @@ import { UriConverter } from './uriConverter'; import { TextDocumentIdentifier } from 'vscode-languageserver-protocol'; import { languageServerOptions } from '../shared/options'; +interface CopilotTrait { + name: string; + value: string; + includeInPrompt?: boolean; + promptTextOverride?: string; +} + interface CopilotRelatedFilesProviderRegistration { registerRelatedFilesProvider( providerId: { extensionId: string; languageId: string }, @@ -18,7 +25,7 @@ interface CopilotRelatedFilesProviderRegistration { uri: vscode.Uri, context: { flags: Record }, cancellationToken?: vscode.CancellationToken - ) => Promise<{ entries: vscode.Uri[]; traits?: { name: string; value: string }[] }> + ) => Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] }> ): vscode.Disposable; } From b58d85e781361155ec7430edcca5e51781aaf5f3 Mon Sep 17 00:00:00 2001 From: Andrew Hall Date: Thu, 3 Oct 2024 16:41:57 -0700 Subject: [PATCH 09/79] Disable all LSP Server toasts (#7624) Fixes https://github.com/microsoft/vscode-dotnettools/issues/722 https://github.com/dotnet/razor/issues/10541 --- CHANGELOG.md | 2 + package.json | 5 +++ package.nls.json | 1 + src/razor/src/razorLanguageClient.ts | 43 +++++++++++++++++++ src/razor/src/razorLanguageServerClient.ts | 10 +++-- src/razor/src/razorLanguageServerOptions.ts | 1 + .../src/razorLanguageServerOptionsResolver.ts | 2 + 7 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 src/razor/src/razorLanguageClient.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 18a05994a..f89f3ec6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # Latest +* Suppress recoverable errors from razor LSP (PR: [#7624](https://github.com/dotnet/vscode-csharp/pull/7624)) + * NOTE: this can be re-enabled by setting `razor.languageServer.suppressLspErrorToasts = false` * Update Roslyn to 4.13.0-1.24501.3 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) * Fix issue loading analyzers when using EnforceCodeStyleInBuild (PR: [#75250](https://github.com/dotnet/roslyn/pull/75250)) * Update Razor to 9.0.0-preview.24480.1 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) diff --git a/package.json b/package.json index 2740505bb..1f4ba076b 100644 --- a/package.json +++ b/package.json @@ -1536,6 +1536,11 @@ "default": false, "description": "%configuration.razor.languageServer.forceRuntimeCodeGeneration%", "order": 90 + }, + "razor.languageServer.suppressLspErrorToasts": { + "type": "boolean", + "default": true, + "description": "%configuration.razor.languageServer.suppressLspErrorToasts%" } } }, diff --git a/package.nls.json b/package.nls.json index 2cd483130..80988e2f3 100644 --- a/package.nls.json +++ b/package.nls.json @@ -127,6 +127,7 @@ "configuration.razor.languageServer.debug": "Specifies whether to wait for debug attach when launching the language server.", "configuration.razor.server.trace": "Specifies the logging level to use for the Razor server.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(EXPERIMENTAL) Enable combined design time/runtime code generation for Razor files", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", "debuggers.coreclr.configurationSnippets.label.console-local": ".NET: Launch Executable file (Console)", "debuggers.coreclr.configurationSnippets.label.web-local": ".NET: Launch Executable file (Web)", "debuggers.coreclr.configurationSnippets.label.attach-local": ".NET: Attach to a .NET process", diff --git a/src/razor/src/razorLanguageClient.ts b/src/razor/src/razorLanguageClient.ts new file mode 100644 index 000000000..135f2e492 --- /dev/null +++ b/src/razor/src/razorLanguageClient.ts @@ -0,0 +1,43 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { + CancellationToken, + LanguageClient, + LanguageClientOptions, + MessageSignature, + ServerOptions, +} from 'vscode-languageclient/node'; +import { RazorLanguageServerOptions } from './razorLanguageServerOptions'; + +export class RazorLanguageClient extends LanguageClient { + razorOptions: RazorLanguageServerOptions; + + constructor( + id: string, + name: string, + serverOptions: ServerOptions, + clientOptions: LanguageClientOptions, + razorOptions: RazorLanguageServerOptions, + forceDebug?: boolean + ) { + super(id, name, serverOptions, clientOptions, forceDebug); + this.razorOptions = razorOptions; + } + + override handleFailedRequest( + type: MessageSignature, + token: CancellationToken | undefined, + error: any, + defaultValue: T, + showNotification?: boolean + ) { + if (this.razorOptions.suppressErrorToasts) { + return super.handleFailedRequest(type, token, error, defaultValue, false); + } + + return super.handleFailedRequest(type, token, error, defaultValue, showNotification); + } +} diff --git a/src/razor/src/razorLanguageServerClient.ts b/src/razor/src/razorLanguageServerClient.ts index 141052c0e..9f73f4cf8 100644 --- a/src/razor/src/razorLanguageServerClient.ts +++ b/src/razor/src/razorLanguageServerClient.ts @@ -8,7 +8,7 @@ import { EventEmitter } from 'events'; import * as vscode from 'vscode'; import { RequestHandler, RequestType } from 'vscode-jsonrpc'; import { GenericNotificationHandler, InitializeResult, LanguageClientOptions, State } from 'vscode-languageclient'; -import { LanguageClient, ServerOptions } from 'vscode-languageclient/node'; +import { ServerOptions } from 'vscode-languageclient/node'; import { RazorLanguage } from './razorLanguage'; import { RazorLanguageServerOptions } from './razorLanguageServerOptions'; import { resolveRazorLanguageServerOptions } from './razorLanguageServerOptionsResolver'; @@ -18,6 +18,7 @@ import { TelemetryReporter as RazorTelemetryReporter } from './telemetryReporter import TelemetryReporter from '@vscode/extension-telemetry'; import { randomUUID } from 'crypto'; import { showErrorMessage } from '../../shared/observers/utils/showMessage'; +import { RazorLanguageClient } from './razorLanguageClient'; const events = { ServerStop: 'ServerStop', @@ -26,7 +27,7 @@ const events = { export class RazorLanguageServerClient implements vscode.Disposable { private clientOptions!: LanguageClientOptions; private serverOptions!: ServerOptions; - private client!: LanguageClient; + private client!: RazorLanguageClient; private onStartListeners: Array<() => Promise> = []; private onStartedListeners: Array<() => Promise> = []; private eventBus: EventEmitter; @@ -299,11 +300,12 @@ export class RazorLanguageServerClient implements vscode.Disposable { this.serverOptions = childProcess; - this.client = new LanguageClient( + this.client = new RazorLanguageClient( 'razorLanguageServer', 'Razor Language Server', this.serverOptions, - this.clientOptions + this.clientOptions, + options ); } } diff --git a/src/razor/src/razorLanguageServerOptions.ts b/src/razor/src/razorLanguageServerOptions.ts index 7cfe680c5..126798f16 100644 --- a/src/razor/src/razorLanguageServerOptions.ts +++ b/src/razor/src/razorLanguageServerOptions.ts @@ -13,4 +13,5 @@ export interface RazorLanguageServerOptions { logLevel: LogLevel; usingOmniSharp: boolean; forceRuntimeCodeGeneration: boolean; + suppressErrorToasts: boolean; } diff --git a/src/razor/src/razorLanguageServerOptionsResolver.ts b/src/razor/src/razorLanguageServerOptionsResolver.ts index 3b18aef3e..842f8f71b 100644 --- a/src/razor/src/razorLanguageServerOptionsResolver.ts +++ b/src/razor/src/razorLanguageServerOptionsResolver.ts @@ -25,6 +25,7 @@ export function resolveRazorLanguageServerOptions( const usingOmniSharp = !getCSharpDevKit() && vscodeApi.workspace.getConfiguration().get('dotnet.server.useOmnisharp'); const forceRuntimeCodeGeneration = serverConfig.get('forceRuntimeCodeGeneration'); + const suppressErrorToasts = serverConfig.get('suppressLspErrorToasts'); return { serverPath: languageServerExecutablePath, @@ -33,6 +34,7 @@ export function resolveRazorLanguageServerOptions( outputChannel: logger.outputChannel, usingOmniSharp, forceRuntimeCodeGeneration, + suppressErrorToasts, } as RazorLanguageServerOptions; } From 115ba07f16cd5b1fe1657b9720ee02dc2b17eaa1 Mon Sep 17 00:00:00 2001 From: Jason Malinowski Date: Fri, 23 Jun 2023 18:45:12 -0700 Subject: [PATCH 10/79] Add a TextDocumentContentProvider for source-generated files This allows the Roslyn LSP to return document references with a roslyn-source-generated URI, and we'll turn around and ask the LSP for those files when they're opened. For now we don't worry about refreshing files if they've changed, just to keep this simple. --- src/lsptoolshost/roslynLanguageServer.ts | 3 ++ src/lsptoolshost/roslynProtocol.ts | 14 +++++++++ .../sourceGeneratedFilesContentProvider.ts | 31 +++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 src/lsptoolshost/sourceGeneratedFilesContentProvider.ts diff --git a/src/lsptoolshost/roslynLanguageServer.ts b/src/lsptoolshost/roslynLanguageServer.ts index 023608c54..83f11799b 100644 --- a/src/lsptoolshost/roslynLanguageServer.ts +++ b/src/lsptoolshost/roslynLanguageServer.ts @@ -74,6 +74,7 @@ import { showErrorMessage, showInformationMessage, } from '../shared/observers/utils/showMessage'; +import { registerSourceGeneratedFilesContentProvider } from './sourceGeneratedFilesContentProvider'; let _channel: vscode.OutputChannel; let _traceChannel: vscode.OutputChannel; @@ -1068,6 +1069,8 @@ export async function activateRoslynLanguageServer( registerRestoreCommands(context, languageServer, dotnetChannel); + registerSourceGeneratedFilesContentProvider(context, languageServer); + context.subscriptions.push(registerLanguageServerOptionChanges(optionObservable)); return languageServer; diff --git a/src/lsptoolshost/roslynProtocol.ts b/src/lsptoolshost/roslynProtocol.ts index 9c612502b..4b307109b 100644 --- a/src/lsptoolshost/roslynProtocol.ts +++ b/src/lsptoolshost/roslynProtocol.ts @@ -230,6 +230,14 @@ export interface CopilotRelatedDocumentsReport { _vs_file_paths?: string[]; } +export interface SourceGeneratorGetRequestParams { + textDocument: lsp.TextDocumentIdentifier; +} + +export interface SourceGeneratedDocumentText { + text: string; +} + export namespace WorkspaceDebugConfigurationRequest { export const method = 'workspace/debugConfiguration'; export const messageDirection: lsp.MessageDirection = lsp.MessageDirection.clientToServer; @@ -351,3 +359,9 @@ export namespace CopilotRelatedDocumentsRequest { void >(method); } + +export namespace SourceGeneratorGetTextRequest { + export const method = 'sourceGeneratedFile/_roslyn_getText'; + export const messageDirection: lsp.MessageDirection = lsp.MessageDirection.clientToServer; + export const type = new lsp.RequestType(method); +} diff --git a/src/lsptoolshost/sourceGeneratedFilesContentProvider.ts b/src/lsptoolshost/sourceGeneratedFilesContentProvider.ts new file mode 100644 index 000000000..6d070b590 --- /dev/null +++ b/src/lsptoolshost/sourceGeneratedFilesContentProvider.ts @@ -0,0 +1,31 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as vscode from 'vscode'; +import * as RoslynProtocol from './roslynProtocol'; +import { RoslynLanguageServer } from './roslynLanguageServer'; +import { UriConverter } from './uriConverter'; +import * as lsp from 'vscode-languageserver-protocol'; + +export function registerSourceGeneratedFilesContentProvider( + context: vscode.ExtensionContext, + languageServer: RoslynLanguageServer +) { + context.subscriptions.push( + vscode.workspace.registerTextDocumentContentProvider( + 'roslyn-source-generated', + new (class implements vscode.TextDocumentContentProvider { + async provideTextDocumentContent(uri: vscode.Uri, token: vscode.CancellationToken): Promise { + const result = await languageServer.sendRequest( + RoslynProtocol.SourceGeneratorGetTextRequest.type, + { textDocument: lsp.TextDocumentIdentifier.create(UriConverter.serialize(uri)) }, + token + ); + return result.text; + } + })() + ) + ); +} From 769273db5b2c5a159ae98053d4a5ce1d8d42da9f Mon Sep 17 00:00:00 2001 From: David Barbet Date: Fri, 27 Sep 2024 11:41:31 -0700 Subject: [PATCH 11/79] rename method --- src/lsptoolshost/roslynProtocol.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lsptoolshost/roslynProtocol.ts b/src/lsptoolshost/roslynProtocol.ts index 4b307109b..9ba43d4af 100644 --- a/src/lsptoolshost/roslynProtocol.ts +++ b/src/lsptoolshost/roslynProtocol.ts @@ -361,7 +361,7 @@ export namespace CopilotRelatedDocumentsRequest { } export namespace SourceGeneratorGetTextRequest { - export const method = 'sourceGeneratedFile/_roslyn_getText'; + export const method = 'sourceGeneratedDocument/_roslyn_getText'; export const messageDirection: lsp.MessageDirection = lsp.MessageDirection.clientToServer; export const type = new lsp.RequestType(method); } From 6a176730c947fac84ec966c1bed0aa474931b8e6 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Thu, 3 Oct 2024 16:57:46 -0700 Subject: [PATCH 12/79] Update roslyn version to 4.13.0-1.24503.11 --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f89f3ec6f..7afcebdf4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # Latest +* Update Roslyn to 4.13.0-1.24503.11 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) + * LSP hover responses escape backticks within inline code (PR: [#75364](https://github.com/dotnet/roslyn/pull/75364)) + * Localize build host message output (PR: [#74910](https://github.com/dotnet/roslyn/pull/74910)) + * Log and report NFW when we fail to apply project system update (PR: [#75362](https://github.com/dotnet/roslyn/pull/75362)) + * Reduce allocations and UI thread CPU costs in WithDoNotCreateCreationPolicy (PR: [#75358](https://github.com/dotnet/roslyn/pull/75358)) + * Enable support for an LSP client to open source generated files (PR: [#75180](https://github.com/dotnet/roslyn/pull/75180)) + * Improve error reporting when reading bad metadata during EnC (PR: [#75304](https://github.com/dotnet/roslyn/pull/75304)) * Suppress recoverable errors from razor LSP (PR: [#7624](https://github.com/dotnet/vscode-csharp/pull/7624)) * NOTE: this can be re-enabled by setting `razor.languageServer.suppressLspErrorToasts = false` * Update Roslyn to 4.13.0-1.24501.3 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) diff --git a/package.json b/package.json index 1f4ba076b..3ebf0521a 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ } }, "defaults": { - "roslyn": "4.13.0-1.24501.3", + "roslyn": "4.13.0-1.24503.11", "omniSharp": "1.39.11", "razor": "9.0.0-preview.24480.1", "razorOmnisharp": "7.0.0-preview.23363.1", From ad3a27a6b8de24b2560d0c65ef44ca90b72e01d5 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Fri, 4 Oct 2024 09:56:40 -0400 Subject: [PATCH 13/79] Bumped xamlTools to 17.12.35403.211 --- CHANGELOG.md | 1 + package.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f89f3ec6f..bc25de637 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # Latest +* Bumped xamltools to 17.12.35403.211 (PR: [#7625](https://github.com/dotnet/vscode-csharp/pull/7625)) * Suppress recoverable errors from razor LSP (PR: [#7624](https://github.com/dotnet/vscode-csharp/pull/7624)) * NOTE: this can be re-enabled by setting `razor.languageServer.suppressLspErrorToasts = false` * Update Roslyn to 4.13.0-1.24501.3 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) diff --git a/package.json b/package.json index 1f4ba076b..61ca70d98 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "omniSharp": "1.39.11", "razor": "9.0.0-preview.24480.1", "razorOmnisharp": "7.0.0-preview.23363.1", - "xamlTools": "17.12.35326.17" + "xamlTools": "17.12.35403.211" }, "main": "./dist/extension", "l10n": "./l10n", From 8678313bc12f8607426e321f8ac0b70fce0cfbd8 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Fri, 4 Oct 2024 10:13:05 -0700 Subject: [PATCH 14/79] Add source generator test file --- .../slnWithCsproj/src/app/SourceGenerator.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/src/app/SourceGenerator.cs diff --git a/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/src/app/SourceGenerator.cs b/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/src/app/SourceGenerator.cs new file mode 100644 index 000000000..6230b5408 --- /dev/null +++ b/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/src/app/SourceGenerator.cs @@ -0,0 +1,17 @@ +using System; +using System.Text.Json.Serialization; + +namespace SourceGeneration; + +public class WeatherForecast +{ + public DateTime Date { get; set; } + public int TemperatureCelsius { get; set; } + public string Summary { get; set; } +} + +[JsonSourceGenerationOptions(WriteIndented = true)] +[JsonSerializable(typeof(WeatherForecast))] +internal partial class SourceGenerationContext : JsonSerializerContext +{ +} \ No newline at end of file From fa877b405840fd53782713f291c2050a11fee845 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Fri, 4 Oct 2024 11:15:38 -0700 Subject: [PATCH 15/79] Add source generator integration test --- .../gotoDefinition.integration.test.ts | 29 +------- .../integrationTests/integrationHelpers.ts | 28 ++++++++ .../sourceGenerator.integration.test.ts | 67 +++++++++++++++++++ 3 files changed, 96 insertions(+), 28 deletions(-) create mode 100644 test/lsptoolshost/integrationTests/sourceGenerator.integration.test.ts diff --git a/test/lsptoolshost/integrationTests/gotoDefinition.integration.test.ts b/test/lsptoolshost/integrationTests/gotoDefinition.integration.test.ts index 0cf5fc6b2..cfc31da37 100644 --- a/test/lsptoolshost/integrationTests/gotoDefinition.integration.test.ts +++ b/test/lsptoolshost/integrationTests/gotoDefinition.integration.test.ts @@ -10,6 +10,7 @@ import { activateCSharpExtension, closeAllEditorsAsync, findRangeOfString, + navigate, openFileInWorkspaceAsync, testIfCSharp, testIfDevKit, @@ -286,31 +287,3 @@ describe(`Go To Definition Tests`, () => { expect(vscode.window.activeTextEditor?.document.uri.path.toLowerCase()).toContain('symbolcache'); }); }); - -async function navigate( - originalPosition: vscode.Position, - definitionLocations: vscode.Location[], - expectedFileName: string -): Promise { - const windowChanged = new Promise((resolve, _) => { - vscode.window.onDidChangeActiveTextEditor((_e) => { - if (_e?.document.fileName.includes(expectedFileName)) { - resolve(); - } - }); - }); - - await vscode.commands.executeCommand( - 'editor.action.goToLocations', - vscode.window.activeTextEditor!.document.uri, - originalPosition, - definitionLocations, - 'goto', - 'Failed to navigate' - ); - - // Navigation happens asynchronously when a different file is opened, so we need to wait for the window to change. - await windowChanged; - - expect(vscode.window.activeTextEditor?.document.fileName).toContain(expectedFileName); -} diff --git a/test/lsptoolshost/integrationTests/integrationHelpers.ts b/test/lsptoolshost/integrationTests/integrationHelpers.ts index 4513f8b4d..c224d4fd9 100644 --- a/test/lsptoolshost/integrationTests/integrationHelpers.ts +++ b/test/lsptoolshost/integrationTests/integrationHelpers.ts @@ -135,6 +135,34 @@ export async function getCodeLensesAsync(): Promise { }); } +export async function navigate( + originalPosition: vscode.Position, + definitionLocations: vscode.Location[], + expectedFileName: string +): Promise { + const windowChanged = new Promise((resolve, _) => { + vscode.window.onDidChangeActiveTextEditor((_e) => { + if (_e?.document.fileName.includes(expectedFileName)) { + resolve(); + } + }); + }); + + await vscode.commands.executeCommand( + 'editor.action.goToLocations', + vscode.window.activeTextEditor!.document.uri, + originalPosition, + definitionLocations, + 'goto', + 'Failed to navigate' + ); + + // Navigation happens asynchronously when a different file is opened, so we need to wait for the window to change. + await windowChanged; + + expect(vscode.window.activeTextEditor?.document.fileName).toContain(expectedFileName); +} + export function sortLocations(locations: vscode.Location[]): vscode.Location[] { return locations.sort((a, b) => { const uriCompare = a.uri.fsPath.localeCompare(b.uri.fsPath); diff --git a/test/lsptoolshost/integrationTests/sourceGenerator.integration.test.ts b/test/lsptoolshost/integrationTests/sourceGenerator.integration.test.ts new file mode 100644 index 000000000..bf21c3672 --- /dev/null +++ b/test/lsptoolshost/integrationTests/sourceGenerator.integration.test.ts @@ -0,0 +1,67 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as vscode from 'vscode'; +import * as path from 'path'; +import testAssetWorkspace from './testAssets/testAssetWorkspace'; +import { + activateCSharpExtension, + closeAllEditorsAsync, + navigate, + openFileInWorkspaceAsync, + sleep, + sortLocations, +} from './integrationHelpers'; +import { beforeAll, beforeEach, afterAll, test, expect, afterEach, describe } from '@jest/globals'; + +describe(`Source Generator Tests`, () => { + beforeAll(async () => { + await activateCSharpExtension(); + }); + + beforeEach(async () => { + await openFileInWorkspaceAsync(path.join('src', 'app', 'SourceGenerator.cs')); + + // Unfortunately, due to the way source generators work we will not necessarily have the source generated files + // as soon as the project finishes loading. It may be using a partial compilation which has not run generators yet. + // So we have to wait here for a bit to ensure the source generated files are available. + // Once we have enabled balanced mode in the extension, we will have an explicit command to run generators which + // we can use here to force the generation instead of waiting. + // See https://github.com/dotnet/roslyn/issues/75152 + await sleep(5000); + }); + + afterAll(async () => { + await testAssetWorkspace.cleanupWorkspace(); + }); + + afterEach(async () => { + await closeAllEditorsAsync(); + }); + + test('Navigates to reference in source generated file', async () => { + const requestPosition = new vscode.Position(14, 25); + const referencesList = ( + await vscode.commands.executeCommand( + 'vscode.executeReferenceProvider', + vscode.window.activeTextEditor!.document.uri, + requestPosition + ) + ); + expect(referencesList.length).toEqual(8); + const referencesInGeneratedFiles = sortLocations( + referencesList.filter((r) => r.uri.scheme === 'roslyn-source-generated') + ); + expect(referencesInGeneratedFiles.length).toEqual(7); + const firstPath = referencesInGeneratedFiles[0].uri.path; + expect(firstPath).toEqual('/SourceGenerationContext.g.cs'); + + await navigate(requestPosition, referencesInGeneratedFiles, 'SourceGenerationContext.g.cs'); + expect(vscode.window.activeTextEditor?.document.getText()).toContain('// '); + expect(vscode.window.activeTextEditor?.document.getText()).toContain( + 'internal partial class SourceGenerationContext' + ); + }); +}); From 1424881b36d6740a84a05e12529509e801b5885d Mon Sep 17 00:00:00 2001 From: dibarbet Date: Mon, 7 Oct 2024 16:52:31 +0000 Subject: [PATCH 16/79] Update main version --- version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.json b/version.json index 160c6958b..719a2ee4e 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "2.51", + "version": "2.52", "publicReleaseRefSpec": [ "^refs/heads/release$", "^refs/heads/prerelease$", From 7022e9f7b024f3a5523c69e1cd8a427be1fa7b9b Mon Sep 17 00:00:00 2001 From: dotnet-bot Date: Mon, 7 Oct 2024 20:49:30 +0000 Subject: [PATCH 17/79] Localization result of 1697eda7175394d992fc81f6a52dd304c986f0aa. --- package.nls.cs.json | 1 + package.nls.de.json | 1 + package.nls.es.json | 1 + package.nls.fr.json | 1 + package.nls.it.json | 1 + package.nls.ja.json | 1 + package.nls.ko.json | 1 + package.nls.pl.json | 1 + package.nls.pt-br.json | 1 + package.nls.ru.json | 1 + package.nls.tr.json | 1 + package.nls.zh-cn.json | 1 + package.nls.zh-tw.json | 1 + 13 files changed, 13 insertions(+) diff --git a/package.nls.cs.json b/package.nls.cs.json index 2c91f7046..fe937ba06 100644 --- a/package.nls.cs.json +++ b/package.nls.cs.json @@ -121,6 +121,7 @@ "configuration.razor.languageServer.debug": "Určuje, jestli se má při spouštění jazykového serveru čekat na připojení ladění.", "configuration.razor.languageServer.directory": "Přepíše cestu k adresáři jazykového serveru Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(EXPERIMENTÁLNÍ) Povolit kombinované generování kódu v době návrhu / za běhu pro soubory Razor", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", "configuration.razor.server.trace": "Určuje úroveň protokolování, která se má použít pro server Razor.", "debuggers.coreclr.configurationSnippets.description.attach": "Připojte ladicí program .NET (coreclr) ke spuštěným procesům. Můžete to provést také pomocí příkazu „Připojit k procesu .NET 5+ nebo .NET Core“.", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Tento fragment kódu se používá ke spuštění nového procesu v ladicím programu Blazor WebAssembly (blazorwasm), který určuje cestu ke spustitelnému souboru, který se má spustit. Ve většině případů je „.NET: Spustit projekt jazyka C#“ fragment kódu lepší volbou, ale tento fragment kódu lze použít k úplné kontrole nad všemi možnostmi spuštění. Tento fragment kódu je pro hostované projekty Blazor, což je projekt, který má back-endovou aplikaci ASP.NET Core pro obsluhu svých souborů.", diff --git a/package.nls.de.json b/package.nls.de.json index 8263ae6c7..2cfa61318 100644 --- a/package.nls.de.json +++ b/package.nls.de.json @@ -121,6 +121,7 @@ "configuration.razor.languageServer.debug": "Gibt an, ob beim Starten des Sprachservers auf die Debuganfügung gewartet werden soll.", "configuration.razor.languageServer.directory": "Überschreibt den Pfad zum Razor-Sprachserver-Verzeichnis.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(EXPERIMENTELL) Kombinierte Entwurfszeit-/Runtime-Codegenerierung für Razor-Dateien aktivieren", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", "configuration.razor.server.trace": "Gibt den Protokolliergrad an, der für den Razor-Server verwendet werden soll.", "debuggers.coreclr.configurationSnippets.description.attach": "Fügen Sie den .NET-Debugger (coreclr) an einen laufenden Prozess an. Dies kann auch mit dem Befehl \"An einen .NET 5+- oder .NET Core-Prozess anfügen\" erfolgen.", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Dieser Codeschnipsel wird verwendet, um einen neuen Prozess unter dem Blazor WebAssembly-Debugger (blazorwasm) zu starten. Dabei wird der Pfad zu der ausführbaren Datei angegeben, die gestartet werden soll. In den meisten Fällen ist der Codeschnipsel \".NET: C#-Projekt starten\" die bessere Wahl. Dieser Codeschnipsel kann jedoch verwendet werden, um Vollzugriff auf alle Startoptionen zu erhalten. Dieser Codeschnipsel ist für gehostete Blazor-Projekte vorgesehen. Dabei handelt es sich um ein Projekt, das im Back-End über eine ASP.NET Core-App zum Verarbeiten der Dateien verfügt.", diff --git a/package.nls.es.json b/package.nls.es.json index b6708eee8..2bdca9f69 100644 --- a/package.nls.es.json +++ b/package.nls.es.json @@ -121,6 +121,7 @@ "configuration.razor.languageServer.debug": "Especifica si se debe esperar a que se adjunte la depuración al iniciar el servidor de lenguaje.", "configuration.razor.languageServer.directory": "Invalida la ruta de acceso al directorio del servidor de lenguaje Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(EXPERIMENTAL) Habilitación de la generación de código en tiempo de ejecución y tiempo de diseño combinado para archivos de Razor", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", "configuration.razor.server.trace": "Especifica el nivel de registro que se va a usar para el servidor Razor.", "debuggers.coreclr.configurationSnippets.description.attach": "Adjunte el depurador de .NET (coreclr) a un proceso en ejecución. Esto también se puede hacer mediante el comando \"Asociar a un proceso de .NET 5+ o .NET Core\".", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Este fragmento de código se usa para iniciar un nuevo proceso en el depurador Blazor WebAssembly (blazorwasm), especificando la ruta de acceso al ejecutable que se va a iniciar. En la mayoría de los casos, \".NET: Launch C# project\" (Iniciar proyecto de C#) es una mejor opción, pero este fragmento de código se puede usar para tener control total sobre todas las opciones de inicio. Este fragmento de código es para proyectos de Blazor hospedados, que es un proyecto que tiene un back-end ASP.NET aplicación Core para atender sus archivos.", diff --git a/package.nls.fr.json b/package.nls.fr.json index f7f008be1..f4fd2f5a5 100644 --- a/package.nls.fr.json +++ b/package.nls.fr.json @@ -121,6 +121,7 @@ "configuration.razor.languageServer.debug": "Spécifie s’il faut attendre l’attachement du débogage au lancement du serveur de langage.", "configuration.razor.languageServer.directory": "Remplace le chemin d’accès au répertoire du serveur de langage Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(EXPÉRIMENTAL) Activer la génération combinée de code au moment de la conception/à l’exécution pour les fichiers Razor", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", "configuration.razor.server.trace": "Spécifie le niveau de journalisation à utiliser pour le serveur Razor.", "debuggers.coreclr.configurationSnippets.description.attach": "Attachez le débogueur .NET (coreclr) à un processus en cours d'exécution. Cela peut également être fait à l'aide de la commande « Attacher à un processus .NET 5+ ou .NET Core ».", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Cet extrait est utilisé pour lancer un nouveau processus sous le débogueur Blazor WebAssembly (blazorwasm), en spécifiant le chemin d'accès à l'exécutable à lancer. Dans la plupart des cas, le \".NET : L'extrait \"Lancer le projet C#\" est un meilleur choix, mais cet extrait peut être utilisé pour avoir un contrôle total sur toutes les options de lancement. Cet extrait est destiné aux projets Blazor hébergés, qui sont un projet doté d'une application backend ASP.NET Core pour servir ses fichiers.", diff --git a/package.nls.it.json b/package.nls.it.json index 285aaed6a..10ad928fd 100644 --- a/package.nls.it.json +++ b/package.nls.it.json @@ -121,6 +121,7 @@ "configuration.razor.languageServer.debug": "Specifica se attendere il collegamento di debug all'avvio del server di linguaggio.", "configuration.razor.languageServer.directory": "Esegue l'override del percorso della directory del server di linguaggio Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(SPERIMENTALE) Abilita la generazione combinata di codice in fase di progettazione/runtime per i file Razor", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", "configuration.razor.server.trace": "Specifica il livello di registrazione da utilizzare per il server Razor.", "debuggers.coreclr.configurationSnippets.description.attach": "Collegare il debugger .NET (coreclr) a un processo in esecuzione. Questa operazione può essere eseguita anche utilizzando il comando \"Collega a un processo .NET 5+ o .NET Core\".", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Questo frammento di codice viene usato per avviare un nuovo processo nel debugger Blazor WebAssembly (blazorwasm), specificando il percorso dell'eseguibile da avviare. Nella maggior parte dei casi, il frammento di codice \".NET: Il frammento di codice Launch C# project\" è una scelta migliore, ma può essere utilizzato per avere il controllo completo su tutte le opzioni di avvio. Questo frammento di codice riguarda i progetti Blazor ospitati, ovvero un progetto che dispone di un'app ASP.NET Core back-end per gestire i file.", diff --git a/package.nls.ja.json b/package.nls.ja.json index 443e8ca3d..912e7ac24 100644 --- a/package.nls.ja.json +++ b/package.nls.ja.json @@ -121,6 +121,7 @@ "configuration.razor.languageServer.debug": "言語サーバーの起動時にデバッグ アタッチを待機するかどうかを指定します。", "configuration.razor.languageServer.directory": "Razor Language Server ディレクトリへのパスをオーバーライドします。", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(試験段階) Razor ファイルのデザイン時間/ランタイム コード生成の併用を有効にする", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", "configuration.razor.server.trace": "Razor サーバーに使用するログ レベルを指定します。", "debuggers.coreclr.configurationSnippets.description.attach": "実行中のプロセスに .NET デバッガー (coreclr) をアタッチします。これは、'.NET 5 以降または .NET Core プロセスにアタッチする' コマンドを使用して行うこともできます。", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "このスニペットは、起動する実行可能ファイルへのパスを指定して、Blazor WebAssembly デバッガー (blazorwasm) で新しいプロセスを起動するために使用されます。ほとんどの場合、\".NET: Launch C# プロジェクト\" スニペットの方が適切ですが、このスニペットを使用すると、すべての起動オプションを完全に制御できます。このスニペットは、ホストされている Blazor プロジェクト用です。これは、ファイルを提供するバックエンド ASP.NET Core アプリを持つプロジェクトです。", diff --git a/package.nls.ko.json b/package.nls.ko.json index 766b0c752..767356a13 100644 --- a/package.nls.ko.json +++ b/package.nls.ko.json @@ -121,6 +121,7 @@ "configuration.razor.languageServer.debug": "언어 서버를 시작할 때 디버그 연결을 기다릴지 여부를 지정합니다.", "configuration.razor.languageServer.directory": "Razor 언어 서버 디렉터리의 경로를 재정의합니다.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(실험적) Razor 파일에 대해 결합된 디자인 타임/런타임 코드 생성 사용", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", "configuration.razor.server.trace": "Razor 서버에 사용할 로깅 수준을 지정합니다.", "debuggers.coreclr.configurationSnippets.description.attach": "실행 중인 프로세스에 .NET 디버거(coreclr)를 연결합니다. 이 작업은 'Attach to a .NET 5+ or .NET Core process' 명령을 사용하여 수행할 수도 있습니다.", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "이 코드 조각은 Blazor WebAssembly 디버거(blazorwasm) 아래에서 새 프로세스를 시작하는 데 사용되며, 실행 파일의 경로를 지정합니다. 대부분의 경우 \".NET: Launch C# project\" 코드 조각이 더 나은 선택이지만, 이 코드 조각을 사용하면 모든 시작 옵션을 완전히 제어할 수 있습니다. 이 코드 조각은 파일을 처리할 백 엔드 ASP.NET Core 앱이 있는 프로젝트인 호스트된 Blazor 프로젝트용입니다.", diff --git a/package.nls.pl.json b/package.nls.pl.json index 9b84795e0..d5fba139c 100644 --- a/package.nls.pl.json +++ b/package.nls.pl.json @@ -121,6 +121,7 @@ "configuration.razor.languageServer.debug": "Określa, czy czekać na dołączenie debugowania podczas uruchamiania serwera języka.", "configuration.razor.languageServer.directory": "Przesłania ścieżkę do katalogu serwera języka Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(EKSPERYMENTALNE) Włącz łączny czas projektowania/generowanie kodu środowiska uruchomieniowego dla plików Razor", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", "configuration.razor.server.trace": "Określa poziom rejestrowania, który ma być używany dla serwera Razor.", "debuggers.coreclr.configurationSnippets.description.attach": "Dołącz debuger platformy .NET (coreclr) do uruchomionego procesu. Można to również zrobić za pomocą polecenia „Dołącz do procesu .NET 5+ lub .NET Core”.", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Ten fragment kodu służy do uruchamiania nowego procesu w debugerze zestawu WebAssembly platformy Blazor (blazorwasm), określając ścieżkę do pliku wykonywalnego do uruchomienia. W większości przypadków „.NET: Fragment kodu „Launch C# project” (Uruchom projekt C#) jest lepszym wyborem, ale za pomocą tego fragmentu kodu można mieć pełną kontrolę nad wszystkimi opcjami uruchamiania. Ten fragment kodu jest przeznaczony dla hostowanych projektów Platformy Blazor, czyli projektu, który ma zaplecze ASP.NET aplikacji Core do obsługi plików.", diff --git a/package.nls.pt-br.json b/package.nls.pt-br.json index cfe480b9d..135dcc54d 100644 --- a/package.nls.pt-br.json +++ b/package.nls.pt-br.json @@ -121,6 +121,7 @@ "configuration.razor.languageServer.debug": "Especifica se é preciso aguardar o anexo de depuração ao iniciar o servidor de linguagem.", "configuration.razor.languageServer.directory": "Substitui o caminho para o diretório do Servidor de Linguagem Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(EXPERIMENTAL) Habilitar geração de código de tempo de design/tempo de execução combinado para arquivos Razor", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", "configuration.razor.server.trace": "Especifica o nível de log a ser usado para o servidor Razor.", "debuggers.coreclr.configurationSnippets.description.attach": "Anexe o depurador do .NET (coreclr) a um processo em execução. Isso também pode ser feito usando o comando 'Anexar a um processo do .NET 5+ ou do .NET Core'.", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Esse snippet é usado para iniciar um novo processo no depurador Blazor WebAssembly (blazorwasm), especificando o caminho para o executável a ser iniciado. Na maioria dos casos, o \".NET: O snippet de inicialização do projeto C# é uma opção melhor, mas esse snippet pode ser usado para ter controle total sobre todas as opções de inicialização. Esse snippet é para projetos hospedados do Blazor, que é um projeto que tem um aplicativo ASP.NET Core de back-end para atender aos seus arquivos.", diff --git a/package.nls.ru.json b/package.nls.ru.json index 4fa0b793c..56fc5e571 100644 --- a/package.nls.ru.json +++ b/package.nls.ru.json @@ -121,6 +121,7 @@ "configuration.razor.languageServer.debug": "Указывает, следует ли ожидать подключения отладки при запуске языкового сервера.", "configuration.razor.languageServer.directory": "Переопределяет путь к каталогу языкового сервера Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(ЭКСПЕРИМЕНТАЛЬНАЯ ФУНКЦИЯ) Включение комбинированной генерации кода во время разработки и во время выполнения для файлов Razor", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", "configuration.razor.server.trace": "Задает уровень ведения журнала, который будет использоваться для сервера Razor.", "debuggers.coreclr.configurationSnippets.description.attach": "Присоедините отладчик .NET (coreclr) к запущенному процессу. Это также можно сделать с помощью команды \"Присоединение к процессу .NET 5+ или .NET Core\".", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Этот фрагмент кода используется для запуска нового процесса в отладчике Blazor WebAssembly (blazorwasm), указывая путь к исполняемому файлу для запуска. В большинстве случаев фрагмент кода \".NET: запуск проекта C#\" является более оптимальным вариантом, но этот фрагмент можно использовать для полного управления всеми параметрами запуска. Этот фрагмент кода предназначен для размещенных проектов Blazor, которые используют серверное приложение ASP.NET Core для обработки своих файлов.", diff --git a/package.nls.tr.json b/package.nls.tr.json index da1b1e00d..4ff692ccc 100644 --- a/package.nls.tr.json +++ b/package.nls.tr.json @@ -121,6 +121,7 @@ "configuration.razor.languageServer.debug": "Dil sunucusunu başlatırken hata ayıklama eklemesinin beklenip beklenmeyeceğini belirtir.", "configuration.razor.languageServer.directory": "Razor Dil Sunucusu dizininin yolunu geçersiz kılıyor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(DENEYSEL) Razor dosyaları için birleşik tasarım zamanı/çalışma zamanı kodu oluşturmayı etkinleştirin", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", "configuration.razor.server.trace": "Razor sunucusu için kullanılacak günlük kaydı düzeyini belirtir.", "debuggers.coreclr.configurationSnippets.description.attach": ".NET hata ayıklayıcısını (coreclr) çalışan bir işleme ekleyin. Bu, '.NET 5+ veya .NET Core işlemine ekle' komutu kullanılarak da kullanılabilir.", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Bu kod parçacığı, Blazor WebAssembly hata ayıklayıcısı (blazorwasm) altında, başlatılacak yürütülebilir dosyanın yolunu belirten yeni bir işlemi başlatmak için kullanılır. Çoğu durumda, \".NET: C# projesini başlat\" kod parçacığı daha iyi bir seçimdir, ancak bu kod parçacığı tüm başlatma seçenekleri üzerinde tam denetime sahip olmak için kullanılabilir. Bu kod parçacığı dosyalarını sunmak için arka uç ASP.NET Core uygulamasına sahip bir proje olan, barındırılan Blazor projeleri içindir.", diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json index 3e647e250..8244f7df6 100644 --- a/package.nls.zh-cn.json +++ b/package.nls.zh-cn.json @@ -121,6 +121,7 @@ "configuration.razor.languageServer.debug": "指定在启动语言服务器时是否等待调试附加。", "configuration.razor.languageServer.directory": "重写 Razor 语言服务器目录的路径。", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(试验性)为 Razor 文件启用组合设计时/运行时代码生成", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", "configuration.razor.server.trace": "指定要用于 Razor 服务器的日志记录级别。", "debuggers.coreclr.configurationSnippets.description.attach": "将 .NET 调试器 (coreclr) 附加到正在运行的进程。也可以使用“附加到 .NET 5+ 或 .NET Core 进程”命令完成此操作。", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "此代码片段用于在 Blazor WebAssembly 调试器 (blazorwasm) 下启动新进程,指定要启动的可执行文件的路径。在大多数情况下,“.NET: 启动 C# 项目”代码片段是更好的选择,但此代码片段可用于完全控制所有启动选项。此代码片段适用于托管的 Blazor 项目,该项目具有后端 ASP.NET 核心应用以提供其文件。", diff --git a/package.nls.zh-tw.json b/package.nls.zh-tw.json index 651a1e18c..11f762d33 100644 --- a/package.nls.zh-tw.json +++ b/package.nls.zh-tw.json @@ -121,6 +121,7 @@ "configuration.razor.languageServer.debug": "指定啟動語言伺服器時,是否要等候偵錯附加。", "configuration.razor.languageServer.directory": "覆寫 Razor 語言伺服器目錄的路徑。", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(實驗性) 啟用適用於 Razor 檔案的合併設計階段/執行階段程式碼產生", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", "configuration.razor.server.trace": "指定要用於 Razor 伺服器的記錄層級。", "debuggers.coreclr.configurationSnippets.description.attach": "將 .NET 偵錯工具 (coreclr) 連結到執行中的流程。這也可以使用 'Attach to a .NET 5+ or .NET Core process' 命令來完成。", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "此程式碼片段可用來啟動 Blazor WebAssembly 偵錯工具 (blazorwasm) 下的新流程,並指定要啟動之可執行檔的路徑。在大部分情況下,「.NET: Launch C# project」程式碼片段是較佳的選擇,但此程式碼片段可用來完全控制所有啟動選項。此程式碼片段適用於裝載的 Blazor 專案,該專案是具有後端 ASP.NET Core 應用程式以提供其檔案服務的專案。", From 7b6600aecc2e5d2d55e0b245d664a2350d7900dd Mon Sep 17 00:00:00 2001 From: Andrew Hall Date: Tue, 8 Oct 2024 18:59:34 -0700 Subject: [PATCH 18/79] Make sure named pipe awaits server start (#7645) In cases where the workspace does not contain a razor or cshtml file startup is delayed for razor. This helps make sure we don't initialize when not needed. That also means that if a user opens a solution that contains a reference to a project outside of the workspace then startup will be delayed. This is generally fine because it will be initialized when needed, but there was an issue where the named pipe setup was trying to wait the startup task that had not been created yet. An await on undefined immediately returns and the project system will never get information about the project through the named pipe. --- src/razor/src/razorLanguageServerClient.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/razor/src/razorLanguageServerClient.ts b/src/razor/src/razorLanguageServerClient.ts index 9f73f4cf8..2408500df 100644 --- a/src/razor/src/razorLanguageServerClient.ts +++ b/src/razor/src/razorLanguageServerClient.ts @@ -223,7 +223,7 @@ export class RazorLanguageServerClient implements vscode.Disposable { } public async connectNamedPipe(pipeName: string): Promise { - await this.startHandle; + await this.start(); // Params must match https://github.com/dotnet/razor/blob/92005deac54f3e9d1a4d1d8f04389379cccfa354/src/Razor/src/Microsoft.CodeAnalysis.Razor.Workspaces/Protocol/RazorNamedPipeConnectParams.cs#L9 await this.sendNotification('razor/namedPipeConnect', { pipeName: pipeName }); From c79607151096d54eb2a92f7f8b90c22ca13d2ffc Mon Sep 17 00:00:00 2001 From: dotnet-bot Date: Wed, 9 Oct 2024 02:12:56 +0000 Subject: [PATCH 19/79] Localization result of 7b6600aecc2e5d2d55e0b245d664a2350d7900dd. --- package.nls.cs.json | 2 +- package.nls.de.json | 2 +- package.nls.es.json | 2 +- package.nls.fr.json | 2 +- package.nls.it.json | 2 +- package.nls.ja.json | 2 +- package.nls.ko.json | 2 +- package.nls.pl.json | 2 +- package.nls.pt-br.json | 2 +- package.nls.ru.json | 2 +- package.nls.tr.json | 2 +- package.nls.zh-cn.json | 2 +- package.nls.zh-tw.json | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/package.nls.cs.json b/package.nls.cs.json index fe937ba06..22f48c34a 100644 --- a/package.nls.cs.json +++ b/package.nls.cs.json @@ -121,7 +121,7 @@ "configuration.razor.languageServer.debug": "Určuje, jestli se má při spouštění jazykového serveru čekat na připojení ladění.", "configuration.razor.languageServer.directory": "Přepíše cestu k adresáři jazykového serveru Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(EXPERIMENTÁLNÍ) Povolit kombinované generování kódu v době návrhu / za běhu pro soubory Razor", - "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.razor.languageServer.suppressLspErrorToasts": "Potlačí zobrazování informačních zpráv o chybách, pokud na serveru dojde k chybě, ze které se dá zotavit.", "configuration.razor.server.trace": "Určuje úroveň protokolování, která se má použít pro server Razor.", "debuggers.coreclr.configurationSnippets.description.attach": "Připojte ladicí program .NET (coreclr) ke spuštěným procesům. Můžete to provést také pomocí příkazu „Připojit k procesu .NET 5+ nebo .NET Core“.", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Tento fragment kódu se používá ke spuštění nového procesu v ladicím programu Blazor WebAssembly (blazorwasm), který určuje cestu ke spustitelnému souboru, který se má spustit. Ve většině případů je „.NET: Spustit projekt jazyka C#“ fragment kódu lepší volbou, ale tento fragment kódu lze použít k úplné kontrole nad všemi možnostmi spuštění. Tento fragment kódu je pro hostované projekty Blazor, což je projekt, který má back-endovou aplikaci ASP.NET Core pro obsluhu svých souborů.", diff --git a/package.nls.de.json b/package.nls.de.json index 2cfa61318..0241ba93f 100644 --- a/package.nls.de.json +++ b/package.nls.de.json @@ -121,7 +121,7 @@ "configuration.razor.languageServer.debug": "Gibt an, ob beim Starten des Sprachservers auf die Debuganfügung gewartet werden soll.", "configuration.razor.languageServer.directory": "Überschreibt den Pfad zum Razor-Sprachserver-Verzeichnis.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(EXPERIMENTELL) Kombinierte Entwurfszeit-/Runtime-Codegenerierung für Razor-Dateien aktivieren", - "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.razor.languageServer.suppressLspErrorToasts": "Unterdrückt, dass Fehler-Popups angezeigt werden, wenn auf dem Server ein wiederherstellbarer Fehler auftritt.", "configuration.razor.server.trace": "Gibt den Protokolliergrad an, der für den Razor-Server verwendet werden soll.", "debuggers.coreclr.configurationSnippets.description.attach": "Fügen Sie den .NET-Debugger (coreclr) an einen laufenden Prozess an. Dies kann auch mit dem Befehl \"An einen .NET 5+- oder .NET Core-Prozess anfügen\" erfolgen.", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Dieser Codeschnipsel wird verwendet, um einen neuen Prozess unter dem Blazor WebAssembly-Debugger (blazorwasm) zu starten. Dabei wird der Pfad zu der ausführbaren Datei angegeben, die gestartet werden soll. In den meisten Fällen ist der Codeschnipsel \".NET: C#-Projekt starten\" die bessere Wahl. Dieser Codeschnipsel kann jedoch verwendet werden, um Vollzugriff auf alle Startoptionen zu erhalten. Dieser Codeschnipsel ist für gehostete Blazor-Projekte vorgesehen. Dabei handelt es sich um ein Projekt, das im Back-End über eine ASP.NET Core-App zum Verarbeiten der Dateien verfügt.", diff --git a/package.nls.es.json b/package.nls.es.json index 2bdca9f69..38cec442b 100644 --- a/package.nls.es.json +++ b/package.nls.es.json @@ -121,7 +121,7 @@ "configuration.razor.languageServer.debug": "Especifica si se debe esperar a que se adjunte la depuración al iniciar el servidor de lenguaje.", "configuration.razor.languageServer.directory": "Invalida la ruta de acceso al directorio del servidor de lenguaje Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(EXPERIMENTAL) Habilitación de la generación de código en tiempo de ejecución y tiempo de diseño combinado para archivos de Razor", - "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suprime la visualización de notificaciones del sistema de error si el servidor encuentra un error recuperable.", "configuration.razor.server.trace": "Especifica el nivel de registro que se va a usar para el servidor Razor.", "debuggers.coreclr.configurationSnippets.description.attach": "Adjunte el depurador de .NET (coreclr) a un proceso en ejecución. Esto también se puede hacer mediante el comando \"Asociar a un proceso de .NET 5+ o .NET Core\".", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Este fragmento de código se usa para iniciar un nuevo proceso en el depurador Blazor WebAssembly (blazorwasm), especificando la ruta de acceso al ejecutable que se va a iniciar. En la mayoría de los casos, \".NET: Launch C# project\" (Iniciar proyecto de C#) es una mejor opción, pero este fragmento de código se puede usar para tener control total sobre todas las opciones de inicio. Este fragmento de código es para proyectos de Blazor hospedados, que es un proyecto que tiene un back-end ASP.NET aplicación Core para atender sus archivos.", diff --git a/package.nls.fr.json b/package.nls.fr.json index f4fd2f5a5..fc4f02ea9 100644 --- a/package.nls.fr.json +++ b/package.nls.fr.json @@ -121,7 +121,7 @@ "configuration.razor.languageServer.debug": "Spécifie s’il faut attendre l’attachement du débogage au lancement du serveur de langage.", "configuration.razor.languageServer.directory": "Remplace le chemin d’accès au répertoire du serveur de langage Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(EXPÉRIMENTAL) Activer la génération combinée de code au moment de la conception/à l’exécution pour les fichiers Razor", - "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.razor.languageServer.suppressLspErrorToasts": "Supprime l’affichage des notifications toast d’erreur si le serveur a rencontré une erreur récupérable.", "configuration.razor.server.trace": "Spécifie le niveau de journalisation à utiliser pour le serveur Razor.", "debuggers.coreclr.configurationSnippets.description.attach": "Attachez le débogueur .NET (coreclr) à un processus en cours d'exécution. Cela peut également être fait à l'aide de la commande « Attacher à un processus .NET 5+ ou .NET Core ».", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Cet extrait est utilisé pour lancer un nouveau processus sous le débogueur Blazor WebAssembly (blazorwasm), en spécifiant le chemin d'accès à l'exécutable à lancer. Dans la plupart des cas, le \".NET : L'extrait \"Lancer le projet C#\" est un meilleur choix, mais cet extrait peut être utilisé pour avoir un contrôle total sur toutes les options de lancement. Cet extrait est destiné aux projets Blazor hébergés, qui sont un projet doté d'une application backend ASP.NET Core pour servir ses fichiers.", diff --git a/package.nls.it.json b/package.nls.it.json index 10ad928fd..158dcaea1 100644 --- a/package.nls.it.json +++ b/package.nls.it.json @@ -121,7 +121,7 @@ "configuration.razor.languageServer.debug": "Specifica se attendere il collegamento di debug all'avvio del server di linguaggio.", "configuration.razor.languageServer.directory": "Esegue l'override del percorso della directory del server di linguaggio Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(SPERIMENTALE) Abilita la generazione combinata di codice in fase di progettazione/runtime per i file Razor", - "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.razor.languageServer.suppressLspErrorToasts": "Impedisce la visualizzazione degli avvisi popup di errore se il server rileva un errore reversibile.", "configuration.razor.server.trace": "Specifica il livello di registrazione da utilizzare per il server Razor.", "debuggers.coreclr.configurationSnippets.description.attach": "Collegare il debugger .NET (coreclr) a un processo in esecuzione. Questa operazione può essere eseguita anche utilizzando il comando \"Collega a un processo .NET 5+ o .NET Core\".", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Questo frammento di codice viene usato per avviare un nuovo processo nel debugger Blazor WebAssembly (blazorwasm), specificando il percorso dell'eseguibile da avviare. Nella maggior parte dei casi, il frammento di codice \".NET: Il frammento di codice Launch C# project\" è una scelta migliore, ma può essere utilizzato per avere il controllo completo su tutte le opzioni di avvio. Questo frammento di codice riguarda i progetti Blazor ospitati, ovvero un progetto che dispone di un'app ASP.NET Core back-end per gestire i file.", diff --git a/package.nls.ja.json b/package.nls.ja.json index 912e7ac24..793dbc7c7 100644 --- a/package.nls.ja.json +++ b/package.nls.ja.json @@ -121,7 +121,7 @@ "configuration.razor.languageServer.debug": "言語サーバーの起動時にデバッグ アタッチを待機するかどうかを指定します。", "configuration.razor.languageServer.directory": "Razor Language Server ディレクトリへのパスをオーバーライドします。", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(試験段階) Razor ファイルのデザイン時間/ランタイム コード生成の併用を有効にする", - "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.razor.languageServer.suppressLspErrorToasts": "サーバーで回復可能なエラーが発生した場合に、エラー トーストが表示されないようにします。", "configuration.razor.server.trace": "Razor サーバーに使用するログ レベルを指定します。", "debuggers.coreclr.configurationSnippets.description.attach": "実行中のプロセスに .NET デバッガー (coreclr) をアタッチします。これは、'.NET 5 以降または .NET Core プロセスにアタッチする' コマンドを使用して行うこともできます。", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "このスニペットは、起動する実行可能ファイルへのパスを指定して、Blazor WebAssembly デバッガー (blazorwasm) で新しいプロセスを起動するために使用されます。ほとんどの場合、\".NET: Launch C# プロジェクト\" スニペットの方が適切ですが、このスニペットを使用すると、すべての起動オプションを完全に制御できます。このスニペットは、ホストされている Blazor プロジェクト用です。これは、ファイルを提供するバックエンド ASP.NET Core アプリを持つプロジェクトです。", diff --git a/package.nls.ko.json b/package.nls.ko.json index 767356a13..7724437f8 100644 --- a/package.nls.ko.json +++ b/package.nls.ko.json @@ -121,7 +121,7 @@ "configuration.razor.languageServer.debug": "언어 서버를 시작할 때 디버그 연결을 기다릴지 여부를 지정합니다.", "configuration.razor.languageServer.directory": "Razor 언어 서버 디렉터리의 경로를 재정의합니다.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(실험적) Razor 파일에 대해 결합된 디자인 타임/런타임 코드 생성 사용", - "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.razor.languageServer.suppressLspErrorToasts": "서버에서 복구 가능한 오류가 발생하는 경우 오류 알림이 표시되지 않도록 합니다.", "configuration.razor.server.trace": "Razor 서버에 사용할 로깅 수준을 지정합니다.", "debuggers.coreclr.configurationSnippets.description.attach": "실행 중인 프로세스에 .NET 디버거(coreclr)를 연결합니다. 이 작업은 'Attach to a .NET 5+ or .NET Core process' 명령을 사용하여 수행할 수도 있습니다.", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "이 코드 조각은 Blazor WebAssembly 디버거(blazorwasm) 아래에서 새 프로세스를 시작하는 데 사용되며, 실행 파일의 경로를 지정합니다. 대부분의 경우 \".NET: Launch C# project\" 코드 조각이 더 나은 선택이지만, 이 코드 조각을 사용하면 모든 시작 옵션을 완전히 제어할 수 있습니다. 이 코드 조각은 파일을 처리할 백 엔드 ASP.NET Core 앱이 있는 프로젝트인 호스트된 Blazor 프로젝트용입니다.", diff --git a/package.nls.pl.json b/package.nls.pl.json index d5fba139c..418e9c109 100644 --- a/package.nls.pl.json +++ b/package.nls.pl.json @@ -121,7 +121,7 @@ "configuration.razor.languageServer.debug": "Określa, czy czekać na dołączenie debugowania podczas uruchamiania serwera języka.", "configuration.razor.languageServer.directory": "Przesłania ścieżkę do katalogu serwera języka Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(EKSPERYMENTALNE) Włącz łączny czas projektowania/generowanie kodu środowiska uruchomieniowego dla plików Razor", - "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.razor.languageServer.suppressLspErrorToasts": "Pomija wyświetlanie wyskakujących powiadomień o błędach, jeśli serwer napotka błąd do odzyskania.", "configuration.razor.server.trace": "Określa poziom rejestrowania, który ma być używany dla serwera Razor.", "debuggers.coreclr.configurationSnippets.description.attach": "Dołącz debuger platformy .NET (coreclr) do uruchomionego procesu. Można to również zrobić za pomocą polecenia „Dołącz do procesu .NET 5+ lub .NET Core”.", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Ten fragment kodu służy do uruchamiania nowego procesu w debugerze zestawu WebAssembly platformy Blazor (blazorwasm), określając ścieżkę do pliku wykonywalnego do uruchomienia. W większości przypadków „.NET: Fragment kodu „Launch C# project” (Uruchom projekt C#) jest lepszym wyborem, ale za pomocą tego fragmentu kodu można mieć pełną kontrolę nad wszystkimi opcjami uruchamiania. Ten fragment kodu jest przeznaczony dla hostowanych projektów Platformy Blazor, czyli projektu, który ma zaplecze ASP.NET aplikacji Core do obsługi plików.", diff --git a/package.nls.pt-br.json b/package.nls.pt-br.json index 135dcc54d..c85b6a650 100644 --- a/package.nls.pt-br.json +++ b/package.nls.pt-br.json @@ -121,7 +121,7 @@ "configuration.razor.languageServer.debug": "Especifica se é preciso aguardar o anexo de depuração ao iniciar o servidor de linguagem.", "configuration.razor.languageServer.directory": "Substitui o caminho para o diretório do Servidor de Linguagem Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(EXPERIMENTAL) Habilitar geração de código de tempo de design/tempo de execução combinado para arquivos Razor", - "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.razor.languageServer.suppressLspErrorToasts": "Suprime a exibição de notificações do erro se o servidor encontrar um erro recuperável.", "configuration.razor.server.trace": "Especifica o nível de log a ser usado para o servidor Razor.", "debuggers.coreclr.configurationSnippets.description.attach": "Anexe o depurador do .NET (coreclr) a um processo em execução. Isso também pode ser feito usando o comando 'Anexar a um processo do .NET 5+ ou do .NET Core'.", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Esse snippet é usado para iniciar um novo processo no depurador Blazor WebAssembly (blazorwasm), especificando o caminho para o executável a ser iniciado. Na maioria dos casos, o \".NET: O snippet de inicialização do projeto C# é uma opção melhor, mas esse snippet pode ser usado para ter controle total sobre todas as opções de inicialização. Esse snippet é para projetos hospedados do Blazor, que é um projeto que tem um aplicativo ASP.NET Core de back-end para atender aos seus arquivos.", diff --git a/package.nls.ru.json b/package.nls.ru.json index 56fc5e571..fb0250e8a 100644 --- a/package.nls.ru.json +++ b/package.nls.ru.json @@ -121,7 +121,7 @@ "configuration.razor.languageServer.debug": "Указывает, следует ли ожидать подключения отладки при запуске языкового сервера.", "configuration.razor.languageServer.directory": "Переопределяет путь к каталогу языкового сервера Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(ЭКСПЕРИМЕНТАЛЬНАЯ ФУНКЦИЯ) Включение комбинированной генерации кода во время разработки и во время выполнения для файлов Razor", - "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.razor.languageServer.suppressLspErrorToasts": "Подавляет появление всплывающих сообщений об ошибках, если сервер обнаруживает устранимую ошибку.", "configuration.razor.server.trace": "Задает уровень ведения журнала, который будет использоваться для сервера Razor.", "debuggers.coreclr.configurationSnippets.description.attach": "Присоедините отладчик .NET (coreclr) к запущенному процессу. Это также можно сделать с помощью команды \"Присоединение к процессу .NET 5+ или .NET Core\".", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Этот фрагмент кода используется для запуска нового процесса в отладчике Blazor WebAssembly (blazorwasm), указывая путь к исполняемому файлу для запуска. В большинстве случаев фрагмент кода \".NET: запуск проекта C#\" является более оптимальным вариантом, но этот фрагмент можно использовать для полного управления всеми параметрами запуска. Этот фрагмент кода предназначен для размещенных проектов Blazor, которые используют серверное приложение ASP.NET Core для обработки своих файлов.", diff --git a/package.nls.tr.json b/package.nls.tr.json index 4ff692ccc..92e210d99 100644 --- a/package.nls.tr.json +++ b/package.nls.tr.json @@ -121,7 +121,7 @@ "configuration.razor.languageServer.debug": "Dil sunucusunu başlatırken hata ayıklama eklemesinin beklenip beklenmeyeceğini belirtir.", "configuration.razor.languageServer.directory": "Razor Dil Sunucusu dizininin yolunu geçersiz kılıyor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(DENEYSEL) Razor dosyaları için birleşik tasarım zamanı/çalışma zamanı kodu oluşturmayı etkinleştirin", - "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.razor.languageServer.suppressLspErrorToasts": "Sunucu kurtarılabilir bir hatayla karşılaştığında hata bildirimlerinin görünmesini engeller.", "configuration.razor.server.trace": "Razor sunucusu için kullanılacak günlük kaydı düzeyini belirtir.", "debuggers.coreclr.configurationSnippets.description.attach": ".NET hata ayıklayıcısını (coreclr) çalışan bir işleme ekleyin. Bu, '.NET 5+ veya .NET Core işlemine ekle' komutu kullanılarak da kullanılabilir.", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "Bu kod parçacığı, Blazor WebAssembly hata ayıklayıcısı (blazorwasm) altında, başlatılacak yürütülebilir dosyanın yolunu belirten yeni bir işlemi başlatmak için kullanılır. Çoğu durumda, \".NET: C# projesini başlat\" kod parçacığı daha iyi bir seçimdir, ancak bu kod parçacığı tüm başlatma seçenekleri üzerinde tam denetime sahip olmak için kullanılabilir. Bu kod parçacığı dosyalarını sunmak için arka uç ASP.NET Core uygulamasına sahip bir proje olan, barındırılan Blazor projeleri içindir.", diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json index 8244f7df6..6a72747fe 100644 --- a/package.nls.zh-cn.json +++ b/package.nls.zh-cn.json @@ -121,7 +121,7 @@ "configuration.razor.languageServer.debug": "指定在启动语言服务器时是否等待调试附加。", "configuration.razor.languageServer.directory": "重写 Razor 语言服务器目录的路径。", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(试验性)为 Razor 文件启用组合设计时/运行时代码生成", - "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.razor.languageServer.suppressLspErrorToasts": "当服务器遇到可恢复错误时,禁止显示错误 toast。", "configuration.razor.server.trace": "指定要用于 Razor 服务器的日志记录级别。", "debuggers.coreclr.configurationSnippets.description.attach": "将 .NET 调试器 (coreclr) 附加到正在运行的进程。也可以使用“附加到 .NET 5+ 或 .NET Core 进程”命令完成此操作。", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "此代码片段用于在 Blazor WebAssembly 调试器 (blazorwasm) 下启动新进程,指定要启动的可执行文件的路径。在大多数情况下,“.NET: 启动 C# 项目”代码片段是更好的选择,但此代码片段可用于完全控制所有启动选项。此代码片段适用于托管的 Blazor 项目,该项目具有后端 ASP.NET 核心应用以提供其文件。", diff --git a/package.nls.zh-tw.json b/package.nls.zh-tw.json index 11f762d33..c5d712fb8 100644 --- a/package.nls.zh-tw.json +++ b/package.nls.zh-tw.json @@ -121,7 +121,7 @@ "configuration.razor.languageServer.debug": "指定啟動語言伺服器時,是否要等候偵錯附加。", "configuration.razor.languageServer.directory": "覆寫 Razor 語言伺服器目錄的路徑。", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(實驗性) 啟用適用於 Razor 檔案的合併設計階段/執行階段程式碼產生", - "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.razor.languageServer.suppressLspErrorToasts": "如果伺服器發生可復原的錯誤,隱藏不顯示錯誤快顯通知。", "configuration.razor.server.trace": "指定要用於 Razor 伺服器的記錄層級。", "debuggers.coreclr.configurationSnippets.description.attach": "將 .NET 偵錯工具 (coreclr) 連結到執行中的流程。這也可以使用 'Attach to a .NET 5+ or .NET Core process' 命令來完成。", "debuggers.coreclr.configurationSnippets.description.blazor-hosted": "此程式碼片段可用來啟動 Blazor WebAssembly 偵錯工具 (blazorwasm) 下的新流程,並指定要啟動之可執行檔的路徑。在大部分情況下,「.NET: Launch C# project」程式碼片段是較佳的選擇,但此程式碼片段可用來完全控制所有啟動選項。此程式碼片段適用於裝載的 Blazor 專案,該專案是具有後端 ASP.NET Core 應用程式以提供其檔案服務的專案。", From c2ec1e4e94996fec74aebd3ffcd7c351a4cc995f Mon Sep 17 00:00:00 2001 From: Gregg Miskelly Date: Wed, 9 Oct 2024 09:43:04 -0700 Subject: [PATCH 20/79] Update debugger to 2.52.0 (#7648) This PR updates the debugger to the 2.52.0 version. Two highlights: 1. Make a fix to the async user-unhandled exception feature so that the debugger will not stop when a non-user async method implicitly catches and rethrows an exception. 2. Update the debugger to run on top of the 8.0.10 version of the .NET Runtime. --- package.json | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 619d3f5f3..530ba20a4 100644 --- a/package.json +++ b/package.json @@ -420,7 +420,7 @@ { "id": "Debugger", "description": ".NET Core Debugger (Windows / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-50-0/coreclr-debug-win7-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-win7-x64.zip", "installPath": ".debugger/x86_64", "platforms": [ "win32" @@ -430,12 +430,12 @@ "arm64" ], "installTestPath": "./.debugger/x86_64/vsdbg-ui.exe", - "integrity": "AFA82E9A8C244FA614A3ACDABCF5B7C9703811393D18E2125C2018E32D08FD6F" + "integrity": "65431717FC1BF1F3CDA4E2ABE4E42A67564C4F6A4A0A7A38D0EC2120AB3E53E4" }, { "id": "Debugger", "description": ".NET Core Debugger (Windows / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-50-0/coreclr-debug-win10-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-win10-arm64.zip", "installPath": ".debugger/arm64", "platforms": [ "win32" @@ -444,12 +444,12 @@ "arm64" ], "installTestPath": "./.debugger/arm64/vsdbg-ui.exe", - "integrity": "73D9ACB6697CC483F3FBDA562EA434316ED2DD876BCD8E313624CD20F2DE808B" + "integrity": "F2D3A2E45A749D714EA165EF939C955E4BE3B99C7A82919B2563E38733F2C135" }, { "id": "Debugger", "description": ".NET Core Debugger (macOS / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-50-0/coreclr-debug-osx-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-osx-x64.zip", "installPath": ".debugger/x86_64", "platforms": [ "darwin" @@ -463,12 +463,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/x86_64/vsdbg-ui", - "integrity": "49BBC3A34AD5B993BA2A10735785F709E7C3DFE3A434BE88917959211F03E501" + "integrity": "417C7D0477B0ABC04F5AD296100BDDA754B0BB513329206BA096A568CA9A846B" }, { "id": "Debugger", "description": ".NET Core Debugger (macOS / arm64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-50-0/coreclr-debug-osx-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-osx-arm64.zip", "installPath": ".debugger/arm64", "platforms": [ "darwin" @@ -481,12 +481,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/arm64/vsdbg-ui", - "integrity": "5007BB60158E593C1C559CFDCDAF93CCC4BB84D7971656494B301263D822BD04" + "integrity": "84A4DAA9420B9734585845317CC920CD75AAFF4C740ED4619870D1EFD9375498" }, { "id": "Debugger", "description": ".NET Core Debugger (linux / ARM)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-50-0/coreclr-debug-linux-arm.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-linux-arm.zip", "installPath": ".debugger", "platforms": [ "linux" @@ -499,12 +499,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "2D68C4C2D2EDB7BC7B27F542E3021B0F813445C9DE268BA2A316F02107233167" + "integrity": "EDF8B6D14FE42C4732ADFA0794A550D0BE71B6F5CD18D4636132B4DFED76B7DA" }, { "id": "Debugger", "description": ".NET Core Debugger (linux / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-50-0/coreclr-debug-linux-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-linux-arm64.zip", "installPath": ".debugger", "platforms": [ "linux" @@ -517,12 +517,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "0F8782168C76C939135A0FB14B682A582170B0A1606242D44BD1A37E6ACCE936" + "integrity": "381D1496318B854BB6C3544D7D0D51C9356618D6BEF33438EB26F13FA4DB8AF4" }, { "id": "Debugger", "description": ".NET Core Debugger (linux musl / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-50-0/coreclr-debug-linux-musl-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-linux-musl-x64.zip", "installPath": ".debugger", "platforms": [ "linux-musl" @@ -535,12 +535,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "CB7ADA2C813F1008282534150967E379767477C1BFD63C21419E0A02F59FD71D" + "integrity": "C7D9B3FCB947798540F24C3784604367CA51C2D52AE69C515525DD7DCA5C1C17" }, { "id": "Debugger", "description": ".NET Core Debugger (linux musl / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-50-0/coreclr-debug-linux-musl-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-linux-musl-arm64.zip", "installPath": ".debugger", "platforms": [ "linux-musl" @@ -553,12 +553,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "24C70056FAC4F87396BCE795A2CB8BB10CCB0F652CEFAAF0B63CF05360E90192" + "integrity": "6D69141D92DF968755D36FABB73C34F8232108E0B563D3B20A59CFD1FF1BBDD2" }, { "id": "Debugger", "description": ".NET Core Debugger (linux / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-50-0/coreclr-debug-linux-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-linux-x64.zip", "installPath": ".debugger", "platforms": [ "linux" @@ -571,7 +571,7 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "FFBDE7002BA9C1532989BB0145333DBD6527173395D58D389302968B72849214" + "integrity": "A35AB54ED50822DBB98BA10A1065FEF9EA7BE49406291DFE6D74E116EBECF177" }, { "id": "RazorOmnisharp", From b2526a89e488589a3d6fcaf5e76bf5dd2a5235ab Mon Sep 17 00:00:00 2001 From: David Barbet Date: Wed, 9 Oct 2024 13:53:33 -0700 Subject: [PATCH 21/79] Require at least version 8.0.10 of the .net runtime --- src/lsptoolshost/dotnetRuntimeExtensionResolver.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lsptoolshost/dotnetRuntimeExtensionResolver.ts b/src/lsptoolshost/dotnetRuntimeExtensionResolver.ts index 219830908..5c458d22c 100644 --- a/src/lsptoolshost/dotnetRuntimeExtensionResolver.ts +++ b/src/lsptoolshost/dotnetRuntimeExtensionResolver.ts @@ -16,7 +16,7 @@ import { getDotnetInfo } from '../shared/utils/getDotnetInfo'; import { readFile } from 'fs/promises'; import { RuntimeInfo } from '../shared/utils/dotnetInfo'; -export const DotNetRuntimeVersion = '8.0'; +export const DotNetRuntimeVersion = '8.0.10'; interface IDotnetAcquireResult { dotnetPath: string; @@ -166,7 +166,7 @@ export class DotnetRuntimeExtensionResolver implements IHostExecutableResolver { } // Verify that the dotnet we found includes a runtime version that is compatible with our requirement. - const requiredRuntimeVersion = semver.parse(`${DotNetRuntimeVersion}.0`); + const requiredRuntimeVersion = semver.parse(`${DotNetRuntimeVersion}`); if (!requiredRuntimeVersion) { throw new Error(`Unable to parse minimum required version ${DotNetRuntimeVersion}`); } From d31f7773c40f2d61e214ff477ebf8f6d29e99289 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Fri, 4 Oct 2024 01:06:16 -0700 Subject: [PATCH 22/79] Warn in the statusbar when the active file is not part of the open workspace. --- src/lsptoolshost/languageStatusBar.ts | 23 ++++++++++++++++++- src/lsptoolshost/roslynProtocol.ts | 7 ++++++ .../services/projectContextService.ts | 8 ++++++- 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/lsptoolshost/languageStatusBar.ts b/src/lsptoolshost/languageStatusBar.ts index d0d9024c6..b2d50cd3b 100644 --- a/src/lsptoolshost/languageStatusBar.ts +++ b/src/lsptoolshost/languageStatusBar.ts @@ -10,12 +10,20 @@ import { languageServerOptions } from '../shared/options'; import { ServerState } from './serverStateChange'; import { getCSharpDevKit } from '../utils/getCSharpDevKit'; import { RazorLanguage } from '../razor/src/razorLanguage'; +import { VSWorkspaceKind } from './roslynProtocol'; + +let currentServerState: ServerState = ServerState.Stopped; export function registerLanguageStatusItems( context: vscode.ExtensionContext, languageServer: RoslynLanguageServer, languageServerEvents: RoslynLanguageServerEvents ) { + // Track the current server state. + languageServerEvents.onServerStateChange((e) => { + currentServerState = e.state; + }); + // DevKit will provide an equivalent workspace status item. if (!getCSharpDevKit()) { WorkspaceStatus.createStatusItem(context, languageServerEvents); @@ -44,6 +52,8 @@ class WorkspaceStatus { const item = vscode.languages.createLanguageStatusItem('csharp.workspaceStatus', documentSelector); item.name = vscode.l10n.t('C# Workspace Status'); + item.severity = vscode.LanguageStatusSeverity.Error; + item.command = openSolutionCommand; context.subscriptions.push(item); languageServerEvents.onServerStateChange((e) => { @@ -51,7 +61,7 @@ class WorkspaceStatus { item.busy = e.state === ServerState.ProjectInitializationStarted; item.severity = e.state === ServerState.Stopped - ? vscode.LanguageStatusSeverity.Warning + ? vscode.LanguageStatusSeverity.Error : vscode.LanguageStatusSeverity.Information; item.command = e.state === ServerState.Stopped ? restartServerCommand : openSolutionCommand; }); @@ -73,6 +83,17 @@ class ProjectContextStatus { projectContextService.onActiveFileContextChanged((e) => { item.text = e.context._vs_label; + + // Show a warning when the active file is part of the Miscellaneous File workspace and + // project initialization is complete. + if (currentServerState === ServerState.ProjectInitializationComplete) { + item.severity = + e.context._vs_workspace_kind === VSWorkspaceKind.MiscellaneousFiles + ? vscode.LanguageStatusSeverity.Warning + : vscode.LanguageStatusSeverity.Information; + } else { + item.severity = vscode.LanguageStatusSeverity.Information; + } }); // Trigger a refresh, but don't block creation on the refresh completing. diff --git a/src/lsptoolshost/roslynProtocol.ts b/src/lsptoolshost/roslynProtocol.ts index 9ba43d4af..74bafb212 100644 --- a/src/lsptoolshost/roslynProtocol.ts +++ b/src/lsptoolshost/roslynProtocol.ts @@ -13,10 +13,17 @@ export interface VSProjectContextList { _vs_defaultIndex: number; } +export enum VSWorkspaceKind { + Unknown = 0, + Host = 1, + MiscellaneousFiles = 2, +} + export interface VSProjectContext { _vs_label: string; _vs_id: string; _vs_kind: string; + _vs_workspace_kind: VSWorkspaceKind; } export interface VSTextDocumentIdentifier extends lsp.TextDocumentIdentifier { diff --git a/src/lsptoolshost/services/projectContextService.ts b/src/lsptoolshost/services/projectContextService.ts index 577b04f82..4cff70ad6 100644 --- a/src/lsptoolshost/services/projectContextService.ts +++ b/src/lsptoolshost/services/projectContextService.ts @@ -5,7 +5,12 @@ import * as vscode from 'vscode'; import { RoslynLanguageServer } from '../roslynLanguageServer'; -import { VSGetProjectContextsRequest, VSProjectContext, VSProjectContextList } from '../roslynProtocol'; +import { + VSGetProjectContextsRequest, + VSProjectContext, + VSProjectContextList, + VSWorkspaceKind, +} from '../roslynProtocol'; import { TextDocumentIdentifier } from 'vscode-languageserver-protocol'; import { UriConverter } from '../uriConverter'; import { LanguageServerEvents } from '../languageServerEvents'; @@ -26,6 +31,7 @@ export class ProjectContextService { _vs_id: '', _vs_kind: '', _vs_label: '', + _vs_workspace_kind: VSWorkspaceKind.Unknown, }; constructor(private _languageServer: RoslynLanguageServer, _languageServerEvents: LanguageServerEvents) { From 53b5c4dfb255b486588d51543a952bf19009694d Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Tue, 8 Oct 2024 00:24:25 -0700 Subject: [PATCH 23/79] Switch to using an IsMiscellaneous propert on ProjectContext --- src/lsptoolshost/languageStatusBar.ts | 8 +++----- src/lsptoolshost/roslynProtocol.ts | 8 +------- src/lsptoolshost/services/projectContextService.ts | 9 ++------- 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/src/lsptoolshost/languageStatusBar.ts b/src/lsptoolshost/languageStatusBar.ts index b2d50cd3b..10e258814 100644 --- a/src/lsptoolshost/languageStatusBar.ts +++ b/src/lsptoolshost/languageStatusBar.ts @@ -10,7 +10,6 @@ import { languageServerOptions } from '../shared/options'; import { ServerState } from './serverStateChange'; import { getCSharpDevKit } from '../utils/getCSharpDevKit'; import { RazorLanguage } from '../razor/src/razorLanguage'; -import { VSWorkspaceKind } from './roslynProtocol'; let currentServerState: ServerState = ServerState.Stopped; @@ -87,10 +86,9 @@ class ProjectContextStatus { // Show a warning when the active file is part of the Miscellaneous File workspace and // project initialization is complete. if (currentServerState === ServerState.ProjectInitializationComplete) { - item.severity = - e.context._vs_workspace_kind === VSWorkspaceKind.MiscellaneousFiles - ? vscode.LanguageStatusSeverity.Warning - : vscode.LanguageStatusSeverity.Information; + item.severity = e.context._vs_is_miscellaneous + ? vscode.LanguageStatusSeverity.Warning + : vscode.LanguageStatusSeverity.Information; } else { item.severity = vscode.LanguageStatusSeverity.Information; } diff --git a/src/lsptoolshost/roslynProtocol.ts b/src/lsptoolshost/roslynProtocol.ts index 74bafb212..c9f88c799 100644 --- a/src/lsptoolshost/roslynProtocol.ts +++ b/src/lsptoolshost/roslynProtocol.ts @@ -13,17 +13,11 @@ export interface VSProjectContextList { _vs_defaultIndex: number; } -export enum VSWorkspaceKind { - Unknown = 0, - Host = 1, - MiscellaneousFiles = 2, -} - export interface VSProjectContext { _vs_label: string; _vs_id: string; _vs_kind: string; - _vs_workspace_kind: VSWorkspaceKind; + _vs_is_miscellaneous: boolean; } export interface VSTextDocumentIdentifier extends lsp.TextDocumentIdentifier { diff --git a/src/lsptoolshost/services/projectContextService.ts b/src/lsptoolshost/services/projectContextService.ts index 4cff70ad6..4a5ef0a10 100644 --- a/src/lsptoolshost/services/projectContextService.ts +++ b/src/lsptoolshost/services/projectContextService.ts @@ -5,12 +5,7 @@ import * as vscode from 'vscode'; import { RoslynLanguageServer } from '../roslynLanguageServer'; -import { - VSGetProjectContextsRequest, - VSProjectContext, - VSProjectContextList, - VSWorkspaceKind, -} from '../roslynProtocol'; +import { VSGetProjectContextsRequest, VSProjectContext, VSProjectContextList } from '../roslynProtocol'; import { TextDocumentIdentifier } from 'vscode-languageserver-protocol'; import { UriConverter } from '../uriConverter'; import { LanguageServerEvents } from '../languageServerEvents'; @@ -31,7 +26,7 @@ export class ProjectContextService { _vs_id: '', _vs_kind: '', _vs_label: '', - _vs_workspace_kind: VSWorkspaceKind.Unknown, + _vs_is_miscellaneous: false, }; constructor(private _languageServer: RoslynLanguageServer, _languageServerEvents: LanguageServerEvents) { From 3562921a427107358d4098c9d1f8cfc146808f48 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Wed, 9 Oct 2024 23:49:31 -0700 Subject: [PATCH 24/79] Update Roslyn to 4.13.0-1.24509.4 --- CHANGELOG.md | 6 ++++++ package.json | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c979c55c..b3e4f374f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # Latest +* Warn when the active file is not part of the open workspace (PR: [#7628](https://github.com/dotnet/vscode-csharp/pull/7628)) +* Update Roslyn to 4.13.0-1.24509.4 (PR: [#7628](https://github.com/dotnet/vscode-csharp/pull/7628)) + * Add a WorkspaceKind property to ProjectContext. (PR: [#75384](https://github.com/dotnet/roslyn/pull/75384)) + * Convert more lambda rude edits to runtime rude edits (PR: [#75285](https://github.com/dotnet/roslyn/pull/75285)) + +# 2.51.x * Bumped xamltools to 17.12.35403.211 (PR: [#7629](https://github.com/dotnet/vscode-csharp/pull/7629)) * Update Roslyn to 4.13.0-1.24503.11 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) * LSP hover responses escape backticks within inline code (PR: [#75364](https://github.com/dotnet/roslyn/pull/75364)) diff --git a/package.json b/package.json index 530ba20a4..4a4ebb5f2 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ } }, "defaults": { - "roslyn": "4.13.0-1.24503.11", + "roslyn": "4.13.0-1.24509.4", "omniSharp": "1.39.11", "razor": "9.0.0-preview.24480.1", "razorOmnisharp": "7.0.0-preview.23363.1", @@ -5597,4 +5597,4 @@ } } } -} \ No newline at end of file +} From 84eb99fda7090f6bf94230ae4fdc7c7b021bc235 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Thu, 10 Oct 2024 01:57:05 -0700 Subject: [PATCH 25/79] Add miscellaneous file open notifications --- l10n/bundle.l10n.json | 4 ++ src/lsptoolshost/languageStatusBar.ts | 9 +-- src/lsptoolshost/miscellaneousFileNotifier.ts | 65 +++++++++++++++++++ src/lsptoolshost/roslynLanguageServer.ts | 19 +++++- 4 files changed, 87 insertions(+), 10 deletions(-) create mode 100644 src/lsptoolshost/miscellaneousFileNotifier.ts diff --git a/l10n/bundle.l10n.json b/l10n/bundle.l10n.json index 5cd775f7c..ef183d28c 100644 --- a/l10n/bundle.l10n.json +++ b/l10n/bundle.l10n.json @@ -172,6 +172,10 @@ "C# configuration has changed. Would you like to reload the window to apply your changes?": "C# configuration has changed. Would you like to reload the window to apply your changes?", "Nested Code Action": "Nested Code Action", "Fix All: ": "Fix All: ", + "{0} is not part of the open workspace. Not all language features will be available.": "{0} is not part of the open workspace. Not all language features will be available.", + "Dismiss": "Dismiss", + "Do not show for this workspace": "Do not show for this workspace", + "Do not show again": "Do not show again", "Open solution": "Open solution", "Restart server": "Restart server", "C# Workspace Status": "C# Workspace Status", diff --git a/src/lsptoolshost/languageStatusBar.ts b/src/lsptoolshost/languageStatusBar.ts index 10e258814..9341ce65b 100644 --- a/src/lsptoolshost/languageStatusBar.ts +++ b/src/lsptoolshost/languageStatusBar.ts @@ -11,18 +11,11 @@ import { ServerState } from './serverStateChange'; import { getCSharpDevKit } from '../utils/getCSharpDevKit'; import { RazorLanguage } from '../razor/src/razorLanguage'; -let currentServerState: ServerState = ServerState.Stopped; - export function registerLanguageStatusItems( context: vscode.ExtensionContext, languageServer: RoslynLanguageServer, languageServerEvents: RoslynLanguageServerEvents ) { - // Track the current server state. - languageServerEvents.onServerStateChange((e) => { - currentServerState = e.state; - }); - // DevKit will provide an equivalent workspace status item. if (!getCSharpDevKit()) { WorkspaceStatus.createStatusItem(context, languageServerEvents); @@ -85,7 +78,7 @@ class ProjectContextStatus { // Show a warning when the active file is part of the Miscellaneous File workspace and // project initialization is complete. - if (currentServerState === ServerState.ProjectInitializationComplete) { + if (languageServer.state === ServerState.ProjectInitializationComplete) { item.severity = e.context._vs_is_miscellaneous ? vscode.LanguageStatusSeverity.Warning : vscode.LanguageStatusSeverity.Information; diff --git a/src/lsptoolshost/miscellaneousFileNotifier.ts b/src/lsptoolshost/miscellaneousFileNotifier.ts new file mode 100644 index 000000000..e5a4576d9 --- /dev/null +++ b/src/lsptoolshost/miscellaneousFileNotifier.ts @@ -0,0 +1,65 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as vscode from 'vscode'; +import { RoslynLanguageServer } from './roslynLanguageServer'; +import { ActionOption, showWarningMessage } from '../shared/observers/utils/showMessage'; +import { ServerState } from './serverStateChange'; +import path = require('path'); + +const NotifyMiscellaneousFilesOption = 'dotnet.miscellaneousFilesNotification.enabled'; +const RecentlyNotifiedDocuments = new Set(); +const CooldownTime = 60 * 1000; + +export function registerMiscellaneousFileNotifier( + context: vscode.ExtensionContext, + languageServer: RoslynLanguageServer +) { + context.workspaceState.update(NotifyMiscellaneousFilesOption, undefined); + context.globalState.update(NotifyMiscellaneousFilesOption, undefined); + + languageServer._projectContextService.onActiveFileContextChanged((e) => { + if (RecentlyNotifiedDocuments.has(e.uri)) { + return; + } + + if (!e.context._vs_is_miscellaneous || languageServer.state !== ServerState.ProjectInitializationComplete) { + return; + } + + if (!context.globalState.get(NotifyMiscellaneousFilesOption, true)) { + return; + } + + if (!context.workspaceState.get(NotifyMiscellaneousFilesOption, true)) { + return; + } + + RecentlyNotifiedDocuments.add(e.uri); + + const message = vscode.l10n.t( + '{0} is not part of the open workspace. Not all language features will be available.', + path.basename(e.uri.fsPath) + ); + const dismissItem = vscode.l10n.t('Dismiss'); + const disableWorkspace: ActionOption = { + title: vscode.l10n.t('Do not show for this workspace'), + action: async () => { + context.workspaceState.update(NotifyMiscellaneousFilesOption, false); + }, + }; + const disableGlobal: ActionOption = { + title: vscode.l10n.t('Do not show again'), + action: async () => { + context.globalState.update(NotifyMiscellaneousFilesOption, false); + }, + }; + showWarningMessage(vscode, message, disableWorkspace, disableGlobal, dismissItem); + + setTimeout(() => { + RecentlyNotifiedDocuments.delete(e.uri); + }, CooldownTime); + }); +} diff --git a/src/lsptoolshost/roslynLanguageServer.ts b/src/lsptoolshost/roslynLanguageServer.ts index 83f11799b..817321b9d 100644 --- a/src/lsptoolshost/roslynLanguageServer.ts +++ b/src/lsptoolshost/roslynLanguageServer.ts @@ -75,6 +75,7 @@ import { showInformationMessage, } from '../shared/observers/utils/showMessage'; import { registerSourceGeneratedFilesContentProvider } from './sourceGeneratedFilesContentProvider'; +import { registerMiscellaneousFileNotifier } from './miscellaneousFileNotifier'; let _channel: vscode.OutputChannel; let _traceChannel: vscode.OutputChannel; @@ -115,8 +116,10 @@ export class RoslynLanguageServer { public readonly _onAutoInsertFeature: OnAutoInsertFeature; - public _buildDiagnosticService: BuildDiagnosticsService; - public _projectContextService: ProjectContextService; + public readonly _buildDiagnosticService: BuildDiagnosticsService; + public readonly _projectContextService: ProjectContextService; + + private _state: ServerState = ServerState.Stopped; constructor( private _languageClient: RoslynLanguageClient, @@ -129,6 +132,7 @@ export class RoslynLanguageServer { this.registerSendOpenSolution(); this.registerProjectInitialization(); this.registerServerStateChanged(); + this.registerServerStateTracking(); this.registerReportProjectConfiguration(); this.registerExtensionsChanged(); this.registerTelemetryChanged(); @@ -151,6 +155,10 @@ export class RoslynLanguageServer { this._onAutoInsertFeature = new OnAutoInsertFeature(this._languageClient); } + public get state(): ServerState { + return this._state; + } + private registerSetTrace() { // Set the language client trace level based on the log level option. // setTrace only works after the client is already running. @@ -179,6 +187,12 @@ export class RoslynLanguageServer { }); } + private registerServerStateTracking() { + this._languageServerEvents.onServerStateChange((e) => { + this._state = e.state; + }); + } + private registerSendOpenSolution() { this._languageClient.onDidChangeState(async (state) => { if (state.newState === State.Running) { @@ -1053,6 +1067,7 @@ export async function activateRoslynLanguageServer( ); registerLanguageStatusItems(context, languageServer, languageServerEvents); + registerMiscellaneousFileNotifier(context, languageServer); registerCopilotExtension(languageServer, _channel); // Register any commands that need to be handled by the extension. From 52c0fcba731f8cef2028834928e1f54db3563974 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Thu, 10 Oct 2024 12:32:55 -0700 Subject: [PATCH 26/79] Ensure tests use 8.0.10 runtime --- azure-pipelines/prereqs.yml | 4 ++-- azure-pipelines/test-matrix.yml | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/azure-pipelines/prereqs.yml b/azure-pipelines/prereqs.yml index 09285359e..3fd02fba3 100644 --- a/azure-pipelines/prereqs.yml +++ b/azure-pipelines/prereqs.yml @@ -17,9 +17,9 @@ steps: # So we avoid installing .NET in those cases. - ${{ if eq(parameters.installDotNet, true) }}: - task: UseDotNet@2 - displayName: 'Install .NET Core SDKs' + displayName: 'Install .NET SDK' inputs: - version: '8.x' + version: '8.0.403' - script: dotnet --info displayName: Display dotnet info diff --git a/azure-pipelines/test-matrix.yml b/azure-pipelines/test-matrix.yml index dacf360ff..20cd7fb5b 100644 --- a/azure-pipelines/test-matrix.yml +++ b/azure-pipelines/test-matrix.yml @@ -24,7 +24,6 @@ jobs: steps: - template: /azure-pipelines/test.yml@self parameters: - # Prefer the dotnet from the container. - installDotNet: false + installDotNet: true installAdditionalLinuxDependencies: true npmCommand: $(npmCommand) \ No newline at end of file From 890919ecd0dc8bd635633b0c43614ee904d22638 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Thu, 10 Oct 2024 16:16:01 -0700 Subject: [PATCH 27/79] Add setting to suppress notifications. --- l10n/bundle.l10n.json | 3 +- package.json | 5 +++ package.nls.json | 1 + src/lsptoolshost/languageStatusBar.ts | 6 +++ src/lsptoolshost/miscellaneousFileNotifier.ts | 41 ++++++++----------- src/shared/options.ts | 4 ++ 6 files changed, 34 insertions(+), 26 deletions(-) diff --git a/l10n/bundle.l10n.json b/l10n/bundle.l10n.json index ef183d28c..2c1332f49 100644 --- a/l10n/bundle.l10n.json +++ b/l10n/bundle.l10n.json @@ -172,10 +172,9 @@ "C# configuration has changed. Would you like to reload the window to apply your changes?": "C# configuration has changed. Would you like to reload the window to apply your changes?", "Nested Code Action": "Nested Code Action", "Fix All: ": "Fix All: ", - "{0} is not part of the open workspace. Not all language features will be available.": "{0} is not part of the open workspace. Not all language features will be available.", + "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", "Dismiss": "Dismiss", "Do not show for this workspace": "Do not show for this workspace", - "Do not show again": "Do not show again", "Open solution": "Open solution", "Restart server": "Restart server", "C# Workspace Status": "C# Workspace Status", diff --git a/package.json b/package.json index 4a4ebb5f2..b4a35cc65 100644 --- a/package.json +++ b/package.json @@ -1479,6 +1479,11 @@ "default": false, "description": "%configuration.dotnet.server.suppressLspErrorToasts%" }, + "dotnet.server.suppressMiscellaneousFilesToasts": { + "type": "boolean", + "default": false, + "description": "%configuration.dotnet.server.suppressMiscellaneousFilesToasts%" + }, "dotnet.server.useServerGC": { "type": "boolean", "default": true, diff --git a/package.nls.json b/package.nls.json index 80988e2f3..addcc8d7e 100644 --- a/package.nls.json +++ b/package.nls.json @@ -35,6 +35,7 @@ "configuration.dotnet.server.extensionPaths": "Override for path to language server --extension arguments", "configuration.dotnet.server.crashDumpPath": "Sets a folder path where crash dumps are written to if the language server crashes. Must be writeable by the user.", "configuration.dotnet.server.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", "configuration.dotnet.server.useServerGC": "Configure the language server to use .NET server garbage collection. Server garbage collection generally provides better performance at the expensive of higher memory consumption.", "configuration.dotnet.enableXamlTools": "Enables XAML tools when using C# Dev Kit", "configuration.dotnet.projects.enableAutomaticRestore": "Enables automatic NuGet restore if the extension detects assets are missing.", diff --git a/src/lsptoolshost/languageStatusBar.ts b/src/lsptoolshost/languageStatusBar.ts index 9341ce65b..ba09b4d9c 100644 --- a/src/lsptoolshost/languageStatusBar.ts +++ b/src/lsptoolshost/languageStatusBar.ts @@ -85,6 +85,12 @@ class ProjectContextStatus { } else { item.severity = vscode.LanguageStatusSeverity.Information; } + + item.detail = e.context._vs_is_miscellaneous + ? vscode.l10n.t( + 'The active document is not part of the open workspace. Not all language features will be available.' + ) + : vscode.l10n.t('Active File Context'); }); // Trigger a refresh, but don't block creation on the refresh completing. diff --git a/src/lsptoolshost/miscellaneousFileNotifier.ts b/src/lsptoolshost/miscellaneousFileNotifier.ts index e5a4576d9..c6e76d55c 100644 --- a/src/lsptoolshost/miscellaneousFileNotifier.ts +++ b/src/lsptoolshost/miscellaneousFileNotifier.ts @@ -4,24 +4,24 @@ *--------------------------------------------------------------------------------------------*/ import * as vscode from 'vscode'; +import * as crypto from 'crypto'; import { RoslynLanguageServer } from './roslynLanguageServer'; import { ActionOption, showWarningMessage } from '../shared/observers/utils/showMessage'; import { ServerState } from './serverStateChange'; -import path = require('path'); +import { languageServerOptions } from '../shared/options'; -const NotifyMiscellaneousFilesOption = 'dotnet.miscellaneousFilesNotification.enabled'; -const RecentlyNotifiedDocuments = new Set(); -const CooldownTime = 60 * 1000; +const SuppressMiscellaneousFilesToastsOption = 'dotnet.server.suppressMiscellaneousFilesToasts'; +const NotifiedDocuments = new Set(); export function registerMiscellaneousFileNotifier( context: vscode.ExtensionContext, languageServer: RoslynLanguageServer ) { - context.workspaceState.update(NotifyMiscellaneousFilesOption, undefined); - context.globalState.update(NotifyMiscellaneousFilesOption, undefined); + context.workspaceState.update(SuppressMiscellaneousFilesToastsOption, undefined); languageServer._projectContextService.onActiveFileContextChanged((e) => { - if (RecentlyNotifiedDocuments.has(e.uri)) { + const hash = createHash(e.uri.toString(/*skipEncoding:*/ true)); + if (NotifiedDocuments.has(hash)) { return; } @@ -29,37 +29,30 @@ export function registerMiscellaneousFileNotifier( return; } - if (!context.globalState.get(NotifyMiscellaneousFilesOption, true)) { + if (languageServerOptions.suppressMiscellaneousFilesToasts) { return; } - if (!context.workspaceState.get(NotifyMiscellaneousFilesOption, true)) { + if (context.workspaceState.get(SuppressMiscellaneousFilesToastsOption, false)) { return; } - RecentlyNotifiedDocuments.add(e.uri); + NotifiedDocuments.add(hash); const message = vscode.l10n.t( - '{0} is not part of the open workspace. Not all language features will be available.', - path.basename(e.uri.fsPath) + 'The active document is not part of the open workspace. Not all language features will be available.' ); const dismissItem = vscode.l10n.t('Dismiss'); const disableWorkspace: ActionOption = { title: vscode.l10n.t('Do not show for this workspace'), action: async () => { - context.workspaceState.update(NotifyMiscellaneousFilesOption, false); + context.workspaceState.update(SuppressMiscellaneousFilesToastsOption, true); }, }; - const disableGlobal: ActionOption = { - title: vscode.l10n.t('Do not show again'), - action: async () => { - context.globalState.update(NotifyMiscellaneousFilesOption, false); - }, - }; - showWarningMessage(vscode, message, disableWorkspace, disableGlobal, dismissItem); - - setTimeout(() => { - RecentlyNotifiedDocuments.delete(e.uri); - }, CooldownTime); + showWarningMessage(vscode, message, dismissItem, disableWorkspace); }); } + +function createHash(data: string): string { + return crypto.createHash('sha256').update(data).digest('hex'); +} diff --git a/src/shared/options.ts b/src/shared/options.ts index e511a73bd..469c01124 100644 --- a/src/shared/options.ts +++ b/src/shared/options.ts @@ -80,6 +80,7 @@ export interface LanguageServerOptions { readonly componentPaths: { [key: string]: string } | null; readonly enableXamlTools: boolean; readonly suppressLspErrorToasts: boolean; + readonly suppressMiscellaneousFilesToasts: boolean; readonly useServerGC: boolean; } @@ -411,6 +412,9 @@ class LanguageServerOptionsImpl implements LanguageServerOptions { public get suppressLspErrorToasts() { return readOption('dotnet.server.suppressLspErrorToasts', false); } + public get suppressMiscellaneousFilesToasts() { + return readOption('dotnet.server.suppressMiscellaneousFilesToasts', false); + } public get useServerGC() { return readOption('dotnet.server.useServerGC', true); } From 321ffe39a4bfd6ba59cf348b448e835f7bad23a6 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Thu, 10 Oct 2024 16:56:15 -0700 Subject: [PATCH 28/79] Move notified document check --- src/lsptoolshost/miscellaneousFileNotifier.ts | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/lsptoolshost/miscellaneousFileNotifier.ts b/src/lsptoolshost/miscellaneousFileNotifier.ts index c6e76d55c..0cec79154 100644 --- a/src/lsptoolshost/miscellaneousFileNotifier.ts +++ b/src/lsptoolshost/miscellaneousFileNotifier.ts @@ -17,32 +17,33 @@ export function registerMiscellaneousFileNotifier( context: vscode.ExtensionContext, languageServer: RoslynLanguageServer ) { - context.workspaceState.update(SuppressMiscellaneousFilesToastsOption, undefined); - languageServer._projectContextService.onActiveFileContextChanged((e) => { - const hash = createHash(e.uri.toString(/*skipEncoding:*/ true)); - if (NotifiedDocuments.has(hash)) { - return; - } - + // Only warn for miscellaneous files when the workspace is fully initialized. if (!e.context._vs_is_miscellaneous || languageServer.state !== ServerState.ProjectInitializationComplete) { return; } - if (languageServerOptions.suppressMiscellaneousFilesToasts) { + // Check settings and workspaceState to see if we should suppress the toast. + if ( + languageServerOptions.suppressMiscellaneousFilesToasts || + context.workspaceState.get(SuppressMiscellaneousFilesToastsOption, false) + ) { return; } - if (context.workspaceState.get(SuppressMiscellaneousFilesToastsOption, false)) { + // Check to see if we have already notified the user about this document. + const hash = createHash(e.uri.toString(/*skipEncoding:*/ true)); + if (NotifiedDocuments.has(hash)) { return; + } else { + NotifiedDocuments.add(hash); } - NotifiedDocuments.add(hash); - const message = vscode.l10n.t( 'The active document is not part of the open workspace. Not all language features will be available.' ); const dismissItem = vscode.l10n.t('Dismiss'); + // Provide the user a way to easily disable the toast without changing settings. const disableWorkspace: ActionOption = { title: vscode.l10n.t('Do not show for this workspace'), action: async () => { From 0cba05aecd89ee15521c41d9e8213ba233368037 Mon Sep 17 00:00:00 2001 From: dotnet-bot Date: Fri, 11 Oct 2024 05:48:33 +0000 Subject: [PATCH 29/79] Localization result of 3fc374cc4d0a97f1a428b056506471aec08e53bf. --- l10n/bundle.l10n.cs.json | 3 +++ l10n/bundle.l10n.de.json | 3 +++ l10n/bundle.l10n.es.json | 3 +++ l10n/bundle.l10n.fr.json | 3 +++ l10n/bundle.l10n.it.json | 3 +++ l10n/bundle.l10n.ja.json | 3 +++ l10n/bundle.l10n.ko.json | 3 +++ l10n/bundle.l10n.pl.json | 3 +++ l10n/bundle.l10n.pt-br.json | 3 +++ l10n/bundle.l10n.ru.json | 3 +++ l10n/bundle.l10n.tr.json | 3 +++ l10n/bundle.l10n.zh-cn.json | 3 +++ l10n/bundle.l10n.zh-tw.json | 3 +++ package.nls.cs.json | 1 + package.nls.de.json | 1 + package.nls.es.json | 1 + package.nls.fr.json | 1 + package.nls.it.json | 1 + package.nls.ja.json | 1 + package.nls.ko.json | 1 + package.nls.pl.json | 1 + package.nls.pt-br.json | 1 + package.nls.ru.json | 1 + package.nls.tr.json | 1 + package.nls.zh-cn.json | 1 + package.nls.zh-tw.json | 1 + 26 files changed, 52 insertions(+) diff --git a/l10n/bundle.l10n.cs.json b/l10n/bundle.l10n.cs.json index fdf33cdee..c29bf5999 100644 --- a/l10n/bundle.l10n.cs.json +++ b/l10n/bundle.l10n.cs.json @@ -42,7 +42,9 @@ "Description of the problem": "Popis problému", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Zjistila se změna v nastavení telemetrie. Tyto změny se projeví až po restartování jazykového serveru. Chcete ho restartovat?", "Disable message in settings": "Zakázat zprávu v nastavení", + "Dismiss": "Dismiss", "Do not load any": "Nic nenačítat", + "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "Neobsahuje projekty .NET Core.", "Don't Ask Again": "Příště už se neptat", "Download Mono": "Stáhnout Mono", @@ -156,6 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Rozšíření jazyka C# pro Visual Studio Code není na {0} {1} kompatibilní.", "The C# extension is still downloading packages. Please see progress in the output window below.": "Rozšíření C# stále stahuje balíčky. Průběh si můžete prohlédnout v okně výstupu níže.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "Rozšíření C# nemohlo automaticky dekódovat projekty v aktuálním pracovním prostoru a vytvořit spustitelný soubor launch.json. Soubor launch.json šablony se vytvořil jako zástupný symbol.\r\n\r\nPokud server momentálně nemůže načíst váš projekt, můžete se pokusit tento problém vyřešit obnovením chybějících závislostí projektu (například spuštěním příkazu dotnet restore) a opravou všech nahlášených chyb při sestavování projektů ve vašem pracovním prostoru.\r\nPokud to serveru umožní načíst váš projekt, pak --\r\n * Odstraňte tento soubor\r\n * Otevřete paletu příkazů Visual Studio Code (View->Command Palette)\r\n * Spusťte příkaz: .“NET: Generate Assets for Build and Debug“ (Generovat prostředky pro sestavení a ladění).\r\n\r\nPokud váš projekt vyžaduje složitější konfiguraci spuštění, možná budete chtít tuto konfiguraci odstranit a vybrat jinou šablonu pomocí možnosti „Přidat konfiguraci“ v dolní části tohoto souboru.", + "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "Vybraná konfigurace spuštění je nakonfigurovaná tak, aby spustila webový prohlížeč, ale nenašel se žádný důvěryhodný vývojový certifikát. Chcete vytvořit důvěryhodný certifikát podepsaný svým držitelem (self-signed certificate)?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "Hodnota {0} pro parametr targetArchitecture v konfiguraci spuštění je neplatná. Očekávala se hodnota x86_64 nebo arm64.", "There are unresolved dependencies. Please execute the restore command to continue.": "Existují nevyřešené závislosti. Pokud chcete pokračovat, spusťte prosím příkaz pro obnovení.", diff --git a/l10n/bundle.l10n.de.json b/l10n/bundle.l10n.de.json index 924722dbc..06f5cd8e3 100644 --- a/l10n/bundle.l10n.de.json +++ b/l10n/bundle.l10n.de.json @@ -42,7 +42,9 @@ "Description of the problem": "Beschreibung des Problems", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Es wurde eine Änderung der Telemetrieeinstellungen erkannt. Diese werden erst wirksam, nachdem der Sprachserver neu gestartet wurde. Möchten Sie einen Neustart durchführen?", "Disable message in settings": "Nachricht in Einstellungen deaktivieren", + "Dismiss": "Dismiss", "Do not load any": "Keine laden", + "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "Enthält keine .NET Core-Projekte.", "Don't Ask Again": "Nicht mehr fragen", "Download Mono": "Mono Herunterladen", @@ -156,6 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Die C#-Erweiterung für Visual Studio Code ist auf {0} {1} nicht kompatibel.", "The C# extension is still downloading packages. Please see progress in the output window below.": "Die C#-Erweiterung lädt weiterhin Pakete herunter. Den Fortschritt finden Sie unten im Ausgabefenster.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "Die C#-Erweiterung konnte Projekte im aktuellen Arbeitsbereich nicht automatisch decodieren, um eine ausführbare Datei \"launch.json\" zu erstellen. Eine launch.json-Vorlagendatei wurde als Platzhalter erstellt.\r\n\r\nWenn der Server Ihr Projekt zurzeit nicht laden kann, können Sie versuchen, dies zu beheben, indem Sie fehlende Projektabhängigkeiten wiederherstellen (Beispiel: \"dotnet restore\" ausführen), und alle gemeldeten Fehler beim Erstellen der Projekte in Ihrem Arbeitsbereich beheben.\r\nWenn der Server ihr Projekt jetzt laden kann, dann --\r\n * Diese Datei löschen\r\n * Öffnen Sie die Visual Studio Code-Befehlspalette (Ansicht -> Befehlspalette).\r\n * Führen Sie den Befehl \".NET: Assets für Build und Debug generieren\" aus.\r\n\r\nWenn ihr Projekt eine komplexere Startkonfiguration erfordert, können Sie diese Konfiguration löschen und eine andere Vorlage auswählen, mithilfe der Schaltfläche \"Konfiguration hinzufügen...\" am Ende dieser Datei.", + "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "Die ausgewählte Startkonfiguration ist so konfiguriert, dass ein Webbrowser gestartet wird, es wurde jedoch kein vertrauenswürdiges Entwicklungszertifikat gefunden. Vertrauenswürdiges selbstsigniertes Zertifikat erstellen?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "Der Wert \"{0}\" für \"targetArchitecture\" in der Startkonfiguration ist ungültig. \"x86_64\" oder \"arm64\" wurde erwartet.", "There are unresolved dependencies. Please execute the restore command to continue.": "Es sind nicht aufgelöste Abhängigkeiten vorhanden. Führen Sie den Wiederherstellungsbefehl aus, um den Vorgang fortzusetzen.", diff --git a/l10n/bundle.l10n.es.json b/l10n/bundle.l10n.es.json index edefd819e..79498340b 100644 --- a/l10n/bundle.l10n.es.json +++ b/l10n/bundle.l10n.es.json @@ -42,7 +42,9 @@ "Description of the problem": "Descripción del problema", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Se detectó un cambio en la configuración de telemetría. Estos no surtirán efecto hasta que se reinicie el servidor de idioma. ¿Desea reiniciarlo?", "Disable message in settings": "Deshabilitar mensaje en la configuración", + "Dismiss": "Dismiss", "Do not load any": "No cargar ninguno", + "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "No contiene proyectos de .NET Core.", "Don't Ask Again": "No volver a preguntar", "Download Mono": "Descargar Mono", @@ -156,6 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "La extensión de C# para Visual Studio Code no es compatible con {0} {1}.", "The C# extension is still downloading packages. Please see progress in the output window below.": "La extensión de C# aún está descargando paquetes. Vea el progreso en la ventana de salida siguiente.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "La extensión C# no pudo descodificar automáticamente los proyectos del área de trabajo actual para crear un archivo launch.json que se pueda ejecutar. Se ha creado un archivo launch.json de plantilla como marcador de posición.\r\n\r\nSi el servidor no puede cargar el proyecto en este momento, puede intentar resolverlo restaurando las dependencias del proyecto que falten (por ejemplo, ejecute \"dotnet restore\") y corrija los errores notificados de la compilación de los proyectos en el área de trabajo.\r\nSi esto permite al servidor cargar ahora el proyecto, entonces --\r\n * Elimine este archivo\r\n * Abra la paleta de comandos de Visual Studio Code (Vista->Paleta de comandos)\r\n * ejecute el comando: \".NET: Generar recursos para compilar y depurar\".\r\n\r\nSi el proyecto requiere una configuración de inicio más compleja, puede eliminar esta configuración y seleccionar otra plantilla con el botón \"Agregar configuración...\" de la parte inferior de este archivo.", + "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "La configuración de inicio seleccionada está configurada para iniciar un explorador web, pero no se encontró ningún certificado de desarrollo de confianza. ¿Desea crear un certificado autofirmado de confianza?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "El valor “{0}” para “targetArchitecture” en la configuración de inicio no es válido. El valor que se esperaba es “x86_64” o “arm64”.", "There are unresolved dependencies. Please execute the restore command to continue.": "Hay dependencias sin resolver. Ejecute el comando de restauración para continuar.", diff --git a/l10n/bundle.l10n.fr.json b/l10n/bundle.l10n.fr.json index 5766580c9..f0ac1ec13 100644 --- a/l10n/bundle.l10n.fr.json +++ b/l10n/bundle.l10n.fr.json @@ -42,7 +42,9 @@ "Description of the problem": "Description du problème", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Détection d’une modification des paramètres de télémétrie. Celles-ci ne prendront effet qu’après le redémarrage du serveur de langue. Voulez-vous redémarrer ?", "Disable message in settings": "Désactiver le message dans les paramètres", + "Dismiss": "Dismiss", "Do not load any": "Ne charger aucun", + "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "Ne contient pas de projets .NET Core.", "Don't Ask Again": "Ne plus me poser la question", "Download Mono": "Télécharger Mono", @@ -156,6 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "L’extension C# pour Visual Studio Code est incompatible sur {0} {1}.", "The C# extension is still downloading packages. Please see progress in the output window below.": "L’extension C# est toujours en train de télécharger des packages. Consultez la progression dans la fenêtre sortie ci-dessous.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "L’extension C# n’a pas pu décoder automatiquement les projets dans l’espace de travail actuel pour créer un fichier launch.json exécutable. Un fichier launch.json de modèle a été créé en tant qu’espace réservé.\r\n\r\nSi le serveur ne parvient pas actuellement à charger votre projet, vous pouvez tenter de résoudre ce problème en restaurant les dépendances de projet manquantes (par exemple, exécuter « dotnet restore ») et en corrigeant les erreurs signalées lors de la génération des projets dans votre espace de travail.\r\nSi cela permet au serveur de charger votre projet, --\r\n * Supprimez ce fichier\r\n * Ouvrez la palette de commandes Visual Studio Code (View->Command Palette)\r\n * exécutez la commande : « .NET: Generate Assets for Build and Debug ».\r\n\r\nSi votre projet nécessite une configuration de lancement plus complexe, vous pouvez supprimer cette configuration et choisir un autre modèle à l’aide du bouton « Ajouter une configuration... » en bas de ce fichier.", + "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "La configuration de lancement sélectionnée est configurée pour lancer un navigateur web, mais aucun certificat de développement approuvé n’a été trouvé. Créer un certificat auto-signé approuvé ?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "La valeur « {0} » pour « Architecture cible » dans la configuration de lancement n'est pas valide. \"x86_64\" ou \"arm64\" attendu.", "There are unresolved dependencies. Please execute the restore command to continue.": "Il existe des dépendances non résolues. Exécutez la commande de restauration pour continuer.", diff --git a/l10n/bundle.l10n.it.json b/l10n/bundle.l10n.it.json index c3c8b52ec..a8e7c3338 100644 --- a/l10n/bundle.l10n.it.json +++ b/l10n/bundle.l10n.it.json @@ -42,7 +42,9 @@ "Description of the problem": "Descrizione del problema", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Modifica rilevata nelle impostazioni di telemetria. Queste impostazioni avranno effetto solo dopo il riavvio del server di lingua. Riavviare?", "Disable message in settings": "Disabilita messaggio nelle impostazioni", + "Dismiss": "Dismiss", "Do not load any": "Non caricare", + "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "Non contiene progetti .NET Core.", "Don't Ask Again": "Non chiedere più", "Download Mono": "Scarica Mono", @@ -156,6 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "L'estensione C# per Visual Studio Code non è compatibile in {0} {1}.", "The C# extension is still downloading packages. Please see progress in the output window below.": "L'estensione C# sta ancora scaricando i pacchetti. Visualizzare lo stato nella finestra di output seguente.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "L'estensione C# non è riuscita a decodificare automaticamente i progetti nell'area di lavoro corrente per creare un file launch.json eseguibile. Un file launch.json del modello è stato creato come segnaposto.\r\n\r\nSe il server non riesce a caricare il progetto, è possibile tentare di risolvere il problema ripristinando eventuali dipendenze mancanti del progetto, ad esempio 'dotnet restore', e correggendo eventuali errori segnalati relativi alla compilazione dei progetti nell'area di lavoro.\r\nSe questo consente al server di caricare il progetto, --\r\n * Elimina questo file\r\n * Aprire il riquadro comandi Visual Studio Code (Riquadro comandi View->)\r\n * eseguire il comando: '.NET: Genera asset per compilazione e debug'.\r\n\r\nSe il progetto richiede una configurazione di avvio più complessa, è possibile eliminare questa configurazione e selezionare un modello diverso usando 'Aggiungi configurazione...' nella parte inferiore del file.", + "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "La configurazione di avvio selezionata è configurata per l'avvio di un Web browser, ma non è stato trovato alcun certificato di sviluppo attendibile. Creare un certificato autofirmato attendibile?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "Il valore \"{0}\" per \"targetArchitecture\" nella configurazione di avvio non è valido. \"x86_64\" o \"arm64\" previsto.", "There are unresolved dependencies. Please execute the restore command to continue.": "Sono presenti dipendenze non risolte. Eseguire il comando di ripristino per continuare.", diff --git a/l10n/bundle.l10n.ja.json b/l10n/bundle.l10n.ja.json index 13d27f5d2..2aee4fa52 100644 --- a/l10n/bundle.l10n.ja.json +++ b/l10n/bundle.l10n.ja.json @@ -42,7 +42,9 @@ "Description of the problem": "問題の説明", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "テレメトリ設定の変更が検出されました。言語サーバーが再起動されるまで、これらは有効になりません。再起動しますか?", "Disable message in settings": "設定でメッセージを無効にする", + "Dismiss": "Dismiss", "Do not load any": "何も読み込まない", + "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": ".NET Core プロジェクトが含まれていません。", "Don't Ask Again": "今後このメッセージを表示しない", "Download Mono": "Mono のダウンロード", @@ -156,6 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Visual Studio Code の C# 拡張機能は、 {0} {1} では互換性がありません。", "The C# extension is still downloading packages. Please see progress in the output window below.": "C# 拡張機能は引き続きパッケージをダウンロードしています。下の出力ウィンドウで進行状況を確認してください。", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "C# 拡張機能は、現在のワークスペースのプロジェクトを自動的にデコードして、実行可能な launch.json ファイルを作成できませんでした。テンプレート launch.json ファイルがプレースホルダーとして作成されました。\r\n\r\nサーバーで現在プロジェクトを読み込みできない場合は、不足しているプロジェクトの依存関係 (例: 'dotnet restore' の実行) を復元し、ワークスペースでのプロジェクトのビルドで報告されたエラーを修正することで、この問題の解決を試みることができます。\r\nこれにより、サーバーでプロジェクトを読み込めるようになった場合は、--\r\n * このファイルを削除します\r\n * Visual Studio Code コマンド パレットを開きます ([表示] > [コマンド パレット])\r\n * 次のコマンドを実行します: '.NET: ビルドおよびデバッグ用に資産を生成する'。\r\n\r\nプロジェクトでより複雑な起動構成が必要な場合は、この構成を削除し、このファイルの下部にある [構成の追加] ボタンを使用して、別のテンプレートを選択できます。", + "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "選択した起動構成では Web ブラウザーを起動するように構成されていますが、信頼された開発証明書が見つかりませんでした。信頼された自己署名証明書を作成しますか?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "起動構成の 'targetArchitecture' の値 '{0}' が無効です。'x86_64' または 'arm64' が必要です。", "There are unresolved dependencies. Please execute the restore command to continue.": "未解決の依存関係があります。続行するには、restore コマンドを実行してください。", diff --git a/l10n/bundle.l10n.ko.json b/l10n/bundle.l10n.ko.json index 93e4df814..5d227942b 100644 --- a/l10n/bundle.l10n.ko.json +++ b/l10n/bundle.l10n.ko.json @@ -42,7 +42,9 @@ "Description of the problem": "문제 설명", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "원격 분석 설정에서 변경 사항이 감지되었습니다. 언어 서버가 다시 시작될 때까지 적용되지 않습니다. 다시 시작하시겠습니까?", "Disable message in settings": "설정에서 메시지 비활성화", + "Dismiss": "Dismiss", "Do not load any": "로드 안 함", + "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": ".NET Core 프로젝트가 포함되어 있지 않습니다.", "Don't Ask Again": "다시 묻지 않음", "Download Mono": "Mono 다운로드", @@ -156,6 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Visual Studio Code의 C# 확장이 {0} {1}에서 호환되지 않습니다.", "The C# extension is still downloading packages. Please see progress in the output window below.": "C# 확장이 여전히 패키지를 다운로드하고 있습니다. 아래 출력 창에서 진행 상황을 확인하세요.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "C# 확장은 실행 가능한 launch.json 파일을 만들기 위해 현재 작업 영역에서 프로젝트를 자동으로 디코딩할 수 없습니다. 템플릿 launch.json 파일이 자리 표시자로 생성되었습니다.\r\n\r\n현재 서버에서 프로젝트를 로드할 수 없는 경우 누락된 프로젝트 종속성을 복원하고(예: 'dotnet restore' 실행) 작업 영역에서 프로젝트를 빌드할 때 보고된 오류를 수정하여 이 문제를 해결할 수 있습니다.\r\n이렇게 하면 서버가 이제 프로젝트를 로드할 수 있습니다.\r\n * 이 파일 삭제\r\n * Visual Studio Code 명령 팔레트 열기(보기->명령 팔레트)\r\n * '.NET: 빌드 및 디버그용 자산 생성' 명령을 실행합니다.\r\n\r\n프로젝트에 보다 복잡한 시작 구성이 필요한 경우 이 구성을 삭제하고 이 파일 하단의 '구성 추가...' 버튼을 사용하여 다른 템플릿을 선택할 수 있습니다.", + "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "선택한 시작 구성이 웹 브라우저를 시작하도록 구성되었지만 신뢰할 수 있는 개발 인증서를 찾을 수 없습니다. 신뢰할 수 있는 자체 서명 인증서를 만드시겠습니까?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "시작 구성의 'targetArchitecture'의 '{0}' 값이 잘못되었습니다. 'x86_64' 또는 'arm64'가 필요합니다.", "There are unresolved dependencies. Please execute the restore command to continue.": "확인되지 않은 종속성이 있습니다. 계속하려면 복원 명령을 실행하세요.", diff --git a/l10n/bundle.l10n.pl.json b/l10n/bundle.l10n.pl.json index 7fab10972..1e341eb9b 100644 --- a/l10n/bundle.l10n.pl.json +++ b/l10n/bundle.l10n.pl.json @@ -42,7 +42,9 @@ "Description of the problem": "Opis problemu", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Wykryto zmianę ustawień telemetrii. Te zmiany zaczną obowiązywać dopiero po ponownym uruchomieniu serwera językowego. Czy chcesz ponownie uruchomić?", "Disable message in settings": "Wyłącz komunikat w ustawieniach", + "Dismiss": "Dismiss", "Do not load any": "Nie ładuj żadnych", + "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "Nie zawiera projektów platformy .NET Core.", "Don't Ask Again": "Nie pytaj ponownie", "Download Mono": "Pobierz Mono", @@ -156,6 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Rozszerzenie C# dla edytora Visual Studio Code jest niezgodne w przypadku {0} {1}.", "The C# extension is still downloading packages. Please see progress in the output window below.": "Rozszerzenie języka C# nadal pobiera pakiety. Zobacz postęp w poniższym oknie danych wyjściowych.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "Rozszerzenie języka C# nie może automatycznie zdekodować projektów w bieżącym obszarze roboczym w celu utworzenia pliku launch.json, który można uruchomić. Plik launch.json szablonu został utworzony jako symbol zastępczy.\r\n\r\nJeśli serwer nie może obecnie załadować projektu, możesz spróbować rozwiązać ten problem, przywracając brakujące zależności projektu (przykład: uruchom polecenie „dotnet restore”) i usuwając wszelkie zgłoszone błędy podczas kompilowania projektów w obszarze roboczym.\r\nJeśli umożliwi to serwerowi załadowanie projektu, to --\r\n * Usuń ten plik\r\n * Otwórz paletę poleceń Visual Studio Code (Widok->Paleta poleceń)\r\n * Uruchom polecenie: „.NET: Generuj zasoby na potrzeby kompilowania i debugowania”.\r\n\r\nJeśli projekt wymaga bardziej złożonej konfiguracji uruchamiania, możesz usunąć tę konfigurację i wybrać inny szablon za pomocą przycisku „Dodaj konfigurację...”. znajdującego się u dołu tego pliku.", + "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "Wybrana konfiguracja uruchamiania jest skonfigurowana do uruchamiania przeglądarki internetowej, ale nie znaleziono zaufanego certyfikatu programistycznego. Utworzyć zaufany certyfikat z podpisem własnym?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "Wartość „{0}” dla elementu „targetArchitecture” w konfiguracji uruchamiania jest nieprawidłowa. Oczekiwane elementy „x86_64” lub „arm64”.", "There are unresolved dependencies. Please execute the restore command to continue.": "Istnieją nierozwiązane zależności. Wykonaj polecenie przywracania, aby kontynuować.", diff --git a/l10n/bundle.l10n.pt-br.json b/l10n/bundle.l10n.pt-br.json index 3b0602f62..42ef9bc77 100644 --- a/l10n/bundle.l10n.pt-br.json +++ b/l10n/bundle.l10n.pt-br.json @@ -42,7 +42,9 @@ "Description of the problem": "Descrição do problema", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Alteração detectada nas configurações de telemetria. Eles não entrarão em vigor até que o servidor de idiomas seja reiniciado, quer reiniciar?", "Disable message in settings": "Desabilitar uma mensagem nas configurações", + "Dismiss": "Dismiss", "Do not load any": "Não carregue nenhum", + "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "Não contém projetos do .NET Core.", "Don't Ask Again": "Não perguntar novamente", "Download Mono": "Baixar Mono", @@ -156,6 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "A extensão C# para Visual Studio Code é incompatível no {0} {1}.", "The C# extension is still downloading packages. Please see progress in the output window below.": "A extensão C# ainda está baixando pacotes. Veja o progresso na janela de saída abaixo.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "A extensão C# não conseguiu decodificar projetos automaticamente no workspace atual para criar um arquivo launch.json executável. Um modelo de arquivo launch.json foi criado como um espaço reservado.\r\n\r\nSe o servidor não estiver sendo capaz de carregar seu projeto no momento, você pode tentar resolver isso restaurando as dependências ausentes do projeto (por exemplo: executar \"dotnet restore\") e corrigindo quaisquer erros notificados com relação à compilação dos projetos no seu workspace.\r\nSe isso permitir que o servidor consiga carregar o projeto agora:\r\n * Exclua esse arquivo\r\n * Abra a paleta de comandos do Visual Studio Code (Ver->Paleta de Comandos)\r\n * execute o comando: \".NET: Generate Assets for Build and Debug\".\r\n\r\nSe o seu projeto requerer uma configuração de inicialização mais complexa, talvez você queira excluir essa configuração e escolher um modelo diferente usando o botão \"Adicionar Configuração...\" na parte inferior desse arquivo.", + "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "A configuração de inicialização selecionada está configurada para iniciar um navegador da web, mas nenhum certificado de desenvolvimento confiável foi encontrado. Deseja criar um certificado autoassinado confiável?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "O valor “{0}” para “targetArchitecture” na configuração de inicialização é inválido. Esperado “x86_64” ou “arm64”.", "There are unresolved dependencies. Please execute the restore command to continue.": "Há dependências não resolvidas. Execute o comando de restauração para continuar.", diff --git a/l10n/bundle.l10n.ru.json b/l10n/bundle.l10n.ru.json index 82c0bd990..22988b622 100644 --- a/l10n/bundle.l10n.ru.json +++ b/l10n/bundle.l10n.ru.json @@ -42,7 +42,9 @@ "Description of the problem": "Описание проблемы", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Обнаружено изменение параметров телеметрии. Они вступят в силу только после перезапуска языкового сервера. Выполнить перезапуск?", "Disable message in settings": "Отключить сообщение в параметрах", + "Dismiss": "Dismiss", "Do not load any": "Не загружать", + "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "Не содержит проектов .NET Core.", "Don't Ask Again": "Больше не спрашивать", "Download Mono": "Скачать Mono", @@ -156,6 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Расширение C# для Visual Studio Code несовместимо в {0} {1}.", "The C# extension is still downloading packages. Please see progress in the output window below.": "Расширение C# все еще скачивает пакеты. См. ход выполнения в окне вывода ниже.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "Расширению C# не удалось автоматически декодировать проекты в текущей рабочей области для создания исполняемого файла launch.json. В качестве заполнителя создан файл шаблона launch.json.\r\n\r\nЕсли сервер сейчас не может загрузить проект, можно попытаться решить эту проблему, восстановив все отсутствующие зависимости проекта (например, запустив \"dotnet restore\") и исправив все обнаруженные ошибки при создании проектов в этой рабочей области.\r\nЕсли это позволяет серверу загрузить проект, то --\r\n * Удалите этот файл\r\n * Откройте палитру команд Visual Studio Code (Вид->Палитра команд)\r\n * выполните команду: .NET: Generate Assets for Build and Debug\".\r\n\r\nЕсли для проекта требуется более сложная конфигурация запуска, можно удалить эту конфигурацию и выбрать другой шаблон с помощью кнопки \"Добавить конфигурацию...\" в нижней части этого файла.", + "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "Выбранная конфигурация запуска настроена на запуск веб-браузера, но доверенный сертификат разработки не найден. Создать доверенный самозаверяющий сертификат?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "Недопустимое значение {0} параметра \"targetArchitecture\" в конфигурации запуска. Ожидается значение \"x86_64\" или \"arm64\".", "There are unresolved dependencies. Please execute the restore command to continue.": "Есть неразрешенные зависимости. Чтобы продолжить, выполните команду восстановления.", diff --git a/l10n/bundle.l10n.tr.json b/l10n/bundle.l10n.tr.json index 3e0ed2bc8..2e9671800 100644 --- a/l10n/bundle.l10n.tr.json +++ b/l10n/bundle.l10n.tr.json @@ -42,7 +42,9 @@ "Description of the problem": "Sorunun açıklaması", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Telemetri ayarlarında değişiklik algılandı. Bunlar dil sunucusu yeniden başlatılana kadar etkili olmayacaktır, yeniden başlatmak ister misiniz?", "Disable message in settings": "Ayarlarda iletiyi devre dışı bırakma", + "Dismiss": "Dismiss", "Do not load any": "Hiçbir şey yükleme", + "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": ".NET Core projeleri içermiyor.", "Don't Ask Again": "Bir Daha Sorma", "Download Mono": "Mono İndir", @@ -156,6 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Visual Studio Code için C# uzantısı {0} {1} üzerinde uyumsuz.", "The C# extension is still downloading packages. Please see progress in the output window below.": "C# uzantısı hala paketleri indiriyor. Lütfen aşağıdaki çıkış penceresinde ilerleme durumuna bakın.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "C# uzantısı, çalıştırılabilir bir launch.json dosyası oluşturmak için geçerli çalışma alanında projelerin kodunu otomatik olarak çözümleyemedi. Bir şablon launch.json dosyası yer tutucu olarak oluşturuldu.\r\n\r\nSunucu şu anda projenizi yükleyemiyorsa, eksik proje bağımlılıklarını geri yükleyip (örnek: ‘dotnet restore’ çalıştırma) ve çalışma alanınıza proje oluşturmayla ilgili raporlanan hataları düzelterek bu sorunu çözmeye çalışabilirsiniz.\r\nBu, sunucunun artık projenizi yüklemesine olanak sağlarsa --\r\n * Bu dosyayı silin\r\n * Visual Studio Code komut paletini (Görünüm->Komut Paleti) açın\r\n * şu komutu çalıştırın: '.NET: Generate Assets for Build and Debug'.\r\n\r\nProjeniz daha karmaşık bir başlatma yapılandırma ayarı gerektiriyorsa, bu yapılandırmayı silip bu dosyanın alt kısmında bulunan ‘Yapılandırma Ekle...’ düğmesini kullanarak başka bir şablon seçebilirsiniz.", + "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "Seçilen başlatma yapılandırması bir web tarayıcısı başlatmak üzere yapılandırılmış, ancak güvenilir bir geliştirme sertifikası bulunamadı. Otomatik olarak imzalanan güvenilir bir sertifika oluşturulsun mu?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "Başlatma yapılandırmasında 'targetArchitecture' için '{0}' değeri geçersiz. 'x86_64' veya 'arm64' bekleniyordu.", "There are unresolved dependencies. Please execute the restore command to continue.": "Çözümlenmemiş bağımlılıklar var. Devam etmek için lütfen restore komutunu çalıştırın.", diff --git a/l10n/bundle.l10n.zh-cn.json b/l10n/bundle.l10n.zh-cn.json index 310e283c0..330b07289 100644 --- a/l10n/bundle.l10n.zh-cn.json +++ b/l10n/bundle.l10n.zh-cn.json @@ -42,7 +42,9 @@ "Description of the problem": "问题说明", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "检测到遥测设置发生更改。这些更改只有在语言服务器重启后才会生效,是否要重启?", "Disable message in settings": "在设置中禁用消息", + "Dismiss": "Dismiss", "Do not load any": "请勿加载任何", + "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "不包含 .NET Core 项目。", "Don't Ask Again": "不再询问", "Download Mono": "下载 Mono", @@ -156,6 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Visual Studio Code 的 C# 扩展与 {0} {1} 不兼容。", "The C# extension is still downloading packages. Please see progress in the output window below.": "C# 扩展仍在下载包。请在下面的输出窗口中查看进度。", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "C# 扩展无法自动解码当前工作区中的项目以创建可运行的 launch.json 文件。模板 launch.json 文件已创建为占位符。\r\n\r\n如果服务器当前无法加载项目,可以还原任何缺失的项目依赖项(例如: 运行 \"dotnet restore\")并修复在工作区中生成项目时报告的任何错误,从而尝试解决此问题。\r\n如果允许服务器现在加载项目,则 --\r\n * 删除此文件\r\n * 打开 Visual Studio Code 命令面板(视图->命令面板)\r\n * 运行命令:“.NET: 为生成和调试生成资产”。\r\n\r\n如果项目需要更复杂的启动配置,可能需要删除此配置,并使用此文件底部的“添加配置...”按钮选择其他模板。", + "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "所选启动配置配置为启动 Web 浏览器,但找不到受信任的开发证书。创建受信任的自签名证书?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "启动配置中“targetArchitecture”的值“{0}”无效。应为“x86_64”或“arm64”。", "There are unresolved dependencies. Please execute the restore command to continue.": "有未解析的依赖项。请执行还原命令以继续。", diff --git a/l10n/bundle.l10n.zh-tw.json b/l10n/bundle.l10n.zh-tw.json index a6774f2dc..7d2ffe659 100644 --- a/l10n/bundle.l10n.zh-tw.json +++ b/l10n/bundle.l10n.zh-tw.json @@ -42,7 +42,9 @@ "Description of the problem": "問題的描述", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "偵測到遙測設定中的變更。在重新啟動語言伺服器之前,這些將不會生效,是否要重新啟動?", "Disable message in settings": "停用設定中的訊息", + "Dismiss": "Dismiss", "Do not load any": "不要載入", + "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "不包含 .NET Core 專案。", "Don't Ask Again": "不要再詢問", "Download Mono": "下載 Mono", @@ -156,6 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "適用於 Visual Studio Code 的 C# 延伸模組在 {0} {1} 上不相容。", "The C# extension is still downloading packages. Please see progress in the output window below.": "C# 延伸模組仍在下載套件。請參閱下方輸出視窗中的進度。", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "C# 延伸模組無法自動解碼目前工作區中的專案以建立可執行的 launch.json 檔案。範本 launch.json 檔案已建立為預留位置。\r\n\r\n如果伺服器目前無法載入您的專案,您可以嘗試透過還原任何遺失的專案相依性來解決此問題 (範例: 執行 'dotnet restore'),並修正在工作區中建置專案時所報告的任何錯誤。\r\n如果這允許伺服器現在載入您的專案,則 --\r\n * 刪除此檔案\r\n * 開啟 Visual Studio Code 命令選擇區 ([檢視] -> [命令選擇區])\r\n * 執行命令: '.NET: Generate Assets for Build and Debug'。\r\n\r\n如果您的專案需要更複雜的啟動設定,您可能會想刪除此設定,並使用此檔案底部的 [新增設定...] 按鈕挑選其他範本。", + "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "選取的啟動設定已設為啟動網頁瀏覽器,但找不到信任的開發憑證。要建立信任的自我簽署憑證嗎?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "啟動設定中的 'targetArchitecture' 值 '{0}' 無效。預期是 'x86_64' 或 'arm64'。", "There are unresolved dependencies. Please execute the restore command to continue.": "有無法解析的相依性。請執行還原命令以繼續。", diff --git a/package.nls.cs.json b/package.nls.cs.json index 22f48c34a..855423d90 100644 --- a/package.nls.cs.json +++ b/package.nls.cs.json @@ -68,6 +68,7 @@ "configuration.dotnet.server.path": "Určuje absolutní cestu ke spustitelnému souboru serveru (LSP nebo O#). Ponechání prázdné vede k použití verze připnuté k rozšíření C#. (Dříve omnisharp.path)", "configuration.dotnet.server.startTimeout": "Určuje časový limit (v ms), aby se klient úspěšně spustil a připojil k jazykovému serveru.", "configuration.dotnet.server.suppressLspErrorToasts": "Potlačí zobrazování informačních zpráv o chybách, pokud na serveru dojde k chybě, ze které se dá zotavit.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", "configuration.dotnet.server.trace": "Nastaví úroveň protokolování pro jazykový server", "configuration.dotnet.server.useServerGC": "Nakonfigurujte jazykový server tak, aby používal uvolňování paměti serveru .NET. Uvolňování paměti serveru obecně přináší vyšší výkon za cenu vyšší spotřeby paměti.", "configuration.dotnet.server.waitForDebugger": "Při spuštění serveru předá příznak --debug, aby bylo možné připojit ladicí program. (Dříve omnisharp.waitForDebugger)", diff --git a/package.nls.de.json b/package.nls.de.json index 0241ba93f..c26bf1987 100644 --- a/package.nls.de.json +++ b/package.nls.de.json @@ -68,6 +68,7 @@ "configuration.dotnet.server.path": "Gibt den absoluten Pfad zur ausführbaren Serverdatei (LSP oder O#) an. Wenn sie leer gelassen wird, wird die an die C#-Erweiterung angeheftete Version verwendet. (Zuvor \"omnisharp.path\")", "configuration.dotnet.server.startTimeout": "Gibt ein Timeout (in ms) an, mit dem der Client erfolgreich gestartet und eine Verbindung mit dem Sprachserver hergestellt werden kann.", "configuration.dotnet.server.suppressLspErrorToasts": "Unterdrückt, dass Fehler-Popups angezeigt werden, wenn auf dem Server ein wiederherstellbarer Fehler auftritt.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", "configuration.dotnet.server.trace": "Legt den Protokolliergrad für den Sprachserver fest.", "configuration.dotnet.server.useServerGC": "Konfigurieren Sie den Sprachserver für die Verwendung der GC des .NET-Servers. Die GC auf dem Server bietet im Allgemeinen eine bessere Leistung bei einem höheren Arbeitsspeicherverbrauch.", "configuration.dotnet.server.waitForDebugger": "Übergibt das Flag \"--debug\" beim Starten des Servers, damit ein Debugger angefügt werden kann. (Zuvor \"omnisharp.waitForDebugger\")", diff --git a/package.nls.es.json b/package.nls.es.json index 38cec442b..d71bb06b2 100644 --- a/package.nls.es.json +++ b/package.nls.es.json @@ -68,6 +68,7 @@ "configuration.dotnet.server.path": "Especifica la ruta absoluta al ejecutable del servidor (LSP u O#). Cuando se deja vacío, se utiliza la versión anclada a la extensión C#. (Anteriormente \"omnisharp.path\")", "configuration.dotnet.server.startTimeout": "Especifica un tiempo de espera (en ms) para que el cliente se inicie correctamente y se conecte al servidor de lenguaje.", "configuration.dotnet.server.suppressLspErrorToasts": "Suprime la visualización de notificaciones del sistema de error si el servidor encuentra un error recuperable.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", "configuration.dotnet.server.trace": "Establece el nivel de registro para el servidor de lenguaje", "configuration.dotnet.server.useServerGC": "Configure el servidor de idiomas para usar la recolección de elementos no utilizados del servidor de .NET. La recolección de elementos no utilizados del servidor suele proporcionar un mejor rendimiento a costa de un mayor consumo de memoria.", "configuration.dotnet.server.waitForDebugger": "Pasa la marca --debug al iniciar el servidor para permitir que se adjunte un depurador. (Anteriormente \"omnisharp.waitForDebugger\")", diff --git a/package.nls.fr.json b/package.nls.fr.json index fc4f02ea9..f6914fa4a 100644 --- a/package.nls.fr.json +++ b/package.nls.fr.json @@ -68,6 +68,7 @@ "configuration.dotnet.server.path": "Spécifie le chemin absolu du fichier exécutable du serveur (LSP ou O#). Lorsqu’elle est laissée vide, la version épinglée à l’extension C# est utilisée. (Précédemment `omnisharp.path`)", "configuration.dotnet.server.startTimeout": "Spécifie un délai d'attente (en ms) pour que le client démarre et se connecte avec succès au serveur de langue.", "configuration.dotnet.server.suppressLspErrorToasts": "Supprime l’affichage des notifications toast d’erreur si le serveur a rencontré une erreur récupérable.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", "configuration.dotnet.server.trace": "Définit le niveau de journalisation pour le serveur de langage", "configuration.dotnet.server.useServerGC": "Configurez le serveur de langue pour qu’il utilise le serveur .NET GC. Le serveur GC offre généralement un meilleur niveau de performance au prix d’une consommation de mémoire plus élevée.", "configuration.dotnet.server.waitForDebugger": "Passe le drapeau – debug lors du lancement du serveur pour permettre à un débogueur d’être attaché. (Précédemment `omnisharp.waitForDebugger`)", diff --git a/package.nls.it.json b/package.nls.it.json index 158dcaea1..0b37619b7 100644 --- a/package.nls.it.json +++ b/package.nls.it.json @@ -68,6 +68,7 @@ "configuration.dotnet.server.path": "Specifica il percorso assoluto dell'eseguibile del server (LSP od O#). Se lasciato vuoto, viene usata la versione aggiunta all'estensione C#. (In precedenza “omnisharp.path”)", "configuration.dotnet.server.startTimeout": "Specifica un timeout (in ms) per l'avvio del client e la sua connessione al server di linguaggio.", "configuration.dotnet.server.suppressLspErrorToasts": "Impedisce la visualizzazione degli avvisi popup di errore se il server rileva un errore reversibile.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", "configuration.dotnet.server.trace": "Imposta il livello di registrazione per il server di linguaggio", "configuration.dotnet.server.useServerGC": "Configurare il server del linguaggio per l'utilizzo di Garbage Collection del server .NET. Garbage Collection del server offre in genere prestazioni migliori a spese di un consumo di memoria più elevato.", "configuration.dotnet.server.waitForDebugger": "Passa il flag --debug all'avvio del server per consentire il collegamento di un debugger. (In precedenza “omnisharp.waitForDebugger”)", diff --git a/package.nls.ja.json b/package.nls.ja.json index 793dbc7c7..45e8aed7a 100644 --- a/package.nls.ja.json +++ b/package.nls.ja.json @@ -68,6 +68,7 @@ "configuration.dotnet.server.path": "サーバー (LSP または O#) 実行可能ファイルに絶対パスを指定します。空のままにすると、C# 拡張機能にピン留めされたバージョンが使用されます。(以前の `omnisharp.path`)", "configuration.dotnet.server.startTimeout": "クライアントが正常に起動して言語サーバーに接続するためのタイムアウト (ミリ秒) を指定します。", "configuration.dotnet.server.suppressLspErrorToasts": "サーバーで回復可能なエラーが発生した場合に、エラー トーストが表示されないようにします。", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", "configuration.dotnet.server.trace": "言語サーバーのログ記録レベルを設定する", "configuration.dotnet.server.useServerGC": ".NET サーバーのガベージ コレクションを使用するように言語サーバーを構成します。サーバー GC は一般に、メモリ消費量が高いことをコストにパフォーマンスを向上させます。", "configuration.dotnet.server.waitForDebugger": "デバッガーのアタッチを許可するために、サーバーを起動するときに --debug フラグを渡します。(以前の `omnisharp.waitForDebugger`)", diff --git a/package.nls.ko.json b/package.nls.ko.json index 7724437f8..6d606e2f5 100644 --- a/package.nls.ko.json +++ b/package.nls.ko.json @@ -68,6 +68,7 @@ "configuration.dotnet.server.path": "서버(LSP 또는 O#) 실행 파일의 절대 경로를 지정합니다. 비어 있으면 C# 확장에 고정된 버전이 사용됩니다(이전 `omnisharp.path`).", "configuration.dotnet.server.startTimeout": "클라이언트가 언어 서버를 시작하고 연결하기 위한 시간 제한(밀리초)을 지정합니다.", "configuration.dotnet.server.suppressLspErrorToasts": "서버에서 복구 가능한 오류가 발생하는 경우 오류 알림이 표시되지 않도록 합니다.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", "configuration.dotnet.server.trace": "언어 서버의 로깅 수준을 설정합니다.", "configuration.dotnet.server.useServerGC": ".NET 서버 가비지 수집을 사용하도록 언어 서버를 구성합니다. 서버 가비지 수집은 일반적으로 메모리 사용량이 많을수록 성능이 향상됩니다.", "configuration.dotnet.server.waitForDebugger": "디버거 연결을 허용하기 위해 서버를 시작할 때 --debug 플래그를 전달합니다(이전 `omnisharp.waitForDebugger`).", diff --git a/package.nls.pl.json b/package.nls.pl.json index 418e9c109..34bb91fca 100644 --- a/package.nls.pl.json +++ b/package.nls.pl.json @@ -68,6 +68,7 @@ "configuration.dotnet.server.path": "Określa ścieżkę bezwzględną do pliku wykonywalnego serwera (LSP lub O#). W przypadku pozostawienia tej wartości pustej, używana jest wersja przypięta do rozszerzenia języka C#. (Wcześniej „omnisharp.path”)", "configuration.dotnet.server.startTimeout": "Określa limit czasu (w ms) dla pomyślnego uruchomienia klienta i nawiązania połączenia z serwerem języka.", "configuration.dotnet.server.suppressLspErrorToasts": "Pomija wyświetlanie wyskakujących powiadomień o błędach, jeśli serwer napotka błąd do odzyskania.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", "configuration.dotnet.server.trace": "Ustawia poziom rejestrowania dla serwera języka", "configuration.dotnet.server.useServerGC": "Skonfiguruj serwer językowy do używania funkcji odzyskiwania pamięci serwera .NET. Odzyskiwanie pamięci serwera zasadniczo zapewnia lepszą wydajność przy wyższym zużyciu pamięci.", "configuration.dotnet.server.waitForDebugger": "Przekazuje flagę --debug podczas uruchamiania serwera, aby umożliwić dołączenie debugera. (Wcześniej „omnisharp.waitForDebugger”)", diff --git a/package.nls.pt-br.json b/package.nls.pt-br.json index c85b6a650..663111e31 100644 --- a/package.nls.pt-br.json +++ b/package.nls.pt-br.json @@ -68,6 +68,7 @@ "configuration.dotnet.server.path": "Especifica o caminho absoluto para o executável do servidor (LSP ou O#). Quando deixado em branco, a versão fixada na extensão C# é usada. (Anteriormente `omnisharp.path`)", "configuration.dotnet.server.startTimeout": "Especifica um tempo limite (em ms) para o cliente iniciar e conectar-se com êxito ao servidor de idioma.", "configuration.dotnet.server.suppressLspErrorToasts": "Suprime a exibição de notificações do erro se o servidor encontrar um erro recuperável.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", "configuration.dotnet.server.trace": "Define o nível de log para o servidor de idiomas", "configuration.dotnet.server.useServerGC": "Configure o servidor de linguagem para usar a coleta de lixo do servidor do .NET. A coleta de lixo do servidor geralmente fornece um melhor desempenho às custas de um consumo de memória mais alto.", "configuration.dotnet.server.waitForDebugger": "Passa o sinalizador --debug ao iniciar o servidor para permitir que um depurador seja anexado. (Anteriormente `omnisharp.waitForDebugger`)", diff --git a/package.nls.ru.json b/package.nls.ru.json index fb0250e8a..17bbbed84 100644 --- a/package.nls.ru.json +++ b/package.nls.ru.json @@ -68,6 +68,7 @@ "configuration.dotnet.server.path": "Указывает абсолютный путь к исполняемому файлу сервера (LSP или O#). Если оставить поле пустым, используется версия, закрепленная в расширении C#. (Ранее — \"omnisharp.path\")", "configuration.dotnet.server.startTimeout": "Указывает время ожидания (в миллисекундах) для запуска клиента и его подключения к языковому серверу.", "configuration.dotnet.server.suppressLspErrorToasts": "Подавляет появление всплывающих сообщений об ошибках, если сервер обнаруживает устранимую ошибку.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", "configuration.dotnet.server.trace": "Задает уровень ведения журнала для языкового сервера", "configuration.dotnet.server.useServerGC": "Настройте языковой сервер для использования сборки мусора сервера .NET. Сборка мусора сервера обычно обеспечивает более высокую производительность за счет более высокого потребления памяти.", "configuration.dotnet.server.waitForDebugger": "Передает флаг --debug при запуске сервера, чтобы разрешить подключение отладчика. (Ранее — \"omnisharp.waitForDebugger\")", diff --git a/package.nls.tr.json b/package.nls.tr.json index 92e210d99..ccd9da1a5 100644 --- a/package.nls.tr.json +++ b/package.nls.tr.json @@ -68,6 +68,7 @@ "configuration.dotnet.server.path": "Sunucunun (LSP veya O#) yürütülebilir dosyasının mutlak yolunu belirtir. Boş bırakıldığında C# Uzantısına sabitlenen sürüm kullanılır. (Önceden 'omnisharp.path')", "configuration.dotnet.server.startTimeout": "İstemcinin başarılı bir şekilde başlatılması ve dil sunucusuna bağlanması için zaman aşımını (ms cinsinden) belirtir.", "configuration.dotnet.server.suppressLspErrorToasts": "Sunucu kurtarılabilir bir hatayla karşılaştığında hata bildirimlerinin görünmesini engeller.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", "configuration.dotnet.server.trace": "Dil sunucusu için günlük düzeyini ayarlar", "configuration.dotnet.server.useServerGC": "Dil sunucusunu .NET sunucusu atık toplamayı kullanmak üzere yapılandırın. Sunucu atık toplama, genellikle yüksek bellek tüketimi pahasına daha iyi performans sağlar.", "configuration.dotnet.server.waitForDebugger": "Bir hata ayıklayıcının eklenmesine izin vermek için sunucuyu başlatırken --debug bayrağını iletir. (Önceden 'omnisharp.waitForDebugger')", diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json index 6a72747fe..f8f02deb8 100644 --- a/package.nls.zh-cn.json +++ b/package.nls.zh-cn.json @@ -68,6 +68,7 @@ "configuration.dotnet.server.path": "指定服务器(LSP 或 O#)可执行文件的绝对路径。如果留空,会使用固定到 C# 扩展的版本。(之前为 \"omnisharp.path\")", "configuration.dotnet.server.startTimeout": "为客户端指定一个超时 (以毫秒为单位),以成功启动并连接到语言服务器。", "configuration.dotnet.server.suppressLspErrorToasts": "当服务器遇到可恢复错误时,禁止显示错误 toast。", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", "configuration.dotnet.server.trace": "设置语言服务器的日志记录级别", "configuration.dotnet.server.useServerGC": "将语言服务器配置为使用 .NET 服务器垃圾回收。服务器垃圾回收在提供更好的性能时通常需要消耗更多内存。", "configuration.dotnet.server.waitForDebugger": "启动服务器时传递 --debug 标志,以允许附加调试器。(之前为 \"omnisharp.waitForDebugger\")", diff --git a/package.nls.zh-tw.json b/package.nls.zh-tw.json index c5d712fb8..e66db3a2b 100644 --- a/package.nls.zh-tw.json +++ b/package.nls.zh-tw.json @@ -68,6 +68,7 @@ "configuration.dotnet.server.path": "指定伺服器 (LSP 或 O#) 可執行檔的絕對路徑。保留空白時,會使用釘選到 C# 延伸模組的版本。(先前為 `omnisharp.path`)", "configuration.dotnet.server.startTimeout": "指定用戶端順利啟動並連接到語言伺服器的逾時 (毫秒)。", "configuration.dotnet.server.suppressLspErrorToasts": "如果伺服器發生可復原的錯誤,隱藏不顯示錯誤快顯通知。", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", "configuration.dotnet.server.trace": "設定語言伺服器的記錄層次", "configuration.dotnet.server.useServerGC": "設定語言伺服器以使用 .NET 伺服器垃圾收集。伺服器垃圾收集通常會在耗用較高的記憶體時提供較佳的效能。", "configuration.dotnet.server.waitForDebugger": "啟動伺服器時傳遞 --debug 旗標,以允許附加偵錯工具。(先前為 `omnisharp.waitForDebugger`)", From e740fa96e245c35458884381e383e8bb2c1a84eb Mon Sep 17 00:00:00 2001 From: David Barbet Date: Fri, 11 Oct 2024 14:14:02 -0700 Subject: [PATCH 30/79] Update Roslyn --- CHANGELOG.md | 7 ++++++- package.json | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3e4f374f..e6a5a8c5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,15 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # Latest +* Add miscellaneous file open notifications (PR: [#7652](https://github.com/dotnet/vscode-csharp/pull/7652)) +* Require at least version 8.0.10 of the .net runtime (PR: [#7651](https://github.com/dotnet/vscode-csharp/pull/7651)) * Warn when the active file is not part of the open workspace (PR: [#7628](https://github.com/dotnet/vscode-csharp/pull/7628)) -* Update Roslyn to 4.13.0-1.24509.4 (PR: [#7628](https://github.com/dotnet/vscode-csharp/pull/7628)) +* Update debugger to 2.52.0 (PR: [#7648](https://github.com/dotnet/vscode-csharp/pull/7648)) +* Ensure Razor is initialized when project loaded outside of the workspace (PR: [#7645](https://github.com/dotnet/vscode-csharp/pull/7645)) +* Update Roslyn to 4.13.0-1.24511.1 (PR: [#7628](https://github.com/dotnet/vscode-csharp/pull/7628)) * Add a WorkspaceKind property to ProjectContext. (PR: [#75384](https://github.com/dotnet/roslyn/pull/75384)) * Convert more lambda rude edits to runtime rude edits (PR: [#75285](https://github.com/dotnet/roslyn/pull/75285)) +* Bumped xamlTools to 17.12.35403.211 (PR: [#7629](https://github.com/dotnet/vscode-csharp/pull/7629)) # 2.51.x * Bumped xamltools to 17.12.35403.211 (PR: [#7629](https://github.com/dotnet/vscode-csharp/pull/7629)) diff --git a/package.json b/package.json index b4a35cc65..af383a387 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ } }, "defaults": { - "roslyn": "4.13.0-1.24509.4", + "roslyn": "4.13.0-1.24511.1", "omniSharp": "1.39.11", "razor": "9.0.0-preview.24480.1", "razorOmnisharp": "7.0.0-preview.23363.1", From e31c4517f4187eeb6540f6415030b043124fc32c Mon Sep 17 00:00:00 2001 From: JoeRobich Date: Fri, 11 Oct 2024 23:13:40 +0000 Subject: [PATCH 31/79] Update main version --- version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.json b/version.json index 719a2ee4e..88d1c2c19 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "2.52", + "version": "2.53", "publicReleaseRefSpec": [ "^refs/heads/release$", "^refs/heads/prerelease$", From 2577bb595a0bc15875f42abf9803266e93a88296 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Fri, 11 Oct 2024 16:17:12 -0700 Subject: [PATCH 32/79] Fix up changelog --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6a5a8c5f..5f120afa1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,6 @@ * Bumped xamlTools to 17.12.35403.211 (PR: [#7629](https://github.com/dotnet/vscode-csharp/pull/7629)) # 2.51.x -* Bumped xamltools to 17.12.35403.211 (PR: [#7629](https://github.com/dotnet/vscode-csharp/pull/7629)) * Update Roslyn to 4.13.0-1.24503.11 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) * LSP hover responses escape backticks within inline code (PR: [#75364](https://github.com/dotnet/roslyn/pull/75364)) * Localize build host message output (PR: [#74910](https://github.com/dotnet/roslyn/pull/74910)) From f3cd81c17a1af57e8ba51bbc39620efe3d37f0d0 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Fri, 11 Oct 2024 16:22:40 -0700 Subject: [PATCH 33/79] Update versions in changelog --- CHANGELOG.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f120afa1..7d5fa84cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ - Diagnostics related feature requests and improvements [#5951](https://github.com/dotnet/vscode-csharp/issues/5951) - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) -# Latest +# 2.52.x * Add miscellaneous file open notifications (PR: [#7652](https://github.com/dotnet/vscode-csharp/pull/7652)) * Require at least version 8.0.10 of the .net runtime (PR: [#7651](https://github.com/dotnet/vscode-csharp/pull/7651)) * Warn when the active file is not part of the open workspace (PR: [#7628](https://github.com/dotnet/vscode-csharp/pull/7628)) @@ -14,7 +14,7 @@ * Convert more lambda rude edits to runtime rude edits (PR: [#75285](https://github.com/dotnet/roslyn/pull/75285)) * Bumped xamlTools to 17.12.35403.211 (PR: [#7629](https://github.com/dotnet/vscode-csharp/pull/7629)) -# 2.51.x +# 2.51.17 * Update Roslyn to 4.13.0-1.24503.11 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) * LSP hover responses escape backticks within inline code (PR: [#75364](https://github.com/dotnet/roslyn/pull/75364)) * Localize build host message output (PR: [#74910](https://github.com/dotnet/roslyn/pull/74910)) @@ -35,7 +35,7 @@ * Fix `FormattingContext` disposal (PR: [#10887](https://github.com/dotnet/razor/pull/10887)) * Fix #10891 - Formatting does not respect indentation within Razor comment blocks (PR: [#10893](https://github.com/dotnet/razor/pull/10893)) -# 2.50.x +# 2.50.25 * Update Roslyn to 4.13.0-1.24477.2 (PR: [#<>](https://github.com/dotnet/vscode-csharp/pull/<>)) * Use MSBuild globs to determine which file changes are relevant (PR: [#75139](https://github.com/dotnet/roslyn/pull/75139)) * Allow in DocComments to render as a block in Hover response (PR: [#75215](https://github.com/dotnet/roslyn/pull/75215)) @@ -45,7 +45,7 @@ * Support copilot registerRelatedFilesProvider API (PR: [#7605](https://github.com/dotnet/vscode-csharp/pull/7605)) * Update Debugger packages to v2.50.0 (PR: [#7597](https://github.com/dotnet/vscode-csharp/pull/7597)) -# 2.49.x +# 2.49.25 * Update Razor to 9.0.0-preview.24467.1 * Fix LF line-ending auto format bug (PR: [#10802](https://github.com/dotnet/razor/pull/10802)) * Bumped xamltools to 17.12.35319.159 (PR: [#7583](https://github.com/dotnet/vscode-csharp/pull/7583)) @@ -56,7 +56,7 @@ * Do not attempt to report EnC diagnostics for non-host workspaces (PR: [#75138](https://github.com/dotnet/roslyn/pull/75138)) * Allow Razor to get diagnostics for cohosting (PR: [#75102](https://github.com/dotnet/roslyn/pull/75102)) Í -# 2.48.x +# 2.48.31 * Add signing support to VSIX (PR: [#7490](https://github.com/dotnet/vscode-csharp/pull/7490)) * Update Debugger to v2.47.0 (PR: [#7547](https://github.com/dotnet/vscode-csharp/pull/7547)) * Adds in support for .NET 9 Break for Async User-Unhandled @@ -73,14 +73,14 @@ * Bump xamltools to 17.12.35311.18 (PR: [#7549](https://github.com/dotnet/vscode-csharp/pull/7549)) * XAML color swatches -# 2.47.x +# 2.47.21 * Update Roslyn to 4.12.0-3.24456.2 (PR: [#7525](https://github.com/dotnet/vscode-csharp/pull/7525)) * Avoid BuildHost crash in Mono due to missing types (PR: [#74994](https://github.com/dotnet/roslyn/pull/74994)) * Turn off word suggestions in XAML completions (PR: [#7516](https://github.com/dotnet/vscode-csharp/pull/7516)) * Bump xamltools to 17.12.35305.252 (PR: [#7521](https://github.com/dotnet/vscode-csharp/pull/7521)) * XAML editor enabled various lightbulbs related to x:DataType, BindingContext and Bindings. -# 2.46.x +# 2.46.32 * Update Roslyn to 4.12.0-3.24430.2 (PR: [#7496](https://github.com/dotnet/vscode-csharp/pull/7496)) * Bump Razor to 9.0.0-preview.24427.2 (PR: [#7471](https://github.com/dotnet/vscode-csharp/pull/7471)) * Suppress unique ids (#10791) (PR: [#10791](https://github.com/dotnet/razor/pull/10791)) From ad9f0c5d7d0c6fe859601681eaa64b9ecc37e051 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Tue, 15 Oct 2024 13:50:35 -0700 Subject: [PATCH 34/79] Lookup Razor file context using its document uri. --- .../services/projectContextService.ts | 29 +------------------ 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/src/lsptoolshost/services/projectContextService.ts b/src/lsptoolshost/services/projectContextService.ts index 4a5ef0a10..78cd9bb88 100644 --- a/src/lsptoolshost/services/projectContextService.ts +++ b/src/lsptoolshost/services/projectContextService.ts @@ -10,9 +10,6 @@ import { TextDocumentIdentifier } from 'vscode-languageserver-protocol'; import { UriConverter } from '../uriConverter'; import { LanguageServerEvents } from '../languageServerEvents'; import { ServerState } from '../serverStateChange'; -import { DynamicFileInfoHandler } from '../../razor/src/dynamicFile/dynamicFileInfoHandler'; -import { ProvideDynamicFileResponse } from '../../razor/src/dynamicFile/provideDynamicFileResponse'; -import { ProvideDynamicFileParams } from '../../razor/src/dynamicFile/provideDynamicFileParams'; export interface ProjectContextChangeEvent { uri: vscode.Uri; @@ -57,23 +54,13 @@ export class ProjectContextService { this._source.cancel(); this._source = new vscode.CancellationTokenSource(); - let uri = textEditor!.document.uri; + const uri = textEditor!.document.uri; if (!this._languageServer.isRunning()) { this._contextChangeEmitter.fire({ uri, context: this._emptyProjectContext }); return; } - // If the active document is a Razor file, we need to map it back to a C# file. - if (languageId === 'aspnetcorerazor') { - const virtualUri = await this.getVirtualCSharpUri(uri); - if (!virtualUri) { - return; - } - - uri = virtualUri; - } - const contextList = await this.getProjectContexts(uri, this._source.token); if (!contextList) { return; @@ -83,20 +70,6 @@ export class ProjectContextService { this._contextChangeEmitter.fire({ uri, context }); } - private async getVirtualCSharpUri(uri: vscode.Uri): Promise { - const response = await vscode.commands.executeCommand( - DynamicFileInfoHandler.provideDynamicFileInfoCommand, - new ProvideDynamicFileParams({ uri: UriConverter.serialize(uri) }) - ); - - const responseUri = response.csharpDocument?.uri; - if (!responseUri) { - return undefined; - } - - return UriConverter.deserialize(responseUri); - } - private async getProjectContexts( uri: vscode.Uri, token: vscode.CancellationToken From 99fd5642ca48f4788b4c7d2fd69c28ec532f3384 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Tue, 15 Oct 2024 21:29:56 -0700 Subject: [PATCH 35/79] Only show warning toasts for C# files in the misc workspace --- src/lsptoolshost/miscellaneousFileNotifier.ts | 8 ++++++-- src/lsptoolshost/services/projectContextService.ts | 6 ++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/lsptoolshost/miscellaneousFileNotifier.ts b/src/lsptoolshost/miscellaneousFileNotifier.ts index 0cec79154..71e550668 100644 --- a/src/lsptoolshost/miscellaneousFileNotifier.ts +++ b/src/lsptoolshost/miscellaneousFileNotifier.ts @@ -18,8 +18,12 @@ export function registerMiscellaneousFileNotifier( languageServer: RoslynLanguageServer ) { languageServer._projectContextService.onActiveFileContextChanged((e) => { - // Only warn for miscellaneous files when the workspace is fully initialized. - if (!e.context._vs_is_miscellaneous || languageServer.state !== ServerState.ProjectInitializationComplete) { + // Only warn for C# miscellaneous files when the workspace is fully initialized. + if ( + e.languageId !== 'csharp' || + !e.context._vs_is_miscellaneous || + languageServer.state !== ServerState.ProjectInitializationComplete + ) { return; } diff --git a/src/lsptoolshost/services/projectContextService.ts b/src/lsptoolshost/services/projectContextService.ts index 78cd9bb88..be4a4b17a 100644 --- a/src/lsptoolshost/services/projectContextService.ts +++ b/src/lsptoolshost/services/projectContextService.ts @@ -12,6 +12,7 @@ import { LanguageServerEvents } from '../languageServerEvents'; import { ServerState } from '../serverStateChange'; export interface ProjectContextChangeEvent { + languageId: string; uri: vscode.Uri; context: VSProjectContext; } @@ -57,17 +58,18 @@ export class ProjectContextService { const uri = textEditor!.document.uri; if (!this._languageServer.isRunning()) { - this._contextChangeEmitter.fire({ uri, context: this._emptyProjectContext }); + this._contextChangeEmitter.fire({ languageId, uri, context: this._emptyProjectContext }); return; } const contextList = await this.getProjectContexts(uri, this._source.token); if (!contextList) { + this._contextChangeEmitter.fire({ languageId, uri, context: this._emptyProjectContext }); return; } const context = contextList._vs_projectContexts[contextList._vs_defaultIndex]; - this._contextChangeEmitter.fire({ uri, context }); + this._contextChangeEmitter.fire({ languageId, uri, context }); } private async getProjectContexts( From 50e91ef3a28a959ee6490df07d214482acd8cf2b Mon Sep 17 00:00:00 2001 From: Timothy Miller Date: Wed, 16 Oct 2024 15:56:45 +0900 Subject: [PATCH 36/79] Bump xamltools --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index af383a387..f86ea1d4f 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "omniSharp": "1.39.11", "razor": "9.0.0-preview.24480.1", "razorOmnisharp": "7.0.0-preview.23363.1", - "xamlTools": "17.12.35403.211" + "xamlTools": "17.12.35415.191" }, "main": "./dist/extension", "l10n": "./l10n", From cf3844db9b95ff5f3de8cefcc6867d78fe32da85 Mon Sep 17 00:00:00 2001 From: Timothy Miller Date: Wed, 16 Oct 2024 15:58:28 +0900 Subject: [PATCH 37/79] Update CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d5fa84cd..8a4ca1a92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ * Update Roslyn to 4.13.0-1.24511.1 (PR: [#7628](https://github.com/dotnet/vscode-csharp/pull/7628)) * Add a WorkspaceKind property to ProjectContext. (PR: [#75384](https://github.com/dotnet/roslyn/pull/75384)) * Convert more lambda rude edits to runtime rude edits (PR: [#75285](https://github.com/dotnet/roslyn/pull/75285)) -* Bumped xamlTools to 17.12.35403.211 (PR: [#7629](https://github.com/dotnet/vscode-csharp/pull/7629)) +* Bumped xamlTools to 17.12.35415.191 (PR: [#7664](https://github.com/dotnet/vscode-csharp/pull/7664)) # 2.51.17 * Update Roslyn to 4.13.0-1.24503.11 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) From 5dcc4c6f4b6eddbd1a4e9cc40fc443cecdf7e6a3 Mon Sep 17 00:00:00 2001 From: Timothy Miller Date: Thu, 17 Oct 2024 01:20:39 +0900 Subject: [PATCH 38/79] Actually, bump to 17.13.35414.86 --- CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a4ca1a92..51a643394 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ * Update Roslyn to 4.13.0-1.24511.1 (PR: [#7628](https://github.com/dotnet/vscode-csharp/pull/7628)) * Add a WorkspaceKind property to ProjectContext. (PR: [#75384](https://github.com/dotnet/roslyn/pull/75384)) * Convert more lambda rude edits to runtime rude edits (PR: [#75285](https://github.com/dotnet/roslyn/pull/75285)) -* Bumped xamlTools to 17.12.35415.191 (PR: [#7664](https://github.com/dotnet/vscode-csharp/pull/7664)) +* Bumped xamlTools to 17.13.35414.86 (PR: [#7664](https://github.com/dotnet/vscode-csharp/pull/7664)) # 2.51.17 * Update Roslyn to 4.13.0-1.24503.11 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) diff --git a/package.json b/package.json index f86ea1d4f..9c7946ef3 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "omniSharp": "1.39.11", "razor": "9.0.0-preview.24480.1", "razorOmnisharp": "7.0.0-preview.23363.1", - "xamlTools": "17.12.35415.191" + "xamlTools": "17.13.35414.86" }, "main": "./dist/extension", "l10n": "./l10n", From 256c3bb47e660462d20d80044ffc3697e90dc497 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Wed, 16 Oct 2024 13:29:02 -0700 Subject: [PATCH 39/79] Escape code block in changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d5fa84cd..972877925 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,7 +38,7 @@ # 2.50.25 * Update Roslyn to 4.13.0-1.24477.2 (PR: [#<>](https://github.com/dotnet/vscode-csharp/pull/<>)) * Use MSBuild globs to determine which file changes are relevant (PR: [#75139](https://github.com/dotnet/roslyn/pull/75139)) - * Allow in DocComments to render as a block in Hover response (PR: [#75215](https://github.com/dotnet/roslyn/pull/75215)) + * Allow `` in DocComments to render as a block in Hover response (PR: [#75215](https://github.com/dotnet/roslyn/pull/75215)) * Ignore irrelevant exceptions when reporting LSP server NFW (PR: [#75150](https://github.com/dotnet/roslyn/pull/75150)) * Bumped xamltools to 17.12.35326.17 (PR: [#7610](https://github.com/dotnet/vscode-csharp/pull/7610)) * Do not remove documents if they are not files (PR: [#7607](https://github.com/dotnet/vscode-csharp/pull/7607)) From b6b0dd675b2c9a22e0dc50d2f788651cfa3b66df Mon Sep 17 00:00:00 2001 From: dotnet-bot Date: Wed, 16 Oct 2024 21:51:00 +0000 Subject: [PATCH 40/79] Localization result of e612c07e5da7008e7df46a3d8dcdab28a961f5a9. --- l10n/bundle.l10n.cs.json | 2 +- l10n/bundle.l10n.de.json | 2 +- l10n/bundle.l10n.es.json | 2 +- l10n/bundle.l10n.fr.json | 2 +- l10n/bundle.l10n.it.json | 2 +- l10n/bundle.l10n.ja.json | 2 +- l10n/bundle.l10n.ko.json | 6 +++--- l10n/bundle.l10n.pl.json | 2 +- l10n/bundle.l10n.pt-br.json | 6 +++--- l10n/bundle.l10n.ru.json | 2 +- l10n/bundle.l10n.tr.json | 2 +- l10n/bundle.l10n.zh-cn.json | 2 +- l10n/bundle.l10n.zh-tw.json | 2 +- package.nls.ko.json | 2 +- package.nls.pt-br.json | 2 +- 15 files changed, 19 insertions(+), 19 deletions(-) diff --git a/l10n/bundle.l10n.cs.json b/l10n/bundle.l10n.cs.json index c29bf5999..944c2b25f 100644 --- a/l10n/bundle.l10n.cs.json +++ b/l10n/bundle.l10n.cs.json @@ -42,7 +42,7 @@ "Description of the problem": "Popis problému", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Zjistila se změna v nastavení telemetrie. Tyto změny se projeví až po restartování jazykového serveru. Chcete ho restartovat?", "Disable message in settings": "Zakázat zprávu v nastavení", - "Dismiss": "Dismiss", + "Dismiss": "Zrušit", "Do not load any": "Nic nenačítat", "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "Neobsahuje projekty .NET Core.", diff --git a/l10n/bundle.l10n.de.json b/l10n/bundle.l10n.de.json index 06f5cd8e3..d468ae15d 100644 --- a/l10n/bundle.l10n.de.json +++ b/l10n/bundle.l10n.de.json @@ -42,7 +42,7 @@ "Description of the problem": "Beschreibung des Problems", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Es wurde eine Änderung der Telemetrieeinstellungen erkannt. Diese werden erst wirksam, nachdem der Sprachserver neu gestartet wurde. Möchten Sie einen Neustart durchführen?", "Disable message in settings": "Nachricht in Einstellungen deaktivieren", - "Dismiss": "Dismiss", + "Dismiss": "Schließen", "Do not load any": "Keine laden", "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "Enthält keine .NET Core-Projekte.", diff --git a/l10n/bundle.l10n.es.json b/l10n/bundle.l10n.es.json index 79498340b..903e68858 100644 --- a/l10n/bundle.l10n.es.json +++ b/l10n/bundle.l10n.es.json @@ -42,7 +42,7 @@ "Description of the problem": "Descripción del problema", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Se detectó un cambio en la configuración de telemetría. Estos no surtirán efecto hasta que se reinicie el servidor de idioma. ¿Desea reiniciarlo?", "Disable message in settings": "Deshabilitar mensaje en la configuración", - "Dismiss": "Dismiss", + "Dismiss": "Descartar", "Do not load any": "No cargar ninguno", "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "No contiene proyectos de .NET Core.", diff --git a/l10n/bundle.l10n.fr.json b/l10n/bundle.l10n.fr.json index f0ac1ec13..97a6c61e6 100644 --- a/l10n/bundle.l10n.fr.json +++ b/l10n/bundle.l10n.fr.json @@ -42,7 +42,7 @@ "Description of the problem": "Description du problème", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Détection d’une modification des paramètres de télémétrie. Celles-ci ne prendront effet qu’après le redémarrage du serveur de langue. Voulez-vous redémarrer ?", "Disable message in settings": "Désactiver le message dans les paramètres", - "Dismiss": "Dismiss", + "Dismiss": "Ignorer", "Do not load any": "Ne charger aucun", "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "Ne contient pas de projets .NET Core.", diff --git a/l10n/bundle.l10n.it.json b/l10n/bundle.l10n.it.json index a8e7c3338..e15064dcc 100644 --- a/l10n/bundle.l10n.it.json +++ b/l10n/bundle.l10n.it.json @@ -42,7 +42,7 @@ "Description of the problem": "Descrizione del problema", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Modifica rilevata nelle impostazioni di telemetria. Queste impostazioni avranno effetto solo dopo il riavvio del server di lingua. Riavviare?", "Disable message in settings": "Disabilita messaggio nelle impostazioni", - "Dismiss": "Dismiss", + "Dismiss": "Chiudi", "Do not load any": "Non caricare", "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "Non contiene progetti .NET Core.", diff --git a/l10n/bundle.l10n.ja.json b/l10n/bundle.l10n.ja.json index 2aee4fa52..cf0e7134b 100644 --- a/l10n/bundle.l10n.ja.json +++ b/l10n/bundle.l10n.ja.json @@ -42,7 +42,7 @@ "Description of the problem": "問題の説明", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "テレメトリ設定の変更が検出されました。言語サーバーが再起動されるまで、これらは有効になりません。再起動しますか?", "Disable message in settings": "設定でメッセージを無効にする", - "Dismiss": "Dismiss", + "Dismiss": "無視", "Do not load any": "何も読み込まない", "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": ".NET Core プロジェクトが含まれていません。", diff --git a/l10n/bundle.l10n.ko.json b/l10n/bundle.l10n.ko.json index 5d227942b..ded7eed9f 100644 --- a/l10n/bundle.l10n.ko.json +++ b/l10n/bundle.l10n.ko.json @@ -42,9 +42,9 @@ "Description of the problem": "문제 설명", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "원격 분석 설정에서 변경 사항이 감지되었습니다. 언어 서버가 다시 시작될 때까지 적용되지 않습니다. 다시 시작하시겠습니까?", "Disable message in settings": "설정에서 메시지 비활성화", - "Dismiss": "Dismiss", + "Dismiss": "해제", "Do not load any": "로드 안 함", - "Do not show for this workspace": "Do not show for this workspace", + "Do not show for this workspace": "이 작업 영역에 대해 표시 안 함", "Does not contain .NET Core projects.": ".NET Core 프로젝트가 포함되어 있지 않습니다.", "Don't Ask Again": "다시 묻지 않음", "Download Mono": "Mono 다운로드", @@ -158,7 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Visual Studio Code의 C# 확장이 {0} {1}에서 호환되지 않습니다.", "The C# extension is still downloading packages. Please see progress in the output window below.": "C# 확장이 여전히 패키지를 다운로드하고 있습니다. 아래 출력 창에서 진행 상황을 확인하세요.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "C# 확장은 실행 가능한 launch.json 파일을 만들기 위해 현재 작업 영역에서 프로젝트를 자동으로 디코딩할 수 없습니다. 템플릿 launch.json 파일이 자리 표시자로 생성되었습니다.\r\n\r\n현재 서버에서 프로젝트를 로드할 수 없는 경우 누락된 프로젝트 종속성을 복원하고(예: 'dotnet restore' 실행) 작업 영역에서 프로젝트를 빌드할 때 보고된 오류를 수정하여 이 문제를 해결할 수 있습니다.\r\n이렇게 하면 서버가 이제 프로젝트를 로드할 수 있습니다.\r\n * 이 파일 삭제\r\n * Visual Studio Code 명령 팔레트 열기(보기->명령 팔레트)\r\n * '.NET: 빌드 및 디버그용 자산 생성' 명령을 실행합니다.\r\n\r\n프로젝트에 보다 복잡한 시작 구성이 필요한 경우 이 구성을 삭제하고 이 파일 하단의 '구성 추가...' 버튼을 사용하여 다른 템플릿을 선택할 수 있습니다.", - "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", + "The active document is not part of the open workspace. Not all language features will be available.": "활성 문서는 열려 있는 작업 영역의 일부가 아닙니다. 일부 언어 기능을 사용할 수 없습니다.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "선택한 시작 구성이 웹 브라우저를 시작하도록 구성되었지만 신뢰할 수 있는 개발 인증서를 찾을 수 없습니다. 신뢰할 수 있는 자체 서명 인증서를 만드시겠습니까?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "시작 구성의 'targetArchitecture'의 '{0}' 값이 잘못되었습니다. 'x86_64' 또는 'arm64'가 필요합니다.", "There are unresolved dependencies. Please execute the restore command to continue.": "확인되지 않은 종속성이 있습니다. 계속하려면 복원 명령을 실행하세요.", diff --git a/l10n/bundle.l10n.pl.json b/l10n/bundle.l10n.pl.json index 1e341eb9b..b1ebcf8b9 100644 --- a/l10n/bundle.l10n.pl.json +++ b/l10n/bundle.l10n.pl.json @@ -42,7 +42,7 @@ "Description of the problem": "Opis problemu", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Wykryto zmianę ustawień telemetrii. Te zmiany zaczną obowiązywać dopiero po ponownym uruchomieniu serwera językowego. Czy chcesz ponownie uruchomić?", "Disable message in settings": "Wyłącz komunikat w ustawieniach", - "Dismiss": "Dismiss", + "Dismiss": "Odrzuć", "Do not load any": "Nie ładuj żadnych", "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "Nie zawiera projektów platformy .NET Core.", diff --git a/l10n/bundle.l10n.pt-br.json b/l10n/bundle.l10n.pt-br.json index 42ef9bc77..b6eb5d5f1 100644 --- a/l10n/bundle.l10n.pt-br.json +++ b/l10n/bundle.l10n.pt-br.json @@ -42,9 +42,9 @@ "Description of the problem": "Descrição do problema", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Alteração detectada nas configurações de telemetria. Eles não entrarão em vigor até que o servidor de idiomas seja reiniciado, quer reiniciar?", "Disable message in settings": "Desabilitar uma mensagem nas configurações", - "Dismiss": "Dismiss", + "Dismiss": "Ignorar", "Do not load any": "Não carregue nenhum", - "Do not show for this workspace": "Do not show for this workspace", + "Do not show for this workspace": "Não mostrar para este workspace", "Does not contain .NET Core projects.": "Não contém projetos do .NET Core.", "Don't Ask Again": "Não perguntar novamente", "Download Mono": "Baixar Mono", @@ -158,7 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "A extensão C# para Visual Studio Code é incompatível no {0} {1}.", "The C# extension is still downloading packages. Please see progress in the output window below.": "A extensão C# ainda está baixando pacotes. Veja o progresso na janela de saída abaixo.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "A extensão C# não conseguiu decodificar projetos automaticamente no workspace atual para criar um arquivo launch.json executável. Um modelo de arquivo launch.json foi criado como um espaço reservado.\r\n\r\nSe o servidor não estiver sendo capaz de carregar seu projeto no momento, você pode tentar resolver isso restaurando as dependências ausentes do projeto (por exemplo: executar \"dotnet restore\") e corrigindo quaisquer erros notificados com relação à compilação dos projetos no seu workspace.\r\nSe isso permitir que o servidor consiga carregar o projeto agora:\r\n * Exclua esse arquivo\r\n * Abra a paleta de comandos do Visual Studio Code (Ver->Paleta de Comandos)\r\n * execute o comando: \".NET: Generate Assets for Build and Debug\".\r\n\r\nSe o seu projeto requerer uma configuração de inicialização mais complexa, talvez você queira excluir essa configuração e escolher um modelo diferente usando o botão \"Adicionar Configuração...\" na parte inferior desse arquivo.", - "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", + "The active document is not part of the open workspace. Not all language features will be available.": "O documento ativo não faz parte do workspace aberto. Nem todos os recursos de linguagem estarão disponíveis.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "A configuração de inicialização selecionada está configurada para iniciar um navegador da web, mas nenhum certificado de desenvolvimento confiável foi encontrado. Deseja criar um certificado autoassinado confiável?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "O valor “{0}” para “targetArchitecture” na configuração de inicialização é inválido. Esperado “x86_64” ou “arm64”.", "There are unresolved dependencies. Please execute the restore command to continue.": "Há dependências não resolvidas. Execute o comando de restauração para continuar.", diff --git a/l10n/bundle.l10n.ru.json b/l10n/bundle.l10n.ru.json index 22988b622..af7441833 100644 --- a/l10n/bundle.l10n.ru.json +++ b/l10n/bundle.l10n.ru.json @@ -42,7 +42,7 @@ "Description of the problem": "Описание проблемы", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Обнаружено изменение параметров телеметрии. Они вступят в силу только после перезапуска языкового сервера. Выполнить перезапуск?", "Disable message in settings": "Отключить сообщение в параметрах", - "Dismiss": "Dismiss", + "Dismiss": "Отклонить", "Do not load any": "Не загружать", "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "Не содержит проектов .NET Core.", diff --git a/l10n/bundle.l10n.tr.json b/l10n/bundle.l10n.tr.json index 2e9671800..08a8f42fa 100644 --- a/l10n/bundle.l10n.tr.json +++ b/l10n/bundle.l10n.tr.json @@ -42,7 +42,7 @@ "Description of the problem": "Sorunun açıklaması", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "Telemetri ayarlarında değişiklik algılandı. Bunlar dil sunucusu yeniden başlatılana kadar etkili olmayacaktır, yeniden başlatmak ister misiniz?", "Disable message in settings": "Ayarlarda iletiyi devre dışı bırakma", - "Dismiss": "Dismiss", + "Dismiss": "Kapat", "Do not load any": "Hiçbir şey yükleme", "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": ".NET Core projeleri içermiyor.", diff --git a/l10n/bundle.l10n.zh-cn.json b/l10n/bundle.l10n.zh-cn.json index 330b07289..6c995cd90 100644 --- a/l10n/bundle.l10n.zh-cn.json +++ b/l10n/bundle.l10n.zh-cn.json @@ -42,7 +42,7 @@ "Description of the problem": "问题说明", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "检测到遥测设置发生更改。这些更改只有在语言服务器重启后才会生效,是否要重启?", "Disable message in settings": "在设置中禁用消息", - "Dismiss": "Dismiss", + "Dismiss": "关闭", "Do not load any": "请勿加载任何", "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "不包含 .NET Core 项目。", diff --git a/l10n/bundle.l10n.zh-tw.json b/l10n/bundle.l10n.zh-tw.json index 7d2ffe659..dc1bb5939 100644 --- a/l10n/bundle.l10n.zh-tw.json +++ b/l10n/bundle.l10n.zh-tw.json @@ -42,7 +42,7 @@ "Description of the problem": "問題的描述", "Detected change in telemetry settings. These will not take effect until the language server is restarted, would you like to restart?": "偵測到遙測設定中的變更。在重新啟動語言伺服器之前,這些將不會生效,是否要重新啟動?", "Disable message in settings": "停用設定中的訊息", - "Dismiss": "Dismiss", + "Dismiss": "關閉", "Do not load any": "不要載入", "Do not show for this workspace": "Do not show for this workspace", "Does not contain .NET Core projects.": "不包含 .NET Core 專案。", diff --git a/package.nls.ko.json b/package.nls.ko.json index 6d606e2f5..57c87595d 100644 --- a/package.nls.ko.json +++ b/package.nls.ko.json @@ -68,7 +68,7 @@ "configuration.dotnet.server.path": "서버(LSP 또는 O#) 실행 파일의 절대 경로를 지정합니다. 비어 있으면 C# 확장에 고정된 버전이 사용됩니다(이전 `omnisharp.path`).", "configuration.dotnet.server.startTimeout": "클라이언트가 언어 서버를 시작하고 연결하기 위한 시간 제한(밀리초)을 지정합니다.", "configuration.dotnet.server.suppressLspErrorToasts": "서버에서 복구 가능한 오류가 발생하는 경우 오류 알림이 표시되지 않도록 합니다.", - "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "활성 문서가 열려 있는 작업 영역 밖에 있는 경우 경고 알림이 표시되지 않도록 합니다.", "configuration.dotnet.server.trace": "언어 서버의 로깅 수준을 설정합니다.", "configuration.dotnet.server.useServerGC": ".NET 서버 가비지 수집을 사용하도록 언어 서버를 구성합니다. 서버 가비지 수집은 일반적으로 메모리 사용량이 많을수록 성능이 향상됩니다.", "configuration.dotnet.server.waitForDebugger": "디버거 연결을 허용하기 위해 서버를 시작할 때 --debug 플래그를 전달합니다(이전 `omnisharp.waitForDebugger`).", diff --git a/package.nls.pt-br.json b/package.nls.pt-br.json index 663111e31..b2d572c40 100644 --- a/package.nls.pt-br.json +++ b/package.nls.pt-br.json @@ -68,7 +68,7 @@ "configuration.dotnet.server.path": "Especifica o caminho absoluto para o executável do servidor (LSP ou O#). Quando deixado em branco, a versão fixada na extensão C# é usada. (Anteriormente `omnisharp.path`)", "configuration.dotnet.server.startTimeout": "Especifica um tempo limite (em ms) para o cliente iniciar e conectar-se com êxito ao servidor de idioma.", "configuration.dotnet.server.suppressLspErrorToasts": "Suprime a exibição de notificações do erro se o servidor encontrar um erro recuperável.", - "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suprima a exibição de notificações de aviso do sistema se o documento ativo estiver fora do workspace aberto.", "configuration.dotnet.server.trace": "Define o nível de log para o servidor de idiomas", "configuration.dotnet.server.useServerGC": "Configure o servidor de linguagem para usar a coleta de lixo do servidor do .NET. A coleta de lixo do servidor geralmente fornece um melhor desempenho às custas de um consumo de memória mais alto.", "configuration.dotnet.server.waitForDebugger": "Passa o sinalizador --debug ao iniciar o servidor para permitir que um depurador seja anexado. (Anteriormente `omnisharp.waitForDebugger`)", From 311f03281cd9dedf1dab0f64bf0764b2cbbdb540 Mon Sep 17 00:00:00 2001 From: Andrew Hall Date: Wed, 16 Oct 2024 17:07:31 -0700 Subject: [PATCH 41/79] Update razor (#7667) --- CHANGELOG.md | 15 +++++++++++++++ package.json | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec1a9fd23..0013bbe31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,21 @@ - Diagnostics related feature requests and improvements [#5951](https://github.com/dotnet/vscode-csharp/issues/5951) - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) +# Latest +* Update razor to 9.0.0-preview.24516.1 (PR: [#7667](https://github.com/dotnet/vscode-csharp/pull/7667)) + * Add CLaSP Request Tracking (PR: [#11015](https://github.com/dotnet/razor/pull/11015)) + * Fix potentially ambiguous System.Object in _Imports.razor (PR: [#10999](https://github.com/dotnet/razor/pull/10999)) + * Fix nullability to match specification (PR: [#11003](https://github.com/dotnet/razor/pull/11003)) + * Recognize `_Imports.razor` in the source generator (PR: [#10992](https://github.com/dotnet/razor/pull/10992)) + * Fix @inherits mapping for fuse (PR: [#10985](https://github.com/dotnet/razor/pull/10985)) + * Fix project publish (or: Various project system fixes) (PR: [#10983](https://github.com/dotnet/razor/pull/10983)) + * Emit and map empty csharp tokens (PR: [#10969](https://github.com/dotnet/razor/pull/10969)) + * Fix Generate Event Handler code action (PR: [#10967](https://github.com/dotnet/razor/pull/10967)) + * Add IProjectSnapshot.ContainsDocument to test document paths cheaply (PR: [#10975](https://github.com/dotnet/razor/pull/10975)) + * Refresh diagnostics on project changes (PR: [#10964](https://github.com/dotnet/razor/pull/10964)) + * Don't throw if we get an old/bad Inlay Hint request (PR: [#10968](https://github.com/dotnet/razor/pull/10968)) + * Fix on type formatting (PR: [#10949](https://github.com/dotnet/razor/pull/10949)) + # 2.52.x * Add miscellaneous file open notifications (PR: [#7652](https://github.com/dotnet/vscode-csharp/pull/7652)) * Require at least version 8.0.10 of the .net runtime (PR: [#7651](https://github.com/dotnet/vscode-csharp/pull/7651)) diff --git a/package.json b/package.json index 9c7946ef3..8e913737e 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "defaults": { "roslyn": "4.13.0-1.24511.1", "omniSharp": "1.39.11", - "razor": "9.0.0-preview.24480.1", + "razor": "9.0.0-preview.24516.1", "razorOmnisharp": "7.0.0-preview.23363.1", "xamlTools": "17.13.35414.86" }, From 3cb14180cb01688653723c9389c92a2ca1d805a1 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Wed, 16 Oct 2024 17:29:15 -0700 Subject: [PATCH 42/79] move change to correct section --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0013bbe31..b789c9856 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # Latest +* Bumped xamlTools to 17.13.35414.86 (PR: [#7664](https://github.com/dotnet/vscode-csharp/pull/7664)) * Update razor to 9.0.0-preview.24516.1 (PR: [#7667](https://github.com/dotnet/vscode-csharp/pull/7667)) * Add CLaSP Request Tracking (PR: [#11015](https://github.com/dotnet/razor/pull/11015)) * Fix potentially ambiguous System.Object in _Imports.razor (PR: [#10999](https://github.com/dotnet/razor/pull/10999)) @@ -27,7 +28,8 @@ * Update Roslyn to 4.13.0-1.24511.1 (PR: [#7628](https://github.com/dotnet/vscode-csharp/pull/7628)) * Add a WorkspaceKind property to ProjectContext. (PR: [#75384](https://github.com/dotnet/roslyn/pull/75384)) * Convert more lambda rude edits to runtime rude edits (PR: [#75285](https://github.com/dotnet/roslyn/pull/75285)) -* Bumped xamlTools to 17.13.35414.86 (PR: [#7664](https://github.com/dotnet/vscode-csharp/pull/7664)) +* Bumped xamlTools to 17.12.35403.211 (PR: [#7629](https://github.com/dotnet/vscode-csharp/pull/7629)) + # 2.51.17 * Update Roslyn to 4.13.0-1.24503.11 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) From 69f9deed166c90d2ef92d769bd97dfdf45c3ae42 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Wed, 16 Oct 2024 17:29:56 -0700 Subject: [PATCH 43/79] fix spacing --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b789c9856..469b21c28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,7 +30,6 @@ * Convert more lambda rude edits to runtime rude edits (PR: [#75285](https://github.com/dotnet/roslyn/pull/75285)) * Bumped xamlTools to 17.12.35403.211 (PR: [#7629](https://github.com/dotnet/vscode-csharp/pull/7629)) - # 2.51.17 * Update Roslyn to 4.13.0-1.24503.11 (PR: [#7618](https://github.com/dotnet/vscode-csharp/pull/7618)) * LSP hover responses escape backticks within inline code (PR: [#75364](https://github.com/dotnet/roslyn/pull/75364)) From f2627955c5ab58c0d86ad68b984a11be64ba9fb0 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Fri, 18 Oct 2024 15:23:51 -0700 Subject: [PATCH 44/79] Update Roslyn version and changelog --- CHANGELOG.md | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 469b21c28..c30b65227 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,12 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # Latest +* Update Roslyn to 4.13.0-1.24518.1 (PR: [#7670](https://github.com/dotnet/vscode-csharp/pull/7670)) + * Fix issue where server sometimes crashed when saving new C# file for the first time (PR: [#75509](https://github.com/dotnet/roslyn/pull/75509)) + * Report LSP loading telemetry (PR: [#75402](https://github.com/dotnet/roslyn/pull/75402)) * Bumped xamlTools to 17.13.35414.86 (PR: [#7664](https://github.com/dotnet/vscode-csharp/pull/7664)) +* Escape code block in changelog (PR: [#7665](https://github.com/dotnet/vscode-csharp/pull/7665)) +* Lookup Razor file context using its document uri. (PR: [#7663](https://github.com/dotnet/vscode-csharp/pull/7663)) * Update razor to 9.0.0-preview.24516.1 (PR: [#7667](https://github.com/dotnet/vscode-csharp/pull/7667)) * Add CLaSP Request Tracking (PR: [#11015](https://github.com/dotnet/razor/pull/11015)) * Fix potentially ambiguous System.Object in _Imports.razor (PR: [#10999](https://github.com/dotnet/razor/pull/10999)) diff --git a/package.json b/package.json index 8e913737e..982c4347f 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ } }, "defaults": { - "roslyn": "4.13.0-1.24511.1", + "roslyn": "4.13.0-1.24518.1", "omniSharp": "1.39.11", "razor": "9.0.0-preview.24516.1", "razorOmnisharp": "7.0.0-preview.23363.1", From 8bee17afab4ba781139a10c0e5aa2476ea88aef0 Mon Sep 17 00:00:00 2001 From: dibarbet Date: Fri, 18 Oct 2024 23:15:25 +0000 Subject: [PATCH 45/79] Update main version --- version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.json b/version.json index 88d1c2c19..a0d2dfb02 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "2.53", + "version": "2.54", "publicReleaseRefSpec": [ "^refs/heads/release$", "^refs/heads/prerelease$", From f8f16c3ec9e171232db901febd0f353c3862abb2 Mon Sep 17 00:00:00 2001 From: dotnet-bot Date: Mon, 21 Oct 2024 06:33:19 +0000 Subject: [PATCH 46/79] Localization result of b03fd815e60e3f0aac50aaa1162859b0de035342. --- l10n/bundle.l10n.cs.json | 4 ++-- l10n/bundle.l10n.de.json | 4 ++-- l10n/bundle.l10n.es.json | 4 ++-- l10n/bundle.l10n.fr.json | 4 ++-- l10n/bundle.l10n.it.json | 4 ++-- l10n/bundle.l10n.ja.json | 4 ++-- l10n/bundle.l10n.pl.json | 4 ++-- l10n/bundle.l10n.ru.json | 4 ++-- l10n/bundle.l10n.tr.json | 4 ++-- l10n/bundle.l10n.zh-cn.json | 4 ++-- l10n/bundle.l10n.zh-tw.json | 4 ++-- package.nls.cs.json | 2 +- package.nls.de.json | 2 +- package.nls.es.json | 2 +- package.nls.fr.json | 2 +- package.nls.it.json | 2 +- package.nls.ja.json | 2 +- package.nls.pl.json | 2 +- package.nls.ru.json | 2 +- package.nls.tr.json | 2 +- package.nls.zh-cn.json | 2 +- package.nls.zh-tw.json | 2 +- 22 files changed, 33 insertions(+), 33 deletions(-) diff --git a/l10n/bundle.l10n.cs.json b/l10n/bundle.l10n.cs.json index 944c2b25f..26fdd7e86 100644 --- a/l10n/bundle.l10n.cs.json +++ b/l10n/bundle.l10n.cs.json @@ -44,7 +44,7 @@ "Disable message in settings": "Zakázat zprávu v nastavení", "Dismiss": "Zrušit", "Do not load any": "Nic nenačítat", - "Do not show for this workspace": "Do not show for this workspace", + "Do not show for this workspace": "Nezobrazovat pro tento pracovní prostor", "Does not contain .NET Core projects.": "Neobsahuje projekty .NET Core.", "Don't Ask Again": "Příště už se neptat", "Download Mono": "Stáhnout Mono", @@ -158,7 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Rozšíření jazyka C# pro Visual Studio Code není na {0} {1} kompatibilní.", "The C# extension is still downloading packages. Please see progress in the output window below.": "Rozšíření C# stále stahuje balíčky. Průběh si můžete prohlédnout v okně výstupu níže.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "Rozšíření C# nemohlo automaticky dekódovat projekty v aktuálním pracovním prostoru a vytvořit spustitelný soubor launch.json. Soubor launch.json šablony se vytvořil jako zástupný symbol.\r\n\r\nPokud server momentálně nemůže načíst váš projekt, můžete se pokusit tento problém vyřešit obnovením chybějících závislostí projektu (například spuštěním příkazu dotnet restore) a opravou všech nahlášených chyb při sestavování projektů ve vašem pracovním prostoru.\r\nPokud to serveru umožní načíst váš projekt, pak --\r\n * Odstraňte tento soubor\r\n * Otevřete paletu příkazů Visual Studio Code (View->Command Palette)\r\n * Spusťte příkaz: .“NET: Generate Assets for Build and Debug“ (Generovat prostředky pro sestavení a ladění).\r\n\r\nPokud váš projekt vyžaduje složitější konfiguraci spuštění, možná budete chtít tuto konfiguraci odstranit a vybrat jinou šablonu pomocí možnosti „Přidat konfiguraci“ v dolní části tohoto souboru.", - "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", + "The active document is not part of the open workspace. Not all language features will be available.": "Aktivní dokument není součástí otevřeného pracovního prostoru. Nebudou k dispozici všechny jazykové funkce.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "Vybraná konfigurace spuštění je nakonfigurovaná tak, aby spustila webový prohlížeč, ale nenašel se žádný důvěryhodný vývojový certifikát. Chcete vytvořit důvěryhodný certifikát podepsaný svým držitelem (self-signed certificate)?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "Hodnota {0} pro parametr targetArchitecture v konfiguraci spuštění je neplatná. Očekávala se hodnota x86_64 nebo arm64.", "There are unresolved dependencies. Please execute the restore command to continue.": "Existují nevyřešené závislosti. Pokud chcete pokračovat, spusťte prosím příkaz pro obnovení.", diff --git a/l10n/bundle.l10n.de.json b/l10n/bundle.l10n.de.json index d468ae15d..77d9e88a2 100644 --- a/l10n/bundle.l10n.de.json +++ b/l10n/bundle.l10n.de.json @@ -44,7 +44,7 @@ "Disable message in settings": "Nachricht in Einstellungen deaktivieren", "Dismiss": "Schließen", "Do not load any": "Keine laden", - "Do not show for this workspace": "Do not show for this workspace", + "Do not show for this workspace": "Nicht für diesen Arbeitsbereich anzeigen", "Does not contain .NET Core projects.": "Enthält keine .NET Core-Projekte.", "Don't Ask Again": "Nicht mehr fragen", "Download Mono": "Mono Herunterladen", @@ -158,7 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Die C#-Erweiterung für Visual Studio Code ist auf {0} {1} nicht kompatibel.", "The C# extension is still downloading packages. Please see progress in the output window below.": "Die C#-Erweiterung lädt weiterhin Pakete herunter. Den Fortschritt finden Sie unten im Ausgabefenster.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "Die C#-Erweiterung konnte Projekte im aktuellen Arbeitsbereich nicht automatisch decodieren, um eine ausführbare Datei \"launch.json\" zu erstellen. Eine launch.json-Vorlagendatei wurde als Platzhalter erstellt.\r\n\r\nWenn der Server Ihr Projekt zurzeit nicht laden kann, können Sie versuchen, dies zu beheben, indem Sie fehlende Projektabhängigkeiten wiederherstellen (Beispiel: \"dotnet restore\" ausführen), und alle gemeldeten Fehler beim Erstellen der Projekte in Ihrem Arbeitsbereich beheben.\r\nWenn der Server ihr Projekt jetzt laden kann, dann --\r\n * Diese Datei löschen\r\n * Öffnen Sie die Visual Studio Code-Befehlspalette (Ansicht -> Befehlspalette).\r\n * Führen Sie den Befehl \".NET: Assets für Build und Debug generieren\" aus.\r\n\r\nWenn ihr Projekt eine komplexere Startkonfiguration erfordert, können Sie diese Konfiguration löschen und eine andere Vorlage auswählen, mithilfe der Schaltfläche \"Konfiguration hinzufügen...\" am Ende dieser Datei.", - "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", + "The active document is not part of the open workspace. Not all language features will be available.": "Das aktive Dokument ist nicht Teil des geöffneten Arbeitsbereichs. Nicht alle Sprachfeatures sind verfügbar.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "Die ausgewählte Startkonfiguration ist so konfiguriert, dass ein Webbrowser gestartet wird, es wurde jedoch kein vertrauenswürdiges Entwicklungszertifikat gefunden. Vertrauenswürdiges selbstsigniertes Zertifikat erstellen?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "Der Wert \"{0}\" für \"targetArchitecture\" in der Startkonfiguration ist ungültig. \"x86_64\" oder \"arm64\" wurde erwartet.", "There are unresolved dependencies. Please execute the restore command to continue.": "Es sind nicht aufgelöste Abhängigkeiten vorhanden. Führen Sie den Wiederherstellungsbefehl aus, um den Vorgang fortzusetzen.", diff --git a/l10n/bundle.l10n.es.json b/l10n/bundle.l10n.es.json index 903e68858..9b7fa7971 100644 --- a/l10n/bundle.l10n.es.json +++ b/l10n/bundle.l10n.es.json @@ -44,7 +44,7 @@ "Disable message in settings": "Deshabilitar mensaje en la configuración", "Dismiss": "Descartar", "Do not load any": "No cargar ninguno", - "Do not show for this workspace": "Do not show for this workspace", + "Do not show for this workspace": "No mostrar para esta área de trabajo", "Does not contain .NET Core projects.": "No contiene proyectos de .NET Core.", "Don't Ask Again": "No volver a preguntar", "Download Mono": "Descargar Mono", @@ -158,7 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "La extensión de C# para Visual Studio Code no es compatible con {0} {1}.", "The C# extension is still downloading packages. Please see progress in the output window below.": "La extensión de C# aún está descargando paquetes. Vea el progreso en la ventana de salida siguiente.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "La extensión C# no pudo descodificar automáticamente los proyectos del área de trabajo actual para crear un archivo launch.json que se pueda ejecutar. Se ha creado un archivo launch.json de plantilla como marcador de posición.\r\n\r\nSi el servidor no puede cargar el proyecto en este momento, puede intentar resolverlo restaurando las dependencias del proyecto que falten (por ejemplo, ejecute \"dotnet restore\") y corrija los errores notificados de la compilación de los proyectos en el área de trabajo.\r\nSi esto permite al servidor cargar ahora el proyecto, entonces --\r\n * Elimine este archivo\r\n * Abra la paleta de comandos de Visual Studio Code (Vista->Paleta de comandos)\r\n * ejecute el comando: \".NET: Generar recursos para compilar y depurar\".\r\n\r\nSi el proyecto requiere una configuración de inicio más compleja, puede eliminar esta configuración y seleccionar otra plantilla con el botón \"Agregar configuración...\" de la parte inferior de este archivo.", - "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", + "The active document is not part of the open workspace. Not all language features will be available.": "El documento activo no forma parte del área de trabajo abierta. No todas las características de lenguaje estarán disponibles.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "La configuración de inicio seleccionada está configurada para iniciar un explorador web, pero no se encontró ningún certificado de desarrollo de confianza. ¿Desea crear un certificado autofirmado de confianza?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "El valor “{0}” para “targetArchitecture” en la configuración de inicio no es válido. El valor que se esperaba es “x86_64” o “arm64”.", "There are unresolved dependencies. Please execute the restore command to continue.": "Hay dependencias sin resolver. Ejecute el comando de restauración para continuar.", diff --git a/l10n/bundle.l10n.fr.json b/l10n/bundle.l10n.fr.json index 97a6c61e6..fa0ca1cda 100644 --- a/l10n/bundle.l10n.fr.json +++ b/l10n/bundle.l10n.fr.json @@ -44,7 +44,7 @@ "Disable message in settings": "Désactiver le message dans les paramètres", "Dismiss": "Ignorer", "Do not load any": "Ne charger aucun", - "Do not show for this workspace": "Do not show for this workspace", + "Do not show for this workspace": "Ne pas afficher pour cet espace de travail", "Does not contain .NET Core projects.": "Ne contient pas de projets .NET Core.", "Don't Ask Again": "Ne plus me poser la question", "Download Mono": "Télécharger Mono", @@ -158,7 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "L’extension C# pour Visual Studio Code est incompatible sur {0} {1}.", "The C# extension is still downloading packages. Please see progress in the output window below.": "L’extension C# est toujours en train de télécharger des packages. Consultez la progression dans la fenêtre sortie ci-dessous.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "L’extension C# n’a pas pu décoder automatiquement les projets dans l’espace de travail actuel pour créer un fichier launch.json exécutable. Un fichier launch.json de modèle a été créé en tant qu’espace réservé.\r\n\r\nSi le serveur ne parvient pas actuellement à charger votre projet, vous pouvez tenter de résoudre ce problème en restaurant les dépendances de projet manquantes (par exemple, exécuter « dotnet restore ») et en corrigeant les erreurs signalées lors de la génération des projets dans votre espace de travail.\r\nSi cela permet au serveur de charger votre projet, --\r\n * Supprimez ce fichier\r\n * Ouvrez la palette de commandes Visual Studio Code (View->Command Palette)\r\n * exécutez la commande : « .NET: Generate Assets for Build and Debug ».\r\n\r\nSi votre projet nécessite une configuration de lancement plus complexe, vous pouvez supprimer cette configuration et choisir un autre modèle à l’aide du bouton « Ajouter une configuration... » en bas de ce fichier.", - "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", + "The active document is not part of the open workspace. Not all language features will be available.": "Le document actif ne fait pas partie de l’espace de travail ouvert. Toutes les fonctionnalités de langage ne seront pas disponibles.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "La configuration de lancement sélectionnée est configurée pour lancer un navigateur web, mais aucun certificat de développement approuvé n’a été trouvé. Créer un certificat auto-signé approuvé ?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "La valeur « {0} » pour « Architecture cible » dans la configuration de lancement n'est pas valide. \"x86_64\" ou \"arm64\" attendu.", "There are unresolved dependencies. Please execute the restore command to continue.": "Il existe des dépendances non résolues. Exécutez la commande de restauration pour continuer.", diff --git a/l10n/bundle.l10n.it.json b/l10n/bundle.l10n.it.json index e15064dcc..388aca584 100644 --- a/l10n/bundle.l10n.it.json +++ b/l10n/bundle.l10n.it.json @@ -44,7 +44,7 @@ "Disable message in settings": "Disabilita messaggio nelle impostazioni", "Dismiss": "Chiudi", "Do not load any": "Non caricare", - "Do not show for this workspace": "Do not show for this workspace", + "Do not show for this workspace": "Non visualizzare per questa area di lavoro", "Does not contain .NET Core projects.": "Non contiene progetti .NET Core.", "Don't Ask Again": "Non chiedere più", "Download Mono": "Scarica Mono", @@ -158,7 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "L'estensione C# per Visual Studio Code non è compatibile in {0} {1}.", "The C# extension is still downloading packages. Please see progress in the output window below.": "L'estensione C# sta ancora scaricando i pacchetti. Visualizzare lo stato nella finestra di output seguente.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "L'estensione C# non è riuscita a decodificare automaticamente i progetti nell'area di lavoro corrente per creare un file launch.json eseguibile. Un file launch.json del modello è stato creato come segnaposto.\r\n\r\nSe il server non riesce a caricare il progetto, è possibile tentare di risolvere il problema ripristinando eventuali dipendenze mancanti del progetto, ad esempio 'dotnet restore', e correggendo eventuali errori segnalati relativi alla compilazione dei progetti nell'area di lavoro.\r\nSe questo consente al server di caricare il progetto, --\r\n * Elimina questo file\r\n * Aprire il riquadro comandi Visual Studio Code (Riquadro comandi View->)\r\n * eseguire il comando: '.NET: Genera asset per compilazione e debug'.\r\n\r\nSe il progetto richiede una configurazione di avvio più complessa, è possibile eliminare questa configurazione e selezionare un modello diverso usando 'Aggiungi configurazione...' nella parte inferiore del file.", - "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", + "The active document is not part of the open workspace. Not all language features will be available.": "Il documento attivo non fa parte dell'area di lavoro aperta. Non tutte le funzionalità della lingua saranno disponibili.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "La configurazione di avvio selezionata è configurata per l'avvio di un Web browser, ma non è stato trovato alcun certificato di sviluppo attendibile. Creare un certificato autofirmato attendibile?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "Il valore \"{0}\" per \"targetArchitecture\" nella configurazione di avvio non è valido. \"x86_64\" o \"arm64\" previsto.", "There are unresolved dependencies. Please execute the restore command to continue.": "Sono presenti dipendenze non risolte. Eseguire il comando di ripristino per continuare.", diff --git a/l10n/bundle.l10n.ja.json b/l10n/bundle.l10n.ja.json index cf0e7134b..de1ba8ad4 100644 --- a/l10n/bundle.l10n.ja.json +++ b/l10n/bundle.l10n.ja.json @@ -44,7 +44,7 @@ "Disable message in settings": "設定でメッセージを無効にする", "Dismiss": "無視", "Do not load any": "何も読み込まない", - "Do not show for this workspace": "Do not show for this workspace", + "Do not show for this workspace": "このワークスペースでは表示しない", "Does not contain .NET Core projects.": ".NET Core プロジェクトが含まれていません。", "Don't Ask Again": "今後このメッセージを表示しない", "Download Mono": "Mono のダウンロード", @@ -158,7 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Visual Studio Code の C# 拡張機能は、 {0} {1} では互換性がありません。", "The C# extension is still downloading packages. Please see progress in the output window below.": "C# 拡張機能は引き続きパッケージをダウンロードしています。下の出力ウィンドウで進行状況を確認してください。", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "C# 拡張機能は、現在のワークスペースのプロジェクトを自動的にデコードして、実行可能な launch.json ファイルを作成できませんでした。テンプレート launch.json ファイルがプレースホルダーとして作成されました。\r\n\r\nサーバーで現在プロジェクトを読み込みできない場合は、不足しているプロジェクトの依存関係 (例: 'dotnet restore' の実行) を復元し、ワークスペースでのプロジェクトのビルドで報告されたエラーを修正することで、この問題の解決を試みることができます。\r\nこれにより、サーバーでプロジェクトを読み込めるようになった場合は、--\r\n * このファイルを削除します\r\n * Visual Studio Code コマンド パレットを開きます ([表示] > [コマンド パレット])\r\n * 次のコマンドを実行します: '.NET: ビルドおよびデバッグ用に資産を生成する'。\r\n\r\nプロジェクトでより複雑な起動構成が必要な場合は、この構成を削除し、このファイルの下部にある [構成の追加] ボタンを使用して、別のテンプレートを選択できます。", - "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", + "The active document is not part of the open workspace. Not all language features will be available.": "このアクティブなドキュメントは、開いているワークスペースの一部ではありません。一部の言語機能は使用できません。", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "選択した起動構成では Web ブラウザーを起動するように構成されていますが、信頼された開発証明書が見つかりませんでした。信頼された自己署名証明書を作成しますか?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "起動構成の 'targetArchitecture' の値 '{0}' が無効です。'x86_64' または 'arm64' が必要です。", "There are unresolved dependencies. Please execute the restore command to continue.": "未解決の依存関係があります。続行するには、restore コマンドを実行してください。", diff --git a/l10n/bundle.l10n.pl.json b/l10n/bundle.l10n.pl.json index b1ebcf8b9..645e4193f 100644 --- a/l10n/bundle.l10n.pl.json +++ b/l10n/bundle.l10n.pl.json @@ -44,7 +44,7 @@ "Disable message in settings": "Wyłącz komunikat w ustawieniach", "Dismiss": "Odrzuć", "Do not load any": "Nie ładuj żadnych", - "Do not show for this workspace": "Do not show for this workspace", + "Do not show for this workspace": "Nie pokazuj dla tego obszaru roboczego", "Does not contain .NET Core projects.": "Nie zawiera projektów platformy .NET Core.", "Don't Ask Again": "Nie pytaj ponownie", "Download Mono": "Pobierz Mono", @@ -158,7 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Rozszerzenie C# dla edytora Visual Studio Code jest niezgodne w przypadku {0} {1}.", "The C# extension is still downloading packages. Please see progress in the output window below.": "Rozszerzenie języka C# nadal pobiera pakiety. Zobacz postęp w poniższym oknie danych wyjściowych.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "Rozszerzenie języka C# nie może automatycznie zdekodować projektów w bieżącym obszarze roboczym w celu utworzenia pliku launch.json, który można uruchomić. Plik launch.json szablonu został utworzony jako symbol zastępczy.\r\n\r\nJeśli serwer nie może obecnie załadować projektu, możesz spróbować rozwiązać ten problem, przywracając brakujące zależności projektu (przykład: uruchom polecenie „dotnet restore”) i usuwając wszelkie zgłoszone błędy podczas kompilowania projektów w obszarze roboczym.\r\nJeśli umożliwi to serwerowi załadowanie projektu, to --\r\n * Usuń ten plik\r\n * Otwórz paletę poleceń Visual Studio Code (Widok->Paleta poleceń)\r\n * Uruchom polecenie: „.NET: Generuj zasoby na potrzeby kompilowania i debugowania”.\r\n\r\nJeśli projekt wymaga bardziej złożonej konfiguracji uruchamiania, możesz usunąć tę konfigurację i wybrać inny szablon za pomocą przycisku „Dodaj konfigurację...”. znajdującego się u dołu tego pliku.", - "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", + "The active document is not part of the open workspace. Not all language features will be available.": "Dokument aktywny nie jest częścią otwartego obszaru roboczego. Nie wszystkie funkcje językowe będą dostępne.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "Wybrana konfiguracja uruchamiania jest skonfigurowana do uruchamiania przeglądarki internetowej, ale nie znaleziono zaufanego certyfikatu programistycznego. Utworzyć zaufany certyfikat z podpisem własnym?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "Wartość „{0}” dla elementu „targetArchitecture” w konfiguracji uruchamiania jest nieprawidłowa. Oczekiwane elementy „x86_64” lub „arm64”.", "There are unresolved dependencies. Please execute the restore command to continue.": "Istnieją nierozwiązane zależności. Wykonaj polecenie przywracania, aby kontynuować.", diff --git a/l10n/bundle.l10n.ru.json b/l10n/bundle.l10n.ru.json index af7441833..dbbf0eb73 100644 --- a/l10n/bundle.l10n.ru.json +++ b/l10n/bundle.l10n.ru.json @@ -44,7 +44,7 @@ "Disable message in settings": "Отключить сообщение в параметрах", "Dismiss": "Отклонить", "Do not load any": "Не загружать", - "Do not show for this workspace": "Do not show for this workspace", + "Do not show for this workspace": "Не показывать для этой рабочей области", "Does not contain .NET Core projects.": "Не содержит проектов .NET Core.", "Don't Ask Again": "Больше не спрашивать", "Download Mono": "Скачать Mono", @@ -158,7 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Расширение C# для Visual Studio Code несовместимо в {0} {1}.", "The C# extension is still downloading packages. Please see progress in the output window below.": "Расширение C# все еще скачивает пакеты. См. ход выполнения в окне вывода ниже.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "Расширению C# не удалось автоматически декодировать проекты в текущей рабочей области для создания исполняемого файла launch.json. В качестве заполнителя создан файл шаблона launch.json.\r\n\r\nЕсли сервер сейчас не может загрузить проект, можно попытаться решить эту проблему, восстановив все отсутствующие зависимости проекта (например, запустив \"dotnet restore\") и исправив все обнаруженные ошибки при создании проектов в этой рабочей области.\r\nЕсли это позволяет серверу загрузить проект, то --\r\n * Удалите этот файл\r\n * Откройте палитру команд Visual Studio Code (Вид->Палитра команд)\r\n * выполните команду: .NET: Generate Assets for Build and Debug\".\r\n\r\nЕсли для проекта требуется более сложная конфигурация запуска, можно удалить эту конфигурацию и выбрать другой шаблон с помощью кнопки \"Добавить конфигурацию...\" в нижней части этого файла.", - "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", + "The active document is not part of the open workspace. Not all language features will be available.": "Активный документ не является частью открытой рабочей области. Не все языковые функции будут доступны.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "Выбранная конфигурация запуска настроена на запуск веб-браузера, но доверенный сертификат разработки не найден. Создать доверенный самозаверяющий сертификат?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "Недопустимое значение {0} параметра \"targetArchitecture\" в конфигурации запуска. Ожидается значение \"x86_64\" или \"arm64\".", "There are unresolved dependencies. Please execute the restore command to continue.": "Есть неразрешенные зависимости. Чтобы продолжить, выполните команду восстановления.", diff --git a/l10n/bundle.l10n.tr.json b/l10n/bundle.l10n.tr.json index 08a8f42fa..5f6c9e3e5 100644 --- a/l10n/bundle.l10n.tr.json +++ b/l10n/bundle.l10n.tr.json @@ -44,7 +44,7 @@ "Disable message in settings": "Ayarlarda iletiyi devre dışı bırakma", "Dismiss": "Kapat", "Do not load any": "Hiçbir şey yükleme", - "Do not show for this workspace": "Do not show for this workspace", + "Do not show for this workspace": "Bu çalışma alanı için gösterme", "Does not contain .NET Core projects.": ".NET Core projeleri içermiyor.", "Don't Ask Again": "Bir Daha Sorma", "Download Mono": "Mono İndir", @@ -158,7 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Visual Studio Code için C# uzantısı {0} {1} üzerinde uyumsuz.", "The C# extension is still downloading packages. Please see progress in the output window below.": "C# uzantısı hala paketleri indiriyor. Lütfen aşağıdaki çıkış penceresinde ilerleme durumuna bakın.", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "C# uzantısı, çalıştırılabilir bir launch.json dosyası oluşturmak için geçerli çalışma alanında projelerin kodunu otomatik olarak çözümleyemedi. Bir şablon launch.json dosyası yer tutucu olarak oluşturuldu.\r\n\r\nSunucu şu anda projenizi yükleyemiyorsa, eksik proje bağımlılıklarını geri yükleyip (örnek: ‘dotnet restore’ çalıştırma) ve çalışma alanınıza proje oluşturmayla ilgili raporlanan hataları düzelterek bu sorunu çözmeye çalışabilirsiniz.\r\nBu, sunucunun artık projenizi yüklemesine olanak sağlarsa --\r\n * Bu dosyayı silin\r\n * Visual Studio Code komut paletini (Görünüm->Komut Paleti) açın\r\n * şu komutu çalıştırın: '.NET: Generate Assets for Build and Debug'.\r\n\r\nProjeniz daha karmaşık bir başlatma yapılandırma ayarı gerektiriyorsa, bu yapılandırmayı silip bu dosyanın alt kısmında bulunan ‘Yapılandırma Ekle...’ düğmesini kullanarak başka bir şablon seçebilirsiniz.", - "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", + "The active document is not part of the open workspace. Not all language features will be available.": "Etkin belge açık çalışma alanının bir parçası değil. Tüm dil özellikleri kullanılamaz.", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "Seçilen başlatma yapılandırması bir web tarayıcısı başlatmak üzere yapılandırılmış, ancak güvenilir bir geliştirme sertifikası bulunamadı. Otomatik olarak imzalanan güvenilir bir sertifika oluşturulsun mu?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "Başlatma yapılandırmasında 'targetArchitecture' için '{0}' değeri geçersiz. 'x86_64' veya 'arm64' bekleniyordu.", "There are unresolved dependencies. Please execute the restore command to continue.": "Çözümlenmemiş bağımlılıklar var. Devam etmek için lütfen restore komutunu çalıştırın.", diff --git a/l10n/bundle.l10n.zh-cn.json b/l10n/bundle.l10n.zh-cn.json index 6c995cd90..30206a320 100644 --- a/l10n/bundle.l10n.zh-cn.json +++ b/l10n/bundle.l10n.zh-cn.json @@ -44,7 +44,7 @@ "Disable message in settings": "在设置中禁用消息", "Dismiss": "关闭", "Do not load any": "请勿加载任何", - "Do not show for this workspace": "Do not show for this workspace", + "Do not show for this workspace": "不为此工作区显示", "Does not contain .NET Core projects.": "不包含 .NET Core 项目。", "Don't Ask Again": "不再询问", "Download Mono": "下载 Mono", @@ -158,7 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "Visual Studio Code 的 C# 扩展与 {0} {1} 不兼容。", "The C# extension is still downloading packages. Please see progress in the output window below.": "C# 扩展仍在下载包。请在下面的输出窗口中查看进度。", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "C# 扩展无法自动解码当前工作区中的项目以创建可运行的 launch.json 文件。模板 launch.json 文件已创建为占位符。\r\n\r\n如果服务器当前无法加载项目,可以还原任何缺失的项目依赖项(例如: 运行 \"dotnet restore\")并修复在工作区中生成项目时报告的任何错误,从而尝试解决此问题。\r\n如果允许服务器现在加载项目,则 --\r\n * 删除此文件\r\n * 打开 Visual Studio Code 命令面板(视图->命令面板)\r\n * 运行命令:“.NET: 为生成和调试生成资产”。\r\n\r\n如果项目需要更复杂的启动配置,可能需要删除此配置,并使用此文件底部的“添加配置...”按钮选择其他模板。", - "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", + "The active document is not part of the open workspace. Not all language features will be available.": "该活动文档不是打开的工作区的一部分。并非所有语言功能都将可用。", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "所选启动配置配置为启动 Web 浏览器,但找不到受信任的开发证书。创建受信任的自签名证书?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "启动配置中“targetArchitecture”的值“{0}”无效。应为“x86_64”或“arm64”。", "There are unresolved dependencies. Please execute the restore command to continue.": "有未解析的依赖项。请执行还原命令以继续。", diff --git a/l10n/bundle.l10n.zh-tw.json b/l10n/bundle.l10n.zh-tw.json index dc1bb5939..89c12340d 100644 --- a/l10n/bundle.l10n.zh-tw.json +++ b/l10n/bundle.l10n.zh-tw.json @@ -44,7 +44,7 @@ "Disable message in settings": "停用設定中的訊息", "Dismiss": "關閉", "Do not load any": "不要載入", - "Do not show for this workspace": "Do not show for this workspace", + "Do not show for this workspace": "不要針對此工作區顯示", "Does not contain .NET Core projects.": "不包含 .NET Core 專案。", "Don't Ask Again": "不要再詢問", "Download Mono": "下載 Mono", @@ -158,7 +158,7 @@ "The C# extension for Visual Studio Code is incompatible on {0} {1}.": "適用於 Visual Studio Code 的 C# 延伸模組在 {0} {1} 上不相容。", "The C# extension is still downloading packages. Please see progress in the output window below.": "C# 延伸模組仍在下載套件。請參閱下方輸出視窗中的進度。", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\r\n\r\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\r\nIf this allows the server to now load your project then --\r\n * Delete this file\r\n * Open the Visual Studio Code command palette (View->Command Palette)\r\n * run the command: '.NET: Generate Assets for Build and Debug'.\r\n\r\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "C# 延伸模組無法自動解碼目前工作區中的專案以建立可執行的 launch.json 檔案。範本 launch.json 檔案已建立為預留位置。\r\n\r\n如果伺服器目前無法載入您的專案,您可以嘗試透過還原任何遺失的專案相依性來解決此問題 (範例: 執行 'dotnet restore'),並修正在工作區中建置專案時所報告的任何錯誤。\r\n如果這允許伺服器現在載入您的專案,則 --\r\n * 刪除此檔案\r\n * 開啟 Visual Studio Code 命令選擇區 ([檢視] -> [命令選擇區])\r\n * 執行命令: '.NET: Generate Assets for Build and Debug'。\r\n\r\n如果您的專案需要更複雜的啟動設定,您可能會想刪除此設定,並使用此檔案底部的 [新增設定...] 按鈕挑選其他範本。", - "The active document is not part of the open workspace. Not all language features will be available.": "The active document is not part of the open workspace. Not all language features will be available.", + "The active document is not part of the open workspace. Not all language features will be available.": "使用中文件不是開啟中工作區的一部分。並非所有語言功能都可供使用。", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "選取的啟動設定已設為啟動網頁瀏覽器,但找不到信任的開發憑證。要建立信任的自我簽署憑證嗎?", "The value '{0}' for 'targetArchitecture' in launch configuraiton is invalid. Expected 'x86_64' or 'arm64'.": "啟動設定中的 'targetArchitecture' 值 '{0}' 無效。預期是 'x86_64' 或 'arm64'。", "There are unresolved dependencies. Please execute the restore command to continue.": "有無法解析的相依性。請執行還原命令以繼續。", diff --git a/package.nls.cs.json b/package.nls.cs.json index 855423d90..2c45f5e71 100644 --- a/package.nls.cs.json +++ b/package.nls.cs.json @@ -68,7 +68,7 @@ "configuration.dotnet.server.path": "Určuje absolutní cestu ke spustitelnému souboru serveru (LSP nebo O#). Ponechání prázdné vede k použití verze připnuté k rozšíření C#. (Dříve omnisharp.path)", "configuration.dotnet.server.startTimeout": "Určuje časový limit (v ms), aby se klient úspěšně spustil a připojil k jazykovému serveru.", "configuration.dotnet.server.suppressLspErrorToasts": "Potlačí zobrazování informačních zpráv o chybách, pokud na serveru dojde k chybě, ze které se dá zotavit.", - "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Potlačí zobrazování informačních upozornění, pokud je aktivní dokument mimo otevřený pracovní prostor.", "configuration.dotnet.server.trace": "Nastaví úroveň protokolování pro jazykový server", "configuration.dotnet.server.useServerGC": "Nakonfigurujte jazykový server tak, aby používal uvolňování paměti serveru .NET. Uvolňování paměti serveru obecně přináší vyšší výkon za cenu vyšší spotřeby paměti.", "configuration.dotnet.server.waitForDebugger": "Při spuštění serveru předá příznak --debug, aby bylo možné připojit ladicí program. (Dříve omnisharp.waitForDebugger)", diff --git a/package.nls.de.json b/package.nls.de.json index c26bf1987..c23da7875 100644 --- a/package.nls.de.json +++ b/package.nls.de.json @@ -68,7 +68,7 @@ "configuration.dotnet.server.path": "Gibt den absoluten Pfad zur ausführbaren Serverdatei (LSP oder O#) an. Wenn sie leer gelassen wird, wird die an die C#-Erweiterung angeheftete Version verwendet. (Zuvor \"omnisharp.path\")", "configuration.dotnet.server.startTimeout": "Gibt ein Timeout (in ms) an, mit dem der Client erfolgreich gestartet und eine Verbindung mit dem Sprachserver hergestellt werden kann.", "configuration.dotnet.server.suppressLspErrorToasts": "Unterdrückt, dass Fehler-Popups angezeigt werden, wenn auf dem Server ein wiederherstellbarer Fehler auftritt.", - "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Hiermit wird die Anzeige von Popupwarnungen unterdrückt, wenn sich das aktive Dokument außerhalb des geöffneten Arbeitsbereichs befindet.", "configuration.dotnet.server.trace": "Legt den Protokolliergrad für den Sprachserver fest.", "configuration.dotnet.server.useServerGC": "Konfigurieren Sie den Sprachserver für die Verwendung der GC des .NET-Servers. Die GC auf dem Server bietet im Allgemeinen eine bessere Leistung bei einem höheren Arbeitsspeicherverbrauch.", "configuration.dotnet.server.waitForDebugger": "Übergibt das Flag \"--debug\" beim Starten des Servers, damit ein Debugger angefügt werden kann. (Zuvor \"omnisharp.waitForDebugger\")", diff --git a/package.nls.es.json b/package.nls.es.json index d71bb06b2..96374d049 100644 --- a/package.nls.es.json +++ b/package.nls.es.json @@ -68,7 +68,7 @@ "configuration.dotnet.server.path": "Especifica la ruta absoluta al ejecutable del servidor (LSP u O#). Cuando se deja vacío, se utiliza la versión anclada a la extensión C#. (Anteriormente \"omnisharp.path\")", "configuration.dotnet.server.startTimeout": "Especifica un tiempo de espera (en ms) para que el cliente se inicie correctamente y se conecte al servidor de lenguaje.", "configuration.dotnet.server.suppressLspErrorToasts": "Suprime la visualización de notificaciones del sistema de error si el servidor encuentra un error recuperable.", - "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Impida que aparezcan notificaciones de advertencia si el documento activo se encuentra fuera del área de trabajo abierta.", "configuration.dotnet.server.trace": "Establece el nivel de registro para el servidor de lenguaje", "configuration.dotnet.server.useServerGC": "Configure el servidor de idiomas para usar la recolección de elementos no utilizados del servidor de .NET. La recolección de elementos no utilizados del servidor suele proporcionar un mejor rendimiento a costa de un mayor consumo de memoria.", "configuration.dotnet.server.waitForDebugger": "Pasa la marca --debug al iniciar el servidor para permitir que se adjunte un depurador. (Anteriormente \"omnisharp.waitForDebugger\")", diff --git a/package.nls.fr.json b/package.nls.fr.json index f6914fa4a..c75bb555f 100644 --- a/package.nls.fr.json +++ b/package.nls.fr.json @@ -68,7 +68,7 @@ "configuration.dotnet.server.path": "Spécifie le chemin absolu du fichier exécutable du serveur (LSP ou O#). Lorsqu’elle est laissée vide, la version épinglée à l’extension C# est utilisée. (Précédemment `omnisharp.path`)", "configuration.dotnet.server.startTimeout": "Spécifie un délai d'attente (en ms) pour que le client démarre et se connecte avec succès au serveur de langue.", "configuration.dotnet.server.suppressLspErrorToasts": "Supprime l’affichage des notifications toast d’erreur si le serveur a rencontré une erreur récupérable.", - "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Supprimez l’affichage des toasts d’avertissement si le document actif se situe en dehors de l’espace de travail ouvert.", "configuration.dotnet.server.trace": "Définit le niveau de journalisation pour le serveur de langage", "configuration.dotnet.server.useServerGC": "Configurez le serveur de langue pour qu’il utilise le serveur .NET GC. Le serveur GC offre généralement un meilleur niveau de performance au prix d’une consommation de mémoire plus élevée.", "configuration.dotnet.server.waitForDebugger": "Passe le drapeau – debug lors du lancement du serveur pour permettre à un débogueur d’être attaché. (Précédemment `omnisharp.waitForDebugger`)", diff --git a/package.nls.it.json b/package.nls.it.json index 0b37619b7..78f65609f 100644 --- a/package.nls.it.json +++ b/package.nls.it.json @@ -68,7 +68,7 @@ "configuration.dotnet.server.path": "Specifica il percorso assoluto dell'eseguibile del server (LSP od O#). Se lasciato vuoto, viene usata la versione aggiunta all'estensione C#. (In precedenza “omnisharp.path”)", "configuration.dotnet.server.startTimeout": "Specifica un timeout (in ms) per l'avvio del client e la sua connessione al server di linguaggio.", "configuration.dotnet.server.suppressLspErrorToasts": "Impedisce la visualizzazione degli avvisi popup di errore se il server rileva un errore reversibile.", - "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Non visualizzare avvisi popup se il documento attivo si trova all'esterno dell'area di lavoro aperta.", "configuration.dotnet.server.trace": "Imposta il livello di registrazione per il server di linguaggio", "configuration.dotnet.server.useServerGC": "Configurare il server del linguaggio per l'utilizzo di Garbage Collection del server .NET. Garbage Collection del server offre in genere prestazioni migliori a spese di un consumo di memoria più elevato.", "configuration.dotnet.server.waitForDebugger": "Passa il flag --debug all'avvio del server per consentire il collegamento di un debugger. (In precedenza “omnisharp.waitForDebugger”)", diff --git a/package.nls.ja.json b/package.nls.ja.json index 45e8aed7a..c5410124c 100644 --- a/package.nls.ja.json +++ b/package.nls.ja.json @@ -68,7 +68,7 @@ "configuration.dotnet.server.path": "サーバー (LSP または O#) 実行可能ファイルに絶対パスを指定します。空のままにすると、C# 拡張機能にピン留めされたバージョンが使用されます。(以前の `omnisharp.path`)", "configuration.dotnet.server.startTimeout": "クライアントが正常に起動して言語サーバーに接続するためのタイムアウト (ミリ秒) を指定します。", "configuration.dotnet.server.suppressLspErrorToasts": "サーバーで回復可能なエラーが発生した場合に、エラー トーストが表示されないようにします。", - "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "開いているワークスペースに属さないドキュメントがアクティブである場合に、警告トーストを表示しないようにします。", "configuration.dotnet.server.trace": "言語サーバーのログ記録レベルを設定する", "configuration.dotnet.server.useServerGC": ".NET サーバーのガベージ コレクションを使用するように言語サーバーを構成します。サーバー GC は一般に、メモリ消費量が高いことをコストにパフォーマンスを向上させます。", "configuration.dotnet.server.waitForDebugger": "デバッガーのアタッチを許可するために、サーバーを起動するときに --debug フラグを渡します。(以前の `omnisharp.waitForDebugger`)", diff --git a/package.nls.pl.json b/package.nls.pl.json index 34bb91fca..3dc25006b 100644 --- a/package.nls.pl.json +++ b/package.nls.pl.json @@ -68,7 +68,7 @@ "configuration.dotnet.server.path": "Określa ścieżkę bezwzględną do pliku wykonywalnego serwera (LSP lub O#). W przypadku pozostawienia tej wartości pustej, używana jest wersja przypięta do rozszerzenia języka C#. (Wcześniej „omnisharp.path”)", "configuration.dotnet.server.startTimeout": "Określa limit czasu (w ms) dla pomyślnego uruchomienia klienta i nawiązania połączenia z serwerem języka.", "configuration.dotnet.server.suppressLspErrorToasts": "Pomija wyświetlanie wyskakujących powiadomień o błędach, jeśli serwer napotka błąd do odzyskania.", - "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Pomiń wyświetlanie wyskakujących powiadomień ostrzegawczych, jeśli dokument aktywny znajduje się poza otwartym obszarem roboczym.", "configuration.dotnet.server.trace": "Ustawia poziom rejestrowania dla serwera języka", "configuration.dotnet.server.useServerGC": "Skonfiguruj serwer językowy do używania funkcji odzyskiwania pamięci serwera .NET. Odzyskiwanie pamięci serwera zasadniczo zapewnia lepszą wydajność przy wyższym zużyciu pamięci.", "configuration.dotnet.server.waitForDebugger": "Przekazuje flagę --debug podczas uruchamiania serwera, aby umożliwić dołączenie debugera. (Wcześniej „omnisharp.waitForDebugger”)", diff --git a/package.nls.ru.json b/package.nls.ru.json index 17bbbed84..55ce3a09b 100644 --- a/package.nls.ru.json +++ b/package.nls.ru.json @@ -68,7 +68,7 @@ "configuration.dotnet.server.path": "Указывает абсолютный путь к исполняемому файлу сервера (LSP или O#). Если оставить поле пустым, используется версия, закрепленная в расширении C#. (Ранее — \"omnisharp.path\")", "configuration.dotnet.server.startTimeout": "Указывает время ожидания (в миллисекундах) для запуска клиента и его подключения к языковому серверу.", "configuration.dotnet.server.suppressLspErrorToasts": "Подавляет появление всплывающих сообщений об ошибках, если сервер обнаруживает устранимую ошибку.", - "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Скрывать всплывающие предупреждения, если активный документ находится за пределами открытого рабочего пространства.", "configuration.dotnet.server.trace": "Задает уровень ведения журнала для языкового сервера", "configuration.dotnet.server.useServerGC": "Настройте языковой сервер для использования сборки мусора сервера .NET. Сборка мусора сервера обычно обеспечивает более высокую производительность за счет более высокого потребления памяти.", "configuration.dotnet.server.waitForDebugger": "Передает флаг --debug при запуске сервера, чтобы разрешить подключение отладчика. (Ранее — \"omnisharp.waitForDebugger\")", diff --git a/package.nls.tr.json b/package.nls.tr.json index ccd9da1a5..84a727765 100644 --- a/package.nls.tr.json +++ b/package.nls.tr.json @@ -68,7 +68,7 @@ "configuration.dotnet.server.path": "Sunucunun (LSP veya O#) yürütülebilir dosyasının mutlak yolunu belirtir. Boş bırakıldığında C# Uzantısına sabitlenen sürüm kullanılır. (Önceden 'omnisharp.path')", "configuration.dotnet.server.startTimeout": "İstemcinin başarılı bir şekilde başlatılması ve dil sunucusuna bağlanması için zaman aşımını (ms cinsinden) belirtir.", "configuration.dotnet.server.suppressLspErrorToasts": "Sunucu kurtarılabilir bir hatayla karşılaştığında hata bildirimlerinin görünmesini engeller.", - "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Etkin belge açık çalışma alanının dışındaysa, uyarı bildirimlerini göstermeyi durdur.", "configuration.dotnet.server.trace": "Dil sunucusu için günlük düzeyini ayarlar", "configuration.dotnet.server.useServerGC": "Dil sunucusunu .NET sunucusu atık toplamayı kullanmak üzere yapılandırın. Sunucu atık toplama, genellikle yüksek bellek tüketimi pahasına daha iyi performans sağlar.", "configuration.dotnet.server.waitForDebugger": "Bir hata ayıklayıcının eklenmesine izin vermek için sunucuyu başlatırken --debug bayrağını iletir. (Önceden 'omnisharp.waitForDebugger')", diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json index f8f02deb8..c3b576236 100644 --- a/package.nls.zh-cn.json +++ b/package.nls.zh-cn.json @@ -68,7 +68,7 @@ "configuration.dotnet.server.path": "指定服务器(LSP 或 O#)可执行文件的绝对路径。如果留空,会使用固定到 C# 扩展的版本。(之前为 \"omnisharp.path\")", "configuration.dotnet.server.startTimeout": "为客户端指定一个超时 (以毫秒为单位),以成功启动并连接到语言服务器。", "configuration.dotnet.server.suppressLspErrorToasts": "当服务器遇到可恢复错误时,禁止显示错误 toast。", - "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "如果活动文档在打开的工作区之外,则禁止显示警告 toast。", "configuration.dotnet.server.trace": "设置语言服务器的日志记录级别", "configuration.dotnet.server.useServerGC": "将语言服务器配置为使用 .NET 服务器垃圾回收。服务器垃圾回收在提供更好的性能时通常需要消耗更多内存。", "configuration.dotnet.server.waitForDebugger": "启动服务器时传递 --debug 标志,以允许附加调试器。(之前为 \"omnisharp.waitForDebugger\")", diff --git a/package.nls.zh-tw.json b/package.nls.zh-tw.json index e66db3a2b..d5baa322b 100644 --- a/package.nls.zh-tw.json +++ b/package.nls.zh-tw.json @@ -68,7 +68,7 @@ "configuration.dotnet.server.path": "指定伺服器 (LSP 或 O#) 可執行檔的絕對路徑。保留空白時,會使用釘選到 C# 延伸模組的版本。(先前為 `omnisharp.path`)", "configuration.dotnet.server.startTimeout": "指定用戶端順利啟動並連接到語言伺服器的逾時 (毫秒)。", "configuration.dotnet.server.suppressLspErrorToasts": "如果伺服器發生可復原的錯誤,隱藏不顯示錯誤快顯通知。", - "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "Suppress warning toasts from showing up if the active document is outside the open workspace.", + "configuration.dotnet.server.suppressMiscellaneousFilesToasts": "如果使用中文件在開啟中工作區之外,則抑制顯示警告快顯通知。", "configuration.dotnet.server.trace": "設定語言伺服器的記錄層次", "configuration.dotnet.server.useServerGC": "設定語言伺服器以使用 .NET 伺服器垃圾收集。伺服器垃圾收集通常會在耗用較高的記憶體時提供較佳的效能。", "configuration.dotnet.server.waitForDebugger": "啟動伺服器時傳遞 --debug 旗標,以允許附加偵錯工具。(先前為 `omnisharp.waitForDebugger`)", From 23155a831852553900c1d0b0a39f5a29142c1c99 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Mon, 21 Oct 2024 17:14:03 -0700 Subject: [PATCH 47/79] Disable the Razor project context status bar. We need to properly call the rzls endpoint to get project contexts. Will reenable as part of that work. --- src/lsptoolshost/languageStatusBar.ts | 5 +---- src/lsptoolshost/services/projectContextService.ts | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/lsptoolshost/languageStatusBar.ts b/src/lsptoolshost/languageStatusBar.ts index ba09b4d9c..8dc0137ee 100644 --- a/src/lsptoolshost/languageStatusBar.ts +++ b/src/lsptoolshost/languageStatusBar.ts @@ -29,10 +29,7 @@ function combineDocumentSelectors(...selectors: vscode.DocumentSelector[]): vsco class WorkspaceStatus { static createStatusItem(context: vscode.ExtensionContext, languageServerEvents: RoslynLanguageServerEvents) { - const documentSelector = combineDocumentSelectors( - languageServerOptions.documentSelector, - RazorLanguage.documentSelector - ); + const documentSelector = combineDocumentSelectors(languageServerOptions.documentSelector); const openSolutionCommand = { command: 'dotnet.openSolution', title: vscode.l10n.t('Open solution'), diff --git a/src/lsptoolshost/services/projectContextService.ts b/src/lsptoolshost/services/projectContextService.ts index be4a4b17a..d63c866fb 100644 --- a/src/lsptoolshost/services/projectContextService.ts +++ b/src/lsptoolshost/services/projectContextService.ts @@ -47,7 +47,7 @@ export class ProjectContextService { public async refresh() { const textEditor = vscode.window.activeTextEditor; const languageId = textEditor?.document?.languageId; - if (languageId !== 'csharp' && languageId !== 'aspnetcorerazor') { + if (languageId !== 'csharp') { return; } From dc660ec3d0c6f951022df2ce6c97a26f16d56793 Mon Sep 17 00:00:00 2001 From: Timothy Miller Date: Wed, 23 Oct 2024 16:18:26 +0900 Subject: [PATCH 48/79] Bump xamlTools to 17.13.35422.31 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 982c4347f..64459c28d 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "omniSharp": "1.39.11", "razor": "9.0.0-preview.24516.1", "razorOmnisharp": "7.0.0-preview.23363.1", - "xamlTools": "17.13.35414.86" + "xamlTools": "17.13.35422.31" }, "main": "./dist/extension", "l10n": "./l10n", From 163ad2a33f1f9174591e859ebf0a5704054f4a2b Mon Sep 17 00:00:00 2001 From: Timothy Miller Date: Wed, 23 Oct 2024 16:19:45 +0900 Subject: [PATCH 49/79] Bump CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c30b65227..dcb949658 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ * Update Roslyn to 4.13.0-1.24518.1 (PR: [#7670](https://github.com/dotnet/vscode-csharp/pull/7670)) * Fix issue where server sometimes crashed when saving new C# file for the first time (PR: [#75509](https://github.com/dotnet/roslyn/pull/75509)) * Report LSP loading telemetry (PR: [#75402](https://github.com/dotnet/roslyn/pull/75402)) -* Bumped xamlTools to 17.13.35414.86 (PR: [#7664](https://github.com/dotnet/vscode-csharp/pull/7664)) +* Bumped xamlTools to 17.13.35422.31 (PR: [#7664](https://github.com/dotnet/vscode-csharp/pull/7685)) * Escape code block in changelog (PR: [#7665](https://github.com/dotnet/vscode-csharp/pull/7665)) * Lookup Razor file context using its document uri. (PR: [#7663](https://github.com/dotnet/vscode-csharp/pull/7663)) * Update razor to 9.0.0-preview.24516.1 (PR: [#7667](https://github.com/dotnet/vscode-csharp/pull/7667)) From 4c00ae6e5e024110a7ec12e25f9af3880af9d84d Mon Sep 17 00:00:00 2001 From: Timothy Miller Date: Wed, 23 Oct 2024 16:20:25 +0900 Subject: [PATCH 50/79] Bump CHANGELOG with the right PR number too... --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dcb949658..7f5ff51f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ * Update Roslyn to 4.13.0-1.24518.1 (PR: [#7670](https://github.com/dotnet/vscode-csharp/pull/7670)) * Fix issue where server sometimes crashed when saving new C# file for the first time (PR: [#75509](https://github.com/dotnet/roslyn/pull/75509)) * Report LSP loading telemetry (PR: [#75402](https://github.com/dotnet/roslyn/pull/75402)) -* Bumped xamlTools to 17.13.35422.31 (PR: [#7664](https://github.com/dotnet/vscode-csharp/pull/7685)) +* Bumped xamlTools to 17.13.35422.31 (PR: [#7685](https://github.com/dotnet/vscode-csharp/pull/7685)) * Escape code block in changelog (PR: [#7665](https://github.com/dotnet/vscode-csharp/pull/7665)) * Lookup Razor file context using its document uri. (PR: [#7663](https://github.com/dotnet/vscode-csharp/pull/7663)) * Update razor to 9.0.0-preview.24516.1 (PR: [#7667](https://github.com/dotnet/vscode-csharp/pull/7667)) From 7aad579172598e0484f2203901e31663c5020948 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Wed, 23 Oct 2024 10:07:23 -0700 Subject: [PATCH 51/79] create new changelog section --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f5ff51f8..6eaf46649 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,13 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # Latest +* Bumped xamlTools to 17.13.35422.31 (PR: [#7685](https://github.com/dotnet/vscode-csharp/pull/7685)) + +# 2.53.x * Update Roslyn to 4.13.0-1.24518.1 (PR: [#7670](https://github.com/dotnet/vscode-csharp/pull/7670)) * Fix issue where server sometimes crashed when saving new C# file for the first time (PR: [#75509](https://github.com/dotnet/roslyn/pull/75509)) * Report LSP loading telemetry (PR: [#75402](https://github.com/dotnet/roslyn/pull/75402)) -* Bumped xamlTools to 17.13.35422.31 (PR: [#7685](https://github.com/dotnet/vscode-csharp/pull/7685)) +* Bumped xamlTools to 17.13.35414.86 (PR: [#7664](https://github.com/dotnet/vscode-csharp/pull/7664)) * Escape code block in changelog (PR: [#7665](https://github.com/dotnet/vscode-csharp/pull/7665)) * Lookup Razor file context using its document uri. (PR: [#7663](https://github.com/dotnet/vscode-csharp/pull/7663)) * Update razor to 9.0.0-preview.24516.1 (PR: [#7667](https://github.com/dotnet/vscode-csharp/pull/7667)) From 18fc37b5753d7b1d93a60c655d836591a7f75ce9 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Wed, 23 Oct 2024 13:41:07 -0700 Subject: [PATCH 52/79] Create new section in changelog when updating version --- .github/workflows/branch-snap.yml | 4 +-- CHANGELOG.md | 2 +- tasks/snapTasks.ts | 42 ++++++++++++++++++++++++++++++- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/.github/workflows/branch-snap.yml b/.github/workflows/branch-snap.yml index d64e612cd..a14845a40 100644 --- a/.github/workflows/branch-snap.yml +++ b/.github/workflows/branch-snap.yml @@ -25,8 +25,8 @@ jobs: - name: Install dependencies run: npm ci - name: Update version.json - run: npx gulp incrementVersionJson - - name: Create version.json update PR + run: npx gulp incrementVersion + - name: Create version update PR uses: peter-evans/create-pull-request@v4 with: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 6eaf46649..04d437279 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ - Diagnostics related feature requests and improvements [#5951](https://github.com/dotnet/vscode-csharp/issues/5951) - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) -# Latest +# 2.54.x * Bumped xamlTools to 17.13.35422.31 (PR: [#7685](https://github.com/dotnet/vscode-csharp/pull/7685)) # 2.53.x diff --git a/tasks/snapTasks.ts b/tasks/snapTasks.ts index d3079d45e..4579910b1 100644 --- a/tasks/snapTasks.ts +++ b/tasks/snapTasks.ts @@ -6,21 +6,61 @@ import * as gulp from 'gulp'; import * as fs from 'fs'; import * as path from 'path'; +import * as os from 'os'; -gulp.task('incrementVersionJson', async (): Promise => { +gulp.task('incrementVersion', async (): Promise => { + // Get the current version from version.json const versionFilePath = path.join(path.resolve(__dirname, '..'), 'version.json'); const file = fs.readFileSync(versionFilePath, 'utf8'); const versionJson = JSON.parse(file); + // Increment the minor version const version = versionJson.version as string; const split = version.split('.'); const newVersion = `${split[0]}.${parseInt(split[1]) + 1}`; console.log(`Updating ${version} to ${newVersion}`); + // Write the new version back to version.json versionJson.version = newVersion; const newJson = JSON.stringify(versionJson, null, 4); console.log(`New json: ${newJson}`); fs.writeFileSync(versionFilePath, newJson); + + // Add a new changelog section for the new version. + console.log('Adding new version header to changelog'); + + const changelogPath = path.join(path.resolve(__dirname, '..'), 'CHANGELOG.md'); + const changelogContent = fs.readFileSync(changelogPath, 'utf8'); + const changelogLines = changelogContent.split(os.EOL); + + // Find all the headers in the changelog (and their line numbers) + const headerRegex = /^#+\s+.*$/gm; + const matches = []; + for (let i = 0; i < changelogLines.length; i++) { + const line = changelogLines.at(i); + const match = headerRegex.exec(line!); + if (match) { + matches.push({ line: i, text: match[0] }); + } + } + + // Find the known issues header, then find the next header after it. + const knownIssuesHeader = matches.find((m) => m.text.includes('Known Issues')); + if (knownIssuesHeader === undefined) { + throw new Error('Could not find the known issues header in the changelog.'); + } + const knownIssuesIndex = matches.indexOf(knownIssuesHeader); + if (knownIssuesIndex === -1) { + throw new Error('Could not find the known issues index in the matches.'); + } + + // Insert a new header for the new version after the known issues header but before the next header. + const lineToInsertAt = matches[knownIssuesIndex + 1].line - 1; + console.log(`Inserting new version header at line ${lineToInsertAt}`); + const linesToInsert = ['', `# ${newVersion}.x`]; + + changelogLines.splice(lineToInsertAt, 0, ...linesToInsert); + fs.writeFileSync(changelogPath, changelogLines.join(os.EOL)); }); From 6a4e3219df67771acac17759b439f261e235d51a Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Thu, 24 Oct 2024 00:21:52 -0700 Subject: [PATCH 53/79] Delay the Misc Files warning toast. Give the project system time to update with any newly added or renamed files. Then, refresh the active document's project context before displaying a warning toast. --- src/lsptoolshost/languageStatusBar.ts | 7 +-- src/lsptoolshost/miscellaneousFileNotifier.ts | 5 +- .../services/projectContextService.ts | 48 +++++++++++++++++-- 3 files changed, 52 insertions(+), 8 deletions(-) diff --git a/src/lsptoolshost/languageStatusBar.ts b/src/lsptoolshost/languageStatusBar.ts index 8dc0137ee..d0656e47f 100644 --- a/src/lsptoolshost/languageStatusBar.ts +++ b/src/lsptoolshost/languageStatusBar.ts @@ -76,9 +76,10 @@ class ProjectContextStatus { // Show a warning when the active file is part of the Miscellaneous File workspace and // project initialization is complete. if (languageServer.state === ServerState.ProjectInitializationComplete) { - item.severity = e.context._vs_is_miscellaneous - ? vscode.LanguageStatusSeverity.Warning - : vscode.LanguageStatusSeverity.Information; + item.severity = + e.context._vs_is_miscellaneous && e.isVerified + ? vscode.LanguageStatusSeverity.Warning + : vscode.LanguageStatusSeverity.Information; } else { item.severity = vscode.LanguageStatusSeverity.Information; } diff --git a/src/lsptoolshost/miscellaneousFileNotifier.ts b/src/lsptoolshost/miscellaneousFileNotifier.ts index 71e550668..100f73c17 100644 --- a/src/lsptoolshost/miscellaneousFileNotifier.ts +++ b/src/lsptoolshost/miscellaneousFileNotifier.ts @@ -21,6 +21,7 @@ export function registerMiscellaneousFileNotifier( // Only warn for C# miscellaneous files when the workspace is fully initialized. if ( e.languageId !== 'csharp' || + !e.isVerified || !e.context._vs_is_miscellaneous || languageServer.state !== ServerState.ProjectInitializationComplete ) { @@ -39,10 +40,10 @@ export function registerMiscellaneousFileNotifier( const hash = createHash(e.uri.toString(/*skipEncoding:*/ true)); if (NotifiedDocuments.has(hash)) { return; - } else { - NotifiedDocuments.add(hash); } + NotifiedDocuments.add(hash); + const message = vscode.l10n.t( 'The active document is not part of the open workspace. Not all language features will be available.' ); diff --git a/src/lsptoolshost/services/projectContextService.ts b/src/lsptoolshost/services/projectContextService.ts index d63c866fb..8dd9589b7 100644 --- a/src/lsptoolshost/services/projectContextService.ts +++ b/src/lsptoolshost/services/projectContextService.ts @@ -15,8 +15,14 @@ export interface ProjectContextChangeEvent { languageId: string; uri: vscode.Uri; context: VSProjectContext; + isVerified: boolean; } +const VerificationDelay = 2 * 1000; + +let _verifyTimeout: NodeJS.Timeout | undefined; +let _documentUriToVerify: vscode.Uri | undefined; + export class ProjectContextService { private readonly _contextChangeEmitter = new vscode.EventEmitter(); private _source = new vscode.CancellationTokenSource(); @@ -57,19 +63,55 @@ export class ProjectContextService { const uri = textEditor!.document.uri; + // Whether we have refreshed the active document's project context. + let isVerifyPass = false; + + if (_verifyTimeout) { + // If we have changed active document then do not verify the previous one. + clearTimeout(_verifyTimeout); + _verifyTimeout = undefined; + } + + if (_documentUriToVerify) { + if (uri.toString() === _documentUriToVerify.toString()) { + // We have rerequested project contexts for the active document + // and we can now notify if the document isn't part of the workspace. + isVerifyPass = true; + } + + _documentUriToVerify = undefined; + } + if (!this._languageServer.isRunning()) { - this._contextChangeEmitter.fire({ languageId, uri, context: this._emptyProjectContext }); + this._contextChangeEmitter.fire({ languageId, uri, context: this._emptyProjectContext, isVerified: false }); return; } const contextList = await this.getProjectContexts(uri, this._source.token); if (!contextList) { - this._contextChangeEmitter.fire({ languageId, uri, context: this._emptyProjectContext }); + this._contextChangeEmitter.fire({ languageId, uri, context: this._emptyProjectContext, isVerified: false }); return; } const context = contextList._vs_projectContexts[contextList._vs_defaultIndex]; - this._contextChangeEmitter.fire({ languageId, uri, context }); + const isVerified = !context._vs_is_miscellaneous || isVerifyPass; + this._contextChangeEmitter.fire({ languageId, uri, context, isVerified }); + + if (context._vs_is_miscellaneous && !isVerifyPass) { + // Request the active project context be refreshed but delay the request to give + // time for the project system to update with new files. + _verifyTimeout = setTimeout(() => { + _verifyTimeout = undefined; + _documentUriToVerify = uri; + + // Trigger a refresh, but don't block on refresh completing. + this.refresh().catch((e) => { + throw new Error(`Error refreshing project context status ${e}`); + }); + }, VerificationDelay); + + return; + } } private async getProjectContexts( From b56646994e4765056aa77f60814a41ee5aaa0f45 Mon Sep 17 00:00:00 2001 From: Andrew Hall Date: Fri, 25 Oct 2024 12:34:57 -0700 Subject: [PATCH 54/79] Update razor package (#7692) * Update razor package * Update CHANGELOG * Update CHANGELOG.md Co-authored-by: David Wengier --------- Co-authored-by: David Wengier --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6eaf46649..cf2e609bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,18 @@ # Latest * Bumped xamlTools to 17.13.35422.31 (PR: [#7685](https://github.com/dotnet/vscode-csharp/pull/7685)) +* Update Razor to 9.0.0-preview.24524.4 (PR: [#7692](https://github.com/dotnet/vscode-csharp/pull/7692)) + * Roslyn Tokenizer (#11086) (PR: [#11086](https://github.com/dotnet/razor/pull/11086)) + * **Experimental feature** + * Add flush method and make it implementation detail on how that happens (#11087) (PR: [#11087](https://github.com/dotnet/razor/pull/11087)) + * Do not extract component into code block (#11069) (PR: [#11069](https://github.com/dotnet/razor/pull/11069)) + * **New code action to handle extracting razor code into a new razor component** + * Handle EditorRequired *Changed/*Expression parameters (#11043) (PR: [#11043](https://github.com/dotnet/razor/pull/11043)) + * Avoid ambiguous `object` reference in generic component recovery (#11053) (PR: [#11053](https://github.com/dotnet/razor/pull/11053)) + * Move culture info check (#11057) (PR: [#11057](https://github.com/dotnet/razor/pull/11057)) + * Report a better error for void components (#11041) (PR: [#11041](https://github.com/dotnet/razor/pull/11041)) + * Ensure model directives are mapped at runtime (#11007) (PR: [#11007](https://github.com/dotnet/razor/pull/11007)) + * Including @using for Out-of-Scope Razor Component References (#10651) (PR: [#10651](https://github.com/dotnet/razor/pull/10651)) # 2.53.x * Update Roslyn to 4.13.0-1.24518.1 (PR: [#7670](https://github.com/dotnet/vscode-csharp/pull/7670)) diff --git a/package.json b/package.json index 64459c28d..dc9c898df 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "defaults": { "roslyn": "4.13.0-1.24518.1", "omniSharp": "1.39.11", - "razor": "9.0.0-preview.24516.1", + "razor": "9.0.0-preview.24524.4", "razorOmnisharp": "7.0.0-preview.23363.1", "xamlTools": "17.13.35422.31" }, From e71dcdcabab42b8453ccfd60aea24c0e68f5e99e Mon Sep 17 00:00:00 2001 From: David Barbet Date: Fri, 25 Oct 2024 11:42:05 -0700 Subject: [PATCH 55/79] Update Roslyn to 4.13.0-1.24525.2 --- CHANGELOG.md | 4 ++++ package.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf2e609bc..3a88c1f93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # Latest +* Update Roslyn to 4.13.0-1.24525.2 (PR: [#7694](https://github.com/dotnet/vscode-csharp/pull/7694)) + * Fix error message spelling (PR: [#75601](https://github.com/dotnet/roslyn/pull/75601)) + * Improve diagnostic performance by re-using results if diagnostic data is the same (PR: [#75587](https://github.com/dotnet/roslyn/pull/75587)) + * Improve performance in checksum computation (PR: [#75479](https://github.com/dotnet/roslyn/pull/75479)) * Bumped xamlTools to 17.13.35422.31 (PR: [#7685](https://github.com/dotnet/vscode-csharp/pull/7685)) * Update Razor to 9.0.0-preview.24524.4 (PR: [#7692](https://github.com/dotnet/vscode-csharp/pull/7692)) * Roslyn Tokenizer (#11086) (PR: [#11086](https://github.com/dotnet/razor/pull/11086)) diff --git a/package.json b/package.json index dc9c898df..1045b4215 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ } }, "defaults": { - "roslyn": "4.13.0-1.24518.1", + "roslyn": "4.13.0-1.24525.2", "omniSharp": "1.39.11", "razor": "9.0.0-preview.24524.4", "razorOmnisharp": "7.0.0-preview.23363.1", From e57375e2c7be16fc67503678b75bf62a4a8e7622 Mon Sep 17 00:00:00 2001 From: Andrew Wang Date: Fri, 25 Oct 2024 15:34:17 -0700 Subject: [PATCH 56/79] Update debugger packages to v2.54.0 (#7691) --- package.json | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index 1045b4215..6cf827002 100644 --- a/package.json +++ b/package.json @@ -420,7 +420,7 @@ { "id": "Debugger", "description": ".NET Core Debugger (Windows / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-win7-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-win7-x64.zip", "installPath": ".debugger/x86_64", "platforms": [ "win32" @@ -430,12 +430,12 @@ "arm64" ], "installTestPath": "./.debugger/x86_64/vsdbg-ui.exe", - "integrity": "65431717FC1BF1F3CDA4E2ABE4E42A67564C4F6A4A0A7A38D0EC2120AB3E53E4" + "integrity": "CA52132B8EE9AD1C7367CEA603DBDAC67D32E1A15845545376E4A23D609D80FF" }, { "id": "Debugger", "description": ".NET Core Debugger (Windows / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-win10-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-win10-arm64.zip", "installPath": ".debugger/arm64", "platforms": [ "win32" @@ -444,12 +444,12 @@ "arm64" ], "installTestPath": "./.debugger/arm64/vsdbg-ui.exe", - "integrity": "F2D3A2E45A749D714EA165EF939C955E4BE3B99C7A82919B2563E38733F2C135" + "integrity": "09DF819BE86FD8A481152433E97268C07E985DEE9BBDE17FEA1DA0B339BAD873" }, { "id": "Debugger", "description": ".NET Core Debugger (macOS / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-osx-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-osx-x64.zip", "installPath": ".debugger/x86_64", "platforms": [ "darwin" @@ -463,12 +463,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/x86_64/vsdbg-ui", - "integrity": "417C7D0477B0ABC04F5AD296100BDDA754B0BB513329206BA096A568CA9A846B" + "integrity": "2C7AD1AA13A8382EFD53AC26A474BE5223EB81295EA9C39E62174CB8626F6473" }, { "id": "Debugger", "description": ".NET Core Debugger (macOS / arm64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-osx-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-osx-arm64.zip", "installPath": ".debugger/arm64", "platforms": [ "darwin" @@ -481,12 +481,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/arm64/vsdbg-ui", - "integrity": "84A4DAA9420B9734585845317CC920CD75AAFF4C740ED4619870D1EFD9375498" + "integrity": "9B934EF920DFFDA3241B8107A777E5B5F6EDC6E2810C760B985D7879C705ABD3" }, { "id": "Debugger", "description": ".NET Core Debugger (linux / ARM)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-linux-arm.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-linux-arm.zip", "installPath": ".debugger", "platforms": [ "linux" @@ -499,12 +499,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "EDF8B6D14FE42C4732ADFA0794A550D0BE71B6F5CD18D4636132B4DFED76B7DA" + "integrity": "C7862D26B66EA20D607D163A210430576E1B94EE7E30DEDFFF0979818CBC448F" }, { "id": "Debugger", "description": ".NET Core Debugger (linux / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-linux-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-linux-arm64.zip", "installPath": ".debugger", "platforms": [ "linux" @@ -517,12 +517,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "381D1496318B854BB6C3544D7D0D51C9356618D6BEF33438EB26F13FA4DB8AF4" + "integrity": "59928535D55E29B501E3B75FB5CA328BC5AFD0E5D1B3DC85BD138B89163A9B96" }, { "id": "Debugger", "description": ".NET Core Debugger (linux musl / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-linux-musl-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-linux-musl-x64.zip", "installPath": ".debugger", "platforms": [ "linux-musl" @@ -535,12 +535,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "C7D9B3FCB947798540F24C3784604367CA51C2D52AE69C515525DD7DCA5C1C17" + "integrity": "70899D68697E158CAFC6B4C69D8CC894AF307D82DC884167ED8E408D31A90BEE" }, { "id": "Debugger", "description": ".NET Core Debugger (linux musl / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-linux-musl-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-linux-musl-arm64.zip", "installPath": ".debugger", "platforms": [ "linux-musl" @@ -553,12 +553,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "6D69141D92DF968755D36FABB73C34F8232108E0B563D3B20A59CFD1FF1BBDD2" + "integrity": "7E6440DEF000329162FFFBC97114F33CF83B9C2020D44A1AC0E4407531B4C8F8" }, { "id": "Debugger", "description": ".NET Core Debugger (linux / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-52-0/coreclr-debug-linux-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-linux-x64.zip", "installPath": ".debugger", "platforms": [ "linux" @@ -571,7 +571,7 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "A35AB54ED50822DBB98BA10A1065FEF9EA7BE49406291DFE6D74E116EBECF177" + "integrity": "5099BF747D2D20437A6743F02920015DC6A9809956DBAE12C41CDF97C969F19D" }, { "id": "RazorOmnisharp", @@ -5602,4 +5602,4 @@ } } } -} +} \ No newline at end of file From 4a75f23fc00a3451482db398ed060ebbf857a3c6 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Fri, 25 Oct 2024 15:36:50 -0700 Subject: [PATCH 57/79] Update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a88c1f93..6676f3816 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # Latest +* Update debugger packages to v2.54.0 (PR: [#7691](https://github.com/dotnet/vscode-csharp/pull/7691)) +* Only show misc files warning toast after delay. (PR: [#7689](https://github.com/dotnet/vscode-csharp/pull/7689)) * Update Roslyn to 4.13.0-1.24525.2 (PR: [#7694](https://github.com/dotnet/vscode-csharp/pull/7694)) * Fix error message spelling (PR: [#75601](https://github.com/dotnet/roslyn/pull/75601)) * Improve diagnostic performance by re-using results if diagnostic data is the same (PR: [#75587](https://github.com/dotnet/roslyn/pull/75587)) From 11799bc2e2ca7e0ae931f75ba21ab8c4978a50f1 Mon Sep 17 00:00:00 2001 From: dibarbet Date: Fri, 25 Oct 2024 23:17:37 +0000 Subject: [PATCH 58/79] Update main version --- CHANGELOG.md | 2 ++ version.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d8713336..2fb9f49b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ - Diagnostics related feature requests and improvements [#5951](https://github.com/dotnet/vscode-csharp/issues/5951) - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) +# 2.55.x + # 2.54.x * Update debugger packages to v2.54.0 (PR: [#7691](https://github.com/dotnet/vscode-csharp/pull/7691)) * Only show misc files warning toast after delay. (PR: [#7689](https://github.com/dotnet/vscode-csharp/pull/7689)) diff --git a/version.json b/version.json index a0d2dfb02..4aeb56e77 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "2.54", + "version": "2.55", "publicReleaseRefSpec": [ "^refs/heads/release$", "^refs/heads/prerelease$", From f0b9dbf0826ac5214f298e5e8ebe0669ec75e8a6 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Mon, 30 Sep 2024 18:45:16 -0700 Subject: [PATCH 59/79] Use new LogOutputChannel for improved logging experience --- .vscode/launch.json | 12 +- SUPPORT.md | 24 +++- docs/csharp_trace.png | Bin 0 -> 10380 bytes docs/trace_logs.png | Bin 12897 -> 0 bytes package-lock.json | 19 +-- package.json | 19 +-- package.nls.cs.json | 1 - package.nls.de.json | 1 - package.nls.es.json | 1 - package.nls.fr.json | 1 - package.nls.it.json | 1 - package.nls.ja.json | 1 - package.nls.json | 1 - package.nls.ko.json | 1 - package.nls.pl.json | 1 - package.nls.pt-br.json | 1 - package.nls.ru.json | 1 - package.nls.tr.json | 1 - package.nls.zh-cn.json | 1 - package.nls.zh-tw.json | 1 - src/lsptoolshost/commands.ts | 8 +- src/lsptoolshost/copilot.ts | 25 +--- src/lsptoolshost/debugger.ts | 2 +- src/lsptoolshost/fixAllCodeAction.ts | 8 +- src/lsptoolshost/nestedCodeAction.ts | 8 +- src/lsptoolshost/restore.ts | 12 +- src/lsptoolshost/roslynLanguageServer.ts | 133 ++++++++++-------- ...slynWorkspaceDebugConfigurationProvider.ts | 4 +- src/lsptoolshost/unitTesting.ts | 12 +- src/main.ts | 8 +- src/shared/options.ts | 5 - src/shared/reportIssue.ts | 4 +- .../devkit_slnWithCsproj.code-workspace | 1 - .../.vscode/slnWithCsproj.code-workspace | 1 - ...languageServerConfigChangeObserver.test.ts | 6 +- ...sp_tools_host_slnWithCsproj.code-workspace | 1 - .../.vscode/BasicRazorApp2_1.code-workspace | 1 - test/vscodeLauncher.ts | 2 +- 38 files changed, 158 insertions(+), 171 deletions(-) create mode 100644 docs/csharp_trace.png delete mode 100644 docs/trace_logs.png diff --git a/.vscode/launch.json b/.vscode/launch.json index 377cb83ac..d88a00df5 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -24,7 +24,9 @@ "csharp-test-profile", "${workspaceRoot}/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/slnWithCsproj.code-workspace", "--extensionDevelopmentPath=${workspaceRoot}", - "--extensionTestsPath=${workspaceRoot}/out/test/lsptoolshost/integrationTests" + "--extensionTestsPath=${workspaceRoot}/out/test/lsptoolshost/integrationTests", + "--log", + "ms-dotnettools.csharp:trace" ], "env": { "CODE_EXTENSIONS_PATH": "${workspaceRoot}", @@ -49,7 +51,9 @@ "csharp-test-profile", "${workspaceRoot}/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/devkit_slnWithCsproj.code-workspace", "--extensionDevelopmentPath=${workspaceRoot}", - "--extensionTestsPath=${workspaceRoot}/out/test/lsptoolshost/integrationTests" + "--extensionTestsPath=${workspaceRoot}/out/test/lsptoolshost/integrationTests", + "--log", + "ms-dotnettools.csharp:trace" ], "env": { "CODE_EXTENSIONS_PATH": "${workspaceRoot}", @@ -74,7 +78,9 @@ "csharp-test-profile", "${workspaceRoot}/test/razor/razorIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/lsp_tools_host_BasicRazorApp2_1.code-workspace", "--extensionDevelopmentPath=${workspaceRoot}", - "--extensionTestsPath=${workspaceRoot}/out/test/razor/razorIntegrationTests" + "--extensionTestsPath=${workspaceRoot}/out/test/razor/razorIntegrationTests", + "--log", + "ms-dotnettools.csharp:trace" ], "env": { "CODE_EXTENSIONS_PATH": "${workspaceRoot}", diff --git a/SUPPORT.md b/SUPPORT.md index 6a60ce364..291b9e650 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -19,15 +19,25 @@ We highly recommend using the C# extension's built-in command, `CSharp: Report a The template has a section to include the `C#` output window logs. These logs are not automatically included as they may contain personal information (such as full file paths and project names), but they are key to resolving problems. -1. First, set `dotnet.server.trace` to `Trace` in VSCode settings - ![settings window showing trace option](./docs/trace_logs.png) -2. Reload the window via the `Developer: Reload Window` (`workbench.action.reloadWindow`) command +1. Find the `C#` output window (`View` -> `Output`) and set the log level to `Trace` + ![c# output window showing trace option](./docs/csharp_trace.png) +2. Reproduce the issue +3. In the `C#` output window, select all (e.g. `cntrl+a`) and copy paste into the issue template under the 'C# Log' section. If you need to redact file paths and other information, please do so at this time. +4. Once the logs are collected, reset the window log level to `Info` + +If the issue only reproduces on extension startup, you can set `Trace` as the default (see screenshot above), reload the window, and trace logs will be captured on startup. + +##### C# LSP Trace Logs +Sometimes we need to know exactly what requests were sent to the Roslyn language server. To capture these logs: + +1. Set the log level to `Trace` for the `C#` output window as described above. +2. Find the `C# LSP Trace Logs` output window 3. Reproduce the issue -4. Open the output window via `View` -> `Output` and change to the `C#` output window. -5. Select all (e.g. cntrl+a) and copy paste into the issue template under the 'C# Log' section. If you need to redact file paths and other information, please do so at this time. -6. Once the logs are collected, reset `dotnet.server.trace` back to `Information` +4. Copy the contents of the `C# LSP Trace Logs` output window. -Oftentimes the C# logs are enough, but sometimes when dealing with LSP server issues, the LSP trace logs are required. These can be found by following the same steps as above, but using the `C# LSP Trace Logs` output window instead. +##### Other ways to set the log level +1. When launching VSCode from the CLI, pass the `--log ms-dotnettools.csharp:trace` parameter. +2. Invoke the `Developer: Set Log Level` command from the VSCode command palette, find the `C#` entry and set the level. #### Project loading problems diff --git a/docs/csharp_trace.png b/docs/csharp_trace.png new file mode 100644 index 0000000000000000000000000000000000000000..215b8185b0589d96bdde5e52f2c69357884d2c9d GIT binary patch literal 10380 zcmdsddpy(q|2LN_I!UDyVs)uhNDfgBQ|W}zl_G~(F2_PE$2Qy4l|u(oi4|rQS_mN) z#)=#la|mf{EoNre%qiRr?c1PAe!V*2^E0rONV_goR26`Hy16>EnkLN;)?)<$rz;I^=Xn zL7^;lh17S6{Qt7cCp;n)6xK$5dlV^wfU61$JGa^&IdtZ#&(v^Os5c|(%gk@XQ@`Co z?(F)5o#AhF_rlTg;*I2!1{?4H=5qKeGkN0hy5>K0mpxpnthMh`LWNL#%i-Ap=@4l{@}5@aUOf(X7_jykabdf>c-J>N)Bz7TiI?2 zBFxiBggSgUU>KPP=^eGKrBEy?{%X2C2$Rrxtv9o$*=V1Ba@-MdtR4X=ZM~VCy!n1h zFJB*)zYrNPc)taU1J4N8RHRIgyiU%ZMp0nIu_!`Y3n?{*yXp97>xiqM0Eq4FCHX$6 zqkf!i1%ymgwx$+{KZznLCnGNB^xj^dO1wWQ)Uka~DoE9jLssw~-!--3PlVjl#@2ctfS3)eLTgJ_)Z`P{haEL4YKx!*fJ~I?hab32&ji}2YSFz zsj?5MAdbakn8+SMs4@M5-hwtpW%$HAwvb$s?G1qp;9a6?pWzlh@Y3l$W!6F7%5fh(?+1`8w4*ZC^1wv%c`OjQoFs|>unpEXdNrmAIOepK*O z(u07dCeVw5g>QP4HY9dFu<(2I`eNU1kBaDGtyc-Jp07QKSjjFclde<6SiDsjYsoS` z*`sf2bZ&(`pfNVoz&2hjSe=sWn}A=aVGW%!R7M!EH@(8I20n4RYMQt{e8kD3`o8B% z@i~g|dFWR7!7NVT%lybFB7a!LpCk0BzD#?$8DPDo78m1)!iBx9nPUx~5Jk7Wt-cdJ z^EL1OJ5c$|28a~~`K8H9*}&*ugH1-Xy1D(p+1T{4ZZVm3S9ZG^B%yxM3AQ zbYK8gxxb~8d6zMhh|9C1Qz||W0m-SYrxt)rfad*~`;FW#L)@7G#OS*u`n**jmCC)V zNL)cv`W$cJR}p0|$S5w43W=zSj5#35!In&ge+k_V3sP%Uvgq{2@vlSL1bdQ+gGyw2 zVkk6zBi6rHNyeQxsyco2K!lLkQz3Zd?OYZsyqB$It1H9QxJ0Y2a@U2=R3fVv1Tw^S zxg9QnY{+?7A{b>>?xedE(6s}vkrkG;`Gt?iKE}}Xu+Dl0ww8T00D~PZFq{_~B3ecp zgjbl7E{7PIH-3Ksb6i!;VS#2EZfryFi^WnXL;9uOIiBX>Cvyh-j7rZ|Vf2ymQC6`C zJCztl!~|DTJL3{(0bN_gPGh41s1-M?{2SXv2%~Mq8ubX&Xa|n+02g@GbTixU<637f~WLrN`MEVMSrgZmY;Tmu^3;P?883qJF{%! z=4ROby7X!n9}S(1cOXG)^MrW}v1B7S%@4NyoT_iB_3T7~!_p*rlZqaDWajQudgNRy z1qDXAQpMRrUGK>s*7W*X%|GO23Zv#G)BS2noHyxu?t$x3Il3|2ltCgN1aqapMn*@& zQqGGtgY78Em46T0p#tE+G3Xal87O^sAG_L(=5Q@@%GTP%-CM0@@u83}N(KO`#9{lx zk?=7Q$tj_mp>5~bJ+5s9UeRE999wbexfQ+adPO*wX&c_(H`ehf)GI)6eXEA%#m?))UT6f# zrHm6cpBGBrw^KL$QC*c0h<>)@cXsTVoCDT7llV5f$m^h_uC@r&#u6HTRS>rkC-@6%^ZIG@m+;?Ht06(7&Bi8{2$JGiqTC^j3R5*0!J}S>#N)PwlV)dE!HxqRPVQf@`sKxk(K{!(RR@?U0~Suh`>sD0OSd z6nA|H{cf>WUaTVUi?QSF9H>><32D`IfwBuYMDP^@0@QZ~!)_BvN{?|egDqxgzW1205wtShO=(ZFBat`Pv z&F?2<%8qP5n5HLlB~kSCD?V9sdRXBe;3S7^VE?F!b>NF5>?~@jjP?LGB4`O8S^GYf z<5W=Jp&`;h%g#IQ%zXQ`de+zo>DryOU(cvR7uKFtHWp<+kX*DPHa4e9``&;&CdKf! z)kp%W;nUYbR}7I73kEr1HMQAFAz_qqs!!!UE-j-_8U#x-K8czBJwrW(TJ4C( zMAW5iWy#9%k(2v0hH4SJLj`S=>!v2s&%V%?F(%1s+Ljg??JkufqgNZ>#+AR^k@BcM z;DChi)?{Skr&$bh=3U12E0QT(?yI7bnnFcP#zr540m_I(kAl*A-P=I1ciTin2Ay6S zno-n0WMl*M3zMKm8M8#znu|Q7}LT;~h&dWhAJO2X5!& z=guyrf{CBh7Q%fS+^FD%p#c`82rQh z$&?+!^viFV>x7=uSqc~%Mf-<{I7zn2hq-A8{WtTbq_$fTj8X6Rw-}?Qp!xZW)xL8R z6AKz)e)A_+p|$Vdzi)55Um8^I+X(Xjdsy61x2Y800A$YzDb;ELYk(i=O@<8gH3s*o z8e-|4F9>!lU~^GP{pV#v4Q+N;=k^VJSPq!+LM{bd5(Zw!d zaotSw1nEm=RK$aXQz+Jfjuk$gIo~^meR}oIhWX6E=xV!isoSSZb#rb8Wm@`rQSA8C z$8IH_+W~LpVWKaY`@R)d9b~8VA^j!AKK3Prlct0k-ruO%&V+NGM;ozbNZ41N^V^-e zYwMy|{ltkrz(ZCk`vI#&qR?erQpcC2kAvi_x~)OWk{1ln)s971g|DPn8w)2dgAsFm z)5{dc%`8_$1MwQCDIa_2B5l@5+sVj69MDB<*=X%Tp+CwXn^6i9s zZ&>7swy@5#ysRi+l+eyWx%Y+tyn*uGd{(;X=#GF&@sGKIYK}=9-%N`qyVa<%l-ZmK zwYj>d?radENJ>tz;g&)qFQr9l2%TUpu}v|REVh|Ou=UZZ==;?TSiHvjo-Oc4W2!+q zb?bnTFQv89Fwt-pa5rI4c0iD)_I{J~wHd!48*oa3ln9}wH}ek(_jYJ? zTEi{7DjQ<@CQ_#De+xdYNe~p*H=z^E^x`3+KfcS&rAek#1vPq0pMaPGyv2(6((HX9 z{jHtoRHFL=zI0DR(gn)p&zw5RFgrR)hPzZpvN@nIWtX_&|XQq!tH9iX;F5r zw*fRS%dj=|$914bkm6p90~m~{_1PC&4$(`&`^IlAaMauIFCD+p^szJ!bD4?lEo|D;oK3wZ zAdK_f3sB4Jg^}e0QLw*Ax_J_u9``k9`9avp*m7rLnEy+u|8%iSH*tVvQir|^VvevP zJ^);BZK;HQV`j7{qgY%DzA6eAu>!CB$4;{mqoNn*ORBn4aVqKkaTWu;o}Pcp#P*GP;k*X57LD7E)%N zXcdCqQoS8JM)OfVg{$ayjOx#+Qio%xHrn+mS{Cj1b&n7E3Y?eE&T&kYxCDyWmOEhk zX0$}Ga^8DFDysCBK993~qVXL8naeRYPoJl~iTR@gsy7q)%!wF+ei=oDmG`Gbd-k7r zwRRXYJ&?Eq?9M*$G4`%#_I6@v|40F>CHoFO(7yP|=eSfjNVAm;A%GH-lIWkx{Q9mt z(OgNk3wWzZioGuoNMJmXe#Ojt99tM6`PV}tkW2{DkXuAZH#)$&mN5FmZ}dM~>3W}! zIe#teZ!-s%fXOWmnaePRbHd$dPKZsv_Zs`sXOAPpnUgROsrY{nXY#E77c)97{2rbRsw+|-4UIAWX_valt@b~e8D+fpmz_ID~L zHe&T6W7m2o>jObpTnMP{s-~*lGcv2bZuMvna(3^>kHdX&ReW3P5$fvrr!|{pJwhJ;_w|(k1^n_Be+c>G^Id!d!PQ_bSPiMvH z6SBR{L@g`E1aZdlT>?^aSo0|R`3Coe)kAl`{xAVlkCCtvy!@!8A`5tNN%KXsmG+he z*w%hOB{x>tWVjLhLYB1Jf}7cQ=hPl7cMYU|wP&9`@xc81pHX=5G&zcwhZc*jPXm3lUMH^1c{QsZsH=A+ppk+0?=^`%%s*1)#M?B*ulbbBODk z=}h}!t$cOJGrhRj{M9zM7+iIjGs>boOeZ6cawTu7u8S^tv3^Z0dgIN=K2%lrNVlXz z58ggaYPPt*+ec)IrEfG0=-x@qOFYU&TVMBKM^LYOaRYMEVwOH zkvrvD44$B~xVFstzMFLSc+-v=Di6>wu_!d>@Nt~b4ir1eet_sxrlu+~4 z(F~?ZU?g@X#)UmyqnczSgOlnjHI`C&q~+cBzjus`6!xq?qwDT9wFgA&hzfWyd47+Z zkQe5RsGSAR(--#5g{-JF(*#0l9}_jN7WEDR&`nuO8r+?aC#lW)sYH}DV0jFL*cTOO z`;K|R44#JR|4=gCv;KTEb)x z3O*38<{Q0t8Q>J=8$LESB<;0&6tDJz^v@6{gh*DuWJq19tArOz`5)S28|$Xq6ocKx zHtcU+{MSI+;A}6%9ciF|F{J)`*Ck%8tgugO_*;%y4U8XrmmKdRn|1<3xvV`{E2`7N zy)k{Vs6{T#RloMq18TL%j|;gpJeITfnp-}#S6o+29ia%2hlTB1;Y%xS9KdiC(RVrN zcEZ(x-?H14fAqeo`(qS&LfrgAA$k7&x;Vlz!0O{aq{uVh{vTF6*`V@%O?~(eyKMPy zL{IWK=>1oowR@?2T-0drBF*Y5=ZSZ9ctD1zSzZ?a7YFn*hBr1gmP2RB3n*i8<({lZ zkM3z(>7dJG-ttoS#*axb75GXEor0 zT&O&Ae*2#TgOYsNM9u4y%=#W=q-$isrbcT+xv@yXoRJWo6~(5Eg8xF}-Xa@%vC^}}&we4<-~^3afpuwaZZ3>-IeGF-Tq2fN zRl;U6i%VRH>C<)tOkgBfR1<0YL}xLgMK8rD>w}+@gD1^kOeFud(Gp{Dm0wG4-__@P zf2)+2xZi17WhXRq(=2}NblVd-7uXmiFdYcrvPkX0RkRBCn3Q-I0>5O^>`88Jt|?#T z+#-hK*;5GphNNSQqM|PfCy`^Gt40^~x7sJq%y19!Wk=*M(=4D7agK!c^S0ZRe&xMV zhSE=<{O?4Oe}||3Z^gb+XqE-!K8@yk;L6wdTAit+#jus$fc5Qu8yw7~TSZ&%R##Uq zmj|b0y5st74Fk|cb9%`mLRDFrF_Xzemr1|8yAe)rPxqj8PesOR9eLuh=$7JjKqG(V z#SnQ0cUu>dur_$ZPg*CCVjcg?ecnwb#Kr9k7gq&&V##zlzZ;K0uu&JN)Or5FIS8nf z_EDDqX@WX8ot3dK9CIYqsCXc(cXmrZQR^Q`E*GrLOfpS8UO#wj+La~b0p;t>#Z(kp$)PKD?+@N~`n=g6;wtQ(fw>y=CCqeI zl?%jh3}X9v?{=RjlT|54Ixgk5gr*u9>cNSCMU9IRzGBZJxLPTI~0)&(U)X>sOlSu^bROP-f+u6q?w}p8=PNgu86+Y~Y8<6D% z*n6U~_h0!dvt+=pbs%?k(Y#fDLNjO0g4YI39rFgS}WbWse0t|klcLm_p=EZrf1^#!%+AlWzch`acLD7@(oG=Rh z=(h!Ud%Ax3*Y~$FiPw%TRv1+mh5Sio(J}pRkc#nA%}U9_tqflGPslI=6{Mu3*t@u} zdEqio6w`9J`4Z-Mx0mvfMZ;Bj%G0Mg%s%(NF8tR(YXs_JlCvqWeAekrF_Tx%?AWm* z5U(vpv*AJg8V4(>nh@=->Z|=#T{Vyo9ZCYB7KY z7IUBr`WxSF`+qzn4(Q17nx^kw()#{={N$&Z7qw0grz1i`Pr_iZ;W>2jqC3|&$`So; z!XD_+nuajcbIv~ZYU!sD7oIVGit&sDN)3AomKR$;v$;Gsj_kFzHjo!5kA14*7UsL` z!7ih)!vpHIIEsVsts$(ADh9FY+p5du{YL#$(S+`SV)RcIofh)mTUlCu=A}FFelL02 z^9A-UGZiM8X#j3)!0~>;9_(x1<*Td+&3n8Je<9cB>rF|gj-F*7$tigssfCbw(mDW; z5=8$Ba81nzfE}TqagSe|n%+Oy;v{h@J?ojHax(uBmfQ}k0wzTg###N-KSl3???zvn zvbVyrxN|U!HFDSTlV}eS};Yb}5Y11Y}5~ zpQXC8fbpdVev*ANFrajdm*=g&+dfzCvew;f!KNBpkcGPfE5U`0Dmm91k;U2{Rk!hl z)OgbT*N!^Cd_7L&TAUulMOTlr4!!PUHl@^UXkyr?U_FpsFN!E?Qf{a4GoUT!F{nBh z-BK^?Vpk0+Vxd7Pom;J?epTmnfR=kN*1^ z_r*5NEn3*@X``cuaK(ai86_l~J7x9+*Y7Mexd&Ej5VsP9eVQGT^%~ z-e02GHTvH_p#ATt)IV6mcOm6lGe!wU9jfy4fbSbO@{o}kQWB-2GahNFwdj`Jso>?* z!n5wRc50E9=oD*s~9$_Y>7HDJN9-(RTyYxWk|=5Ppjt~gu;Fn-2TeHSdg zbftV72(o{clP}Dt)$>0KYV{PJ^o|>hdyl%u#zUBEfbr1A0%jX`nDSW z$;h|>k7N@VHfa#Z^YMI6-yQjp@9K`N@JAaV2WL6Znb?6^%GtTjnEHss82pI#LGmjq zl_{azp?K3~1JycozkPV3SHWT}A=~Cph2jqq9gM#G2!0oY-(}s91f5AdL%$I^f>L?q z_WSkd`*EcV)2?9NLyOp89aPJXed#Oj ztJI1P`4z1dsT|*TS8uF*VoW*ddu27yU_a!Aq7bjq@bwS)IWx*Vr7h9r?OXk<{-FEUDgbMaYosX0pKL7WB0hb0S Ai2wiq literal 0 HcmV?d00001 diff --git a/docs/trace_logs.png b/docs/trace_logs.png deleted file mode 100644 index c1a72d0edf0406a112bcd40f23dcbde3bffa2d05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12897 zcmb`Obx>U0w%~C-AV9Dn!QI_8xVyVUa0$|Qa0u@1+PDO_K=8&jI3#%EG;Y(mx8|Q$ zZ*I-2nN!t$`kcLYZ#(;}wSH^uXf+jCbW|c#7#J9Ic{wQ!7#KJ;=?idsbH=>-~1z? z35xl9->RfC=XIKFZzDK0?$1oKt!nIACS1EuNq$TqmNRBg^vosIEU;!z;BN=}^k*4T zHf7HvtNJH7NKl@1j>DPmXvj(OF9Iv^kOGL}8K(Kdy~{q`WQzYCZ*}$5+DJO>ue;II zgY|srbqTuD#Omij-B}>2tLrPjKX(A8#yWMBFWH7Y5g3{u>je#ugxwhnTO%0KKB-4& z%N%DIeG^n5Grlu<|C-kec*#loCG5v>o2y;lu_%#KzL|dWcRpXkIc0W?3(!I~NfRjU zx+ntP9J^nK@8sA`8Y4?CpcxLG)4O1*CUY{c+%?Zi9LEPoL?%VmF zA)tDGUr42i*PZV>Qz=BMnMHsv$(Z55#YOde?B6lZvQ{bu%C3gXQgUj%ghyIfc?bQ$ z`?0q5k<)-pWC(FGqVJn{0#cEQlM6v8#90UhX?C3;mHPATcTzD)NK30VC?YG9rLZYKy&~P!8u315g=*?;WOuPrcqHB$4;HVa~=~Kl=M&kugaI zCbE+FT`vkTYT)2M7Ak|6GKIWJz0OxGyZ>zcHi*M@$c3)McgD(pHU!>p$_*A{hF)$y zom1TZls?X)J8t1CpHtG0Bs2{OYcnPKDw;raErmyk?WmL^Dv3-gFJG};2p1ZG4zJ!! z8;OSMa;_jq&<(gOcK)5ZEpMbAY~ul;^}l^+4>G@i&QYp&C(^hO|GOegn3zq};pL#} zGM-3sN2T}Q>faFHMNMq==VfL_UEiSyn|!t}bo2}={Yd(c23-lWUOPSMcuR(&uw%{TCB_mGx0J-&FELK=kAl#HzV>WbZ%i3ag*D8^0@z-Y3L^2+02A$MVBd>^BAv$+t1 z?^zUZbFAHykKov}uCvladN^N^z<6QodNfC44AyQ@z!QE2khQn#&B@*hdB`_FRLgkvXEwjfS{*TEq_YiJsedRaD=$7Nsj4o6nv(D0UUn^GUm!T# zE=v=7+0CayUWZ?$?280NAmk>*oCuqnw-v<=w;8_VmGDMd>?x&i#ay;i1KN3-6)KoT z-t{KK*~<&+;&vN?o*qPU7tJnjfw=;HI(&qWPu6vakh{C(0&xX}Z>Zl}ckP0#$5Ukz z4f>>_vDL_uH&ss!TDEu2>c|uuvV#~4E3ky^uwg_t@Lvob`XyNug;K&wt!`EX`1@Pz zk-Hza_}+ik*SwS{nB~Iat$}|Y*AJ=qj%FtpYOvgfR7K#x^D=#R|M}}`Bx?TL6tVP4 zwAGI>yfmTSShf+7@>U5csqi?-EKX|)R~sgskqntoB+nhwA+(`sIbUZ{;}o;-N6F83*7Ou(YIG>Ppw4FS_2-E21lLn^RX1V zINdro4-c&aH?mx9iafwGKd;MXNH9F|4?{#vhJ$HK87u1EEC|a7W}~R)gQ=s_G*)c| zM2WHn^FJ~*#%&mGZkPX5nwq+}+~x{o-cR!Rc6?rJDr5Z-Qx)QSy4rH@xQ^eMkcvP( zCvF%LN+lal&cVT9*%!HZJ#%S#lwH7cEP^eS+I2wM-qm$v9h1SVE}qdW`T^Mg@EfEy zp*7NR-~z;$IQ!LTDR_}w*uT|BtCGtP%-Gv42zu=oqk9v-IbPg3G14Hh75M&nme})n zVX4L1R=dG+u|*M|TT?uX`%a!^3R5fs{3qp0-H9RL9%v&Ja6^icN`%Bab7VZXLRh_A zGt|!3J6I6JI(J~wVvmPMud~1-<#%_s2%CnWn5V6_yR%c|@LaqL60XMGD1-Vf0{@lTCe)0tyM5*66HIKB)F*V$?fkG)Edkry-mp5}M4|Qh zwP?E3mgfs^lIJ@`nLIDL6RPN+Dr8JtZ>lf~2JP;@6cFPJwuc6L_S9LOg^UQ$aZm_f^R2WI+>7jwKdVf$Ns3Mb1IX z)g0Y*3RrmRLdAY{L0|0vyt24VF3ZH>!H+-o_q#oD`*|v-#<+-RQjGYg|n`qHm1o zSl@HSx!UGZv77`W8}i=A>AW|9k=~#rBc_&P&0{hjAxc}z)ykp3z}sFbOa-~xxXTM{ zzyp-8Qvazzr8PgTikyWF1G<$mxut_GKu~EFFM))j`Mkk*^PlV)@ow$uVC(ol6ZLLb z%maf?Vh(f4?3|1jMD>=``T^Q6Fp`GLi~Tt9wS&l#0}Z3A-@O4GwC{Y-$*Lm*1ed}i znPUutlW=Oq5DTYlj|HFem=lE6I^^MdVxyu^6V~HyRQ1E$xZ1!4?mq5%YDHPSKS+d2gpjg7t?EWn<`s4>W!v+MJx7-S@g$_VnU$_T13OZL5KEBMIPtWur!@)~T1t7BoRoD_sJr zmqc7ZAQPVhYfS4+$}LH6f2;M>aVL$*$r@@%TAfx{(FCNHF3C-q+K)-q8oauCdCj({ z3wfPQT)&n^yS%-=3^&826UUq`{}v3zha(FjEQoz0-O)TSncvx?NBhRxI};~UfF!-$QnCR(3WkMcZJ#o{QHL*&Ci++{ zrLxo9I`v5MDH|)s!E^!N5_i4i(`_fA3LIWm1bJKOhm!--z@ZxbW)HzMdK07RB5TER z%?7`TV^z4uk4f9^TfHxx`>KL-il2^jOCrv4XmRpw^2&E??!3X=KW5$nLfMeKW#@g< zcC=-N^yuO#Z_Tiodww-_Wu{vRcg9<-$ke>_{R}^Pj*gPUMJKyqhGXjZQL8~t)XI_m z$SXam5dXD=4z9qLOp~@ddhxU)-2qSXt3V_s+0vwr1{bw> zY)VPW#;oU@2VD#GT;ubAG6I*r{vA^>pVL65s_57)T>#)@@!Ouv8gK3F!;VU)rmxj* zjS|(HJ9wr@FITlOw|M~~*Ideju0kwkewVrDvT}vzoA+_0H=yh6-MLQrJ0c{cVxx|$ z&d_duR?5CRZ$*!jP~_(_dwRkgI??Dt730~St>!}^b2`pQ0l%c0oNXAkzA0W35SI`n zp;6;XG!|UnYI(p0II#c;N=a#b#vLjWV?R4Mm5W3heN=d@2?=)G0f)FqRVFO70wD_KKMFWtoUo-0+#7kQxQSE^bpI3^* zovWJc7prLC;NT#C+VA;^$FV0yD|wDaQt_KifrQCFO0{FsJEO-H1jWVX+v@YzIhpL{ zsu86bwLCTqda3&Hg#a5m$r5owFs7W;^i+(dv6% z4ONS>#3Q-9QyMp2z}wFR!WMoF0>ysgrJs`cS923IVE?P5UrJxF#=6yXZf)3H=Gq%s zC-U<0xLUtxzp%lEBj~hV3y+;Ij1lW-e5B>koue?`7tg*~b9ubUq3ADjg2`A+qLRHl zO=Wl_F2h{eK0vls`a(|9zX#X_?6ub(I0<1c-0W8;lVA47WB$IvYl$nyxc@R+AQ({N z-X)f#xr(+1X};?W=*UH`0yz*~^Ayc~{O9f7T#I-A%UrW6e`Vsa9&>U4(@#nJa$1ie zCSPoSJludgSV7&EFe5^6^|iZu)X;kC^lwW%FA=`ikC19x4?xpOxdF@5YjjklTEqHT zg`@0%-47bqs8<$Yk?Hv(1jl7OWrkm(*Hj3YqsA8=)$*UHCne?xjc5m-KQA0A^`|5f zWnY>q&&9$f@Q_ADF}(*9mIpWm|1ePgumqf%6qN z)R_gbBssHm@{b>tpKX#!8|jazV51S_b?c0VHhZ4f!FO9Xz8x)2YhD{!rh#8nU$;7W zh53F!ONB%CbEe2Y(41#B*?&>)sPO&0RmyDsFz45qNiy9lXF8BK+M>D z=5x7|!#H11tC0S3no9Q3e+sW~{)KQlbM~A`|HX2~fBfG-od1YZ{xkpi&qX6St;fR% z60Rq+kW`CK;_ZgHuuV)%0AMkfV!ISty$<`d#_wj3;}!URw(hSn`17t8GZdC~I~ONh zFYJYH%}_};TxZ-BSJtL;v5kMR`zL{lRTP#^HJ>|u)7M6W-L zUt)5yMYk{b!hn{t6W*b)yQk-JE=KZlrJ`UPTt7_ZIH3D@{)gjDdNP|QuBEcU-NS>M zG>OpN=}xO(D*E?OBUBka+3MQ@ghxd=M+z~1wRhbL09gN0ytum?>G*QcV0UdZ=(rYf ze~)0K(1(DGjBGi%?yy$QBkC`P;AGIoo4%eq4pp7Ht`Csjv8N~2%5SL*H|UxSO^oUf zV~@vmdLI8+976o7sose_SH8uQi8*&0umf0du=Y;kQ40k{gzuG4 zorFPTtgNhny*=~xgM7b>YqmaeLEn_iZvoOVAEeJsdS>olWgb-?#}}(Re_oIUO^iU- z71YdkdPl?$L!+3^y=i`_s)0@GPZCigoAA2`S*X~vT8Ey6N6X$12n2SbSPxHR4XTDg+=`#@#UI(TK4l8u- zv+q6o)R^=jdD<_}@qA06Rqb$gD)kJ~U+yyT75g{oF`M45Yh zJ)U*%4+?_RiX;#rJ}2s0)jG-rirK!WKZ4<-GI>cx;z{PuK}TPj7JH3_Jc3FMTYD|n zT3uv+4ZayGKBcp8*3Cl{GhBBsu%1QN+&A>~r~OnGjJ`Y0N|2P$VN~DL6vWjI__N@% znGlO~iiIGd6CK)2Qc8c@Hge}oXEP1<33@JC#zOQo))!0JJHBt`m0s&=ty!zp15y&l z;LY9hgM5-)z|(snmxn{7dTQ?X6S5_=Eg)4=Vcz+5$PO{EE5VzKHwzh@ zgpF=)f`58E91wGKuup{yr7pBH2iti2N;j$F zxPz7nqTi570Wb&Jw7u3~ot8HQK>D4ONE#u&W>y2SrOI*Tc7wv+_^%#Y)!|W^BQajr zPeEE2kcERLs8FCL6^nOgB)_TG*Q}V_XEAiuwq8vh6M1_k*Q(OPa%0T1G9D8yBU5>} z+VkjKaekWJ>{)C?+DU$lZLRvAzL$KY085A1R~qg4J-x@W%M{P~F0}_)yGmykvDn{a z1UmtE&604uSPh;w3BjZ|n7uoyP?HI;@mt`1U2XYj$B6!MeHo@~;eZOUICtbmW_j#& z+!tVFa4vJiLed7Vo>s2IJNgmuI6?R#I$PtzwQkr}*Q;VB;y|%e7E;+$^*(7@OoW9b zFpvlG;Ih?-gU@Qzkn>@s@_Vb%Q~V?CfN$PwZL8n?D3&JTPAERLG7BuGMC$L0=PdfaYneDiCt)wyF5>Qe|EF9t+jb8kG*xg)X8;< z&DXOj0G}wAXV;Gp?QZwi)6#M}!CbSa?y}03 zKZN zNjE~*B8f3g+K%q+&7yaX+?R9 zgekq20qrTQ1j7NBG*GK!?rE#byMEmNEWEJX}N{jf4SE;Q!mrbMx%pc*9c> zJ^w^VrYw2^R}MzI#Xvh((>vbn@)B@0MyCaPQjNN--8tV@!-N=8YP!+s=>coD(R!mt z!h>wVjw|~r%CH_#hTFPdbtoZf-N}*$H+Skl(NraB2ae!N zHOmYYb=(ZbA)lt841r?F zBl)c?LgtFOV0)qxPj_gE)~UQpWAtngM4_^7{3YEW<50b5xI zSINbApX^{<2M;_Ftg0J|-tsRI!!KStjn5f28%r(&*zR_9J{qB3VVtg+?+Q_Q&{}G% zBFblIN3@y$99GhXB)jD)D9i-_cc(6VlQpNn7~mVNej4vciB=lZ!yLDL2%+{rb-eld ztq*PEnRO;T$+JqD^_xAu?Vamm@@5t^{gXRXk?IE4To$)v`izmP*qj|?^XaYM_+!X zlfu`s{5owl6%AiQ-6#O#icqfHsLn{B>wsc9q57Q|n|sct`-@y{7((ungG7bX!&PUx zEGibmNkD+V=j6evCm15Aqj61rz;Kj9wkw$N{&QMqzGH%+obM>d*a2&QNZN^5h1q1y znj1^Z!!`cl_CmT*hWnR2o#9D63pb&9CW;ns&R;{VK$UoD`xNT8WR=H(t-kV&X$?}) zCCEo_!!di4-i50xz;9X0xtD3lUp||`+EmA#8QVji{bWzOU(cR`1^G%)-Q0BqQB4AM z4~R8?vH3(+*#$=Lth!&ZEf~v0Ryd=lflp*~0}HEP@tONqI#(qNk)ssX*{)pe@%!D@ zoY7s3jaYiz^g`2F1 zfDDO&7_wS6&TQ97f0Bd*F}=O>Sd&HN->8qs8LMkrKFpQU5mstd+tRdzELZO}&^(Fx za)0R@rB1RtvZFsbso`>zCu7Jw&5IPC-m7aGbMkfBAS!Xl+~uzkmxnG?&o3F=#^W5L zjUU*~O3%kf0dyeZCq|93NqN8b!a=D4__-f&l!sH z9T6}iwpcx4{}_FnTb9jsbR-dQUpQ;sRkeS1#z*;ldh>B22HIuClwTLirjmWVs$g1+ zBUk2^!X=kqg`@{{tz2}7ZpQL~6b}*H)AAS0u*uxO;UVMd+Lq++6Q>;OO4<9gE?mvf zhb%Sg{2MpP>RQ6Hd|!)_GiN5vxT?1Yj5W<-zlO0R$uWy}hC4Ei>2{ReeACP1<0)TP z3zNRQ^76XR^~ISVg|AeU6)F_6cbQ*rO(si-pH0M*3fbS?TbIT{kU=cK>PC;B>hKLU;&z#$d+tm?+KH3P?C&ApjT{;thAGym zP8}Ymhukt=jvEQaQq1|&g^u8{xf;qiT}5MVYQlJ#L^~Q~g-wW6OAGas~rdv7=kdiOix41>vXpbr9*&2bm$^msG2EDP$IvhIYl8?>hrhzFRBa5rH zGx~A$6AVRd8Den~=xk!SLDd5uETB8B-uf%!REMSG-p898o(z1OdL}S>bgV+NNX3sI zNLksr)MklC|FD*uOlbXKDZvfs4v4k=(CBvAsj9OitQf+LLbMk#^KWTm7#LvlSI&sh z5f<69ZA70Tcu&v^KTskgdVb1*^2Hi`%?$w#@L=8ft-vQ^%(e`++HO{- z^Eq9K2)JdSF|u+Fw@iJ$h$k&G)kWC4=Tgm4g;0{h{<4vi;iJT8Vh~|Ao8-e@56Qwt zR_tq1l>?!8vgQ^kFwSmfTQpTWtD?KjJoHl@0}b#`$|q@i`WmXanwk<{>d_>1UX(~o z@IHz_pn%Ph2Qvw)bs#}jjNFvd_5Q@-c573-QE~unwUBsL#HUC0(L-i3Jf*Q)tH3lr zs2^6yf7-O+Q#})5`#R6kRekjFVinZiQ_yX<+1;@^C1A|rve6p5kfg5AB$n0s$-cu1 zS9O|nLtUcwU|UTIGrV_}zPn}~^`D0cn#r)(D8ZUJ>9Y%KL71aM#_&WBi*v|KsC`#U zV%1qynd@X{UQN^4w4<+LUoq4yubOUWj<38^h_nIUkiUWGspTCA1#Fca2s=p@dPO=t z0trU6vd02X%cNCyGim6Xjdf*;$3D|^1Ue-c&XwrT({>hOV!kn068NYb<)#b(ScHT! z7VMbp>|dU{yv}NRb9(8kLSj>QQ)4X|E5QnnnDTMo5;$1CW#~$KIx9oGrRqGh+$EOM z)P3Fa?jHf*q@SB<-HSfRRi|D9Y1O(APb(2N6tlBhL#XzzrT$>>)uhebjGXjnNqc!l z&Nb82?(wQ2qb{dyOj*mhEvUrd*mn!>A)g=Db0$>xOcORWwzFENC3{ND3Zn|+_=$4T z4|_fPq3-<#qqh=zYOGBb4qn*-P4cS>=bKU?V?$YDI$OPxt{Dj;Z9oaFa(+$UF4TMe zh|!}A*6DnoGBvyAeKG?^IZ|Vg%(2cV$cj~iV*qZZD`}^!LCq*CIr;*Y~~oeKn+I*aT$OJrEI;ug!!&Ra(VE5cnN!PzQ(b_K;n_)^D_QA` zPBM?Chq|_GMMBU|0Vh3nbX=8-iVCZ&4t~tvI;v+Pn7Y7iw`R*DF%#cr-jJ3%m6m|8 zQi5CG@5Yz=x_m44* z{pz7RD6pj{HcU_kq{clr*p|qkdzwZ=UHBz>9LO8}n)U^yDS`K@VqgZ!u-JHFCtEx=fw?vyScVC4Or@gi?Zkri$zxTpA5G^Ch*OcqI7JP-1Uc%;F(CKn52fT1e^w?UvaW zrTfwSIMAr7{*)%2aU%x5v0fqCugNw-NUG5MZ4s#*C!8rRZv6NqIzPrhQ6|0a*%VCG6TMVrA)SQ>rlmM30DUm( zV0EBkkm1Cn<=yO)Dk0lC3*(QWF@PMjVdV`-jC4I8i#k!+f9t**x!|zGx;oR7B4pdJ zTkYlku!Ci4k$JgJiBu%%R}7*Gz`Dw5gw_(}9uBL8vD(>H6{MNyK|kBHjj?~W2k))J zhlRC)s4!69TJX3Wn_Nkzx3%kcC`0gR??(>;JO(SFx$fsAZ_!mHwf;t)d(DGlnoNms&Z3aGVOzWD0I?xHc0&c5(up=x7yTW>-ic z%2`Vf1SDv*zyN0P&Vz(40-)*!=R+}Q8xZ@AAnL0o8i#8ujzm6hytEUYn<9ctq!jtX z&dzc=6GJ2D{p+lr6v?70&onPQ*0YrC!kv3?N~i((NK(W8s;@w9%pQS6J&9?CSr`#p z^s#ZIrC$Bh&L8LI4b976{7&4%Q_a96Kbm*y;-pazUI!v73xdVGG}&GRHON*jk(mDva-5yRb?Efr3N`db5ietw4Bzh07Gc+jz0@gn{a&EuBd#4k_S&Dwfh9M9{19OJD%*01iDS3i2mA}RQ- zn1=&JKTt@D4G{sgE>S-v+#bKNG_$L-B*-i1s?H^SUu@bO%;NZTXAbBN7MjEUKv}BF zzDa25_-C>ApI25S1{Kl6dx%*MxokUpn)T>X&M~QK>9dVU`g?=~{iu7;SJmeI zi(j>y*ZZIU5YSOQ;%;ko1eODFH7u6Re$Vs*R&I?{#(iM{KNM>dkBpMBDo8=TmO*-z zTLsFY<^;c{kX39g*;j13N@NjArs+K$?O6XgB#n(9KK{U{$Jm3JVu~UYwb?6}Fuip6 z<)&r}-id_?`c~;pB0uiS?BuE-ucAJ_^9k?QgnhbO{6w-5HIvm^q{O{6IF5^`;;Pj+ zbpvtIHw;IsXmFCL^wqVA=8|j_6c?%d@KrQjIs$jlX_~@JekFWSY=sz=x7eV`}WI+_p`6Y0kY?5{py+-6QE z-Ie#>!n+n*HylcobuF_fI0QkDAD75Y=zt|*3DD5Vb5^qrYCrK*8o=?|MCjkc4>DFv&pIx$Rwou)yeFeWQAb@|3?*r~#K>ZOdV(2rHHdFq;L_DhJ37 zIposEDN8AQVoValQLhv}VuqW_LIRv{dvo7MTtvx9$;gP7JQ9Tqk0c$hsj9T`9W-{9(*ZPfDE@CFU9yHn=;I}(_%ndDBnHE3Yx(|lYi#9FZ?BKuF$IWX1b1;?s!mW8Z+>rR z$>Ae`2{0Mm3~L)c?9%F5qxbBly4Z`%3Rm%Njb zWmLJrb_Tr$t;-Q-TNR`{&B)6NEWzD`Swal zP!eQNa^POIIqDub3HBvF{XrC#fFe`r6o>z})`blLoWJ4g8{AV;`CLo?gJA#vBDBvk zVaB0~!yJk6ze4J@5=$r2nleuQdL0wOc=+{7=t7|?PB9#g#%*$d_k?Ok)cj-w z`B;|#t57O?`g`ay4@}9XL&;xX3Up#FsyVCtm%qA_-Hgut?{ { const componentName = '[roslyn.client.completionComplexEdit]'; @@ -167,9 +167,9 @@ async function completionComplexEdit( } } -function outputAndThrow(outputChannel: vscode.OutputChannel, message: string): void { +function outputAndThrow(outputChannel: vscode.LogOutputChannel, message: string): void { outputChannel.show(); - outputChannel.appendLine(message); + outputChannel.error(message); throw new Error(message); } diff --git a/src/lsptoolshost/copilot.ts b/src/lsptoolshost/copilot.ts index 65c6519d4..a9c1780f8 100644 --- a/src/lsptoolshost/copilot.ts +++ b/src/lsptoolshost/copilot.ts @@ -9,7 +9,6 @@ import { CopilotRelatedDocumentsReport, CopilotRelatedDocumentsRequest } from '. import { RoslynLanguageServer } from './roslynLanguageServer'; import { UriConverter } from './uriConverter'; import { TextDocumentIdentifier } from 'vscode-languageserver-protocol'; -import { languageServerOptions } from '../shared/options'; interface CopilotTrait { name: string; @@ -29,34 +28,22 @@ interface CopilotRelatedFilesProviderRegistration { ): vscode.Disposable; } -export function registerCopilotExtension(languageServer: RoslynLanguageServer, channel: vscode.OutputChannel) { - const isTraceLogLevel = - languageServerOptions.logLevel && - (languageServerOptions.logLevel === 'Trace' || languageServerOptions.logLevel === 'Debug'); - +export function registerCopilotExtension(languageServer: RoslynLanguageServer, channel: vscode.LogOutputChannel) { const ext = vscode.extensions.getExtension('github.copilot'); if (!ext) { - if (isTraceLogLevel) { - channel.appendLine( - 'GitHub Copilot extension not installed. Skip registeration of C# related files provider.' - ); - } + channel.debug('GitHub Copilot extension not installed. Skip registeration of C# related files provider.'); return; } ext.activate().then(() => { const relatedAPI = ext.exports as CopilotRelatedFilesProviderRegistration | undefined; if (!relatedAPI) { - if (isTraceLogLevel) { - channel.appendLine( - 'Incompatible GitHub Copilot extension installed. Skip registeration of C# related files provider.' - ); - } + channel.debug( + 'Incompatible GitHub Copilot extension installed. Skip registeration of C# related files provider.' + ); return; } - if (isTraceLogLevel) { - channel.appendLine('registration of C# related files provider for GitHub Copilot extension succeeded.'); - } + channel.debug('registration of C# related files provider for GitHub Copilot extension succeeded.'); const id = { extensionId: CSharpExtensionId, diff --git a/src/lsptoolshost/debugger.ts b/src/lsptoolshost/debugger.ts index f9fbcf57d..c7d2a3bc0 100644 --- a/src/lsptoolshost/debugger.ts +++ b/src/lsptoolshost/debugger.ts @@ -20,7 +20,7 @@ export function registerDebugger( languageServer: RoslynLanguageServer, languageServerEvents: RoslynLanguageServerEvents, platformInfo: PlatformInformation, - csharpOutputChannel: vscode.OutputChannel + csharpOutputChannel: vscode.LogOutputChannel ) { const workspaceInformationProvider: IWorkspaceDebugInformationProvider = new RoslynWorkspaceDebugInformationProvider(languageServer, csharpOutputChannel); diff --git a/src/lsptoolshost/fixAllCodeAction.ts b/src/lsptoolshost/fixAllCodeAction.ts index d4a510f94..429b8ad9e 100644 --- a/src/lsptoolshost/fixAllCodeAction.ts +++ b/src/lsptoolshost/fixAllCodeAction.ts @@ -13,7 +13,7 @@ import { UriConverter } from './uriConverter'; export function registerCodeActionFixAllCommands( context: vscode.ExtensionContext, languageServer: RoslynLanguageServer, - outputChannel: vscode.OutputChannel + outputChannel: vscode.LogOutputChannel ) { context.subscriptions.push( vscode.commands.registerCommand( @@ -26,7 +26,7 @@ export function registerCodeActionFixAllCommands( export async function getFixAllResponse( data: RoslynProtocol.CodeActionResolveData, languageServer: RoslynLanguageServer, - outputChannel: vscode.OutputChannel + outputChannel: vscode.LogOutputChannel ) { if (!data.FixAllFlavors) { throw new Error(`FixAllFlavors is missing from data ${JSON.stringify(data)}`); @@ -64,7 +64,7 @@ export async function getFixAllResponse( const componentName = '[roslyn.client.fixAllCodeAction]'; const errorMessage = 'Failed to make a fix all edit for completion.'; outputChannel.show(); - outputChannel.appendLine(`${componentName} ${errorMessage}`); + outputChannel.error(`${componentName} ${errorMessage}`); throw new Error('Tried to insert multiple code action edits, but an error occurred.'); } } @@ -76,7 +76,7 @@ export async function getFixAllResponse( async function registerFixAllResolveCodeAction( languageServer: RoslynLanguageServer, codeActionData: RoslynProtocol.CodeActionResolveData, - outputChannel: vscode.OutputChannel + outputChannel: vscode.LogOutputChannel ) { if (codeActionData) { const data = codeActionData; diff --git a/src/lsptoolshost/nestedCodeAction.ts b/src/lsptoolshost/nestedCodeAction.ts index 39bc22db7..633d6f19c 100644 --- a/src/lsptoolshost/nestedCodeAction.ts +++ b/src/lsptoolshost/nestedCodeAction.ts @@ -13,7 +13,7 @@ import { getFixAllResponse } from './fixAllCodeAction'; export function registerNestedCodeActionCommands( context: vscode.ExtensionContext, languageServer: RoslynLanguageServer, - outputChannel: vscode.OutputChannel + outputChannel: vscode.LogOutputChannel ) { context.subscriptions.push( vscode.commands.registerCommand( @@ -26,7 +26,7 @@ export function registerNestedCodeActionCommands( async function registerNestedResolveCodeAction( languageServer: RoslynLanguageServer, codeActionData: any, - outputChannel: vscode.OutputChannel + outputChannel: vscode.LogOutputChannel ): Promise { if (codeActionData) { const data = codeActionData; @@ -69,7 +69,7 @@ async function registerNestedResolveCodeAction( if (!response.edit) { outputChannel.show(); - outputChannel.appendLine(`Failed to make an edit for completion.`); + outputChannel.error(`Failed to make an edit for completion.`); throw new Error('Tried to retrieve a code action edit, but an error occurred.'); } @@ -81,7 +81,7 @@ async function registerNestedResolveCodeAction( const componentName = '[roslyn.client.nestedCodeAction]'; const errorMessage = 'Failed to make am edit for completion.'; outputChannel.show(); - outputChannel.appendLine(`${componentName} ${errorMessage}`); + outputChannel.error(`${componentName} ${errorMessage}`); throw new Error('Tried to insert code action edit, but an error occurred.'); } } diff --git a/src/lsptoolshost/restore.ts b/src/lsptoolshost/restore.ts index 4ea9f8599..5153becaa 100644 --- a/src/lsptoolshost/restore.ts +++ b/src/lsptoolshost/restore.ts @@ -14,14 +14,16 @@ import { } from './roslynProtocol'; import path = require('path'); import { showErrorMessage } from '../shared/observers/utils/showMessage'; +import { getCSharpDevKit } from '../utils/getCSharpDevKit'; let _restoreInProgress = false; -export function registerRestoreCommands( - context: vscode.ExtensionContext, - languageServer: RoslynLanguageServer, - restoreChannel: vscode.OutputChannel -) { +export function registerRestoreCommands(context: vscode.ExtensionContext, languageServer: RoslynLanguageServer) { + if (getCSharpDevKit()) { + // We do not need to register restore commands if using C# devkit. + return; + } + const restoreChannel = vscode.window.createOutputChannel('.NET NuGet Restore'); context.subscriptions.push( vscode.commands.registerCommand('dotnet.restore.project', async (_request): Promise => { return chooseProjectAndRestore(languageServer, restoreChannel); diff --git a/src/lsptoolshost/roslynLanguageServer.ts b/src/lsptoolshost/roslynLanguageServer.ts index 817321b9d..9e7adf6b2 100644 --- a/src/lsptoolshost/roslynLanguageServer.ts +++ b/src/lsptoolshost/roslynLanguageServer.ts @@ -77,7 +77,7 @@ import { import { registerSourceGeneratedFilesContentProvider } from './sourceGeneratedFilesContentProvider'; import { registerMiscellaneousFileNotifier } from './miscellaneousFileNotifier'; -let _channel: vscode.OutputChannel; +let _channel: vscode.LogOutputChannel; let _traceChannel: vscode.OutputChannel; // Flag indicating if C# Devkit was installed the last time we activated. @@ -164,11 +164,25 @@ export class RoslynLanguageServer { // setTrace only works after the client is already running. this._languageClient.onDidChangeState(async (state) => { if (state.newState === State.Running) { - const languageClientTraceLevel = RoslynLanguageServer.GetTraceLevel(languageServerOptions.logLevel); - - await this._languageClient.setTrace(languageClientTraceLevel); + await this.updateLogLevel(); } }); + // Register for changes to the log level. + _channel.onDidChangeLogLevel(async () => { + await this.updateLogLevel(); + }); + } + + private async updateLogLevel(): Promise { + if (this._languageClient.state === State.Running) { + const languageClientTraceLevel = RoslynLanguageServer.GetTraceLevel(_channel.logLevel); + // Update the server's log level. + await this.sendNotification('roslyn/updateLogLevel', { + logLevel: RoslynLanguageServer.GetServerLogLevel(_channel.logLevel), + }); + // Update the trace level that the client uses to log trace messages. + await this._languageClient.setTrace(languageClientTraceLevel); + } } private registerServerStateChanged() { @@ -467,7 +481,7 @@ export class RoslynLanguageServer { } if (!(error instanceof vscode.CancellationError)) { - _channel.appendLine(`Error making ${request} request: ${error.message}`); + _channel.error(`Error making ${request} request`, error); } return error; } @@ -565,7 +579,7 @@ export class RoslynLanguageServer { const dotnetInfo = await hostExecutableResolver.getHostExecutableInfo(); const dotnetExecutablePath = dotnetInfo.path; - _channel.appendLine('Dotnet path: ' + dotnetExecutablePath); + _channel.info('Dotnet path: ' + dotnetExecutablePath); let args: string[] = []; @@ -573,7 +587,10 @@ export class RoslynLanguageServer { args.push('--debug'); } - const logLevel = languageServerOptions.logLevel; + // Get the initial log level from the channel. + // Changes to the channel log level will be picked up by the server after + // LSP finishes initializing and we're able to pick up the new value. + const logLevel = this.GetServerLogLevel(_channel.logLevel); if (logLevel) { args.push('--logLevel', logLevel); } @@ -602,14 +619,14 @@ export class RoslynLanguageServer { csharpDevkitIntelliCodeExtensionId ); if (csharpDevkitIntelliCodeExtension) { - _channel.appendLine('Activating C# + C# Dev Kit + C# IntelliCode...'); + _channel.info('Activating C# + C# Dev Kit + C# IntelliCode...'); const csharpDevkitIntelliCodeArgs = await this.getCSharpDevkitIntelliCodeExportArgs( csharpDevkitIntelliCodeExtension, context ); args = args.concat(csharpDevkitIntelliCodeArgs); } else { - _channel.appendLine('Activating C# + C# Dev Kit...'); + _channel.info('Activating C# + C# Dev Kit...'); } // Set command enablement as soon as we know devkit is available. @@ -621,7 +638,7 @@ export class RoslynLanguageServer { await this.setupDevKitEnvironment(dotnetInfo.env, csharpDevkitExtension); } else { // C# Dev Kit is not installed - continue C#-only activation. - _channel.appendLine('Activating C# standalone...'); + _channel.info('Activating C# standalone...'); // Set command enablement to use roslyn standalone commands. await vscode.commands.executeCommand('setContext', 'dotnet.server.activationContext', 'Roslyn'); @@ -632,11 +649,7 @@ export class RoslynLanguageServer { args.push('--extension', extensionPath); } - const isTraceLogLevel = logLevel && [Trace.Messages, Trace.Verbose].includes(this.GetTraceLevel(logLevel)); - - if (isTraceLogLevel) { - _channel.appendLine(`Starting server at ${serverPath}`); - } + _channel.debug(`Starting server at ${serverPath}`); // shouldn't this arg only be set if it's running with CSDevKit? args.push('--telemetryLevel', telemetryReporter.telemetryLevel); @@ -647,9 +660,7 @@ export class RoslynLanguageServer { if (!languageServerOptions.useServerGC) { // The server by default uses serverGC, if the user opts out we need to set the environment variable to disable it. env.DOTNET_gcServer = '0'; - if (isTraceLogLevel) { - _channel.appendLine('ServerGC disabled'); - } + _channel.debug('ServerGC disabled'); } let childProcess: cp.ChildProcessWithoutNullStreams; @@ -663,16 +674,12 @@ export class RoslynLanguageServer { // If we were given a path to a dll, launch that via dotnet. const argsWithPath = [serverPath].concat(args); - if (logLevel && [Trace.Messages, Trace.Verbose].includes(this.GetTraceLevel(logLevel))) { - _channel.appendLine(`Server arguments ${argsWithPath.join(' ')}`); - } + _channel.debug(`Server arguments ${argsWithPath.join(' ')}`); childProcess = cp.spawn(dotnetExecutablePath, argsWithPath, cpOptions); } else { // Otherwise assume we were given a path to an executable. - if (logLevel && [Trace.Messages, Trace.Verbose].includes(this.GetTraceLevel(logLevel))) { - _channel.appendLine(`Server arguments ${args.join(' ')}`); - } + _channel.debug(`Server arguments ${args.join(' ')}`); childProcess = cp.spawn(serverPath, args, cpOptions); } @@ -680,14 +687,14 @@ export class RoslynLanguageServer { // Record the stdout and stderr streams from the server process. childProcess.stdout.on('data', (data: { toString: (arg0: any) => any }) => { const result: string = isString(data) ? data : data.toString(RoslynLanguageServer.encoding); - _channel.append('[stdout] ' + result); + _channel.info('[stdout] ' + result); }); childProcess.stderr.on('data', (data: { toString: (arg0: any) => any }) => { const result: string = isString(data) ? data : data.toString(RoslynLanguageServer.encoding); - _channel.append('[stderr] ' + result); + _channel.error('[stderr] ' + result); }); childProcess.on('exit', (code) => { - _channel.appendLine(`Language server process exited with ${code}`); + _channel.info(`Language server process exited with ${code}`); }); // Timeout promise used to time out the connection process if it takes too long. @@ -707,14 +714,14 @@ export class RoslynLanguageServer { // The server process will create the named pipe used for communication. Wait for it to be created, // and listen for the server to pass back the connection information via stdout. const namedPipePromise = new Promise((resolve) => { - _channel.appendLine('waiting for named pipe information from server...'); + _channel.debug('waiting for named pipe information from server...'); childProcess.stdout.on('data', (data: { toString: (arg0: any) => any }) => { const result: string = isString(data) ? data : data.toString(RoslynLanguageServer.encoding); // Use the regular expression to find all JSON lines const jsonLines = result.match(RoslynLanguageServer.namedPipeKeyRegex); if (jsonLines) { const transmittedPipeNameInfo: NamedPipeInformation = JSON.parse(jsonLines[0]); - _channel.appendLine('received named pipe information from server'); + _channel.info('received named pipe information from server'); resolve(transmittedPipeNameInfo); } }); @@ -722,9 +729,9 @@ export class RoslynLanguageServer { const socketPromise = namedPipePromise.then(async (pipeConnectionInfo) => { return new Promise((resolve, reject) => { - _channel.appendLine('attempting to connect client to server...'); + _channel.debug('attempting to connect client to server...'); const socket = net.createConnection(pipeConnectionInfo.pipeName, () => { - _channel.appendLine('client has connected to server'); + _channel.info('client has connected to server'); resolve(socket); }); @@ -879,7 +886,7 @@ export class RoslynLanguageServer { if (csharpDevkitExtension && !_wasActivatedWithCSharpDevkit) { // We previously started without C# Dev Kit and its now installed. // Offer a prompt to restart the server to use C# Dev Kit. - _channel.appendLine(`Detected new installation of ${csharpDevkitExtensionId}`); + _channel.info(`Detected new installation of ${csharpDevkitExtensionId}`); const message = `Detected installation of ${csharpDevkitExtensionId}. Would you like to relaunch the language server for added features?`; showInformationMessage(vscode, message, title); } else { @@ -942,10 +949,9 @@ export class RoslynLanguageServer { ]; return csharpIntelliCodeArgs; } catch (e) { - _channel.appendLine(`Activation of ${csharpDevkitIntelliCodeExtensionId} failed`); - _channel.appendLine(e instanceof Error ? e.message : (e as string)); + _channel.error(`Activation of ${csharpDevkitIntelliCodeExtensionId} failed`, e); if (e instanceof Error && e.stack) { - _channel.appendLine(e.stack); + _channel.info(e.stack); } const stateKey = 'disableIntellicodeFailedPopup'; @@ -991,26 +997,44 @@ export class RoslynLanguageServer { await exports.setupTelemetryEnvironmentAsync(env); } - private static GetTraceLevel(logLevel: string): Trace { + /** + * Returns the C# Microsoft.Extensions.Logging.LogLevel enum string value + * corresponding to the given vscode.LogLevel. + */ + private static GetServerLogLevel(logLevel: vscode.LogLevel): string { + switch (logLevel) { + case vscode.LogLevel.Trace: + return 'Trace'; + case vscode.LogLevel.Debug: + return 'Debug'; + case vscode.LogLevel.Info: + return 'Information'; + case vscode.LogLevel.Warning: + return 'Warning'; + case vscode.LogLevel.Error: + return 'Error'; + case vscode.LogLevel.Off: + return 'None'; + default: + throw new Error(`Invalid log level ${logLevel}`); + } + } + + private static GetTraceLevel(logLevel: vscode.LogLevel): Trace { switch (logLevel) { - case 'Trace': + case vscode.LogLevel.Trace: return Trace.Verbose; - case 'Debug': + case vscode.LogLevel.Debug: return Trace.Messages; - case 'Information': + case vscode.LogLevel.Info: return Trace.Off; - case 'Warning': + case vscode.LogLevel.Warning: return Trace.Off; - case 'Error': + case vscode.LogLevel.Error: return Trace.Off; - case 'Critical': - return Trace.Off; - case 'None': + case vscode.LogLevel.Off: return Trace.Off; default: - _channel.appendLine( - `Invalid log level ${logLevel}, server will not start. Please set the 'dotnet.server.trace' configuration to a valid value` - ); throw new Error(`Invalid log level ${logLevel}`); } } @@ -1038,15 +1062,14 @@ export async function activateRoslynLanguageServer( context: vscode.ExtensionContext, platformInfo: PlatformInformation, optionObservable: Observable, - outputChannel: vscode.OutputChannel, - dotnetTestChannel: vscode.OutputChannel, - dotnetChannel: vscode.OutputChannel, + outputChannel: vscode.LogOutputChannel, reporter: TelemetryReporter, languageServerEvents: RoslynLanguageServerEvents ): Promise { // Create a channel for outputting general logs from the language server. _channel = outputChannel; // Create a separate channel for outputting trace logs - these are incredibly verbose and make other logs very difficult to see. + // The trace channel verbosity is controlled by the _channel verbosity. _traceChannel = vscode.window.createOutputChannel('C# LSP Trace Logs'); const hostExecutableResolver = new DotnetRuntimeExtensionResolver( @@ -1077,12 +1100,12 @@ export async function activateRoslynLanguageServer( registerRazorCommands(context, languageServer); - registerUnitTestingCommands(context, languageServer, dotnetTestChannel); + registerUnitTestingCommands(context, languageServer); // Register any needed debugger components that need to communicate with the language server. registerDebugger(context, languageServer, languageServerEvents, platformInfo, _channel); - registerRestoreCommands(context, languageServer, dotnetChannel); + registerRestoreCommands(context, languageServer); registerSourceGeneratedFilesContentProvider(context, languageServer); @@ -1094,19 +1117,19 @@ export async function activateRoslynLanguageServer( const extensionsFromPackageJson = vscode.extensions.all.flatMap((extension) => { let loadPaths = extension.packageJSON.contributes?.['csharpExtensionLoadPaths']; if (loadPaths === undefined || loadPaths === null) { - _traceChannel.appendLine(`Extension ${extension.id} does not contribute csharpExtensionLoadPaths`); + _channel.debug(`Extension ${extension.id} does not contribute csharpExtensionLoadPaths`); return []; } if (!Array.isArray(loadPaths) || loadPaths.some((loadPath) => typeof loadPath !== 'string')) { - _channel.appendLine( + _channel.warn( `Extension ${extension.id} has invalid csharpExtensionLoadPaths. Expected string array, found ${loadPaths}` ); return []; } loadPaths = loadPaths.map((loadPath) => path.join(extension.extensionPath, loadPath)); - _traceChannel.appendLine(`Extension ${extension.id} contributes csharpExtensionLoadPaths: ${loadPaths}`); + _channel.trace(`Extension ${extension.id} contributes csharpExtensionLoadPaths: ${loadPaths}`); return loadPaths; }); const extensionsFromOptions = languageServerOptions.extensionsPaths ?? []; diff --git a/src/lsptoolshost/roslynWorkspaceDebugConfigurationProvider.ts b/src/lsptoolshost/roslynWorkspaceDebugConfigurationProvider.ts index 9e820c656..2b5666c83 100644 --- a/src/lsptoolshost/roslynWorkspaceDebugConfigurationProvider.ts +++ b/src/lsptoolshost/roslynWorkspaceDebugConfigurationProvider.ts @@ -19,7 +19,7 @@ import { import { UriConverter } from './uriConverter'; export class RoslynWorkspaceDebugInformationProvider implements IWorkspaceDebugInformationProvider { - constructor(private server: RoslynLanguageServer, private outputChannel: vscode.OutputChannel) {} + constructor(private server: RoslynLanguageServer, private outputChannel: vscode.LogOutputChannel) {} public async getWorkspaceDebugInformation( workspaceFolder: vscode.Uri @@ -43,7 +43,7 @@ export class RoslynWorkspaceDebugInformationProvider implements IWorkspaceDebugI // Server errors are already logged by the language client, but its totally possible // that we fail because the server is restarting or a process got killed, etc. // Catch the error and log to the correct output (instead of going to the extension host output). - this.outputChannel.appendLine(`Failed to get debug configuration: ${e}`); + this.outputChannel.error(`Failed to get debug configuration`, e); return; } diff --git a/src/lsptoolshost/unitTesting.ts b/src/lsptoolshost/unitTesting.ts index 27da8f892..956be85fc 100644 --- a/src/lsptoolshost/unitTesting.ts +++ b/src/lsptoolshost/unitTesting.ts @@ -12,12 +12,14 @@ import { RunTestsParams, RunTestsPartialResult, RunTestsRequest, TestProgress } import { commonOptions } from '../shared/options'; import { UriConverter } from './uriConverter'; import { showErrorMessage } from '../shared/observers/utils/showMessage'; +import { getCSharpDevKit } from '../utils/getCSharpDevKit'; -export function registerUnitTestingCommands( - context: vscode.ExtensionContext, - languageServer: RoslynLanguageServer, - dotnetTestChannel: vscode.OutputChannel -) { +export function registerUnitTestingCommands(context: vscode.ExtensionContext, languageServer: RoslynLanguageServer) { + if (getCSharpDevKit()) { + // If using C# devkit, we don't need to register any test commands. + return; + } + const dotnetTestChannel = vscode.window.createOutputChannel('.NET Test Log'); context.subscriptions.push( vscode.commands.registerCommand( 'dotnet.test.run', diff --git a/src/main.ts b/src/main.ts index 3e560dc32..1f7eaa7f8 100644 --- a/src/main.ts +++ b/src/main.ts @@ -65,9 +65,7 @@ export async function activate( // ensure it gets properly disposed. Upon disposal the events will be flushed. context.subscriptions.push(reporter); - const dotnetTestChannel = vscode.window.createOutputChannel('.NET Test Log'); - const dotnetChannel = vscode.window.createOutputChannel('.NET NuGet Restore'); - const csharpChannel = vscode.window.createOutputChannel('C#'); + const csharpChannel = vscode.window.createOutputChannel('C#', { log: true }); const csharpchannelObserver = new CsharpChannelObserver(csharpChannel); const csharpLogObserver = new CsharpLoggerObserver(csharpChannel); eventStream.subscribe(csharpchannelObserver.post); @@ -141,13 +139,13 @@ export async function activate( platformInfo, optionStream, csharpChannel, - dotnetTestChannel, - dotnetChannel, reporter, roslynLanguageServerEvents ); } else { // activate language services + const dotnetTestChannel = vscode.window.createOutputChannel('.NET Test Log'); + const dotnetChannel = vscode.window.createOutputChannel('.NET NuGet Restore'); omnisharpLangServicePromise = activateOmniSharpLanguageServer( context, platformInfo, diff --git a/src/shared/options.ts b/src/shared/options.ts index 469c01124..3ed6a19f5 100644 --- a/src/shared/options.ts +++ b/src/shared/options.ts @@ -69,7 +69,6 @@ export interface OmnisharpServerOptions { } export interface LanguageServerOptions { - readonly logLevel: string; readonly documentSelector: DocumentSelector; readonly extensionsPaths: string[] | null; readonly preferCSharpExtension: boolean; @@ -379,9 +378,6 @@ class OmnisharpOptionsImpl implements OmnisharpServerOptions { } class LanguageServerOptionsImpl implements LanguageServerOptions { - public get logLevel() { - return readOption('dotnet.server.trace', 'Information'); - } public get documentSelector() { return readOption('dotnet.server.documentSelector', ['csharp']); } @@ -511,7 +507,6 @@ export const OmnisharpOptionsThatTriggerReload: ReadonlyArray = [ - 'logLevel', 'documentSelector', 'preferCSharpExtension', 'componentPaths', diff --git a/src/shared/reportIssue.ts b/src/shared/reportIssue.ts index 16345aaf5..a818423b1 100644 --- a/src/shared/reportIssue.ts +++ b/src/shared/reportIssue.ts @@ -125,14 +125,14 @@ function getLogInfo(useOmnisharp: boolean): string { return ` ### C# log ###
Post the output from Output-->C# here
### C# LSP Trace Logs ### -
Post the output from Output-->C# LSP Trace Logs here. Requires \`dotnet.server.trace\` to be set to \`Trace\`
`; +
Post the output from Output-->C# LSP Trace Logs here. Requires the \`C#\` output window log level to be set to \`Trace\`
`; } } diff --git a/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/devkit_slnWithCsproj.code-workspace b/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/devkit_slnWithCsproj.code-workspace index cb1af05bd..e045c4670 100644 --- a/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/devkit_slnWithCsproj.code-workspace +++ b/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/devkit_slnWithCsproj.code-workspace @@ -6,7 +6,6 @@ ], "settings": { "dotnet.defaultSolution": "b_SecondInOrder_SlnFile.sln", - "dotnet.server.trace": "Trace", "dotnet.server.useOmnisharp": false, "dotnet.preferCSharpExtension": false, } diff --git a/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/slnWithCsproj.code-workspace b/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/slnWithCsproj.code-workspace index 6da609d8b..06c4a6bea 100644 --- a/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/slnWithCsproj.code-workspace +++ b/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/.vscode/slnWithCsproj.code-workspace @@ -6,7 +6,6 @@ ], "settings": { "dotnet.defaultSolution": "b_SecondInOrder_SlnFile.sln", - "dotnet.server.trace": "Trace", "dotnet.server.useOmnisharp": false, "dotnet.preferCSharpExtension": true, } diff --git a/test/lsptoolshost/unitTests/languageServerConfigChangeObserver.test.ts b/test/lsptoolshost/unitTests/languageServerConfigChangeObserver.test.ts index 6b8ef6750..e8bf2928d 100644 --- a/test/lsptoolshost/unitTests/languageServerConfigChangeObserver.test.ts +++ b/test/lsptoolshost/unitTests/languageServerConfigChangeObserver.test.ts @@ -35,7 +35,6 @@ describe('Option changes observer', () => { [ { config: 'dotnet', section: 'server.documentSelector', value: ['other'] }, - { config: 'dotnet', section: 'server.trace', value: 'trace' }, { config: 'dotnet', section: 'preferCSharpExtension', value: true }, ].forEach((elem) => { describe(`When the ${elem.config}.${elem.section} changes`, () => { @@ -99,10 +98,7 @@ describe('Option changes observer', () => { }); }); - [ - { config: 'dotnet', section: 'server.documentSelector', value: ['csharp'] }, - { config: 'dotnet', section: 'server.trace', value: 'Information' }, - ].forEach((elem) => { + [{ config: 'dotnet', section: 'server.documentSelector', value: ['csharp'] }].forEach((elem) => { test(`Information Message is not shown if no change in value for ${elem.config}.${elem.section}`, async () => { expect(infoMessage).toBe(undefined); expect(invokedCommand).toBe(undefined); diff --git a/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/lsp_tools_host_slnWithCsproj.code-workspace b/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/lsp_tools_host_slnWithCsproj.code-workspace index 46ef8b6ed..767f2bb63 100644 --- a/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/lsp_tools_host_slnWithCsproj.code-workspace +++ b/test/omnisharp/omnisharpIntegrationTests/testAssets/slnWithCsproj/.vscode/lsp_tools_host_slnWithCsproj.code-workspace @@ -6,7 +6,6 @@ ], "settings": { "dotnet.defaultSolution": "b_SecondInOrder_SlnFile.sln", - "dotnet.server.trace": "Trace", "dotnet.server.useOmnisharp": false, "omnisharp.enableLspDriver": false, "dotnet.preferCSharpExtension": true, diff --git a/test/razor/razorIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/BasicRazorApp2_1.code-workspace b/test/razor/razorIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/BasicRazorApp2_1.code-workspace index 805d62e7e..7df1142a2 100644 --- a/test/razor/razorIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/BasicRazorApp2_1.code-workspace +++ b/test/razor/razorIntegrationTests/testAssets/BasicRazorApp2_1/.vscode/BasicRazorApp2_1.code-workspace @@ -6,7 +6,6 @@ ], "settings": { "dotnet.defaultSolution": "BasicRazorApp2_1.sln", - "dotnet.server.trace": "Trace", "dotnet.server.useOmnisharp": false, "omnisharp.enableLspDriver": false, "razor.server.trace": "Trace", diff --git a/test/vscodeLauncher.ts b/test/vscodeLauncher.ts index 13e6798aa..76a63d031 100644 --- a/test/vscodeLauncher.ts +++ b/test/vscodeLauncher.ts @@ -54,7 +54,7 @@ export async function prepareVSCodeAndExecuteTests( extensionDevelopmentPath: extensionDevelopmentPath, extensionTestsPath: extensionTestsPath, // Launch with info logging as anything else is way too verbose and will hide test results. - launchArgs: [workspacePath, '-n', '--log', 'info', '--user-data-dir', userDataDir], + launchArgs: [workspacePath, '-n', '--user-data-dir', userDataDir, '--log', 'ms-dotnettools.csharp:trace'], extensionTestsEnv: env, }); From 05d941672dd4fe4c9ef3bd5e43d579e013fe0ae7 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Mon, 28 Oct 2024 16:48:18 -0700 Subject: [PATCH 60/79] Update to version of roslyn with dynamic log change --- CHANGELOG.md | 6 ++++++ package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fb9f49b0..e502f8e98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # 2.55.x +* Switch to new log output window API and remove `dotnet.server.trace` (PR: [#7688](https://github.com/dotnet/vscode-csharp/pull/7688)) +* Update Roslyn to 4.13.0-1.24528.3 (PR: [#7688](https://github.com/dotnet/vscode-csharp/pull/7688)) + * Fix crash when 'add await' analyzers binding expressions (PR: [#75644](https://github.com/dotnet/roslyn/pull/75644)) + * Shorten names shown in 'pull member up' (PR: [#75643](https://github.com/dotnet/roslyn/pull/75643)) + * Fix inaccessible constructors shown in sighelp (PR: [#75642](https://github.com/dotnet/roslyn/pull/75642)) + * Allow the client to update the server logging level dynamically (PR: [#75615](https://github.com/dotnet/roslyn/pull/75615)) # 2.54.x * Update debugger packages to v2.54.0 (PR: [#7691](https://github.com/dotnet/vscode-csharp/pull/7691)) diff --git a/package.json b/package.json index 65de09378..88e86d3f4 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ } }, "defaults": { - "roslyn": "4.13.0-1.24525.2", + "roslyn": "4.13.0-1.24528.3", "omniSharp": "1.39.11", "razor": "9.0.0-preview.24524.4", "razorOmnisharp": "7.0.0-preview.23363.1", From a6e8298793efbd2907296b6c24d5eea71e0c0131 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Mon, 28 Oct 2024 17:38:50 -0700 Subject: [PATCH 61/79] Update tests to account for adjusted command enablement --- src/lsptoolshost/commands.ts | 9 ++- .../commandEnablement.integration.test.ts | 32 +++++++--- .../integrationTests/expectedCommands.ts | 63 +++++++++++++++---- .../omnisharpCommands.integration.test.ts | 13 +--- 4 files changed, 83 insertions(+), 34 deletions(-) diff --git a/src/lsptoolshost/commands.ts b/src/lsptoolshost/commands.ts index 8ecb6dff4..5d8d1edf3 100644 --- a/src/lsptoolshost/commands.ts +++ b/src/lsptoolshost/commands.ts @@ -11,6 +11,7 @@ import { createLaunchTargetForSolution } from '../shared/launchTarget'; import reportIssue from '../shared/reportIssue'; import { getDotnetInfo } from '../shared/utils/getDotnetInfo'; import { IHostExecutableResolver } from '../shared/constants/IHostExecutableResolver'; +import { getCSharpDevKit } from '../utils/getCSharpDevKit'; export function registerCommands( context: vscode.ExtensionContext, @@ -38,9 +39,11 @@ export function registerCommands( context.subscriptions.push( vscode.commands.registerCommand('dotnet.restartServer', async () => restartServer(languageServer)) ); - context.subscriptions.push( - vscode.commands.registerCommand('dotnet.openSolution', async () => openSolution(languageServer)) - ); + if (!getCSharpDevKit()) { + context.subscriptions.push( + vscode.commands.registerCommand('dotnet.openSolution', async () => openSolution(languageServer)) + ); + } context.subscriptions.push( vscode.commands.registerCommand('csharp.reportIssue', async () => reportIssue( diff --git a/test/lsptoolshost/integrationTests/commandEnablement.integration.test.ts b/test/lsptoolshost/integrationTests/commandEnablement.integration.test.ts index 167f59aba..c84d995fb 100644 --- a/test/lsptoolshost/integrationTests/commandEnablement.integration.test.ts +++ b/test/lsptoolshost/integrationTests/commandEnablement.integration.test.ts @@ -3,11 +3,16 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { expect, test, beforeAll, afterAll, describe } from '@jest/globals'; +import { expect, beforeAll, afterAll, describe } from '@jest/globals'; import * as vscode from 'vscode'; -import { activateCSharpExtension } from './integrationHelpers'; +import { activateCSharpExtension, testIfCSharp, testIfDevKit } from './integrationHelpers'; import testAssetWorkspace from './testAssets/testAssetWorkspace'; -import { CommonCommands, OmniSharpCommands, RoslynCommands } from './expectedCommands'; +import { + RoslynDevKitCommands, + RoslynStandaloneCommands, + UnexpectedRoslynDevKitCommands, + UnexpectedRoslynStandaloneCommands, +} from './expectedCommands'; describe(`Command Enablement Tests`, () => { beforeAll(async () => { @@ -18,19 +23,30 @@ describe(`Command Enablement Tests`, () => { await testAssetWorkspace.cleanupWorkspace(); }); - test('Roslyn commands are available', async () => { + testIfCSharp('Roslyn standalone commands are available', async () => { const commands = await vscode.commands.getCommands(true); // Ensure the standalone Roslyn commands are available. - RoslynCommands.forEach((command) => { + RoslynStandaloneCommands.forEach((command) => { expect(commands).toContain(command); }); - CommonCommands.forEach((command) => { + + // Ensure other commands are not available. + UnexpectedRoslynStandaloneCommands.forEach((command) => { + expect(commands).not.toContain(command); + }); + }); + + testIfDevKit('Roslyn + C# Dev Kit commands are available', async () => { + const commands = await vscode.commands.getCommands(true); + + // Ensure the Roslyn + C# Dev Kit commands are available + RoslynDevKitCommands.forEach((command) => { expect(commands).toContain(command); }); - // Ensure O# commands are not available. - OmniSharpCommands.forEach((command) => { + // Ensure other commands are not available. + UnexpectedRoslynDevKitCommands.forEach((command) => { expect(commands).not.toContain(command); }); }); diff --git a/test/lsptoolshost/integrationTests/expectedCommands.ts b/test/lsptoolshost/integrationTests/expectedCommands.ts index f8f0d6b61..26efe1214 100644 --- a/test/lsptoolshost/integrationTests/expectedCommands.ts +++ b/test/lsptoolshost/integrationTests/expectedCommands.ts @@ -3,7 +3,26 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -export const OmniSharpCommands = [ +// Commands used by all activation contexts of the extension. +const CommonCommands = [ + 'dotnet.generateAssets', + 'csharp.listProcess', + 'csharp.listRemoteProcess', + 'csharp.listRemoteDockerProcess', + 'csharp.attachToProcess', + 'csharp.reportIssue', +]; + +// Commands used by both O# and Roslyn standalone activation contexts. +const CommonStandaloneCommands = [ + 'dotnet.restore.project', + 'dotnet.restore.all', + 'dotnet.test.runTestsInContext', + 'dotnet.test.debugTestsInContext', +]; + +// Commands used only in an O# activation context. +const OmniSharpOnlyCommands = [ 'o.restart', 'o.pickProjectAndStart', 'o.fixAll.solution', @@ -13,17 +32,35 @@ export const OmniSharpCommands = [ 'o.reanalyze.currentProject', ]; -export const RoslynCommands = ['dotnet.openSolution', 'dotnet.restartServer']; +// All commands used in the O# activation context. +export const OmniSharpCommands = [...OmniSharpOnlyCommands, ...CommonCommands, ...CommonStandaloneCommands]; -export const CommonCommands = [ - 'dotnet.generateAssets', - 'dotnet.restore.project', - 'dotnet.restore.all', - 'dotnet.test.runTestsInContext', - 'dotnet.test.debugTestsInContext', - 'csharp.listProcess', - 'csharp.listRemoteProcess', - 'csharp.listRemoteDockerProcess', - 'csharp.attachToProcess', - 'csharp.reportIssue', +// Commands used only in a Roslyn activation context. +const RoslynCommonCommands = ['dotnet.restartServer']; + +// Commands used only in a Roslyn standalone activation context. +const RoslynStandaloneOnlyCommands = ['dotnet.openSolution']; + +// All commands used in a Roslyn standalone activation context. +export const RoslynStandaloneCommands = [ + ...CommonCommands, + ...CommonStandaloneCommands, + ...RoslynCommonCommands, + ...RoslynStandaloneOnlyCommands, +]; + +// All commands used in a Roslyn + C# Dev Kit activation context. +export const RoslynDevKitCommands = [...CommonCommands, ...RoslynCommonCommands]; + +// All commands that should not be available in an O# activation context. +export const UnexpectedOmniSharpCommands = [...RoslynStandaloneOnlyCommands, ...RoslynCommonCommands]; + +// All commands that should not be available in a Roslyn standalone activation context. +export const UnexpectedRoslynStandaloneCommands = [...OmniSharpOnlyCommands]; + +// All commands that should not be available in a Roslyn + C# Dev Kit activation context. +export const UnexpectedRoslynDevKitCommands = [ + ...CommonStandaloneCommands, + ...OmniSharpOnlyCommands, + ...RoslynStandaloneOnlyCommands, ]; diff --git a/test/omnisharp/omnisharpIntegrationTests/omnisharpCommands.integration.test.ts b/test/omnisharp/omnisharpIntegrationTests/omnisharpCommands.integration.test.ts index efad59c9a..f3d567ee5 100644 --- a/test/omnisharp/omnisharpIntegrationTests/omnisharpCommands.integration.test.ts +++ b/test/omnisharp/omnisharpIntegrationTests/omnisharpCommands.integration.test.ts @@ -7,11 +7,7 @@ import { expect, test, beforeAll, afterAll, describe } from '@jest/globals'; import * as vscode from 'vscode'; import { activateCSharpExtension } from './integrationHelpers'; import testAssetWorkspace from './testAssets/activeTestAssetWorkspace'; -import { - CommonCommands, - OmniSharpCommands, - RoslynCommands, -} from '../../lsptoolshost/integrationTests/expectedCommands'; +import { OmniSharpCommands, UnexpectedOmniSharpCommands } from '../../lsptoolshost/integrationTests/expectedCommands'; describe(`Command Enablement: ${testAssetWorkspace.description}`, function () { beforeAll(async function () { @@ -31,12 +27,9 @@ describe(`Command Enablement: ${testAssetWorkspace.description}`, function () { OmniSharpCommands.forEach((command) => { expect(commands).toContain(command); }); - CommonCommands.forEach((command) => { - expect(commands).toContain(command); - }); - // Ensure Roslyn standalone commands are not available. - RoslynCommands.forEach((command) => { + // Ensure other commands are not available. + UnexpectedOmniSharpCommands.forEach((command) => { expect(commands).not.toContain(command); }); }); From f679df2975cf8e784c656f8ee9d65c6a702e350f Mon Sep 17 00:00:00 2001 From: Andrew Wang Date: Tue, 29 Oct 2024 15:48:49 -0700 Subject: [PATCH 62/79] Move checkDevCert to be Modal This PR converts the checkDevCert method to block the debug session from starting as it waits for user input. --- l10n/bundle.l10n.json | 7 +- src/shared/configurationProvider.ts | 122 +++++++++++++++------------- 2 files changed, 70 insertions(+), 59 deletions(-) diff --git a/l10n/bundle.l10n.json b/l10n/bundle.l10n.json index 2c1332f49..5032b3955 100644 --- a/l10n/bundle.l10n.json +++ b/l10n/bundle.l10n.json @@ -29,13 +29,13 @@ "Can't parse envFile {0} because of {1}": "Can't parse envFile {0} because of {1}", "Open envFile": "Open envFile", "Yes": "Yes", + "More Information": "More Information", + "Security Warning": "Security Warning", + "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?", "Self-signed certificate sucessfully {0}": "Self-signed certificate sucessfully {0}", "Couldn't create self-signed certificate. {0}\ncode: {1}\nstdout: {2}": "Couldn't create self-signed certificate. {0}\ncode: {1}\nstdout: {2}", "Show Output": "Show Output", "Couldn't create self-signed certificate. See output for more information.": "Couldn't create self-signed certificate. See output for more information.", - "Not Now": "Not Now", - "More Information": "More Information", - "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?", "No executable projects": "No executable projects", "Select the project to launch": "Select the project to launch", "Invalid project index": "Invalid project index", @@ -50,6 +50,7 @@ "WARNING": "WARNING", "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\n\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\nIf this allows the server to now load your project then --\n * Delete this file\n * Open the Visual Studio Code command palette (View->Command Palette)\n * run the command: '.NET: Generate Assets for Build and Debug'.\n\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.": "The C# extension was unable to automatically decode projects in the current workspace to create a runnable launch.json file. A template launch.json file has been created as a placeholder.\n\nIf the server is currently unable to load your project, you can attempt to resolve this by restoring any missing project dependencies (example: run 'dotnet restore') and by fixing any reported errors from building the projects in your workspace.\nIf this allows the server to now load your project then --\n * Delete this file\n * Open the Visual Studio Code command palette (View->Command Palette)\n * run the command: '.NET: Generate Assets for Build and Debug'.\n\nIf your project requires a more complex launch configuration, you may wish to delete this configuration and pick a different template using the 'Add Configuration...' button at the bottom of this file.", "Failed to parse tasks.json file: {0}": "Failed to parse tasks.json file: {0}", + "Not Now": "Not Now", "Don't Ask Again": "Don't Ask Again", "Required assets to build and debug are missing from '{0}'. Add them?": "Required assets to build and debug are missing from '{0}'. Add them?", "Cancel": "Cancel", diff --git a/src/shared/configurationProvider.ts b/src/shared/configurationProvider.ts index 8c4360ef6..fdd2e773d 100644 --- a/src/shared/configurationProvider.ts +++ b/src/shared/configurationProvider.ts @@ -150,7 +150,9 @@ export class BaseVsDbgConfigurationProvider implements vscode.DebugConfiguration } if (debugConfiguration.checkForDevCert) { - await this.checkForDevCerts(commonOptions.dotnetPath); + if (!(await this.checkForDevCerts(commonOptions.dotnetPath))) { + return undefined; + } } } @@ -233,70 +235,78 @@ export class BaseVsDbgConfigurationProvider implements vscode.DebugConfiguration } } - private async checkForDevCerts(dotnetPath: string) { - await hasDotnetDevCertsHttps(dotnetPath).then(async (returnData) => { + private async checkForDevCerts(dotnetPath: string): Promise { + let result: boolean | undefined = undefined; + + while (result === undefined) { + const returnData = await hasDotnetDevCertsHttps(dotnetPath); const errorCode = returnData.error?.code; if ( errorCode === CertToolStatusCodes.CertificateNotTrusted || errorCode === CertToolStatusCodes.ErrorNoValidCertificateFound ) { - const labelYes: ActionOption = { - title: vscode.l10n.t('Yes'), - action: async () => { - const returnData = await createSelfSignedCert(dotnetPath); - if (returnData.error === null) { - // if the process returns 0, returnData.error is null, otherwise the return code can be accessed in returnData.error.code - const message = - errorCode === CertToolStatusCodes.CertificateNotTrusted ? 'trusted' : 'created'; - showInformationMessage( - vscode, - vscode.l10n.t('Self-signed certificate sucessfully {0}', message) - ); - } else { - this.csharpOutputChannel.appendLine( - vscode.l10n.t( - `Couldn't create self-signed certificate. {0}\ncode: {1}\nstdout: {2}`, - returnData.error.message, - `${returnData.error.code}`, - returnData.stdout - ) - ); - - const labelShowOutput: ActionOption = { - title: vscode.l10n.t('Show Output'), - action: async () => { - this.csharpOutputChannel.show(); - }, - }; - showWarningMessage( - vscode, - vscode.l10n.t( - "Couldn't create self-signed certificate. See output for more information." - ), - labelShowOutput - ); - } - }, - }; - const labelNotNow = vscode.l10n.t('Not Now'); - const labelMoreInfo: ActionOption = { - title: vscode.l10n.t('More Information'), - action: async () => { - const launchjsonDescriptionURL = 'https://aka.ms/VSCode-CS-CheckForDevCert'; - await vscode.env.openExternal(vscode.Uri.parse(launchjsonDescriptionURL)); - await this.checkForDevCerts(dotnetPath); + const labelYes = vscode.l10n.t('Yes'); + const labelMoreInfo = vscode.l10n.t('More Information'); + + const dialogResult = await vscode.window.showWarningMessage( + vscode.l10n.t('Security Warning'), + { + modal: true, + detail: vscode.l10n.t( + 'The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?' + ), }, - }; - showInformationMessage( - vscode, - vscode.l10n.t( - 'The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?' - ), labelYes, - labelNotNow, labelMoreInfo ); + + if (dialogResult === labelYes) { + const returnData = await createSelfSignedCert(dotnetPath); + if (returnData.error === null) { + // if the process returns 0, returnData.error is null, otherwise the return code can be accessed in returnData.error.code + const message = errorCode === CertToolStatusCodes.CertificateNotTrusted ? 'trusted' : 'created'; + showInformationMessage( + vscode, + vscode.l10n.t('Self-signed certificate sucessfully {0}', message) + ); + + result = true; + } else { + this.csharpOutputChannel.appendLine( + vscode.l10n.t( + `Couldn't create self-signed certificate. {0}\ncode: {1}\nstdout: {2}`, + returnData.error.message, + `${returnData.error.code}`, + returnData.stdout + ) + ); + + const labelShowOutput: ActionOption = { + title: vscode.l10n.t('Show Output'), + action: async () => { + this.csharpOutputChannel.show(); + }, + }; + showWarningMessage( + vscode, + vscode.l10n.t("Couldn't create self-signed certificate. See output for more information."), + labelShowOutput + ); + + result = false; + } + } else if (dialogResult === labelMoreInfo) { + const launchjsonDescriptionURL = 'https://aka.ms/VSCode-CS-CheckForDevCert'; + await vscode.env.openExternal(vscode.Uri.parse(launchjsonDescriptionURL)); + } else if (dialogResult === undefined) { + // User cancelled dialog and wishes to continue debugging. + result = true; + } + } else { + result = true; } - }); + } + + return result; } } From a7673be8cda614142510f0dc73d2833f3dcd1b06 Mon Sep 17 00:00:00 2001 From: David Wengier Date: Wed, 30 Oct 2024 12:47:58 +1100 Subject: [PATCH 63/79] Bump Razor and Roslyn --- CHANGELOG.md | 2 ++ package.json | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fb9f49b0..c1a9556dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # 2.55.x +* Update Roslyn to 4.13.0-2.24529.3 (PR: [#???](https://github.com/dotnet/vscode-csharp/pull/???)) +* Update Razor to 9.0.0-preview.24528.3 (PR: [#???](https://github.com/dotnet/vscode-csharp/pull/???)) # 2.54.x * Update debugger packages to v2.54.0 (PR: [#7691](https://github.com/dotnet/vscode-csharp/pull/7691)) diff --git a/package.json b/package.json index 6cf827002..17fc719b0 100644 --- a/package.json +++ b/package.json @@ -37,9 +37,9 @@ } }, "defaults": { - "roslyn": "4.13.0-1.24525.2", + "roslyn": "4.13.0-2.24529.3", "omniSharp": "1.39.11", - "razor": "9.0.0-preview.24524.4", + "razor": "9.0.0-preview.24528.3", "razorOmnisharp": "7.0.0-preview.23363.1", "xamlTools": "17.13.35422.31" }, @@ -5602,4 +5602,4 @@ } } } -} \ No newline at end of file +} From 1f097bee2ae9da6e02c6aa6e0814e9b434949f83 Mon Sep 17 00:00:00 2001 From: David Wengier Date: Wed, 30 Oct 2024 12:59:02 +1100 Subject: [PATCH 64/79] Update changelog --- CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1a9556dd..93a5599ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,11 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # 2.55.x -* Update Roslyn to 4.13.0-2.24529.3 (PR: [#???](https://github.com/dotnet/vscode-csharp/pull/???)) -* Update Razor to 9.0.0-preview.24528.3 (PR: [#???](https://github.com/dotnet/vscode-csharp/pull/???)) +* Update Roslyn to 4.13.0-2.24529.3 (PR: [#7705](https://github.com/dotnet/vscode-csharp/pull/7705)) +* Update Razor to 9.0.0-preview.24528.3 (PR: [#7705](https://github.com/dotnet/vscode-csharp/pull/7705)) + * Update project configuration from Roslyn info (#11092) (PR: [#11092](https://github.com/dotnet/razor/pull/11092)) + * Reduce the amount of telemetry emitted (#11094) (PR: [#11094](https://github.com/dotnet/razor/pull/11094)) + * Remove tooling MvcShims (#11088) (PR: [#11088](https://github.com/dotnet/razor/pull/11088)) # 2.54.x * Update debugger packages to v2.54.0 (PR: [#7691](https://github.com/dotnet/vscode-csharp/pull/7691)) From 9bfb753654cc6cbebcd51f87458d5ef6074431b0 Mon Sep 17 00:00:00 2001 From: Timothy Miller Date: Wed, 30 Oct 2024 17:26:18 +0900 Subject: [PATCH 65/79] Bump xamlTools to 17.13.35429.30 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6cf827002..c1bb8d9cc 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "omniSharp": "1.39.11", "razor": "9.0.0-preview.24524.4", "razorOmnisharp": "7.0.0-preview.23363.1", - "xamlTools": "17.13.35422.31" + "xamlTools": "17.13.35429.30" }, "main": "./dist/extension", "l10n": "./l10n", From b177d6d768d54da13f8c0df980e153b90fc10e99 Mon Sep 17 00:00:00 2001 From: Timothy Miller Date: Wed, 30 Oct 2024 17:27:49 +0900 Subject: [PATCH 66/79] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fb9f49b0..c3ba929d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # 2.55.x +* Bumped xamlTools to 17.13.35429.30 (PR: [#7706](https://github.com/dotnet/vscode-csharp/pull/7706)) # 2.54.x * Update debugger packages to v2.54.0 (PR: [#7691](https://github.com/dotnet/vscode-csharp/pull/7691)) From 310e3b7dc0851ae5a894f684e5b561b23c7e2481 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Wed, 30 Oct 2024 11:17:22 -0700 Subject: [PATCH 67/79] Temporarily downgrade VSCode version to fix integration tests --- test/vscodeLauncher.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/vscodeLauncher.ts b/test/vscodeLauncher.ts index 13e6798aa..e52610fc3 100644 --- a/test/vscodeLauncher.ts +++ b/test/vscodeLauncher.ts @@ -15,7 +15,7 @@ export async function prepareVSCodeAndExecuteTests( userDataDir: string, env: NodeJS.ProcessEnv ): Promise { - const vscodeExecutablePath = await downloadAndUnzipVSCode('stable'); + const vscodeExecutablePath = await downloadAndUnzipVSCode('1.94.2'); const [cli, ...args] = resolveCliArgsFromVSCodeExecutablePath(vscodeExecutablePath); console.log('Display: ' + env.DISPLAY); From 2f185f7c88453c77ba97980c3e27017653e7db38 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Thu, 31 Oct 2024 21:58:54 -0700 Subject: [PATCH 68/79] Localize the 'Select project' string --- l10n/bundle.l10n.json | 1 + src/omnisharp/observers/projectStatusBarObserver.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/l10n/bundle.l10n.json b/l10n/bundle.l10n.json index 5032b3955..64885d6e5 100644 --- a/l10n/bundle.l10n.json +++ b/l10n/bundle.l10n.json @@ -148,6 +148,7 @@ "project.json is no longer a supported project format for .NET Core applications.": "project.json is no longer a supported project format for .NET Core applications.", "More Detail": "More Detail", "Some projects have trouble loading. Please review the output for more details.": "Some projects have trouble loading. Please review the output for more details.", + "Select project": "Select project", "There are unresolved dependencies. Please execute the restore command to continue.": "There are unresolved dependencies. Please execute the restore command to continue.", "Restore": "Restore", "Package {0} download from {1} failed integrity check. Some features may not work as expected. Please restart Visual Studio Code to retrigger the download": "Package {0} download from {1} failed integrity check. Some features may not work as expected. Please restart Visual Studio Code to retrigger the download", diff --git a/src/omnisharp/observers/projectStatusBarObserver.ts b/src/omnisharp/observers/projectStatusBarObserver.ts index b79167daa..419bd4e23 100644 --- a/src/omnisharp/observers/projectStatusBarObserver.ts +++ b/src/omnisharp/observers/projectStatusBarObserver.ts @@ -3,6 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import * as vscode from 'vscode'; import { basename } from 'path'; import { BaseEvent } from '../../shared/loggingEvents'; import { WorkspaceInformationUpdated } from '../omnisharpLoggingEvents'; @@ -14,7 +15,7 @@ export class ProjectStatusBarObserver extends BaseStatusBarItemObserver { switch (event.type) { case EventType.OmnisharpOnMultipleLaunchTargets: this.SetAndShowStatusBar( - '$(file-submodule) Select project', + '$(file-submodule) ' + vscode.l10n.t('Select project'), 'o.pickProjectAndStart', 'rgb(90, 218, 90)' ); From 1d3c49936a914f04449ab3225ff3557e92419b41 Mon Sep 17 00:00:00 2001 From: Timothy Miller Date: Fri, 1 Nov 2024 18:07:01 +0900 Subject: [PATCH 69/79] Bump xamlTools to 17.13.35431.11 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 25677e3c7..5a1e9e5b3 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "omniSharp": "1.39.11", "razor": "9.0.0-preview.24528.3", "razorOmnisharp": "7.0.0-preview.23363.1", - "xamlTools": "17.13.35429.30" + "xamlTools": "17.13.35431.11" }, "main": "./dist/extension", "l10n": "./l10n", From 6f167e0e5b6318477818598fded3237c9289ac0d Mon Sep 17 00:00:00 2001 From: Timothy Miller Date: Fri, 1 Nov 2024 18:09:08 +0900 Subject: [PATCH 70/79] Include CHANGELOG --- CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a7910c502..1f4388dc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,13 @@ * Shorten names shown in 'pull member up' (PR: [#75643](https://github.com/dotnet/roslyn/pull/75643)) * Fix inaccessible constructors shown in sighelp (PR: [#75642](https://github.com/dotnet/roslyn/pull/75642)) * Allow the client to update the server logging level dynamically (PR: [#75615](https://github.com/dotnet/roslyn/pull/75615)) -* Bumped xamlTools to 17.13.35429.30 (PR: [#7706](https://github.com/dotnet/vscode-csharp/pull/7706)) +* Bumped xamlTools to 17.13.35431.11 (PR: [#7719](https://github.com/dotnet/vscode-csharp/pull/7719)) + * XAML validation improvements + * Validating properties of Setters, Triggers, Conditions. + * Validating text values like ` Red ` + * Warnings for obsolete values like LayoutOptions.CenterAndExpand + * XAML IntelliseSense completions for ResourceDictionary.Source + * XAML IntelliseSense completions for name properties like Setter.TargetName # 2.54.x * Update debugger packages to v2.54.0 (PR: [#7691](https://github.com/dotnet/vscode-csharp/pull/7691)) From 12b1061f7a571edb148192ab3fb5af4323591ac6 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Fri, 1 Nov 2024 09:16:40 -0700 Subject: [PATCH 71/79] Update Roslyn version --- CHANGELOG.md | 6 +++++- package.json | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f4388dc8..62fb94823 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,11 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # 2.55.x -* Update Roslyn to 4.13.0-2.24529.3 (PR: [#7705](https://github.com/dotnet/vscode-csharp/pull/7705)) +* Update Roslyn to 4.13.0-2.24531.3 (PR: [#7722](https://github.com/dotnet/vscode-csharp/pull/7722)) + * Proffer project system query service (PR: [#75682](https://github.com/dotnet/roslyn/pull/75682)) + * Ensure discards are initially soft selected in VSCode (PR: [#75655](https://github.com/dotnet/roslyn/pull/75655)) + * Reduce allocations in VirtualCharService.CreateVirtualCharSequence (PR: [#75654](https://github.com/dotnet/roslyn/pull/75654)) + * Reduce allocations in TextDocumentStates.AddRange (PR: [#75640](https://github.com/dotnet/roslyn/pull/75640)) * Update Razor to 9.0.0-preview.24528.3 (PR: [#7705](https://github.com/dotnet/vscode-csharp/pull/7705)) * Update project configuration from Roslyn info (#11092) (PR: [#11092](https://github.com/dotnet/razor/pull/11092)) * Reduce the amount of telemetry emitted (#11094) (PR: [#11094](https://github.com/dotnet/razor/pull/11094)) diff --git a/package.json b/package.json index 5a1e9e5b3..70e3daae0 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ } }, "defaults": { - "roslyn": "4.13.0-2.24529.3", + "roslyn": "4.13.0-2.24531.3", "omniSharp": "1.39.11", "razor": "9.0.0-preview.24528.3", "razorOmnisharp": "7.0.0-preview.23363.1", From af225e20d241a0a06f3c2b600d35ed4a215c5f89 Mon Sep 17 00:00:00 2001 From: Andrew Hall Date: Fri, 1 Nov 2024 12:15:41 -0700 Subject: [PATCH 72/79] Update razor (#7723) Bump razor to 9.0.0-preview.24531.4 SHA 76cd92a65ea7104cc600d03cc50db4ad9438b488 --- CHANGELOG.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f4388dc8..87944ad71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # 2.55.x +* Update Razor to 9.0.0-preview.24531.4 (PR: [#7723](https://github.com/dotnet/vscode-csharp/pull/7723)) + * Fix aggregate telemetry reliability (PR: [#11134](https://github.com/dotnet/razor/pull/11134)) + * [FUSE] Fix OnAutoInsert and override completion and possible others (PR: [#11122](https://github.com/dotnet/razor/pull/11122)) * Update Roslyn to 4.13.0-2.24529.3 (PR: [#7705](https://github.com/dotnet/vscode-csharp/pull/7705)) * Update Razor to 9.0.0-preview.24528.3 (PR: [#7705](https://github.com/dotnet/vscode-csharp/pull/7705)) * Update project configuration from Roslyn info (#11092) (PR: [#11092](https://github.com/dotnet/razor/pull/11092)) diff --git a/package.json b/package.json index 5a1e9e5b3..ea0ee7482 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "defaults": { "roslyn": "4.13.0-2.24529.3", "omniSharp": "1.39.11", - "razor": "9.0.0-preview.24528.3", + "razor": "9.0.0-preview.24531.4", "razorOmnisharp": "7.0.0-preview.23363.1", "xamlTools": "17.13.35431.11" }, From 1adbb4aecd2adb39bbe9e88c100f1bd7c89caa23 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Fri, 1 Nov 2024 14:02:05 -0700 Subject: [PATCH 73/79] Update changelog before release --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a88c1f93..8ba503733 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ * Report a better error for void components (#11041) (PR: [#11041](https://github.com/dotnet/razor/pull/11041)) * Ensure model directives are mapped at runtime (#11007) (PR: [#11007](https://github.com/dotnet/razor/pull/11007)) * Including @using for Out-of-Scope Razor Component References (#10651) (PR: [#10651](https://github.com/dotnet/razor/pull/10651)) +* Make checkDevCert a modal dialogue (PR: [#7704](https://github.com/dotnet/vscode-csharp/pull/7704)) # 2.53.x * Update Roslyn to 4.13.0-1.24518.1 (PR: [#7670](https://github.com/dotnet/vscode-csharp/pull/7670)) From ae7c81c80af0e952dc4a8c057e205b4ed916156b Mon Sep 17 00:00:00 2001 From: David Barbet Date: Tue, 5 Nov 2024 17:26:25 -0800 Subject: [PATCH 74/79] Improve activation telemetry to track down when dropoffs occur --- src/lsptoolshost/roslynLanguageServer.ts | 10 +++++++++- src/main.ts | 3 ++- src/shared/telemetryEventNames.ts | 19 +++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 src/shared/telemetryEventNames.ts diff --git a/src/lsptoolshost/roslynLanguageServer.ts b/src/lsptoolshost/roslynLanguageServer.ts index 9e7adf6b2..ff34a73a4 100644 --- a/src/lsptoolshost/roslynLanguageServer.ts +++ b/src/lsptoolshost/roslynLanguageServer.ts @@ -76,6 +76,7 @@ import { } from '../shared/observers/utils/showMessage'; import { registerSourceGeneratedFilesContentProvider } from './sourceGeneratedFilesContentProvider'; import { registerMiscellaneousFileNotifier } from './miscellaneousFileNotifier'; +import { TelemetryEventNames } from '../shared/telemetryEventNames'; let _channel: vscode.LogOutputChannel; let _traceChannel: vscode.OutputChannel; @@ -574,12 +575,13 @@ export class RoslynLanguageServer { telemetryReporter: TelemetryReporter, additionalExtensionPaths: string[] ): Promise { + telemetryReporter.sendTelemetryEvent(TelemetryEventNames.ClientServerStart); const serverPath = getServerPath(platformInfo); const dotnetInfo = await hostExecutableResolver.getHostExecutableInfo(); const dotnetExecutablePath = dotnetInfo.path; - _channel.info('Dotnet path: ' + dotnetExecutablePath); + telemetryReporter.sendTelemetryEvent(TelemetryEventNames.AcquiredRuntime); let args: string[] = []; @@ -684,6 +686,8 @@ export class RoslynLanguageServer { childProcess = cp.spawn(serverPath, args, cpOptions); } + telemetryReporter.sendTelemetryEvent(TelemetryEventNames.LaunchedServer); + // Record the stdout and stderr streams from the server process. childProcess.stdout.on('data', (data: { toString: (arg0: any) => any }) => { const result: string = isString(data) ? data : data.toString(RoslynLanguageServer.encoding); @@ -756,6 +760,8 @@ export class RoslynLanguageServer { throw new Error('Timeout. Client cound not connect to server via named pipe'); } + telemetryReporter.sendTelemetryEvent(TelemetryEventNames.ClientConnected); + return { reader: new SocketMessageReader(socket, RoslynLanguageServer.encoding), writer: new SocketMessageWriter(socket, RoslynLanguageServer.encoding), @@ -1072,6 +1078,8 @@ export async function activateRoslynLanguageServer( // The trace channel verbosity is controlled by the _channel verbosity. _traceChannel = vscode.window.createOutputChannel('C# LSP Trace Logs'); + reporter.sendTelemetryEvent(TelemetryEventNames.ClientInitialize); + const hostExecutableResolver = new DotnetRuntimeExtensionResolver( platformInfo, getServerPath, diff --git a/src/main.ts b/src/main.ts index 1f7eaa7f8..1a83503fa 100644 --- a/src/main.ts +++ b/src/main.ts @@ -41,6 +41,7 @@ import { debugSessionTracker } from './coreclrDebug/provisionalDebugSessionTrack import { getComponentFolder } from './lsptoolshost/builtInComponents'; import { activateOmniSharpLanguageServer, ActivationResult } from './omnisharp/omnisharpLanguageServer'; import { ActionOption, showErrorMessage } from './shared/observers/utils/showMessage'; +import { TelemetryEventNames } from './shared/telemetryEventNames'; export async function activate( context: vscode.ExtensionContext @@ -218,7 +219,7 @@ export async function activate( const activationProperties: { [key: string]: string } = { serverKind: useOmnisharpServer ? 'OmniSharp' : 'Roslyn', }; - reporter.sendTelemetryEvent('CSharpActivated', activationProperties); + reporter.sendTelemetryEvent(TelemetryEventNames.CSharpActivated, activationProperties); if (!useOmnisharpServer) { debugSessionTracker.initializeDebugSessionHandlers(context); diff --git a/src/shared/telemetryEventNames.ts b/src/shared/telemetryEventNames.ts new file mode 100644 index 000000000..88b065b60 --- /dev/null +++ b/src/shared/telemetryEventNames.ts @@ -0,0 +1,19 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +/** + * Defines all telemetry event names to ensure we do not have overlapping events. + */ +export enum TelemetryEventNames { + // Common extension events + CSharpActivated = 'CSharpActivated', + + // Events related to the roslyn language server. + ClientInitialize = 'roslyn/clientInitialize', + ClientServerStart = 'roslyn/clientServerInitialize', + AcquiredRuntime = 'roslyn/acquiredRuntime', + LaunchedServer = 'roslyn/launchedServer', + ClientConnected = 'roslyn/clientConnected', +} From b51169b3ae9ed5fb89b13fe64ca0bdecc303169d Mon Sep 17 00:00:00 2001 From: Andrew Wang Date: Wed, 30 Oct 2024 18:19:43 +0000 Subject: [PATCH 75/79] Update Debugger Packages for v2.55.0 --- package.json | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 810a0799b..35d2d87b4 100644 --- a/package.json +++ b/package.json @@ -420,7 +420,7 @@ { "id": "Debugger", "description": ".NET Core Debugger (Windows / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-win7-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-win7-x64.zip", "installPath": ".debugger/x86_64", "platforms": [ "win32" @@ -430,12 +430,12 @@ "arm64" ], "installTestPath": "./.debugger/x86_64/vsdbg-ui.exe", - "integrity": "CA52132B8EE9AD1C7367CEA603DBDAC67D32E1A15845545376E4A23D609D80FF" + "integrity": "E3368B212113568D7371A007D27917ED50B848D253AD3FA371AEE708A901F9E4" }, { "id": "Debugger", "description": ".NET Core Debugger (Windows / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-win10-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-win10-arm64.zip", "installPath": ".debugger/arm64", "platforms": [ "win32" @@ -444,12 +444,12 @@ "arm64" ], "installTestPath": "./.debugger/arm64/vsdbg-ui.exe", - "integrity": "09DF819BE86FD8A481152433E97268C07E985DEE9BBDE17FEA1DA0B339BAD873" + "integrity": "668E48B411BFA7F23770896C08E73E812E48F846265DDC57FB4EE13AA3124DA0" }, { "id": "Debugger", "description": ".NET Core Debugger (macOS / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-osx-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-osx-x64.zip", "installPath": ".debugger/x86_64", "platforms": [ "darwin" @@ -463,12 +463,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/x86_64/vsdbg-ui", - "integrity": "2C7AD1AA13A8382EFD53AC26A474BE5223EB81295EA9C39E62174CB8626F6473" + "integrity": "02A9DB05F7017A8610C6BED0CFF696294ECF8C16F6706B9AD8E40032B9E24C3B" }, { "id": "Debugger", "description": ".NET Core Debugger (macOS / arm64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-osx-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-osx-arm64.zip", "installPath": ".debugger/arm64", "platforms": [ "darwin" @@ -481,12 +481,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/arm64/vsdbg-ui", - "integrity": "9B934EF920DFFDA3241B8107A777E5B5F6EDC6E2810C760B985D7879C705ABD3" + "integrity": "058C2A63DB74AFD9C56964CE149F8D003AFF3C6AEF2A6C1EB24F3FAD51D6C489" }, { "id": "Debugger", "description": ".NET Core Debugger (linux / ARM)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-linux-arm.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-linux-arm.zip", "installPath": ".debugger", "platforms": [ "linux" @@ -499,12 +499,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "C7862D26B66EA20D607D163A210430576E1B94EE7E30DEDFFF0979818CBC448F" + "integrity": "B236CD072B7A0E962FECBF0DCF14B5BDBC590723D30D9C84815BD27B906874D0" }, { "id": "Debugger", "description": ".NET Core Debugger (linux / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-linux-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-linux-arm64.zip", "installPath": ".debugger", "platforms": [ "linux" @@ -517,12 +517,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "59928535D55E29B501E3B75FB5CA328BC5AFD0E5D1B3DC85BD138B89163A9B96" + "integrity": "3A18166E6166E46E3731949F8AE9168CAC856D93F331FECD09ABB3FCD843B550" }, { "id": "Debugger", "description": ".NET Core Debugger (linux musl / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-linux-musl-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-linux-musl-x64.zip", "installPath": ".debugger", "platforms": [ "linux-musl" @@ -535,12 +535,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "70899D68697E158CAFC6B4C69D8CC894AF307D82DC884167ED8E408D31A90BEE" + "integrity": "4CE30A8F2BC7738BEF02D7E28FC8B67F14740A9A1A05E3CC260597675858C9FE" }, { "id": "Debugger", "description": ".NET Core Debugger (linux musl / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-linux-musl-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-linux-musl-arm64.zip", "installPath": ".debugger", "platforms": [ "linux-musl" @@ -553,12 +553,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "7E6440DEF000329162FFFBC97114F33CF83B9C2020D44A1AC0E4407531B4C8F8" + "integrity": "F9D8686A32D27FA85546A2326F96E08D2CC90C0CBA03CD81B2C280C0F67793C5" }, { "id": "Debugger", "description": ".NET Core Debugger (linux / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-54-0/coreclr-debug-linux-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-linux-x64.zip", "installPath": ".debugger", "platforms": [ "linux" @@ -571,7 +571,7 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "5099BF747D2D20437A6743F02920015DC6A9809956DBAE12C41CDF97C969F19D" + "integrity": "7F3DBA584BF243251154642CC789347CA4C1DFBF6EB7B7B9A44F278545128039" }, { "id": "RazorOmnisharp", From ec3f262f5db8e6d07eb89528508911fdb80b79fd Mon Sep 17 00:00:00 2001 From: David Barbet Date: Fri, 8 Nov 2024 10:56:30 -0800 Subject: [PATCH 76/79] Patch prerelease roslyn version --- CHANGELOG.md | 2 ++ package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe7651332..f791fe6e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # 2.55.x +* Update Roslyn to 4.13.0-2.24557.6 (PR: [#7751](https://github.com/dotnet/vscode-csharp/pull/7751)) + * Fix issue telemetry reporting incorrect property value (PR: [#75817](https://github.com/dotnet/roslyn/pull/75817)) * Update Roslyn to 4.13.0-2.24531.3 (PR: [#7722](https://github.com/dotnet/vscode-csharp/pull/7722)) * Proffer project system query service (PR: [#75682](https://github.com/dotnet/roslyn/pull/75682)) * Ensure discards are initially soft selected in VSCode (PR: [#75655](https://github.com/dotnet/roslyn/pull/75655)) diff --git a/package.json b/package.json index 35d2d87b4..133394185 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ } }, "defaults": { - "roslyn": "4.13.0-2.24531.3", + "roslyn": "4.13.0-2.24557.6", "omniSharp": "1.39.11", "razor": "9.0.0-preview.24531.4", "razorOmnisharp": "7.0.0-preview.23363.1", From d5befb7fd2ca78ca7a55bfbecd4fc5a61e909657 Mon Sep 17 00:00:00 2001 From: Andrew Hall Date: Fri, 8 Nov 2024 13:42:47 -0800 Subject: [PATCH 77/79] Update razor package --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 810a0799b..edf5afc63 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "defaults": { "roslyn": "4.13.0-2.24531.3", "omniSharp": "1.39.11", - "razor": "9.0.0-preview.24531.4", + "razor": "9.0.0-preview.24557.10", "razorOmnisharp": "7.0.0-preview.23363.1", "xamlTools": "17.13.35431.11" }, From 72fd7f9d85d1c4c0a2c7c992b366aeb57fce7993 Mon Sep 17 00:00:00 2001 From: Andrew Hall Date: Fri, 8 Nov 2024 14:18:31 -0800 Subject: [PATCH 78/79] Update razor package --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe7651332..566d8983e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # 2.55.x +* Update Razor to 9.0.0-preview.24557.10 (PR: []()) + * Update VSTelemetryAPI version (#11181) (PR: [#11181](https://github.com/dotnet/razor/pull/11181)) * Update Roslyn to 4.13.0-2.24531.3 (PR: [#7722](https://github.com/dotnet/vscode-csharp/pull/7722)) * Proffer project system query service (PR: [#75682](https://github.com/dotnet/roslyn/pull/75682)) * Ensure discards are initially soft selected in VSCode (PR: [#75655](https://github.com/dotnet/roslyn/pull/75655)) From 316e1197652d24516aea0eb29a4c079d29d3b4c5 Mon Sep 17 00:00:00 2001 From: Andrew Hall Date: Fri, 8 Nov 2024 14:19:33 -0800 Subject: [PATCH 79/79] Update CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 566d8983e..1716d5245 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # 2.55.x -* Update Razor to 9.0.0-preview.24557.10 (PR: []()) +* Update Razor to 9.0.0-preview.24557.10 (PR: [#7757](https://github.com/dotnet/vscode-csharp/pull/7757)) * Update VSTelemetryAPI version (#11181) (PR: [#11181](https://github.com/dotnet/razor/pull/11181)) * Update Roslyn to 4.13.0-2.24531.3 (PR: [#7722](https://github.com/dotnet/vscode-csharp/pull/7722)) * Proffer project system query service (PR: [#75682](https://github.com/dotnet/roslyn/pull/75682))