From fd006114b99fb07cda72817f3d5536bf69062914 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Jan 2025 00:08:47 +0000 Subject: [PATCH 01/38] Bump cross-spawn from 6.0.5 to 6.0.6 Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 6.0.5 to 6.0.6. - [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/v6.0.6/CHANGELOG.md) - [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v6.0.5...v6.0.6) --- updated-dependencies: - dependency-name: cross-spawn dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- package-lock.json | 15 ++++++++------- package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 105bc1546..2d8c60c00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@vscode/extension-telemetry": "^0.9.0", "@vscode/js-debug-browsers": "^1.1.0", "async-file": "2.0.2", - "cross-spawn": "6.0.5", + "cross-spawn": "6.0.6", "execa": "4.0.0", "fs-extra": "9.1.0", "http-proxy-agent": "7.0.0", @@ -5790,9 +5790,10 @@ "dev": true }, "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "6.0.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha1-MNDvoHEt2361p24ehyG/+vprXVc=", + "license": "MIT", "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -20207,9 +20208,9 @@ "dev": true }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "6.0.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha1-MNDvoHEt2361p24ehyG/+vprXVc=", "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", diff --git a/package.json b/package.json index a88f75ade..d49f2c542 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "@vscode/extension-telemetry": "^0.9.0", "@vscode/js-debug-browsers": "^1.1.0", "async-file": "2.0.2", - "cross-spawn": "6.0.5", + "cross-spawn": "6.0.6", "execa": "4.0.0", "fs-extra": "9.1.0", "http-proxy-agent": "7.0.0", From 87af39d4146d1535e1a2e5c71ae48eea730502bd Mon Sep 17 00:00:00 2001 From: dibarbet Date: Sat, 4 Jan 2025 00:54:38 +0000 Subject: [PATCH 02/38] 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 46377a7d1..c87a3cd09 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.62.x + # 2.61.x * Update Roslyn to 4.13.0-3.25051.1 (PR: [#7895](https://github.com/dotnet/vscode-csharp/pull/7895)) * Prefix 'unmerged changes' with 'TODO' (PR: [#62319](https://github.com/dotnet/roslyn/pull/62319)) diff --git a/version.json b/version.json index 1767f04e4..ae14a65b6 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.61", + "version": "2.62", "publicReleaseRefSpec": [ "^refs/heads/release$", "^refs/heads/prerelease$", From 3620c5952fd80d108d6d62634cdac9fda32304cd Mon Sep 17 00:00:00 2001 From: David Barbet Date: Thu, 2 Jan 2025 13:14:06 -0800 Subject: [PATCH 03/38] Fix code lens tests and restore integration tests in CI --- azure-pipelines/test-matrix.yml | 2 +- .../integrationTests/integrationHelpers.ts | 30 ++++++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/azure-pipelines/test-matrix.yml b/azure-pipelines/test-matrix.yml index 30776dea7..9175e127f 100644 --- a/azure-pipelines/test-matrix.yml +++ b/azure-pipelines/test-matrix.yml @@ -17,7 +17,7 @@ jobs: strategy: matrix: CSharpTests: - npmCommand: 'test:unit' # Restore when integration test are stable: 'test:withoutDevKit' + npmCommand: test:withoutDevKit DevKitTests: npmCommand: test:integration:devkit pool: ${{ parameters.pool }} diff --git a/test/lsptoolshost/integrationTests/integrationHelpers.ts b/test/lsptoolshost/integrationTests/integrationHelpers.ts index 0ab9a02ac..2a5c686d2 100644 --- a/test/lsptoolshost/integrationTests/integrationHelpers.ts +++ b/test/lsptoolshost/integrationTests/integrationHelpers.ts @@ -118,6 +118,35 @@ export async function getCodeLensesAsync(): Promise { // The number of code lens items to resolve. Set to a high number so we get pretty much everything in the document. const resolvedItemCount = 100; + let tryCount = 0; + const maxRetryCount = 3; + do { + try { + const result = await executeCodeLensProviderAsync(activeEditor, resolvedItemCount); + return result; + } catch (e) { + tryCount++; + // It is totally possible that the code lens request is cancelled due to the server returning a content modified error. + // This is not an error condition - it just means that the server snapshot has moved on and we need to retry the request. + // + // This error is not thrown as an error type that matches ours, so we'll check the name of the error to determine if it was a cancellation. + if (Object.prototype.hasOwnProperty.call(e, 'name') && (e as any).name === 'Canceled') { + console.log('CodeLens provider was cancelled, retrying in 1 second'); + await sleep(1000); + } else { + console.log('CodeLens provider encountered unexpected error'); + console.log(JSON.stringify(e)); + throw e; + } + } + } while (tryCount < maxRetryCount); + throw new Error(`Failed to get code lenses after ${maxRetryCount} retries`); +} + +async function executeCodeLensProviderAsync( + activeEditor: vscode.TextEditor, + resolvedItemCount: number +): Promise { const codeLenses = ( await vscode.commands.executeCommand( 'vscode.executeCodeLensProvider', @@ -130,7 +159,6 @@ export async function getCodeLensesAsync(): Promise { if (rangeCompare !== 0) { return rangeCompare; } - return a.command!.title.localeCompare(b.command!.command); }); } From b863964879f17fa265dec684f3ee2586d63281cc Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Mon, 6 Jan 2025 17:33:09 -0800 Subject: [PATCH 04/38] Update tsconfig and remove use of require() --- src/lsptoolshost/onAutoInsertFeature.ts | 4 ++-- src/lsptoolshost/optionNameConverter.ts | 2 +- src/lsptoolshost/restore.ts | 2 +- src/packageManager/proxy.ts | 4 ++-- .../src/blazorDebug/blazorDebugConfigurationProvider.ts | 2 +- src/razor/src/blazorDebug/terminateDebugHandler.ts | 2 +- src/utils/removeBom.ts | 2 +- tasks/commandLineArguments.ts | 2 +- tasks/createTagsTasks.ts | 2 +- tasks/localizationTasks.ts | 2 +- tasks/offlinePackagingTasks.ts | 4 ++-- tasks/signingTasks.ts | 2 +- .../integrationTests/buildDiagnostics.integration.test.ts | 2 +- .../documentDiagnostics.integration.test.ts | 2 +- .../omnisharpUnitTests/testAssets/mockHttpsServer.ts | 2 +- test/omnisharp/omnisharpUnitTests/testAssets/testZip.ts | 2 +- tsconfig.json | 8 +++----- 17 files changed, 22 insertions(+), 24 deletions(-) diff --git a/src/lsptoolshost/onAutoInsertFeature.ts b/src/lsptoolshost/onAutoInsertFeature.ts index 0c3e03f21..88a1537b2 100644 --- a/src/lsptoolshost/onAutoInsertFeature.ts +++ b/src/lsptoolshost/onAutoInsertFeature.ts @@ -22,7 +22,7 @@ import { } from 'vscode-languageserver-protocol'; import * as RoslynProtocol from './roslynProtocol'; -import * as UUID from 'vscode-languageclient/lib/common/utils/uuid'; +import { generateUuid } from 'vscode-languageclient/lib/common/utils/uuid'; export class OnAutoInsertFeature implements DynamicFeature { private readonly _client: LanguageClient; @@ -92,7 +92,7 @@ export class OnAutoInsertFeature implements DynamicFeature { beforeAll(async () => { await integrationHelpers.activateCSharpExtension(); diff --git a/test/lsptoolshost/integrationTests/documentDiagnostics.integration.test.ts b/test/lsptoolshost/integrationTests/documentDiagnostics.integration.test.ts index 6c8549ac3..dcfaeb39e 100644 --- a/test/lsptoolshost/integrationTests/documentDiagnostics.integration.test.ts +++ b/test/lsptoolshost/integrationTests/documentDiagnostics.integration.test.ts @@ -7,7 +7,7 @@ import * as vscode from 'vscode'; import { describe, test, beforeAll, afterAll, expect, beforeEach, afterEach } from '@jest/globals'; import testAssetWorkspace from './testAssets/testAssetWorkspace'; import { AnalysisSetting } from '../../../src/lsptoolshost/buildDiagnosticsService'; -import path = require('path'); +import path from 'path'; import { getCode, setBackgroundAnalysisScopes, waitForExpectedDiagnostics } from './diagnosticsHelpers'; import { activateCSharpExtension, diff --git a/test/omnisharp/omnisharpUnitTests/testAssets/mockHttpsServer.ts b/test/omnisharp/omnisharpUnitTests/testAssets/mockHttpsServer.ts index cea2c21fe..6ed6ab256 100644 --- a/test/omnisharp/omnisharpUnitTests/testAssets/mockHttpsServer.ts +++ b/test/omnisharp/omnisharpUnitTests/testAssets/mockHttpsServer.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as fs from 'async-file'; -import * as getPort from 'get-port'; +import getPort from 'get-port'; // There are no typings for this library. // eslint-disable-next-line @typescript-eslint/no-var-requires diff --git a/test/omnisharp/omnisharpUnitTests/testAssets/testZip.ts b/test/omnisharp/omnisharpUnitTests/testAssets/testZip.ts index be20f86f8..6fab10939 100644 --- a/test/omnisharp/omnisharpUnitTests/testAssets/testZip.ts +++ b/test/omnisharp/omnisharpUnitTests/testAssets/testZip.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as archiver from 'archiver'; +import archiver from 'archiver'; import { TestFile } from './testFile'; export default class TestZip { diff --git a/tsconfig.json b/tsconfig.json index b999e0341..b675138ef 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,14 +1,13 @@ { "compilerOptions": { - "target": "es6", - "module": "commonjs", + "target": "ES2022", + "module": "Preserve", "outDir": "out", "lib": [ "ES2021" ], "sourceMap": true, - "moduleResolution": "node", - "moduleDetection": "force", + "moduleResolution": "bundler", "strict": true, "forceConsistentCasingInFileNames": true, "skipLibCheck": true, @@ -20,7 +19,6 @@ "src", "tasks", "test", - "omnisharptest", "typings", "__mocks__", "jest.config.ts", From 206b8422afd14490818efafa02eacc68523b990b Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Tue, 7 Jan 2025 21:06:18 -0800 Subject: [PATCH 05/38] revert moduel type back to commonjs --- package-lock.json | 277 +++++++++++++++++++++++---------------------- package.json | 4 +- tasks/testTasks.ts | 2 +- tsconfig.json | 6 +- 4 files changed, 151 insertions(+), 138 deletions(-) diff --git a/package-lock.json b/package-lock.json index 105bc1546..5dc0c3ca5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,8 +56,8 @@ "@types/uuid": "^9.0.1", "@types/vscode": "1.93.0", "@types/yauzl": "2.10.0", - "@typescript-eslint/eslint-plugin": "^8.5.0", - "@typescript-eslint/parser": "^8.5.0", + "@typescript-eslint/eslint-plugin": "^8.19.0", + "@typescript-eslint/parser": "^8.19.0", "@vscode/l10n-dev": "^0.0.35", "@vscode/test-electron": "2.3.8", "@vscode/vsce": "3.0.0", @@ -3222,21 +3222,21 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.5.0.tgz", - "integrity": "sha1-fBhjaTqYNxcDaG4cD6xk/8V2zbE=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz", + "integrity": "sha1-XybAqDOye8sapAK4LnbTuN2gskc=", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.5.0", - "@typescript-eslint/type-utils": "8.5.0", - "@typescript-eslint/utils": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/type-utils": "8.19.1", + "@typescript-eslint/utils": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3247,25 +3247,21 @@ }, "peerDependencies": { "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-8.5.0.tgz", - "integrity": "sha1-1ZDh758x8m1COZmtP2h3IyR+a8w=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-8.19.1.tgz", + "integrity": "sha1-uDb8/npwTIxl9aUOWw/4rPylwhs=", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.5.0", - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/typescript-estree": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/typescript-estree": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "debug": "^4.3.4" }, "engines": { @@ -3276,23 +3272,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-8.5.0.tgz", - "integrity": "sha1-OFNB3mW5dvArKVuKylS7T/1rXwc=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz", + "integrity": "sha1-eUz8it1PNzuc1voy42fnVloOIxs=", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0" + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3303,16 +3295,16 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-8.5.0.tgz", - "integrity": "sha1-YhWyOqOdu9jd4KTvnuD3RUEMKbE=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz", + "integrity": "sha1-I3EKtSZDwZ90YBs/SgdsmPThWao=", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.5.0", - "@typescript-eslint/utils": "8.5.0", + "@typescript-eslint/typescript-estree": "8.19.1", + "@typescript-eslint/utils": "8.19.1", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3321,16 +3313,15 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-8.5.0.tgz", - "integrity": "sha1-RGXZkzHRJ2+PsgMOT5xz/gGgW/k=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-8.19.1.tgz", + "integrity": "sha1-AVqZEoF1TtmG8uVJJjoRiNbtCow=", "dev": true, "license": "MIT", "engines": { @@ -3342,20 +3333,20 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-8.5.0.tgz", - "integrity": "sha1-bldYzy9jqobp3fpOKE4uC4G4dVc=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz", + "integrity": "sha1-wQlLsAvCUax2zyFVaconI2Q1A2s=", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3364,10 +3355,8 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { @@ -3410,16 +3399,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-8.5.0.tgz", - "integrity": "sha1-TU/+2W0GVFRqN/qluEvc4W2VFjQ=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-8.19.1.tgz", + "integrity": "sha1-3Y6r1GuSv2HlcyhuHAumvSQ6GFs=", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.5.0", - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/typescript-estree": "8.5.0" + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/typescript-estree": "8.19.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3429,18 +3418,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-8.5.0.tgz", - "integrity": "sha1-EwKN87hm0uPi4sxBk88sHg4ExL8=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz", + "integrity": "sha1-/OVNfPpTUakjh9bAxb5ZjK7gcuA=", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.5.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.19.1", + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3450,6 +3440,19 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha1-aHussq+IT83aim59ZcYG9GoUzUU=", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -7459,9 +7462,9 @@ "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha1-qQRQHlfP3S/83tRemaVP71XkYSk=", + "version": "3.3.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha1-0G1YXOjbqQoWsFBcVDw8z7OuuBg=", "dev": true, "license": "MIT", "dependencies": { @@ -7469,7 +7472,7 @@ "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -14375,16 +14378,16 @@ "dev": true }, "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha1-S0kOJxKfHo5oa0XMSrY3FNxg7qE=", + "version": "2.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha1-udfV9+yfc29NDwl1i4YHl5BEqQA=", "dev": true, "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-jest": { @@ -18319,77 +18322,77 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.5.0.tgz", - "integrity": "sha1-fBhjaTqYNxcDaG4cD6xk/8V2zbE=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz", + "integrity": "sha1-XybAqDOye8sapAK4LnbTuN2gskc=", "dev": true, "requires": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.5.0", - "@typescript-eslint/type-utils": "8.5.0", - "@typescript-eslint/utils": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/type-utils": "8.19.1", + "@typescript-eslint/utils": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-8.5.0.tgz", - "integrity": "sha1-1ZDh758x8m1COZmtP2h3IyR+a8w=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-8.19.1.tgz", + "integrity": "sha1-uDb8/npwTIxl9aUOWw/4rPylwhs=", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "8.5.0", - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/typescript-estree": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/typescript-estree": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-8.5.0.tgz", - "integrity": "sha1-OFNB3mW5dvArKVuKylS7T/1rXwc=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz", + "integrity": "sha1-eUz8it1PNzuc1voy42fnVloOIxs=", "dev": true, "requires": { - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0" + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1" } }, "@typescript-eslint/type-utils": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-8.5.0.tgz", - "integrity": "sha1-YhWyOqOdu9jd4KTvnuD3RUEMKbE=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz", + "integrity": "sha1-I3EKtSZDwZ90YBs/SgdsmPThWao=", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "8.5.0", - "@typescript-eslint/utils": "8.5.0", + "@typescript-eslint/typescript-estree": "8.19.1", + "@typescript-eslint/utils": "8.19.1", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" } }, "@typescript-eslint/types": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-8.5.0.tgz", - "integrity": "sha1-RGXZkzHRJ2+PsgMOT5xz/gGgW/k=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-8.19.1.tgz", + "integrity": "sha1-AVqZEoF1TtmG8uVJJjoRiNbtCow=", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-8.5.0.tgz", - "integrity": "sha1-bldYzy9jqobp3fpOKE4uC4G4dVc=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz", + "integrity": "sha1-wQlLsAvCUax2zyFVaconI2Q1A2s=", "dev": true, "requires": { - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "dependencies": { "brace-expansion": { @@ -18419,25 +18422,33 @@ } }, "@typescript-eslint/utils": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-8.5.0.tgz", - "integrity": "sha1-TU/+2W0GVFRqN/qluEvc4W2VFjQ=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-8.19.1.tgz", + "integrity": "sha1-3Y6r1GuSv2HlcyhuHAumvSQ6GFs=", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.5.0", - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/typescript-estree": "8.5.0" + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/typescript-estree": "8.19.1" } }, "@typescript-eslint/visitor-keys": { - "version": "8.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-8.5.0.tgz", - "integrity": "sha1-EwKN87hm0uPi4sxBk88sHg4ExL8=", + "version": "8.19.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz", + "integrity": "sha1-/OVNfPpTUakjh9bAxb5ZjK7gcuA=", "dev": true, "requires": { - "@typescript-eslint/types": "8.5.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "8.19.1", + "eslint-visitor-keys": "^4.2.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha1-aHussq+IT83aim59ZcYG9GoUzUU=", + "dev": true + } } }, "@ungap/structured-clone": { @@ -21427,16 +21438,16 @@ "dev": true }, "fast-glob": { - "version": "3.3.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha1-qQRQHlfP3S/83tRemaVP71XkYSk=", + "version": "3.3.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha1-0G1YXOjbqQoWsFBcVDw8z7OuuBg=", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" } }, "fast-json-stable-stringify": { @@ -26518,9 +26529,9 @@ "dev": true }, "ts-api-utils": { - "version": "1.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha1-S0kOJxKfHo5oa0XMSrY3FNxg7qE=", + "version": "2.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha1-udfV9+yfc29NDwl1i4YHl5BEqQA=", "dev": true, "requires": {} }, diff --git a/package.json b/package.json index d41eedff3..a333bb545 100644 --- a/package.json +++ b/package.json @@ -136,8 +136,8 @@ "@types/uuid": "^9.0.1", "@types/vscode": "1.93.0", "@types/yauzl": "2.10.0", - "@typescript-eslint/eslint-plugin": "^8.5.0", - "@typescript-eslint/parser": "^8.5.0", + "@typescript-eslint/eslint-plugin": "^8.19.0", + "@typescript-eslint/parser": "^8.19.0", "@vscode/l10n-dev": "^0.0.35", "@vscode/test-electron": "2.3.8", "@vscode/vsce": "3.0.0", diff --git a/tasks/testTasks.ts b/tasks/testTasks.ts index 2212e5235..e9d506367 100644 --- a/tasks/testTasks.ts +++ b/tasks/testTasks.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as fs from 'fs'; +import fs from 'fs'; import * as gulp from 'gulp'; import * as path from 'path'; import { codeExtensionPath, rootPath, outPath } from './projectPaths'; diff --git a/tsconfig.json b/tsconfig.json index b675138ef..b7fe26654 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,13 +1,15 @@ { "compilerOptions": { + "esModuleInterop": true, "target": "ES2022", - "module": "Preserve", + "module": "CommonJS", "outDir": "out", "lib": [ "ES2021" ], "sourceMap": true, - "moduleResolution": "bundler", + "moduleDetection": "force", + "moduleResolution": "node", "strict": true, "forceConsistentCasingInFileNames": true, "skipLibCheck": true, From 91b06dcfc0697817a44bbc7db0fc422f256eb896 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Tue, 7 Jan 2025 21:19:52 -0800 Subject: [PATCH 06/38] Fake the `fs` module so we can spy on it --- test/lsptoolshost/unitTests/migrateOptions.test.ts | 2 ++ tsconfig.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/test/lsptoolshost/unitTests/migrateOptions.test.ts b/test/lsptoolshost/unitTests/migrateOptions.test.ts index 4e75f3732..3a991700e 100644 --- a/test/lsptoolshost/unitTests/migrateOptions.test.ts +++ b/test/lsptoolshost/unitTests/migrateOptions.test.ts @@ -18,6 +18,8 @@ import { getVSCodeWithConfig } from '../../fakes'; import { CSharpExtensionId } from '../../../src/constants/csharpExtensionId'; import { ConfigurationTarget } from '../../../src/vscodeAdapter'; +jest.mock('fs', () => ({ __esModule: true, ...(jest.requireActual('fs')) })); + describe('Migrate configurations', () => { const packageJson = JSON.parse(fs.readFileSync('package.json').toString()); const configuration = packageJson.contributes.configuration; diff --git a/tsconfig.json b/tsconfig.json index b7fe26654..ceea0ebff 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,8 +8,8 @@ "ES2021" ], "sourceMap": true, - "moduleDetection": "force", "moduleResolution": "node", + "moduleDetection": "force", "strict": true, "forceConsistentCasingInFileNames": true, "skipLibCheck": true, From 747829ea9a9f9c8ec49b52b20f8c4de5137f1b13 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Tue, 7 Jan 2025 21:54:40 -0800 Subject: [PATCH 07/38] Fix up O# tests --- test/lsptoolshost/unitTests/migrateOptions.test.ts | 1 + .../omnisharpUnitTests/features/reportIssue.test.ts | 6 +----- .../omnisharpUnitTests/packages/packageFilterer.test.ts | 3 +++ 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test/lsptoolshost/unitTests/migrateOptions.test.ts b/test/lsptoolshost/unitTests/migrateOptions.test.ts index 3a991700e..f1f4ecaf2 100644 --- a/test/lsptoolshost/unitTests/migrateOptions.test.ts +++ b/test/lsptoolshost/unitTests/migrateOptions.test.ts @@ -18,6 +18,7 @@ import { getVSCodeWithConfig } from '../../fakes'; import { CSharpExtensionId } from '../../../src/constants/csharpExtensionId'; import { ConfigurationTarget } from '../../../src/vscodeAdapter'; +// Necessary when spying on module members. jest.mock('fs', () => ({ __esModule: true, ...(jest.requireActual('fs')) })); describe('Migrate configurations', () => { diff --git a/test/omnisharp/omnisharpUnitTests/features/reportIssue.test.ts b/test/omnisharp/omnisharpUnitTests/features/reportIssue.test.ts index ff305b40b..55106f333 100644 --- a/test/omnisharp/omnisharpUnitTests/features/reportIssue.test.ts +++ b/test/omnisharp/omnisharpUnitTests/features/reportIssue.test.ts @@ -62,11 +62,7 @@ describe(`${reportIssue.name}`, () => { issueBody = rest[0].issueBody; return {} as any; }); - jest.replaceProperty(vscode, 'extensions', { - all: [extension1, extension2], - getExtension: jest.fn(), - onDidChange: jest.fn(), - } as typeof vscode.extensions); + jest.replaceProperty(vscode.extensions, "all", [extension1, extension2] as readonly vscode.Extension[]); fakeMonoResolver = new FakeMonoResolver(); fakeDotnetResolver = new FakeDotnetResolver(); diff --git a/test/omnisharp/omnisharpUnitTests/packages/packageFilterer.test.ts b/test/omnisharp/omnisharpUnitTests/packages/packageFilterer.test.ts index 85423fd52..eb4c7173d 100644 --- a/test/omnisharp/omnisharpUnitTests/packages/packageFilterer.test.ts +++ b/test/omnisharp/omnisharpUnitTests/packages/packageFilterer.test.ts @@ -11,6 +11,9 @@ import { MockedFunction } from 'jest-mock'; import * as fs from 'fs'; import { join } from 'path'; +// Necessary when spying on module members. +jest.mock('fs', () => ({ __esModule: true, ...(jest.requireActual('fs')) })); + describe(`${getNotInstalledPackagesForPlatform.name}`, () => { let absolutePathPackages: AbsolutePathPackage[]; const extensionPath = '/ExtensionPath'; From a62f33a5e4edb9111114f7925ee3595063a4e0b6 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Tue, 7 Jan 2025 22:00:29 -0800 Subject: [PATCH 08/38] fix quotes --- test/omnisharp/omnisharpUnitTests/features/reportIssue.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/omnisharp/omnisharpUnitTests/features/reportIssue.test.ts b/test/omnisharp/omnisharpUnitTests/features/reportIssue.test.ts index 55106f333..c281944d7 100644 --- a/test/omnisharp/omnisharpUnitTests/features/reportIssue.test.ts +++ b/test/omnisharp/omnisharpUnitTests/features/reportIssue.test.ts @@ -62,7 +62,7 @@ describe(`${reportIssue.name}`, () => { issueBody = rest[0].issueBody; return {} as any; }); - jest.replaceProperty(vscode.extensions, "all", [extension1, extension2] as readonly vscode.Extension[]); + jest.replaceProperty(vscode.extensions, 'all', [extension1, extension2] as readonly vscode.Extension[]); fakeMonoResolver = new FakeMonoResolver(); fakeDotnetResolver = new FakeDotnetResolver(); From 7e8da96a4452ba855a5e79e6503318f6b52b3b58 Mon Sep 17 00:00:00 2001 From: Bret Johnson Date: Fri, 10 Jan 2025 14:20:43 -0500 Subject: [PATCH 09/38] Bump xamlTools to 17.13.35709.178 --- CHANGELOG.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d187936b..98850254f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ - 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 + * Bump xamlTools to 17.13.35709.178 (PR: [#7914](https://github.com/dotnet/vscode-csharp/pull/7914)) + # 2.62.x # 2.61.x diff --git a/package.json b/package.json index e10798d3c..f79520ab1 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "omniSharp": "1.39.12", "razor": "9.0.0-preview.25052.3", "razorOmnisharp": "7.0.0-preview.23363.1", - "xamlTools": "17.13.35703.12" + "xamlTools": "17.13.35709.178" }, "main": "./dist/extension", "l10n": "./l10n", From 4614eb6e719c540bfb9013b6d700c88e798cd35d Mon Sep 17 00:00:00 2001 From: Bret Johnson Date: Fri, 10 Jan 2025 14:29:04 -0500 Subject: [PATCH 10/38] Put CHANGELOG update in right section --- CHANGELOG.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98850254f..d3b2cd19a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,10 +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) -# Latest - * Bump xamlTools to 17.13.35709.178 (PR: [#7914](https://github.com/dotnet/vscode-csharp/pull/7914)) - # 2.62.x + * Bump xamlTools to 17.13.35709.178 (PR: [#7914](https://github.com/dotnet/vscode-csharp/pull/7914)) # 2.61.x * Update Razor to 9.0.0-preview.25052.3 (PR: [#7904](https://github.com/dotnet/vscode-csharp/pull/7904)) From b45f2e712c15f6b1a9e17eb28bb74baa33a5b3a6 Mon Sep 17 00:00:00 2001 From: Gen Lu Date: Fri, 10 Jan 2025 12:24:38 -0800 Subject: [PATCH 11/38] Update build instructions --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d3d88a01f..b4d1092f1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,8 +35,8 @@ Follow these steps to build, run, and test the repository: #### Building -1. Run `npm i` - This command installs the project dependencies. -2. Run `vsts-npm-auth -config .npmrc` - This command will configure your credentials for the next command. +1. Run `npm install -g vsts-npm-auth`, then run `vsts-npm-auth -config .npmrc` - This command will configure your credentials for the next command. +2. Run `npm i` - This command installs the project dependencies. 3. Run `npm i -g gulp` - This command installs Gulp globally. 4. Run `gulp installDependencies` - This command downloads the various dependencies as specified by the version in the [package.json](package.json) file. 5. Run `code .` - This command opens the project in Visual Studio Code. From 5a376753d3e1ae602c5169cec991ac57beb6a2a8 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Fri, 10 Jan 2025 13:01:24 -0800 Subject: [PATCH 12/38] Update Roslyn to 4.14.0-1.25060.2 --- CHANGELOG.md | 6 ++++++ package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d187936b..8fb4c3074 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.62.x +* Update Roslyn to 4.14.0-1.25060.2 (PR: [#7916](https://github.com/dotnet/vscode-csharp/pull/7916)) + * Support Extracting method with complex flow control cosntructs in them. (PR: [#76686](https://github.com/dotnet/roslyn/pull/76686)) + * Classify the langword attribute value in DocComments (PR: [#76678](https://github.com/dotnet/roslyn/pull/76678)) + * Fix FAR/rename with method type parameters (PR: [#76652](https://github.com/dotnet/roslyn/pull/76652)) + * Fix assembly load when file path contains URI reserved chars (PR: [#76617](https://github.com/dotnet/roslyn/pull/76617)) + * Reduce allocations during checksum creation. (PR: [#76524](https://github.com/dotnet/roslyn/pull/76524)) # 2.61.x * Update Razor to 9.0.0-preview.25052.3 (PR: [#7904](https://github.com/dotnet/vscode-csharp/pull/7904)) diff --git a/package.json b/package.json index e10798d3c..c2a5da540 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ } }, "defaults": { - "roslyn": "4.13.0-3.25051.1", + "roslyn": "4.14.0-1.25060.2", "omniSharp": "1.39.12", "razor": "9.0.0-preview.25052.3", "razorOmnisharp": "7.0.0-preview.23363.1", From 14c6c242a7525dfda1c8654a5f5d96ed41675ef5 Mon Sep 17 00:00:00 2001 From: dibarbet Date: Sat, 11 Jan 2025 00:12:23 +0000 Subject: [PATCH 13/38] 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 dd39cffa6..c08d067c9 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.63.x + # 2.62.x * Update Roslyn to 4.14.0-1.25060.2 (PR: [#7916](https://github.com/dotnet/vscode-csharp/pull/7916)) * Support Extracting method with complex flow control cosntructs in them. (PR: [#76686](https://github.com/dotnet/roslyn/pull/76686)) diff --git a/version.json b/version.json index ae14a65b6..6819efb3b 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.62", + "version": "2.63", "publicReleaseRefSpec": [ "^refs/heads/release$", "^refs/heads/prerelease$", From 81dade574d98dc6734a4f10f5ec53d1e0b8b2953 Mon Sep 17 00:00:00 2001 From: GitOps <1esptcore@microsoft.com> Date: Fri, 10 Jan 2025 21:35:58 +0000 Subject: [PATCH 14/38] Updated for https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build?definitionId=1275 by using baselines generated in https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2617723 --- .../1espt/PipelineAutobaseliningConfig.yml | 100 +++++++++--------- .config/guardian/.gdnbaselines | 48 ++++----- 2 files changed, 73 insertions(+), 75 deletions(-) diff --git a/.config/1espt/PipelineAutobaseliningConfig.yml b/.config/1espt/PipelineAutobaseliningConfig.yml index 4b7d1c2ba..9e5b35d26 100644 --- a/.config/1espt/PipelineAutobaseliningConfig.yml +++ b/.config/1espt/PipelineAutobaseliningConfig.yml @@ -1,52 +1,52 @@ ## DO NOT MODIFY THIS FILE MANUALLY. This is part of auto-baselining from 1ES Pipeline Templates. Go to [https://aka.ms/1espt-autobaselining] for more details. -pipelines: - 1275: - retail: - source: - credscan: - lastModifiedDate: 2024-03-18 - eslint: - lastModifiedDate: 2024-03-18 - armory: - lastModifiedDate: 2024-03-18 - psscriptanalyzer: - lastModifiedDate: 2024-04-19 - binary: - credscan: - lastModifiedDate: 2024-03-18 - binskim: - lastModifiedDate: 2024-03-18 - spotbugs: - lastModifiedDate: 2024-04-19 - 1264: - retail: - source: - credscan: - lastModifiedDate: 2024-03-19 - eslint: - lastModifiedDate: 2024-03-19 - psscriptanalyzer: - lastModifiedDate: 2024-03-19 - armory: - lastModifiedDate: 2024-03-19 - policheck: - lastModifiedDate: 2024-06-27 - binary: - credscan: - lastModifiedDate: 2024-03-19 - binskim: - lastModifiedDate: 2024-03-19 - spotbugs: - lastModifiedDate: 2024-03-19 - 1271: - retail: - source: - credscan: - lastModifiedDate: 2024-03-27 - eslint: - lastModifiedDate: 2024-03-27 - psscriptanalyzer: - lastModifiedDate: 2024-03-27 - armory: - lastModifiedDate: 2024-03-27 +pipelines: + 1275: + retail: + source: + credscan: + lastModifiedDate: 2024-03-18 + eslint: + lastModifiedDate: 2024-03-18 + armory: + lastModifiedDate: 2024-03-18 + psscriptanalyzer: + lastModifiedDate: 2024-04-19 + binary: + credscan: + lastModifiedDate: 2024-03-18 + binskim: + lastModifiedDate: 2025-01-10 + spotbugs: + lastModifiedDate: 2024-04-19 + 1264: + retail: + source: + credscan: + lastModifiedDate: 2024-03-19 + eslint: + lastModifiedDate: 2024-03-19 + psscriptanalyzer: + lastModifiedDate: 2024-03-19 + armory: + lastModifiedDate: 2024-03-19 + policheck: + lastModifiedDate: 2024-06-27 + binary: + credscan: + lastModifiedDate: 2024-03-19 + binskim: + lastModifiedDate: 2024-03-19 + spotbugs: + lastModifiedDate: 2024-03-19 + 1271: + retail: + source: + credscan: + lastModifiedDate: 2024-03-27 + eslint: + lastModifiedDate: 2024-03-27 + psscriptanalyzer: + lastModifiedDate: 2024-03-27 + armory: + lastModifiedDate: 2024-03-27 diff --git a/.config/guardian/.gdnbaselines b/.config/guardian/.gdnbaselines index 4db404c41..631aaa846 100644 --- a/.config/guardian/.gdnbaselines +++ b/.config/guardian/.gdnbaselines @@ -1,25 +1,23 @@ -{ - "hydrated": false, - "properties": { - "helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/baselines", - "hydrationStatus": "This file does not contain identifying data. It is safe to check into your repo. To hydrate this file with identifying data, run `guardian hydrate --help` and follow the guidance." - }, - "version": "1.0.0", - "baselines": { - "default": { - "name": "default", - "createdDate": "2024-09-09 19:35:36Z", - "lastUpdatedDate": "2024-09-09 19:35:36Z" - } - }, - "results": { - "26445e3e484940d2d58c2ffc32ab3895fca4b1589d66e2f2dee2fa01f2c479fb": { - "signature": "26445e3e484940d2d58c2ffc32ab3895fca4b1589d66e2f2dee2fa01f2c479fb", - "alternativeSignatures": [], - "memberOf": [ - "default" - ], - "createdDate": "2024-09-09 19:35:36Z" - } - } -} +{ + "properties": { + "helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/baselines" + }, + "version": "1.0.0", + "baselines": { + "default": { + "name": "default", + "createdDate": "2024-09-09 19:35:36Z", + "lastUpdatedDate": "2024-09-09 19:35:36Z" + } + }, + "results": { + "26445e3e484940d2d58c2ffc32ab3895fca4b1589d66e2f2dee2fa01f2c479fb": { + "signature": "26445e3e484940d2d58c2ffc32ab3895fca4b1589d66e2f2dee2fa01f2c479fb", + "alternativeSignatures": [], + "memberOf": [ + "default" + ], + "createdDate": "2024-09-09 19:35:36Z" + } + } +} From 57779a7617ddccb7fb7be7f1c679d76468347d90 Mon Sep 17 00:00:00 2001 From: GitOps <1esptcore@microsoft.com> Date: Fri, 10 Jan 2025 23:44:15 +0000 Subject: [PATCH 15/38] Updated for https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build?definitionId=1264 by using baselines generated in https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31fcf1bb293/_build/results?buildId=2617808 --- .config/1espt/PipelineAutobaseliningConfig.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/1espt/PipelineAutobaseliningConfig.yml b/.config/1espt/PipelineAutobaseliningConfig.yml index 9e5b35d26..eec0d9373 100644 --- a/.config/1espt/PipelineAutobaseliningConfig.yml +++ b/.config/1espt/PipelineAutobaseliningConfig.yml @@ -36,7 +36,7 @@ pipelines: credscan: lastModifiedDate: 2024-03-19 binskim: - lastModifiedDate: 2024-03-19 + lastModifiedDate: 2025-01-10 spotbugs: lastModifiedDate: 2024-03-19 1271: From 225323b2734cfd88b394e7237edc6c45ed7b93ad Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Mon, 13 Jan 2025 15:31:10 -0800 Subject: [PATCH 16/38] Use 1ES relaeseJob in release.yml --- azure-pipelines/release.yml | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/azure-pipelines/release.yml b/azure-pipelines/release.yml index 2e36b9cf3..a2a98e353 100644 --- a/azure-pipelines/release.yml +++ b/azure-pipelines/release.yml @@ -39,20 +39,17 @@ extends: name: netcore1espool-internal image: 1es-ubuntu-2204 os: linux + templateContext: + type: releaseJob + isProduction: true + inputs: + - input: pipelineArtifact + pipeline: officialBuildCI + destinationPath: $(Pipeline.Workspace) strategy: runOnce: deploy: steps: - - download: 'none' - - task: DownloadPipelineArtifact@2 - displayName: '📦 Download artifacts from build pipeline.' - inputs: - buildType: 'specific' - project: 'internal' - definition: 1264 - buildVersionToDownload: 'specific' - buildId: '$(resources.pipeline.officialBuildCI.runID)' - branchName: '$(resources.pipeline.officialBuildCI.sourceBranch)' - template: /azure-pipelines/install-node.yml@self - pwsh: | npm install --global @vscode/vsce From 80a46e92e690468d8c46dd624162cce9c8749d06 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Mon, 13 Jan 2025 18:06:19 -0800 Subject: [PATCH 17/38] Publish VSIXs to Packages artifact --- azure-pipelines/build.yml | 27 +++++++++++++-------------- azure-pipelines/release.yml | 1 + 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/azure-pipelines/build.yml b/azure-pipelines/build.yml index 460edeee8..fc803b99b 100644 --- a/azure-pipelines/build.yml +++ b/azure-pipelines/build.yml @@ -67,26 +67,25 @@ jobs: env: SignType: $(signType) + - task: CopyFiles@2 + inputs: + SourceFolder: '$(Build.SourcesDirectory)/vsix' + TargetFolder: '$(Build.SourcesDirectory)/Packages/VSIX_$(channel)' + + - task: 1ES.PublishBuildArtifacts@1 + condition: succeeded() + displayName: 'Publish VSIXs' + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/Packages' + ArtifactName: 'Packages' + - ${{ if eq(parameters.isOfficial, true) }}: - - task: 1ES.PublishBuildArtifacts@1 - condition: succeeded() - displayName: 'Publish VSIXs' - inputs: - PathtoPublish: '$(Build.SourcesDirectory)/vsix' - ArtifactName: 'VSIX_$(channel)' - task: 1ES.PublishBuildArtifacts@1 condition: succeededOrFailed() displayName: 'Publish Signing Logs' inputs: PathtoPublish: '$(Build.SourcesDirectory)/out/logs' ArtifactName: '${{ parameters.platform }} Signing Logs' - - ${{ else }}: - - task: PublishBuildArtifacts@1 - condition: succeeded() - displayName: 'Publish VSIXs' - inputs: - PathtoPublish: '$(Build.SourcesDirectory)/vsix' - ArtifactName: 'VSIX_$(channel)' - script: npm run test:artifacts - displayName: 'Run artifacts tests' \ No newline at end of file + displayName: 'Run artifacts tests' diff --git a/azure-pipelines/release.yml b/azure-pipelines/release.yml index a2a98e353..b468d6722 100644 --- a/azure-pipelines/release.yml +++ b/azure-pipelines/release.yml @@ -45,6 +45,7 @@ extends: inputs: - input: pipelineArtifact pipeline: officialBuildCI + artifactName: Packages destinationPath: $(Pipeline.Workspace) strategy: runOnce: From e1d2deb3e9db738c272b51bce840f488b1ddcba1 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Mon, 13 Jan 2025 21:27:47 -0800 Subject: [PATCH 18/38] Fixup --- azure-pipelines/build.yml | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/azure-pipelines/build.yml b/azure-pipelines/build.yml index fc803b99b..e74e0417c 100644 --- a/azure-pipelines/build.yml +++ b/azure-pipelines/build.yml @@ -72,14 +72,13 @@ jobs: SourceFolder: '$(Build.SourcesDirectory)/vsix' TargetFolder: '$(Build.SourcesDirectory)/Packages/VSIX_$(channel)' - - task: 1ES.PublishBuildArtifacts@1 - condition: succeeded() - displayName: 'Publish VSIXs' - inputs: - PathtoPublish: '$(Build.SourcesDirectory)/Packages' - ArtifactName: 'Packages' - - ${{ if eq(parameters.isOfficial, true) }}: + - task: 1ES.PublishBuildArtifacts@1 + condition: succeeded() + displayName: 'Publish VSIXs' + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/Packages' + ArtifactName: 'Packages' - task: 1ES.PublishBuildArtifacts@1 condition: succeededOrFailed() displayName: 'Publish Signing Logs' @@ -87,5 +86,13 @@ jobs: PathtoPublish: '$(Build.SourcesDirectory)/out/logs' ArtifactName: '${{ parameters.platform }} Signing Logs' + - ${{ else }}: + - task: PublishBuildArtifacts@1 + condition: succeeded() + displayName: 'Publish VSIXs' + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/Packages' + ArtifactName: 'Packages' + - script: npm run test:artifacts displayName: 'Run artifacts tests' From 9e5c75c89ffc7538c26729be1b61909394850440 Mon Sep 17 00:00:00 2001 From: David Wengier Date: Wed, 15 Jan 2025 16:35:28 +1100 Subject: [PATCH 19/38] Bump Razor --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c08d067c9..810435e1b 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) # 2.63.x +* Update Roslyn to ... +* Update Razor to 9.0.0-preview.25064.4 + * Wire up the UseRoslynTokenizer feature properly (#11386) (PR: [#11386](https://github.com/dotnet/razor/pull/11386)) + * New Razor document formatting engine (#11364) (PR: [#11364](https://github.com/dotnet/razor/pull/11364)) + * Fix a couple of exceptions encountered when formatting documents with preprocessor directives (#11373) (PR: [#11373](https://github.com/dotnet/razor/pull/11373)) + * Allow RazorProjectEngine.Process to be cancelled (#11334) (PR: [#11334](https://github.com/dotnet/razor/pull/11334)) + * Further refactoring of Razor tooling project system (#11320) (PR: [#11320](https://github.com/dotnet/razor/pull/11320)) # 2.62.x * Update Roslyn to 4.14.0-1.25060.2 (PR: [#7916](https://github.com/dotnet/vscode-csharp/pull/7916)) diff --git a/package.json b/package.json index eda5e2335..9319aad2f 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "defaults": { "roslyn": "4.14.0-1.25060.2", "omniSharp": "1.39.12", - "razor": "9.0.0-preview.25052.3", + "razor": "9.0.0-preview.25064.4", "razorOmnisharp": "7.0.0-preview.23363.1", "xamlTools": "17.13.35709.178" }, From 0d76e4ce95525354480e4a468d959b89deaa548f Mon Sep 17 00:00:00 2001 From: David Wengier Date: Wed, 15 Jan 2025 16:35:40 +1100 Subject: [PATCH 20/38] Remove old feature flag, and add new one --- package.json | 12 +++++------- package.nls.json | 7 +------ src/razor/src/razorLanguageServerClient.ts | 4 ++-- src/razor/src/razorLanguageServerOptions.ts | 2 +- src/razor/src/razorLanguageServerOptionsResolver.ts | 4 ++-- 5 files changed, 11 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 9319aad2f..473499d69 100644 --- a/package.json +++ b/package.json @@ -1513,17 +1513,15 @@ "description": "%configuration.razor.languageServer.forceRuntimeCodeGeneration%", "order": 90 }, - "razor.languageServer.useRoslynTokenizer": { - "type": "boolean", - "scope": "machine-overridable", - "default": false, - "markdownDescription": "%configuration.razor.languageServer.useRoslynTokenizer%", - "order": 90 - }, "razor.languageServer.suppressLspErrorToasts": { "type": "boolean", "default": true, "description": "%configuration.razor.languageServer.suppressLspErrorToasts%" + }, + "razor.languageServer.useNewFormattingEngine": { + "type": "boolean", + "default": true, + "description": "%configuration.razor.languageServer.useNewFormattingEngine%" } } }, diff --git a/package.nls.json b/package.nls.json index 42ebf7acf..fef6a911e 100644 --- a/package.nls.json +++ b/package.nls.json @@ -128,13 +128,8 @@ "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.useRoslynTokenizer": { - "message": "(EXPERIMENTAL) Use the C# tokenizer for Razor files in the IDE. Enables some new C# features, like interpolated and raw strings, in Razor files opened in Visual Studio Code. This matches using `use-roslyn-tokenizer` in a `.csproj` file for command line builds, and may result in inconsistencies if this option and your project files do not match.", - "comment": [ - "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." - ] - }, "configuration.razor.languageServer.suppressLspErrorToasts": "Suppresses error toasts from showing up if the server encounters a recoverable error.", + "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", "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/razorLanguageServerClient.ts b/src/razor/src/razorLanguageServerClient.ts index 5944a0ba2..39ed1405e 100644 --- a/src/razor/src/razorLanguageServerClient.ts +++ b/src/razor/src/razorLanguageServerClient.ts @@ -267,8 +267,8 @@ export class RazorLanguageServerClient implements vscode.Disposable { args.push('true'); } - if (options.useRoslynTokenizer) { - args.push('--UseRoslynTokenizer'); + if (options.useNewFormattingEngine) { + args.push('--UseNewFormattingEngine'); args.push('true'); } diff --git a/src/razor/src/razorLanguageServerOptions.ts b/src/razor/src/razorLanguageServerOptions.ts index e93802c84..beb8b2f7a 100644 --- a/src/razor/src/razorLanguageServerOptions.ts +++ b/src/razor/src/razorLanguageServerOptions.ts @@ -11,6 +11,6 @@ export interface RazorLanguageServerOptions { debug?: boolean; usingOmniSharp: boolean; forceRuntimeCodeGeneration: boolean; - useRoslynTokenizer: boolean; suppressErrorToasts: boolean; + useNewFormattingEngine: boolean; } diff --git a/src/razor/src/razorLanguageServerOptionsResolver.ts b/src/razor/src/razorLanguageServerOptionsResolver.ts index 2c7d50ad0..66555f068 100644 --- a/src/razor/src/razorLanguageServerOptionsResolver.ts +++ b/src/razor/src/razorLanguageServerOptionsResolver.ts @@ -35,8 +35,8 @@ export function resolveRazorLanguageServerOptions( forceRuntimeCodeGeneration = hotReload; } - const useRoslynTokenizer = serverConfig.get('useRoslynTokenizer'); const suppressErrorToasts = serverConfig.get('suppressLspErrorToasts'); + const useNewFormattingEngine = serverConfig.get('useNewFormattingEngine'); return { serverPath: languageServerExecutablePath, @@ -44,8 +44,8 @@ export function resolveRazorLanguageServerOptions( outputChannel: logger.outputChannel, usingOmniSharp, forceRuntimeCodeGeneration, - useRoslynTokenizer, suppressErrorToasts, + useNewFormattingEngine, } as RazorLanguageServerOptions; } From 1429685b220f2d73421746fc69490c9e9a79080e Mon Sep 17 00:00:00 2001 From: David Wengier Date: Thu, 16 Jan 2025 11:09:21 +1100 Subject: [PATCH 21/38] Bump Roslyn and update changelog --- CHANGELOG.md | 18 ++++++++++++++++-- package.json | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 810435e1b..97c3879fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,22 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # 2.63.x -* Update Roslyn to ... -* Update Razor to 9.0.0-preview.25064.4 +* Update Roslyn to 4.14.0-1.25065.8 (PR: [#7927](https://github.com/dotnet/vscode-csharp/pull/7927)) + * Remove explicit recursion in the json detection analyzer (#76764) (PR: [#76764](https://github.com/dotnet/roslyn/pull/76764)) + * Consider silly cyclic assignment in scoped variance (#76261) (PR: [#76261](https://github.com/dotnet/roslyn/pull/76261)) + * Fix ordering of 'params' vs 'scoped' in metadata as source (#76745) (PR: [#76745](https://github.com/dotnet/roslyn/pull/76745)) + * Change partial keyword recommender to better handle partial member syntax (#76744) (PR: [#76744](https://github.com/dotnet/roslyn/pull/76744)) + * Ensure unconverted elements are converted when on LHS (#76675) (PR: [#76675](https://github.com/dotnet/roslyn/pull/76675)) + * Proffer CssVisualDiagnosticsService brokered service from C# DevKit to C# Extension (#76737) (PR: [#76737](https://github.com/dotnet/roslyn/pull/76737)) + * Disable extract class/interface to a new file when unsupported by the workspace. (#76717) (PR: [#76717](https://github.com/dotnet/roslyn/pull/76717)) + * Fix issue parsing regex category (#76735) (PR: [#76735](https://github.com/dotnet/roslyn/pull/76735)) + * Properly simplify pattern when converting to pattern matching (#76734) (PR: [#76734](https://github.com/dotnet/roslyn/pull/76734)) + * Do not lift type parameters in extract method declared within the selected region (#76724) (PR: [#76724](https://github.com/dotnet/roslyn/pull/76724)) + * Always use .OriginalDefinition uniformly in the unread-members analyzer (#76698) (PR: [#76698](https://github.com/dotnet/roslyn/pull/76698)) + * Adding checks for mutable structs. (#76711) (PR: [#76711](https://github.com/dotnet/roslyn/pull/76711)) + * Stash and restore original culture in CultureNormalizer (#76713) (PR: [#76713](https://github.com/dotnet/roslyn/pull/76713)) + * Add option for choosing stdio as the LSP communication channel (#76437) (PR: [#76437](https://github.com/dotnet/roslyn/pull/76437)) +* Update Razor to 9.0.0-preview.25064.4 (PR: [#7927](https://github.com/dotnet/vscode-csharp/pull/7927)) * Wire up the UseRoslynTokenizer feature properly (#11386) (PR: [#11386](https://github.com/dotnet/razor/pull/11386)) * New Razor document formatting engine (#11364) (PR: [#11364](https://github.com/dotnet/razor/pull/11364)) * Fix a couple of exceptions encountered when formatting documents with preprocessor directives (#11373) (PR: [#11373](https://github.com/dotnet/razor/pull/11373)) diff --git a/package.json b/package.json index 473499d69..03a9d335d 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ } }, "defaults": { - "roslyn": "4.14.0-1.25060.2", + "roslyn": "4.14.0-1.25065.8", "omniSharp": "1.39.12", "razor": "9.0.0-preview.25064.4", "razorOmnisharp": "7.0.0-preview.23363.1", From 8bb86ec3db97a2c4820e2ccd0783e8d2a75de471 Mon Sep 17 00:00:00 2001 From: dotnet-bot Date: Thu, 16 Jan 2025 02:12:21 +0000 Subject: [PATCH 22/38] Localization result of e1854718959d0887958f47de26ea34328f7c7d3f. --- 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 16ba6a264..93ef0b2fe 100644 --- a/package.nls.cs.json +++ b/package.nls.cs.json @@ -123,7 +123,7 @@ "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": "Potlačí zobrazování informačních zpráv o chybách, pokud na serveru dojde k chybě, ze které se dá zotavit.", - "configuration.razor.languageServer.useRoslynTokenizer": "(EXPERIMENTÁLNÍ) Pro soubory Razor v integrovaném vývojovém prostředí (IDE) použijte tokenizér C#. Povolí některé nové funkce jazyka C#, jako jsou interpolované a nezpracované řetězce, v souborech Razor otevřených v aplikaci Visual Studio Code. To odpovídá použití tokenizátoru use-roslyn-tokenizer v souboru .csproj pro sestavení příkazového řádku. Pokud se tato možnost a soubory projektu neshodují, může dojít k nekonzistenci.", + "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", "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 7a972ba79..a6e9af91b 100644 --- a/package.nls.de.json +++ b/package.nls.de.json @@ -123,7 +123,7 @@ "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": "Unterdrückt, dass Fehler-Popups angezeigt werden, wenn auf dem Server ein wiederherstellbarer Fehler auftritt.", - "configuration.razor.languageServer.useRoslynTokenizer": "(EXPERIMENTELL) Verwenden Sie den C#-Tokenizer für Razor-Dateien in der IDE. Aktiviert einige neue C#-Features, z. B. interpolierte und unformatierte Zeichenfolgen, in Razor-Dateien, die in Visual Studio Code geöffnet sind. Dies entspricht der Verwendung von \"use-roslyn-tokenizer\" in einer CSPROJ-Datei für Befehlszeilenbuilds und kann zu Inkonsistenzen führen, wenn diese Option und Ihre Projektdateien nicht übereinstimmen.", + "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", "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 17be748b9..7a7a86022 100644 --- a/package.nls.es.json +++ b/package.nls.es.json @@ -123,7 +123,7 @@ "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": "Suprime la visualización de notificaciones del sistema de error si el servidor encuentra un error recuperable.", - "configuration.razor.languageServer.useRoslynTokenizer": "(EXPERIMENTAL) Use el tokenizador de C# para los archivos de Razor en el IDE. Habilita algunas características nuevas de C#, como cadenas interpoladas y sin formato, en archivos de Razor abiertos en Visual Studio Code. Esto coincide con el uso del \"use-roslyn-tokenizador\" en un archivo \".csproj\" para las compilaciones de línea de comandos y puede dar lugar a incoherencias si esta opción y los archivos del proyecto no coinciden.", + "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", "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 056ae7fb5..3ad9cdf67 100644 --- a/package.nls.fr.json +++ b/package.nls.fr.json @@ -123,7 +123,7 @@ "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": "Supprime l’affichage des notifications toast d’erreur si le serveur a rencontré une erreur récupérable.", - "configuration.razor.languageServer.useRoslynTokenizer": "(EXPÉRIMENTAL) Utilisez le générateur de jetons C# pour les fichiers Razor dans l’IDE. Permet d’activer certaines nouvelles fonctionnalités de C#, comme les chaînes brutes et interpolées dans des fichiers Razor ouverts dans Visual Studio Code. Cela correspond à l’utilisation de `use-roslyn-tokenizer` dans un fichier `.csproj` pour les générations de ligne de commande et peut entraîner des incohérences si cette option et vos fichiers de projet ne correspondent pas.", + "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", "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 477ff927b..0db32ac24 100644 --- a/package.nls.it.json +++ b/package.nls.it.json @@ -123,7 +123,7 @@ "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": "Impedisce la visualizzazione degli avvisi popup di errore se il server rileva un errore reversibile.", - "configuration.razor.languageServer.useRoslynTokenizer": "(SPERIMENTALE) Usare il tokenizer C# per i file Razor nell'IDE. Abilita alcune nuove funzionalità C#, come le stringhe interpolate e non elaborate, nei file Razor aperti in Visual Studio Code. Corrisponde all'uso di 'use-roslyn-tokenizer' in un file '.csproj' per le compilazioni della riga di comando e può causare incoerenze se questa opzione e i file di progetto non corrispondono.", + "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", "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 6b2edc7b6..0e70745d3 100644 --- a/package.nls.ja.json +++ b/package.nls.ja.json @@ -123,7 +123,7 @@ "configuration.razor.languageServer.directory": "Razor Language Server ディレクトリへのパスをオーバーライドします。", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(試験段階) Razor ファイルのデザイン時間/ランタイム コード生成の併用を有効にする", "configuration.razor.languageServer.suppressLspErrorToasts": "サーバーで回復可能なエラーが発生した場合に、エラー トーストが表示されないようにします。", - "configuration.razor.languageServer.useRoslynTokenizer": "(試験段階) IDE で Razor ファイルの C# トークナイザーを使用します。Visual Studio Code で開かれた Razor ファイルで、挿入文字列や生文字列などの新しい C# 機能を有効にします。これは、コマンド ライン ビルドに 'use-roslyn-tokenizer' を使用して一致します。このオプションとプロジェクト ファイルが一致しない場合、不整合が発生する可能性があります。", + "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", "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 c3e000e44..d744beb34 100644 --- a/package.nls.ko.json +++ b/package.nls.ko.json @@ -123,7 +123,7 @@ "configuration.razor.languageServer.directory": "Razor 언어 서버 디렉터리의 경로를 재정의합니다.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(실험적) Razor 파일에 대해 결합된 디자인 타임/런타임 코드 생성 사용", "configuration.razor.languageServer.suppressLspErrorToasts": "서버에서 복구 가능한 오류가 발생하는 경우 오류 알림이 표시되지 않도록 합니다.", - "configuration.razor.languageServer.useRoslynTokenizer": "(실험적) IDE에서 Razor 파일에 C# 토큰화기를 사용합니다. Visual Studio Code에서 열린 Razor 파일에서 보간된 문자열 및 원시 문자열과 같은 몇 가지 새로운 C# 기능을 사용하도록 설정합니다. 이는 명령줄 빌드의 '.csproj' 파일에서 'use-roslyn-tokenizer'를 사용하여 일치하며, 이 옵션과 프로젝트 파일이 일치하지 않으면 불일치가 발생할 수 있습니다.", + "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", "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 d6b68dac6..ab72446bb 100644 --- a/package.nls.pl.json +++ b/package.nls.pl.json @@ -123,7 +123,7 @@ "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": "Pomija wyświetlanie wyskakujących powiadomień o błędach, jeśli serwer napotka błąd do odzyskania.", - "configuration.razor.languageServer.useRoslynTokenizer": "(EKSPERYMENTALNE) Użyj tokenizatora języka C# dla plików Razor w środowisku IDE. Włącza niektóre nowe funkcje języka C#, takie jak ciągi interpolowane i nieprzetworzone, w plikach Razor otwartych w programie Visual Studio Code. To jest dopasowane za pomocą „use-roslyn-tokenizer” w pliku „csproj” dla kompilacji wiersza polecenia i może spowodować niespójności, jeśli ta opcja i pliki projektu nie są zgodne.", + "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", "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 f9bd14295..6a58f61f5 100644 --- a/package.nls.pt-br.json +++ b/package.nls.pt-br.json @@ -123,7 +123,7 @@ "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": "Suprime a exibição de notificações do erro se o servidor encontrar um erro recuperável.", - "configuration.razor.languageServer.useRoslynTokenizer": "(EXPERIMENTAL) Use o tokenizador C# para arquivos Razor no IDE. Habilita alguns novos recursos do C#, como strings interpoladas e brutas, em arquivos Razor abertos no Visual Studio Code. Isso corresponde ao uso de `use-roslyn-tokenizer` em um arquivo `.csproj` para compilações via linha de comando, e pode resultar em inconsistências se essa opção e seus arquivos de projeto não coincidirem.", + "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", "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 b71b9c5e3..a7338bc6a 100644 --- a/package.nls.ru.json +++ b/package.nls.ru.json @@ -123,7 +123,7 @@ "configuration.razor.languageServer.directory": "Переопределяет путь к каталогу языкового сервера Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(ЭКСПЕРИМЕНТАЛЬНАЯ ФУНКЦИЯ) Включение комбинированной генерации кода во время разработки и во время выполнения для файлов Razor", "configuration.razor.languageServer.suppressLspErrorToasts": "Подавляет появление всплывающих сообщений об ошибках, если сервер обнаруживает устранимую ошибку.", - "configuration.razor.languageServer.useRoslynTokenizer": "(ЭКСПЕРИМЕНТАЛЬНАЯ ФУНКЦИЯ) Используйте создатель маркеров C# для файлов Razor в IDE. Включает некоторые новые функции C#, такие как интерполированные и необработанные строки в файлах Razor, открытых в Visual Studio Code. Это соответствует использованию \"use-lyn-tokenizer\" в CSPROJ-файле для сборок командной строки и может привести к несоответствиям, если этот параметр и файлы проекта не соответствуют друг другу.", + "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", "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 d017c15bc..2f896110f 100644 --- a/package.nls.tr.json +++ b/package.nls.tr.json @@ -123,7 +123,7 @@ "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": "Sunucu kurtarılabilir bir hatayla karşılaştığında hata bildirimlerinin görünmesini engeller.", - "configuration.razor.languageServer.useRoslynTokenizer": "(DENEYSEL) IDE'de Razor dosyaları için C# belirteç oluşturucuyu kullanın. Visual Studio Code'da açılan Razor dosyalarında düz metin arasına kod eklenmiş dizeler ve ham dizeler gibi bazı yeni C# özelliklerini etkinleştirir. Bu komut satırı derlemeleri için `.csproj` dosyalarında `use-roslyn-tokenizer` kullanımıyla eşleşir ve bu seçenekle proje dosyalarınız eşleşmezse tutarsızlıklara yol açabilir.", + "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", "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 98d5e1bb7..78fe32cc5 100644 --- a/package.nls.zh-cn.json +++ b/package.nls.zh-cn.json @@ -123,7 +123,7 @@ "configuration.razor.languageServer.directory": "重写 Razor 语言服务器目录的路径。", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(试验性)为 Razor 文件启用组合设计时/运行时代码生成", "configuration.razor.languageServer.suppressLspErrorToasts": "当服务器遇到可恢复错误时,禁止显示错误 toast。", - "configuration.razor.languageServer.useRoslynTokenizer": "(实验性)对 IDE 中的 Razor 文件使用 C# tokenizer。在 Visual Studio Code 中打开的 Razor 文件中启用一些新的 C# 功能,例如内插字符串和原始字符串。这相当于在 `.csproj` 文件中使用 `use-roslyn-tokenizer` 进行命令行生成,如果此选项与你的项目文件不匹配,这可能导致不一致。", + "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", "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 c6739ca2b..179031ed1 100644 --- a/package.nls.zh-tw.json +++ b/package.nls.zh-tw.json @@ -123,7 +123,7 @@ "configuration.razor.languageServer.directory": "覆寫 Razor 語言伺服器目錄的路徑。", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(實驗性) 啟用適用於 Razor 檔案的合併設計階段/執行階段程式碼產生", "configuration.razor.languageServer.suppressLspErrorToasts": "如果伺服器發生可復原的錯誤,隱藏不顯示錯誤快顯通知。", - "configuration.razor.languageServer.useRoslynTokenizer": "(實驗性) 使用 IDE 中適用於 Razor 檔案的 C# Tokenizer。在 Visual Studio Code 中開啟的一些新 Razor 檔案中啟用一些新的 C# 功能,例如差補和原始字串。這會在命令行建置的 '.csproj' 檔案中,使用 `use-roslyn-tokenizer` 來比對,如果此選項與專案檔案不相符,可能會導致不一致。", + "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", "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 01d8f6db563913deedc45aafedfb4e7f29d48c87 Mon Sep 17 00:00:00 2001 From: Andrew Hall Date: Thu, 16 Jan 2025 10:22:53 -0800 Subject: [PATCH 23/38] Add razor definition integration tests (#7869) --- .../definition.integration.test.ts | 114 ++++++++++++++++++ .../RazorApp/Pages/Definition.razor | 30 +++++ 2 files changed, 144 insertions(+) create mode 100644 test/razor/razorIntegrationTests/definition.integration.test.ts create mode 100644 test/razor/razorIntegrationTests/testAssets/RazorApp/Pages/Definition.razor diff --git a/test/razor/razorIntegrationTests/definition.integration.test.ts b/test/razor/razorIntegrationTests/definition.integration.test.ts new file mode 100644 index 000000000..2590899e3 --- /dev/null +++ b/test/razor/razorIntegrationTests/definition.integration.test.ts @@ -0,0 +1,114 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as path from 'path'; +import * as vscode from 'vscode'; +import { beforeAll, afterAll, test, expect, beforeEach } from '@jest/globals'; +import testAssetWorkspace from './testAssets/testAssetWorkspace'; +import * as integrationHelpers from '../../lsptoolshost/integrationTests/integrationHelpers'; + +integrationHelpers.describeIfWindows(`Razor Definition ${testAssetWorkspace.description}`, function () { + beforeAll(async function () { + if (!integrationHelpers.isRazorWorkspace(vscode.workspace)) { + return; + } + + await integrationHelpers.activateCSharpExtension(); + }); + + beforeEach(async function () { + await integrationHelpers.openFileInWorkspaceAsync(path.join('Pages', 'Definition.razor')); + }); + + afterAll(async () => { + await testAssetWorkspace.cleanupWorkspace(); + }); + + test('Go To Definition', async () => { + if (!integrationHelpers.isRazorWorkspace(vscode.workspace)) { + return; + } + + const position = new vscode.Position(6, 41); + const locations = ( + await vscode.commands.executeCommand( + 'vscode.executeDefinitionProvider', + vscode.window.activeTextEditor!.document.uri, + position + ) + ); + + expect(locations.length).toBe(1); + const definitionLocation = locations[0]; + + expect(definitionLocation.uri.path).toBe(vscode.window.activeTextEditor!.document.uri.path); + expect(definitionLocation.range.start.line).toBe(11); + expect(definitionLocation.range.start.character).toBe(16); + expect(definitionLocation.range.end.line).toBe(11); + expect(definitionLocation.range.end.character).toBe(28); + }); + + test('Find All References', async () => { + if (!integrationHelpers.isRazorWorkspace(vscode.workspace)) { + return; + } + + const position = new vscode.Position(6, 41); + const locations = ( + await vscode.commands.executeCommand( + 'vscode.executeReferenceProvider', + vscode.window.activeTextEditor!.document.uri, + position + ) + ); + + expect(locations.length).toBe(3); + + let definitionLocation = locations[0]; + expect(definitionLocation.uri.path).toBe(vscode.window.activeTextEditor!.document.uri.path); + expect(definitionLocation.range.start.line).toBe(6); + expect(definitionLocation.range.start.character).toBe(33); + expect(definitionLocation.range.end.line).toBe(6); + expect(definitionLocation.range.end.character).toBe(45); + + definitionLocation = locations[1]; + expect(definitionLocation.uri.path).toBe(vscode.window.activeTextEditor!.document.uri.path); + expect(definitionLocation.range.start.line).toBe(11); + expect(definitionLocation.range.start.character).toBe(16); + expect(definitionLocation.range.end.line).toBe(11); + expect(definitionLocation.range.end.character).toBe(28); + + definitionLocation = locations[2]; + expect(definitionLocation.uri.path).toBe(vscode.window.activeTextEditor!.document.uri.path); + expect(definitionLocation.range.start.line).toBe(15); + expect(definitionLocation.range.start.character).toBe(8); + expect(definitionLocation.range.end.line).toBe(15); + expect(definitionLocation.range.end.character).toBe(20); + }); + + test('Go To Implementation', async () => { + if (!integrationHelpers.isRazorWorkspace(vscode.workspace)) { + return; + } + + const position = new vscode.Position(18, 18); + const locations = ( + await vscode.commands.executeCommand( + 'vscode.executeImplementationProvider', + vscode.window.activeTextEditor!.document.uri, + position + ) + ); + + expect(locations.length).toBe(1); + const definitionLocation = locations[0]; + + expect(definitionLocation.uri.path).toBe(vscode.window.activeTextEditor!.document.uri.path); + expect(definitionLocation.range.start.line).toBe(23); + expect(definitionLocation.range.start.character).toBe(10); + expect(definitionLocation.range.end.line).toBe(23); + expect(definitionLocation.range.end.character).toBe(19); + }); +}); diff --git a/test/razor/razorIntegrationTests/testAssets/RazorApp/Pages/Definition.razor b/test/razor/razorIntegrationTests/testAssets/RazorApp/Pages/Definition.razor new file mode 100644 index 000000000..3311af049 --- /dev/null +++ b/test/razor/razorIntegrationTests/testAssets/RazorApp/Pages/Definition.razor @@ -0,0 +1,30 @@ +@page "/definition" + +Counter + +

Counter

+ +

Current count: @currentCount

+ + + +@code { + private int currentCount = 0; + + private void IncrementCount() + { + currentCount++; + } + + interface ITestInterface + { + void TestMethod(); + } + + class TestClass : ITestInterface + { + public void TestMethod() + { + } + } +} From 72b06884b606e0605c2859058d04087677ddc7a2 Mon Sep 17 00:00:00 2001 From: Jordi Ramos Date: Thu, 16 Jan 2025 13:12:20 -0800 Subject: [PATCH 24/38] TextMate bug: recognize codeblocks with curly braces in switch statements (#7929) --- .../syntaxes/aspnetcorerazor.tmLanguage.json | 3 ++ .../syntaxes/aspnetcorerazor.tmLanguage.yml | 1 + .../__snapshots__/grammarTests.test.ts.snap | 54 +++++++++++++++++++ .../tests/switchStatement.ts | 13 +++++ 4 files changed, 71 insertions(+) diff --git a/src/razor/syntaxes/aspnetcorerazor.tmLanguage.json b/src/razor/syntaxes/aspnetcorerazor.tmLanguage.json index cbe2eaf76..e51c87d2b 100644 --- a/src/razor/syntaxes/aspnetcorerazor.tmLanguage.json +++ b/src/razor/syntaxes/aspnetcorerazor.tmLanguage.json @@ -1634,6 +1634,9 @@ { "include": "source.cs#switch-label" }, + { + "include": "#csharp-code-block" + }, { "include": "#razor-codeblock-body" } diff --git a/src/razor/syntaxes/aspnetcorerazor.tmLanguage.yml b/src/razor/syntaxes/aspnetcorerazor.tmLanguage.yml index 01593492c..e1f674aa1 100644 --- a/src/razor/syntaxes/aspnetcorerazor.tmLanguage.yml +++ b/src/razor/syntaxes/aspnetcorerazor.tmLanguage.yml @@ -816,6 +816,7 @@ repository: 1: { name: 'punctuation.curlybrace.open.cs' } patterns: - include: 'source.cs#switch-label' + - include: '#csharp-code-block' - include: '#razor-codeblock-body' end: '(\})' endCaptures: diff --git a/test/razor/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/__snapshots__/grammarTests.test.ts.snap b/test/razor/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/__snapshots__/grammarTests.test.ts.snap index b99e6d4ec..b3955c897 100644 --- a/test/razor/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/__snapshots__/grammarTests.test.ts.snap +++ b/test/razor/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/__snapshots__/grammarTests.test.ts.snap @@ -3385,6 +3385,60 @@ exports[`Grammar tests @switch ( ... ) { ... } Single line 1`] = ` " `; +exports[`Grammar tests @switch ( ... ) { ... } comment in HTML text node 1`] = ` +"Line: @switch (true) + - token from 0 to 1 (@) with scopes text.aspnetcorerazor, meta.statement.switch.razor, keyword.control.cshtml.transition + - token from 1 to 7 (switch) with scopes text.aspnetcorerazor, meta.statement.switch.razor, keyword.control.switch.cs + - token from 7 to 8 ( ) with scopes text.aspnetcorerazor, meta.statement.switch.razor + - token from 8 to 9 (() with scopes text.aspnetcorerazor, meta.statement.switch.razor, punctuation.parenthesis.open.cs + - token from 9 to 13 (true) with scopes text.aspnetcorerazor, meta.statement.switch.razor, constant.language.boolean.true.cs + - token from 13 to 14 ()) with scopes text.aspnetcorerazor, meta.statement.switch.razor, punctuation.parenthesis.close.cs + +Line: { + - token from 0 to 1 ({) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, punctuation.curlybrace.open.cs + +Line: case true: + - token from 0 to 4 ( ) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch + - token from 4 to 8 (case) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, keyword.control.case.cs + - token from 8 to 9 ( ) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch + - token from 9 to 13 (true) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, constant.language.boolean.true.cs + - token from 13 to 14 (:) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, punctuation.separator.colon.cs + +Line: { + - token from 0 to 4 ( ) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch + - token from 4 to 5 ({) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, meta.structure.razor.csharp.codeblock, punctuation.curlybrace.open.cs + +Line:

this is a text https://example.org

Test

+ - token from 0 to 8 ( ) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, meta.structure.razor.csharp.codeblock + - token from 8 to 9 (<) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, meta.structure.razor.csharp.codeblock, punctuation.definition.tag.begin.html + - token from 9 to 10 (p) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, meta.structure.razor.csharp.codeblock, entity.name.tag.html + - token from 10 to 11 (>) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, meta.structure.razor.csharp.codeblock, punctuation.definition.tag.end.html + - token from 11 to 45 (this is a text https://example.org) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, meta.structure.razor.csharp.codeblock + - token from 45 to 46 (<) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, meta.structure.razor.csharp.codeblock, punctuation.definition.tag.begin.html + - token from 46 to 48 (h3) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, meta.structure.razor.csharp.codeblock, entity.name.tag.html + - token from 48 to 49 (>) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, meta.structure.razor.csharp.codeblock, punctuation.definition.tag.end.html + - token from 49 to 53 (Test) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, meta.structure.razor.csharp.codeblock + - token from 53 to 55 () with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, meta.structure.razor.csharp.codeblock, punctuation.definition.tag.end.html + - token from 58 to 60 () with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, meta.structure.razor.csharp.codeblock, punctuation.definition.tag.end.html + +Line: } + - token from 0 to 4 ( ) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, meta.structure.razor.csharp.codeblock + - token from 4 to 5 (}) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, meta.structure.razor.csharp.codeblock, punctuation.curlybrace.close.cs + +Line: break; + - token from 0 to 8 ( ) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch + - token from 8 to 13 (break) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, keyword.control.flow.break.cs + - token from 13 to 14 (;) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, punctuation.terminator.statement.cs + +Line: } + - token from 0 to 1 (}) with scopes text.aspnetcorerazor, meta.statement.switch.razor, meta.structure.razor.csharp.codeblock.switch, punctuation.curlybrace.close.cs +" +`; + exports[`Grammar tests @tagHelperPrefix directive Incomplete parameter 1`] = ` "Line: @tagHelperPrefix " - token from 0 to 1 (@) with scopes text.aspnetcorerazor, meta.directive, keyword.control.cshtml.transition diff --git a/test/razor/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/switchStatement.ts b/test/razor/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/switchStatement.ts index 939ea87e0..736624bd2 100644 --- a/test/razor/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/switchStatement.ts +++ b/test/razor/razorTests/Microsoft.AspNetCore.Razor.VSCode.Grammar.Test/tests/switchStatement.ts @@ -77,5 +77,18 @@ export function RunSwitchStatementSuite() { ` ); }); + + it('comment in HTML text node', async () => { + await assertMatchesSnapshot( + `@switch (true) +{ + case true: + { +

this is a text https://example.org

Test

+ } + break; +}` + ); + }); }); } From d4e97ca8d551c7f00ca6279674beaefeb70dea03 Mon Sep 17 00:00:00 2001 From: Bret Johnson Date: Fri, 17 Jan 2025 14:18:14 -0500 Subject: [PATCH 25/38] Do weekly bump of xamlTools --- CHANGELOG.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 97c3879fc..fee0dbac0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ - 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 + * Bump xamlTools to 17.14.35716.216 (PR: [#7932](https://github.com/dotnet/vscode-csharp/pull/7932)) + # 2.63.x * Update Roslyn to 4.14.0-1.25065.8 (PR: [#7927](https://github.com/dotnet/vscode-csharp/pull/7927)) * Remove explicit recursion in the json detection analyzer (#76764) (PR: [#76764](https://github.com/dotnet/roslyn/pull/76764)) diff --git a/package.json b/package.json index 03a9d335d..7c0484b47 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "omniSharp": "1.39.12", "razor": "9.0.0-preview.25064.4", "razorOmnisharp": "7.0.0-preview.23363.1", - "xamlTools": "17.13.35709.178" + "xamlTools": "17.14.35716.216" }, "main": "./dist/extension", "l10n": "./l10n", From 4d3d50639962b3a3ef891ee67a193d8d05337e74 Mon Sep 17 00:00:00 2001 From: David Barbet Date: Fri, 17 Jan 2025 12:40:35 -0800 Subject: [PATCH 26/38] fix changelog --- CHANGELOG.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fee0dbac0..10407e566 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,10 +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) -# Latest - * Bump xamlTools to 17.14.35716.216 (PR: [#7932](https://github.com/dotnet/vscode-csharp/pull/7932)) - # 2.63.x +* Bump xamlTools to 17.14.35716.216 (PR: [#7932](https://github.com/dotnet/vscode-csharp/pull/7932)) * Update Roslyn to 4.14.0-1.25065.8 (PR: [#7927](https://github.com/dotnet/vscode-csharp/pull/7927)) * Remove explicit recursion in the json detection analyzer (#76764) (PR: [#76764](https://github.com/dotnet/roslyn/pull/76764)) * Consider silly cyclic assignment in scoped variance (#76261) (PR: [#76261](https://github.com/dotnet/roslyn/pull/76261)) From 0777b6d84836e1164cc28c8490ee4f46d5e6b1c8 Mon Sep 17 00:00:00 2001 From: dotnet-bot Date: Fri, 17 Jan 2025 23:31:02 +0000 Subject: [PATCH 27/38] Localization result of c934a224ae555129d1b0b3389d519ad1eeb57cb2. --- 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 93ef0b2fe..62f094615 100644 --- a/package.nls.cs.json +++ b/package.nls.cs.json @@ -123,7 +123,7 @@ "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": "Potlačí zobrazování informačních zpráv o chybách, pokud na serveru dojde k chybě, ze které se dá zotavit.", - "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", + "configuration.razor.languageServer.useNewFormattingEngine": "Použijte nový modul formátování Razor.", "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 a6e9af91b..8516f51fe 100644 --- a/package.nls.de.json +++ b/package.nls.de.json @@ -123,7 +123,7 @@ "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": "Unterdrückt, dass Fehler-Popups angezeigt werden, wenn auf dem Server ein wiederherstellbarer Fehler auftritt.", - "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", + "configuration.razor.languageServer.useNewFormattingEngine": "Verwenden Sie das neue Razor-Formatierungsmodul.", "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 7a7a86022..33c46c8c8 100644 --- a/package.nls.es.json +++ b/package.nls.es.json @@ -123,7 +123,7 @@ "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": "Suprime la visualización de notificaciones del sistema de error si el servidor encuentra un error recuperable.", - "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", + "configuration.razor.languageServer.useNewFormattingEngine": "Use el nuevo motor de formato razor.", "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 3ad9cdf67..6afcce41d 100644 --- a/package.nls.fr.json +++ b/package.nls.fr.json @@ -123,7 +123,7 @@ "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": "Supprime l’affichage des notifications toast d’erreur si le serveur a rencontré une erreur récupérable.", - "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", + "configuration.razor.languageServer.useNewFormattingEngine": "Utilisez le nouveau moteur de mise en forme Razor.", "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 0db32ac24..ea2c88195 100644 --- a/package.nls.it.json +++ b/package.nls.it.json @@ -123,7 +123,7 @@ "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": "Impedisce la visualizzazione degli avvisi popup di errore se il server rileva un errore reversibile.", - "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", + "configuration.razor.languageServer.useNewFormattingEngine": "Usa il nuovo motore di formattazione Razor.", "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 0e70745d3..5442524fd 100644 --- a/package.nls.ja.json +++ b/package.nls.ja.json @@ -123,7 +123,7 @@ "configuration.razor.languageServer.directory": "Razor Language Server ディレクトリへのパスをオーバーライドします。", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(試験段階) Razor ファイルのデザイン時間/ランタイム コード生成の併用を有効にする", "configuration.razor.languageServer.suppressLspErrorToasts": "サーバーで回復可能なエラーが発生した場合に、エラー トーストが表示されないようにします。", - "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", + "configuration.razor.languageServer.useNewFormattingEngine": "新しい Razor 書式設定エンジンを使用します。", "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 d744beb34..35e527232 100644 --- a/package.nls.ko.json +++ b/package.nls.ko.json @@ -123,7 +123,7 @@ "configuration.razor.languageServer.directory": "Razor 언어 서버 디렉터리의 경로를 재정의합니다.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(실험적) Razor 파일에 대해 결합된 디자인 타임/런타임 코드 생성 사용", "configuration.razor.languageServer.suppressLspErrorToasts": "서버에서 복구 가능한 오류가 발생하는 경우 오류 알림이 표시되지 않도록 합니다.", - "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", + "configuration.razor.languageServer.useNewFormattingEngine": "새 Razor 서식 엔진을 사용합니다.", "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 ab72446bb..234323f84 100644 --- a/package.nls.pl.json +++ b/package.nls.pl.json @@ -123,7 +123,7 @@ "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": "Pomija wyświetlanie wyskakujących powiadomień o błędach, jeśli serwer napotka błąd do odzyskania.", - "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", + "configuration.razor.languageServer.useNewFormattingEngine": "Użyj nowego aparatu formatowania Razor.", "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 6a58f61f5..dc976d54b 100644 --- a/package.nls.pt-br.json +++ b/package.nls.pt-br.json @@ -123,7 +123,7 @@ "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": "Suprime a exibição de notificações do erro se o servidor encontrar um erro recuperável.", - "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", + "configuration.razor.languageServer.useNewFormattingEngine": "Use o novo mecanismo de formatação Razor.", "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 a7338bc6a..e84a8c33a 100644 --- a/package.nls.ru.json +++ b/package.nls.ru.json @@ -123,7 +123,7 @@ "configuration.razor.languageServer.directory": "Переопределяет путь к каталогу языкового сервера Razor.", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(ЭКСПЕРИМЕНТАЛЬНАЯ ФУНКЦИЯ) Включение комбинированной генерации кода во время разработки и во время выполнения для файлов Razor", "configuration.razor.languageServer.suppressLspErrorToasts": "Подавляет появление всплывающих сообщений об ошибках, если сервер обнаруживает устранимую ошибку.", - "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", + "configuration.razor.languageServer.useNewFormattingEngine": "Используйте новый обработчик форматирования Razor.", "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 2f896110f..1dfb26b70 100644 --- a/package.nls.tr.json +++ b/package.nls.tr.json @@ -123,7 +123,7 @@ "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": "Sunucu kurtarılabilir bir hatayla karşılaştığında hata bildirimlerinin görünmesini engeller.", - "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", + "configuration.razor.languageServer.useNewFormattingEngine": "Yeni Razor biçimlendirme altyapısını kullanın.", "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 78fe32cc5..5b5ee8f9d 100644 --- a/package.nls.zh-cn.json +++ b/package.nls.zh-cn.json @@ -123,7 +123,7 @@ "configuration.razor.languageServer.directory": "重写 Razor 语言服务器目录的路径。", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(试验性)为 Razor 文件启用组合设计时/运行时代码生成", "configuration.razor.languageServer.suppressLspErrorToasts": "当服务器遇到可恢复错误时,禁止显示错误 toast。", - "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", + "configuration.razor.languageServer.useNewFormattingEngine": "使用新的 Razor 格式化引擎。", "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 179031ed1..120bd0538 100644 --- a/package.nls.zh-tw.json +++ b/package.nls.zh-tw.json @@ -123,7 +123,7 @@ "configuration.razor.languageServer.directory": "覆寫 Razor 語言伺服器目錄的路徑。", "configuration.razor.languageServer.forceRuntimeCodeGeneration": "(實驗性) 啟用適用於 Razor 檔案的合併設計階段/執行階段程式碼產生", "configuration.razor.languageServer.suppressLspErrorToasts": "如果伺服器發生可復原的錯誤,隱藏不顯示錯誤快顯通知。", - "configuration.razor.languageServer.useNewFormattingEngine": "Use the new Razor formatting engine.", + "configuration.razor.languageServer.useNewFormattingEngine": "使用新的 Razor 格式化引擎。", "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 8042cb7973e6e72396e67dbc88424e8c9130663d Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Fri, 17 Jan 2025 15:36:11 -0800 Subject: [PATCH 28/38] Add the option for Roslyn LSP to support organize imports --- package.json | 10 +++++----- package.nls.json | 2 +- src/omnisharp/server.ts | 2 +- src/shared/migrateOptions.ts | 4 ++++ src/shared/options.ts | 9 ++++----- .../unitTests/configurationMiddleware.test.ts | 6 ++++++ 6 files changed, 21 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 03a9d335d..d7d583d69 100644 --- a/package.json +++ b/package.json @@ -739,6 +739,11 @@ "default": true, "description": "%configuration.dotnet.autoInsert.enableAutoInsert%" }, + "dotnet.formatting.organizeImportsOnFormat": { + "type": "boolean", + "default": false, + "description": "%configuration.dotnet.formatting.organizeImportsOnFormat%" + }, "dotnet.typeMembers.memberInsertionLocation": { "type": "string", "enum": [ @@ -1696,11 +1701,6 @@ "default": false, "description": "%configuration.omnisharp.enableLspDriver%" }, - "omnisharp.organizeImportsOnFormat": { - "type": "boolean", - "default": false, - "description": "%configuration.omnisharp.organizeImportsOnFormat%" - }, "omnisharp.enableAsyncCompletion": { "type": "boolean", "default": false, diff --git a/package.nls.json b/package.nls.json index fef6a911e..e8179738e 100644 --- a/package.nls.json +++ b/package.nls.json @@ -24,6 +24,7 @@ "command.dotnet.test.debugTestsInContext": "Debug Tests in Context", "command.dotnet.restartServer": "Restart Language Server", "configuration.dotnet.autoInsert.enableAutoInsert": "Enable automatic insertion of documentation comments.", + "configuration.dotnet.formatting.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting. (Previously `omnisharp.organizeImportsOnFormat`)", "configuration.dotnet.defaultSolution.description": "The path of the default solution to be opened in the workspace, or set to 'disable' to skip it. (Previously `omnisharp.defaultLaunchSolution`)", "configuration.dotnet.server.path": "Specifies the absolute path to the server (LSP or O#) executable. When left empty the version pinned to the C# Extension is used. (Previously `omnisharp.path`)", "configuration.dotnet.server.componentPaths": "Allows overriding the folder path for built in components of the language server (for example, override the .roslynDevKit path in the extension directory to use locally built components)", @@ -116,7 +117,6 @@ "configuration.omnisharp.enableEditorConfigSupport": "Enables support for reading code style, naming convention and analyzer settings from .editorconfig.", "configuration.omnisharp.enableDecompilationSupport": "Enables support for decompiling external references instead of viewing metadata.", "configuration.omnisharp.enableLspDriver": "Enables support for the experimental language protocol based engine (requires reload to setup bindings correctly)", - "configuration.omnisharp.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting.", "configuration.omnisharp.enableAsyncCompletion": "(EXPERIMENTAL) Enables support for resolving completion edits asynchronously. This can speed up time to show the completion list, particularly override and partial method completion lists, at the cost of slight delays after inserting a completion item. Most completion items will have no noticeable impact with this feature, but typing immediately after inserting an override or partial method completion, before the insert is completed, can have unpredictable results.", "configuration.omnisharp.dotNetCliPaths": "Paths to a local download of the .NET CLI to use for running any user code.", "configuration.omnisharp.razor.plugin.path": "Overrides the path to the Razor plugin dll.", diff --git a/src/omnisharp/server.ts b/src/omnisharp/server.ts index 95e8b57cf..cc749ee64 100644 --- a/src/omnisharp/server.ts +++ b/src/omnisharp/server.ts @@ -458,7 +458,7 @@ export class OmniSharpServer { args.push('FormattingOptions:EnableEditorConfigSupport=true'); } - if (omnisharpOptions.organizeImportsOnFormat === true) { + if (commonOptions.organizeImportsOnFormat === true) { args.push('FormattingOptions:OrganizeImports=true'); } diff --git a/src/shared/migrateOptions.ts b/src/shared/migrateOptions.ts index 0fcdc27b0..7ddc0cb9a 100644 --- a/src/shared/migrateOptions.ts +++ b/src/shared/migrateOptions.ts @@ -100,6 +100,10 @@ export const migrateOptions = [ oldName: 'dotnet.implementType.propertyGenerationBehavior', newName: 'dotnet.typeMembers.propertyGenerationBehavior', }, + { + oldName: 'omnisharp.organizeImportsOnFormat', + newName: 'dotnet.formatting.organizeImportsOnFormat', + }, ]; export async function MigrateOptions(vscode: vscode): Promise { diff --git a/src/shared/options.ts b/src/shared/options.ts index 35d4e1e21..e114e889c 100644 --- a/src/shared/options.ts +++ b/src/shared/options.ts @@ -17,6 +17,7 @@ export interface CommonOptions { readonly defaultSolution: string; readonly unitTestDebuggingOptions: object; readonly runSettingsPath: string; + readonly organizeImportsOnFormat: boolean; } export interface OmnisharpServerOptions { @@ -34,7 +35,6 @@ export interface OmnisharpServerOptions { readonly enableImportCompletion: boolean; readonly enableAsyncCompletion: boolean; readonly analyzeOpenDocumentsOnly: boolean; - readonly organizeImportsOnFormat: boolean; readonly disableMSBuildDiagnosticWarning: boolean; readonly showOmnisharpLogOnError: boolean; readonly minFindSymbolsFilterLength: number; @@ -157,6 +157,9 @@ class CommonOptionsImpl implements CommonOptions { public get runSettingsPath() { return readOption('dotnet.unitTests.runSettingsPath', '', 'omnisharp.testRunSettings'); } + public get organizeImportsOnFormat() { + return readOption('dotnet.formatting.organizeImportsOnFormat', false); + } } class OmnisharpOptionsImpl implements OmnisharpServerOptions { @@ -227,9 +230,6 @@ class OmnisharpOptionsImpl implements OmnisharpServerOptions { const analyzeOpenDocumentsOnlyNewOption = diagnosticAnalysisScope == 'openFiles'; return analyzeOpenDocumentsOnlyLegacyOption || analyzeOpenDocumentsOnlyNewOption; } - public get organizeImportsOnFormat() { - return readOption('omnisharp.organizeImportsOnFormat', false); - } public get disableMSBuildDiagnosticWarning() { return readOption('omnisharp.disableMSBuildDiagnosticWarning', false); } @@ -483,7 +483,6 @@ export const OmnisharpOptionsThatTriggerReload: ReadonlyArray { From 1910596ad826028fbd97b56dd948105ff1bde019 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Fri, 17 Jan 2025 17:48:18 -0800 Subject: [PATCH 29/38] Add integration tests for organize import on format --- .../formatting.integration.test.ts | 68 ++++++++++++++++++- .../slnWithCsproj/src/app/Formatting.cs | 2 + 2 files changed, 68 insertions(+), 2 deletions(-) diff --git a/test/lsptoolshost/integrationTests/formatting.integration.test.ts b/test/lsptoolshost/integrationTests/formatting.integration.test.ts index 9a8c0e989..859d8cec9 100644 --- a/test/lsptoolshost/integrationTests/formatting.integration.test.ts +++ b/test/lsptoolshost/integrationTests/formatting.integration.test.ts @@ -21,10 +21,12 @@ describe(`Formatting Tests`, () => { }); beforeEach(async () => { + await setOrganizeImportsOnFormat(undefined); await openFileInWorkspaceAsync(path.join('src', 'app', 'Formatting.cs')); }); afterAll(async () => { + await setOrganizeImportsOnFormat(undefined); await testAssetWorkspace.cleanupWorkspace(); }); @@ -36,6 +38,8 @@ describe(`Formatting Tests`, () => { await formatDocumentAsync(); const expectedText = [ + 'using Options;', + 'using System;', 'namespace Formatting;', 'class DocumentFormatting', '{', @@ -54,9 +58,11 @@ describe(`Formatting Tests`, () => { }); test('Document range formatting formats only the range', async () => { - await formatRangeAsync(new vscode.Range(3, 0, 5, 0)); + await formatRangeAsync(new vscode.Range(5, 0, 7, 0)); const expectedText = [ + 'using Options;', + 'using System;', 'namespace Formatting;', 'class DocumentFormatting', '{', @@ -75,9 +81,11 @@ describe(`Formatting Tests`, () => { test('Document on type formatting formats the typed location', async () => { // The server expects the position to be the position after the inserted character `;` - await formatOnTypeAsync(new vscode.Position(7, 37), ';'); + await formatOnTypeAsync(new vscode.Position(9, 37), ';'); const expectedText = [ + 'using Options;', + 'using System;', 'namespace Formatting;', 'class DocumentFormatting', '{', @@ -91,4 +99,60 @@ describe(`Formatting Tests`, () => { ]; await expectText(vscode.window.activeTextEditor!.document, expectedText); }); + + test('Document formatting can organize imports', async () => { + await setOrganizeImportsOnFormat(true); + await activateCSharpExtension(); + + await formatDocumentAsync(); + + const expectedText = [ + 'using System;', + 'using Options;', + 'namespace Formatting;', + 'class DocumentFormatting', + '{', + ' public int Property1', + ' {', + ' get; set;', + ' }', + '', + ' public void Method1()', + ' {', + ' System.Console.Write("");', + ' }', + '}', + ]; + await expectText(vscode.window.activeTextEditor!.document, expectedText); + }); + + test('Document range formatting does not organize imports', async () => { + await setOrganizeImportsOnFormat(true); + await activateCSharpExtension(); + + await formatRangeAsync(new vscode.Range(0, 0, 7, 0)); + + const expectedText = [ + 'using Options;', + 'using System;', + 'namespace Formatting;', + 'class DocumentFormatting', + '{', + ' public int Property1', + ' {', + ' get; set;', + ' }', + '', + ' public void Method1() {', + ' System.Console.Write("");', + ' }', + '}', + ]; + await expectText(vscode.window.activeTextEditor!.document, expectedText); + }); + + async function setOrganizeImportsOnFormat(value: boolean | undefined) { + const dotnetConfig = vscode.workspace.getConfiguration('dotnet'); + await dotnetConfig.update('formatting.organizeImportsOnFormat', value, true); + } }); diff --git a/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/src/app/Formatting.cs b/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/src/app/Formatting.cs index 2c669c6b4..3ce67bde0 100644 --- a/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/src/app/Formatting.cs +++ b/test/lsptoolshost/integrationTests/testAssets/slnWithCsproj/src/app/Formatting.cs @@ -1,3 +1,5 @@ +using Options; +using System; namespace Formatting; class DocumentFormatting { From a8644a73b4e77e2a47abdc56d1b5b83998590293 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Wed, 22 Jan 2025 13:37:59 -0800 Subject: [PATCH 30/38] Update Roslyn to 4.14.0-1.25072.1 --- .vscode/launch.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index c51872837..a6cf80a06 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -12,7 +12,7 @@ "preLaunchTask": "buildDev" }, { - "name": "Launch Current File slnWithCsproj Integration Tests", + "name": "[Roslyn] Launch Current File Integration Tests", "type": "extensionHost", "request": "launch", "runtimeExecutable": "${execPath}", @@ -39,7 +39,7 @@ "internalConsoleOptions": "openOnSessionStart" }, { - "name": "[DevKit] Launch Current File slnWithCsproj Integration Tests", + "name": "[DevKit] Run Current File Integration Tests", "type": "extensionHost", "request": "launch", "runtimeExecutable": "${execPath}", @@ -93,7 +93,7 @@ "internalConsoleOptions": "openOnSessionStart" }, { - "name": "Omnisharp: Launch Current File Integration Tests", + "name": "[O#] Run Current File Integration Tests", "type": "extensionHost", "request": "launch", "runtimeExecutable": "${execPath}", @@ -115,10 +115,10 @@ "sourceMaps": true, "outFiles": ["${workspaceRoot}/dist/*.js", "${workspaceRoot}/out/test/**/*.js"], "resolveSourceMapLocations": ["${workspaceFolder}/**", "!**/node_modules/**"], - "preLaunchTask": "buildDev" + "preLaunchTask": "buildTest" }, { - "name": "Omnisharp: Launch Current File Integration Tests [LSP]", + "name": "[O# LSP] Run Current File Integration Tests", "type": "extensionHost", "request": "launch", "runtimeExecutable": "${execPath}", @@ -140,7 +140,7 @@ "sourceMaps": true, "outFiles": ["${workspaceRoot}/dist/*.js", "${workspaceRoot}/out/test/**/*.js"], "resolveSourceMapLocations": ["${workspaceFolder}/**", "!**/node_modules/**"], - "preLaunchTask": "buildDev" + "preLaunchTask": "buildTest" }, { "type": "node", diff --git a/package.json b/package.json index d7d583d69..ca3cee4e1 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ } }, "defaults": { - "roslyn": "4.14.0-1.25065.8", + "roslyn": "4.14.0-1.25072.1", "omniSharp": "1.39.12", "razor": "9.0.0-preview.25064.4", "razorOmnisharp": "7.0.0-preview.23363.1", From ede011f60177bfadf8d39ed9eb60bce7be754372 Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Wed, 22 Jan 2025 13:57:51 -0800 Subject: [PATCH 31/38] Update format tests to restart LSP after setting options --- .vscode/launch.json | 2 +- .../integrationTests/formatting.integration.test.ts | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index a6cf80a06..bc19cb0dd 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -12,7 +12,7 @@ "preLaunchTask": "buildDev" }, { - "name": "[Roslyn] Launch Current File Integration Tests", + "name": "[Roslyn] Run Current File Integration Tests", "type": "extensionHost", "request": "launch", "runtimeExecutable": "${execPath}", diff --git a/test/lsptoolshost/integrationTests/formatting.integration.test.ts b/test/lsptoolshost/integrationTests/formatting.integration.test.ts index 859d8cec9..372305465 100644 --- a/test/lsptoolshost/integrationTests/formatting.integration.test.ts +++ b/test/lsptoolshost/integrationTests/formatting.integration.test.ts @@ -12,16 +12,14 @@ import { expectText, openFileInWorkspaceAsync, } from './integrationHelpers'; -import { describe, beforeAll, beforeEach, afterAll, test, afterEach } from '@jest/globals'; +import { describe, beforeEach, afterAll, test, afterEach } from '@jest/globals'; import { formatDocumentAsync, formatOnTypeAsync, formatRangeAsync } from './formattingTestHelpers'; describe(`Formatting Tests`, () => { - beforeAll(async () => { - await activateCSharpExtension(); - }); - beforeEach(async () => { await setOrganizeImportsOnFormat(undefined); + await activateCSharpExtension(); + await openFileInWorkspaceAsync(path.join('src', 'app', 'Formatting.cs')); }); From d92af24c08684445182a1fd4da7460f662ccd72b Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Wed, 22 Jan 2025 14:08:16 -0800 Subject: [PATCH 32/38] Fix server-side option name for test --- test/lsptoolshost/unitTests/configurationMiddleware.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/lsptoolshost/unitTests/configurationMiddleware.test.ts b/test/lsptoolshost/unitTests/configurationMiddleware.test.ts index a9e2a5ef7..46b9f41d9 100644 --- a/test/lsptoolshost/unitTests/configurationMiddleware.test.ts +++ b/test/lsptoolshost/unitTests/configurationMiddleware.test.ts @@ -268,7 +268,7 @@ const testData = [ section: editorBehaviorSection, }, { - serverOption: 'csharp|formatting.dotnet_formatting_sort_imports', + serverOption: 'csharp|formatting.dotnet_organize_imports_on_format', vsCodeConfiguration: 'dotnet.formatting.organizeImportsOnFormat', declareInPackageJson: true, section: editorBehaviorSection, From fc5c696a115c390e25d3d80852c4f9c10fa8a90c Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Wed, 22 Jan 2025 14:38:32 -0800 Subject: [PATCH 33/38] Update changelog --- CHANGELOG.md | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10407e566..fb17a97cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ # 2.63.x * Bump xamlTools to 17.14.35716.216 (PR: [#7932](https://github.com/dotnet/vscode-csharp/pull/7932)) -* Update Roslyn to 4.14.0-1.25065.8 (PR: [#7927](https://github.com/dotnet/vscode-csharp/pull/7927)) +* Update Roslyn to 4.14.0-1.25072.1 (PR: [#7935](https://github.com/dotnet/vscode-csharp/pull/7935)) * Remove explicit recursion in the json detection analyzer (#76764) (PR: [#76764](https://github.com/dotnet/roslyn/pull/76764)) * Consider silly cyclic assignment in scoped variance (#76261) (PR: [#76261](https://github.com/dotnet/roslyn/pull/76261)) * Fix ordering of 'params' vs 'scoped' in metadata as source (#76745) (PR: [#76745](https://github.com/dotnet/roslyn/pull/76745)) @@ -20,6 +20,32 @@ * Adding checks for mutable structs. (#76711) (PR: [#76711](https://github.com/dotnet/roslyn/pull/76711)) * Stash and restore original culture in CultureNormalizer (#76713) (PR: [#76713](https://github.com/dotnet/roslyn/pull/76713)) * Add option for choosing stdio as the LSP communication channel (#76437) (PR: [#76437](https://github.com/dotnet/roslyn/pull/76437)) + * Support organizing imports as part of LSP document formatting (PR: [#76806](https://github.com/dotnet/roslyn/pull/76806)) + * Improve collapsing of members followed by pp directives (PR: [#76837](https://github.com/dotnet/roslyn/pull/76837)) + * Load razor assembly directly: (PR: [#76808](https://github.com/dotnet/roslyn/pull/76808)) + * Special case inlining a collection expr into a spreaded element (PR: [#76823](https://github.com/dotnet/roslyn/pull/76823)) + * Do not offer to simplify interpolations when using formattable strings (PR: [#76830](https://github.com/dotnet/roslyn/pull/76830)) + * Add support for outlining switch expressions (PR: [#76827](https://github.com/dotnet/roslyn/pull/76827)) + * Do no offer to make fields readonly if they are a struct and are written to through an indexer (PR: [#76825](https://github.com/dotnet/roslyn/pull/76825)) + * Do not offer to inline a decl into a switch arm when it is referenced outside of it. (PR: [#76822](https://github.com/dotnet/roslyn/pull/76822)) + * Fix gen-method generating into top level. (PR: [#76821](https://github.com/dotnet/roslyn/pull/76821)) + * Fix 'invert if' refactor to properly enclose #region/#endregion blocks (PR: [#74145](https://github.com/dotnet/roslyn/pull/74145)) + * Do not offer use-conditional when it would cause name collisions (PR: [#76807](https://github.com/dotnet/roslyn/pull/76807)) + * Remove unnecessary cast in one conditional expression branch, based on the other branch and outer conversion. (PR: [#76798](https://github.com/dotnet/roslyn/pull/76798)) + * Convert a return value to return type even if it has errors (PR: [#76699](https://github.com/dotnet/roslyn/pull/76699)) + * Add EmbeddedAttribute API for source generators (PR: [#76583](https://github.com/dotnet/roslyn/pull/76583)) + * Fix formatting when doing a 'fix all' with 'use auto prop' (PR: [#76791](https://github.com/dotnet/roslyn/pull/76791)) + * Initialize naming style preferences when language is added to workspace (PR: [#76795](https://github.com/dotnet/roslyn/pull/76795)) + * Support target type completion tags in object creation contexts (PR: [#76786](https://github.com/dotnet/roslyn/pull/76786)) + * Fix 'use conditional expression' where it was causing a null-ref warning. (PR: [#76792](https://github.com/dotnet/roslyn/pull/76792)) + * Keep comments on an 'else' keyword when converting to conditional expressions. (PR: [#76789](https://github.com/dotnet/roslyn/pull/76789)) + * VB: Don't capture conditional access receiver into a temp local during lowering. (PR: [#76712](https://github.com/dotnet/roslyn/pull/76712)) + * Update regex parsing to latest .Net core parsing (and diagnostic messages). (PR: [#76269](https://github.com/dotnet/roslyn/pull/76269)) + * Forbid pointer types as instance fields in records (PR: [#76588](https://github.com/dotnet/roslyn/pull/76588)) + * Field-backed properties: report diagnostic for variable named field declared in accessor (PR: [#76671](https://github.com/dotnet/roslyn/pull/76671)) + * Update 'use nameof instead of typeof' to support generic types (PR: [#76780](https://github.com/dotnet/roslyn/pull/76780)) + * Add feature to convert from an explicitly typed lambda to an implicitly typed one. (PR: [#76770](https://github.com/dotnet/roslyn/pull/76770)) + * Support modifiers with simple lambda parameters. (PR: [#75400](https://github.com/dotnet/roslyn/pull/75400)) * Update Razor to 9.0.0-preview.25064.4 (PR: [#7927](https://github.com/dotnet/vscode-csharp/pull/7927)) * Wire up the UseRoslynTokenizer feature properly (#11386) (PR: [#11386](https://github.com/dotnet/razor/pull/11386)) * New Razor document formatting engine (#11364) (PR: [#11364](https://github.com/dotnet/razor/pull/11364)) From 2d4e745673e082e785d439c94a5b143d04abe2f0 Mon Sep 17 00:00:00 2001 From: dotnet-bot Date: Thu, 23 Jan 2025 01:21:03 +0000 Subject: [PATCH 34/38] Localization result of b6e40653445bf6e58e687f938561bf513aa3d0b0. --- 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 62f094615..141d5028e 100644 --- a/package.nls.cs.json +++ b/package.nls.cs.json @@ -45,6 +45,7 @@ "configuration.dotnet.completion.triggerCompletionInArgumentLists": "Automaticky zobrazovat seznam dokončení v seznamech argumentů", "configuration.dotnet.defaultSolution.description": "Cesta výchozího řešení, které se má otevřít v pracovním prostoru. Můžete přeskočit nastavením na „zakázat“. (Dříve omnisharp.defaultLaunchSolution)", "configuration.dotnet.enableXamlTools": "Povolí nástroje XAML při použití sady C# Dev Kit", + "configuration.dotnet.formatting.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting. (Previously `omnisharp.organizeImportsOnFormat`)", "configuration.dotnet.highlighting.highlightRelatedJsonComponents": "Zvýrazněte související komponenty JSON pod kurzorem.", "configuration.dotnet.highlighting.highlightRelatedRegexComponents": "Zvýraznit související komponenty regulárního výrazu pod kurzorem.", "configuration.dotnet.inlayHints.enableInlayHintsForLiteralParameters": "Zobrazit nápovědy pro literály", @@ -105,7 +106,6 @@ "configuration.omnisharp.maxProjectResults": "Maximální počet projektů, které se mají zobrazit v rozevíracím seznamu Vybrat projekt (maximálně 250).", "configuration.omnisharp.minFindSymbolsFilterLength": "Minimální počet znaků, které je třeba zadat, než se zobrazí nějaký výsledek operace Přejít na symbol v pracovním prostoru.", "configuration.omnisharp.monoPath": "Určuje cestu k instalaci modulu runtime Mono, která se má použít, když je možnost useModernNet nastavená na false, místo výchozí systémové instalace. Příklad: /Library/Frameworks/Mono.framework/Versions/Current", - "configuration.omnisharp.organizeImportsOnFormat": "Určuje, zda mají být během formátování dokumentu seskupeny a seřazeny direktivy using.", "configuration.omnisharp.projectFilesExcludePattern": "Vzor vyloučení, který používá server OmniSharp k vyhledání všech souborů projektu", "configuration.omnisharp.projectLoadTimeout": "Doba, po kterou bude Visual Studio Code čekat na spuštění serveru OmniSharp. Čas je vyjádřen v sekundách.", "configuration.omnisharp.razor.completion.commitElementsWithSpace": "Určuje, jestli se má potvrdit pomocný element značky a elementy komponenty s mezerou.", diff --git a/package.nls.de.json b/package.nls.de.json index 8516f51fe..3573651f4 100644 --- a/package.nls.de.json +++ b/package.nls.de.json @@ -45,6 +45,7 @@ "configuration.dotnet.completion.triggerCompletionInArgumentLists": "Vervollständigungsliste in Argumentlisten automatisch anzeigen", "configuration.dotnet.defaultSolution.description": "Der Pfad der Standardlösung, die im Arbeitsbereich geöffnet werden soll, oder auf \"deaktivieren\" festlegen, um sie zu überspringen. (Zuvor \"omnisharp.defaultLaunchSolution\")", "configuration.dotnet.enableXamlTools": "Aktiviert XAML-Tools bei Verwendung des C#-Dev Kit", + "configuration.dotnet.formatting.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting. (Previously `omnisharp.organizeImportsOnFormat`)", "configuration.dotnet.highlighting.highlightRelatedJsonComponents": "Zugehörige JSON-Komponenten unter dem Cursor markieren.", "configuration.dotnet.highlighting.highlightRelatedRegexComponents": "Zugehörige Komponenten regulärer Ausdrücke unter dem Cursor markieren.", "configuration.dotnet.inlayHints.enableInlayHintsForLiteralParameters": "Hinweise für Literale anzeigen", @@ -105,7 +106,6 @@ "configuration.omnisharp.maxProjectResults": "Die maximale Anzahl von Projekten, die in der Dropdownliste „Projekt auswählen“ angezeigt werden sollen (maximal 250).", "configuration.omnisharp.minFindSymbolsFilterLength": "Die Mindestanzahl von Zeichen, die eingegeben werden muss, bevor der Vorgang „Zu Symbol im Arbeitsbereich wechseln“ Ergebnisse anzeigt.", "configuration.omnisharp.monoPath": "Gibt den Pfad zu einer Mono-Installation an, die statt der standardmäßigen Systeminstallation verwendet werden soll, wenn „useModernNet“ auf FALSE festgelegt ist. Beispiel: „/Library/Frameworks/Mono.framework/Versions/Current“", - "configuration.omnisharp.organizeImportsOnFormat": "Gibt an, ob „using“-Anweisungen während der Dokumentformatierung gruppiert und sortiert werden sollen.", "configuration.omnisharp.projectFilesExcludePattern": "Das von OmniSharp verwendete Ausschlussmuster zum Auffinden aller Projektdateien.", "configuration.omnisharp.projectLoadTimeout": "Die Zeit, die Visual Studio Code auf den Start des OmniSharp-Servers wartet. Die Zeit wird in Sekunden ausgedrückt.", "configuration.omnisharp.razor.completion.commitElementsWithSpace": "Gibt an, ob ein Commit für das Taghilfsprogramm und Komponentenelemente mit einem Leerzeichen ausgeführt werden soll.", diff --git a/package.nls.es.json b/package.nls.es.json index 33c46c8c8..ebf08dcbc 100644 --- a/package.nls.es.json +++ b/package.nls.es.json @@ -45,6 +45,7 @@ "configuration.dotnet.completion.triggerCompletionInArgumentLists": "Mostrar automáticamente la lista de finalización en las listas de argumentos", "configuration.dotnet.defaultSolution.description": "Ruta de acceso de la solución predeterminada que se va a abrir en el área de trabajo o se establece en \"deshabilitar\" para omitirla. (Anteriormente \"omnisharp.defaultLaunchSolution\")", "configuration.dotnet.enableXamlTools": "Habilita las herramientas XAML al usar el Kit de desarrollo de C#", + "configuration.dotnet.formatting.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting. (Previously `omnisharp.organizeImportsOnFormat`)", "configuration.dotnet.highlighting.highlightRelatedJsonComponents": "Resaltar los componentes JSON relacionados bajo el cursor.", "configuration.dotnet.highlighting.highlightRelatedRegexComponents": "Resaltar los componentes de expresiones regulares relacionados bajo el cursor.", "configuration.dotnet.inlayHints.enableInlayHintsForLiteralParameters": "Mostrar sugerencias para los literales", @@ -105,7 +106,6 @@ "configuration.omnisharp.maxProjectResults": "Número máximo de proyectos que se mostrarán en la lista desplegable \"Seleccionar proyecto\" (máximo 250).", "configuration.omnisharp.minFindSymbolsFilterLength": "El número mínimo de caracteres que se escribirán antes de que la operación \"Ir a símbolo en el área de trabajo\" muestre los resultados.", "configuration.omnisharp.monoPath": "Especifica la ruta de acceso a una instalación mono que se va a usar cuando \"useModernNet\" se establece en false, en lugar del sistema predeterminado. Ejemplo: \"/Library/Frameworks/Mono.framework/Versions/Current\"", - "configuration.omnisharp.organizeImportsOnFormat": "Especifica si las directivas \"using\" deben agruparse y ordenarse durante el formato del documento.", "configuration.omnisharp.projectFilesExcludePattern": "Patrón de exclusión usado por OmniSharp para buscar todos los archivos de proyecto.", "configuration.omnisharp.projectLoadTimeout": "Tiempo Visual Studio Code esperará a que se inicie el servidor OmniSharp. El tiempo se expresa en segundos.", "configuration.omnisharp.razor.completion.commitElementsWithSpace": "Especifica si se deben confirmar los elementos auxiliares de etiquetas y componentes con un espacio.", diff --git a/package.nls.fr.json b/package.nls.fr.json index 6afcce41d..8e4530982 100644 --- a/package.nls.fr.json +++ b/package.nls.fr.json @@ -45,6 +45,7 @@ "configuration.dotnet.completion.triggerCompletionInArgumentLists": "Afficher automatiquement la liste de complétion dans les listes d'arguments", "configuration.dotnet.defaultSolution.description": "Le chemin d’accès de la solution par défaut à ouvrir dans l’espace de travail, ou la valeur ’disable’ pour l’ignorer. (Précédemment `omnisharp.defaultLaunchSolution`)", "configuration.dotnet.enableXamlTools": "Active les outils XAML lors de l’utilisation du Kit de développement C#", + "configuration.dotnet.formatting.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting. (Previously `omnisharp.organizeImportsOnFormat`)", "configuration.dotnet.highlighting.highlightRelatedJsonComponents": "Mettez en surbrillance les composants JSON associés sous le curseur.", "configuration.dotnet.highlighting.highlightRelatedRegexComponents": "Mettre en surbrillance les composants d’expression régulière associés sous le curseur.", "configuration.dotnet.inlayHints.enableInlayHintsForLiteralParameters": "Afficher les indicateurs pour les littéraux", @@ -105,7 +106,6 @@ "configuration.omnisharp.maxProjectResults": "Nombre maximal de projets à afficher dans la liste déroulante « Sélectionner un projet » (maximum 250).", "configuration.omnisharp.minFindSymbolsFilterLength": "Le nombre minimal de caractères à entrer avant l’opération « Accéder au symbole dans l’espace de travail » affiche les résultats.", "configuration.omnisharp.monoPath": "Spécifie le chemin d'accès à une installation mono à utiliser lorsque « useModernNet » est défini sur false, au lieu de celui du système par défaut. Exemple : « /Library/Frameworks/Mono.framework/Versions/Current »", - "configuration.omnisharp.organizeImportsOnFormat": "Spécifie si les directives « using » doivent être regroupées et triées lors du formatage du document.", "configuration.omnisharp.projectFilesExcludePattern": "Modèle d’exclusion utilisé par OmniSharp pour rechercher tous les fichiers projet.", "configuration.omnisharp.projectLoadTimeout": "Le temps Visual Studio Code attend le démarrage du serveur OmniSharp. L’heure est exprimée en secondes.", "configuration.omnisharp.razor.completion.commitElementsWithSpace": "Spécifie s’il faut valider les éléments tag helper et component avec un espace.", diff --git a/package.nls.it.json b/package.nls.it.json index ea2c88195..b9b6c269f 100644 --- a/package.nls.it.json +++ b/package.nls.it.json @@ -45,6 +45,7 @@ "configuration.dotnet.completion.triggerCompletionInArgumentLists": "Mostra automaticamente l'elenco di completamento negli elenchi di argomenti", "configuration.dotnet.defaultSolution.description": "Percorso della soluzione predefinita da aprire nell'area di lavoro o impostare su 'disabilita' per ignorarla. (In precedenza “omnisharp.defaultLaunchSolution”)", "configuration.dotnet.enableXamlTools": "Abilita gli strumenti XAML quando si usa il kit di sviluppo C#", + "configuration.dotnet.formatting.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting. (Previously `omnisharp.organizeImportsOnFormat`)", "configuration.dotnet.highlighting.highlightRelatedJsonComponents": "Evidenziare i componenti JSON correlati sotto il cursore.", "configuration.dotnet.highlighting.highlightRelatedRegexComponents": "Evidenzia i componenti dell'espressione regolare correlati sotto il cursore.", "configuration.dotnet.inlayHints.enableInlayHintsForLiteralParameters": "Mostra suggerimenti per i valori letterali", @@ -105,7 +106,6 @@ "configuration.omnisharp.maxProjectResults": "Numero massimo di progetti da visualizzare nell'elenco a discesa \"Seleziona progetto\" (massimo 250).", "configuration.omnisharp.minFindSymbolsFilterLength": "Il numero minimo di caratteri da immettere prima che l'operazione \"Vai al simbolo nell'area di lavoro\" mostri i risultati.", "configuration.omnisharp.monoPath": "Specifica il percorso di un'installazione mono da utilizzare quando \"useModernNet\" è impostato su false, anziché su quello predefinito di sistema. Esempio: \"/Library/Frameworks/Mono.framework/Versions/Current\"", - "configuration.omnisharp.organizeImportsOnFormat": "Specifica se le direttive \"using\" devono essere raggruppate e ordinate durante la formattazione del documento.", "configuration.omnisharp.projectFilesExcludePattern": "Criterio di esclusione usato da OmniSharp per trovare tutti i file di progetto.", "configuration.omnisharp.projectLoadTimeout": "Tempo di attesa di Visual Studio Code per l'avvio del server OmniSharp. Il tempo è espresso in secondi.", "configuration.omnisharp.razor.completion.commitElementsWithSpace": "Specifica se eseguire il commit dell'helper tag e degli elementi del componente con uno spazio.", diff --git a/package.nls.ja.json b/package.nls.ja.json index 5442524fd..90bf3c09f 100644 --- a/package.nls.ja.json +++ b/package.nls.ja.json @@ -45,6 +45,7 @@ "configuration.dotnet.completion.triggerCompletionInArgumentLists": "引数リストに入力候補一覧を自動的に表示する", "configuration.dotnet.defaultSolution.description": "ワークスペースで開く既定のソリューションのパス。スキップするには 'disable' に設定します。(以前の `omnisharp.defaultLaunchSolution`)", "configuration.dotnet.enableXamlTools": "C# 開発キットを使用するときに XAML ツールを有効にします", + "configuration.dotnet.formatting.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting. (Previously `omnisharp.organizeImportsOnFormat`)", "configuration.dotnet.highlighting.highlightRelatedJsonComponents": "カーソルの下にある関連する JSON コンポーネントをハイライトします。", "configuration.dotnet.highlighting.highlightRelatedRegexComponents": "カーソルの下にある関連する正規表現コンポーネントをハイライトします。", "configuration.dotnet.inlayHints.enableInlayHintsForLiteralParameters": "リテラルのヒントを表示する", @@ -105,7 +106,6 @@ "configuration.omnisharp.maxProjectResults": "[プロジェクトの選択] ドロップダウンに表示されるプロジェクトの最大数 (最大 250)。", "configuration.omnisharp.minFindSymbolsFilterLength": "[ワークスペースのシンボルに移動] 操作の前に入力する最小文字数は、結果を表示します。", "configuration.omnisharp.monoPath": "\"useModernNet\" が既定のシステムインストールではなく false に設定されている場合に使用する Mono インストールへのパスを指定します。例: \"/Library/Frameworks/Mono.framework/Versions/Current\"", - "configuration.omnisharp.organizeImportsOnFormat": "ドキュメントの書式設定中に 'using' ディレクティブをグループ化して並べ替えるかどうかを指定します。", "configuration.omnisharp.projectFilesExcludePattern": "すべてのプロジェクト ファイルを検索するために OmniSharp で使用される除外パターン。", "configuration.omnisharp.projectLoadTimeout": "Visual Studio Code が OmniSharp サーバーの起動を待機する時間。時間は秒単位で表されます。", "configuration.omnisharp.razor.completion.commitElementsWithSpace": "タグ ヘルパーとコンポーネント要素をスペースでコミットするかどうかを指定します。", diff --git a/package.nls.ko.json b/package.nls.ko.json index 35e527232..65140aca8 100644 --- a/package.nls.ko.json +++ b/package.nls.ko.json @@ -45,6 +45,7 @@ "configuration.dotnet.completion.triggerCompletionInArgumentLists": "인수 목록에 자동으로 완성 목록 표시", "configuration.dotnet.defaultSolution.description": "작업 영역에서 열릴 기본 솔루션의 경로, 건너뛰려면 '비활성화'로 설정하세요(이전 `omnisharp.defaultLaunchSolution`).", "configuration.dotnet.enableXamlTools": "C# 개발자 키트를 사용할 때 XAML 도구 사용", + "configuration.dotnet.formatting.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting. (Previously `omnisharp.organizeImportsOnFormat`)", "configuration.dotnet.highlighting.highlightRelatedJsonComponents": "커서 아래에서 관련 JSON 구성 요소를 강조 표시합니다.", "configuration.dotnet.highlighting.highlightRelatedRegexComponents": "커서 아래의 관련 정규식 구성 요소를 강조 표시합니다.", "configuration.dotnet.inlayHints.enableInlayHintsForLiteralParameters": "리터럴에 대한 힌트 표시", @@ -105,7 +106,6 @@ "configuration.omnisharp.maxProjectResults": "'프로젝트 선택' 드롭다운에 표시할 최대 프로젝트 수입니다(최대 250개).", "configuration.omnisharp.minFindSymbolsFilterLength": "'작업 영역의 기호로 이동' 작업이 결과를 표시하기 전에 입력해야 하는 최소 문자 수입니다.", "configuration.omnisharp.monoPath": "\"useModernNet\"이 false로 설정된 경우 기본 시스템 위치 대신 사용할 Mono 설치 경로를 지정합니다. 예: \"/Library/Frameworks/Mono.framework/Versions/Current\"", - "configuration.omnisharp.organizeImportsOnFormat": "문서 서식을 지정하는 동안 'using' 지시문을 그룹화하고 정렬할지 여부를 지정합니다.", "configuration.omnisharp.projectFilesExcludePattern": "모든 프로젝트 파일을 찾기 위해 OmniSharp에서 사용하는 제외 패턴입니다.", "configuration.omnisharp.projectLoadTimeout": "Visual Studio Code가 OmniSharp 서버가 시작될 때까지 기다리는 시간입니다. 시간은 초 단위로 표시됩니다.", "configuration.omnisharp.razor.completion.commitElementsWithSpace": "태그 도우미 및 구성 요소를 공백으로 커밋할지 여부를 지정합니다.", diff --git a/package.nls.pl.json b/package.nls.pl.json index 234323f84..6e7137482 100644 --- a/package.nls.pl.json +++ b/package.nls.pl.json @@ -45,6 +45,7 @@ "configuration.dotnet.completion.triggerCompletionInArgumentLists": "Automatycznie pokaż listę uzupełniania na listach argumentów", "configuration.dotnet.defaultSolution.description": "Ścieżka domyślnego rozwiązania, która ma zostać otwarta w obszarze roboczym, lub ustawiona na wartość „wyłącz”, aby je pominąć. (Poprzednio „omnisharp.defaultLaunchSolution”)", "configuration.dotnet.enableXamlTools": "Włącza narzędzia XAML podczas korzystania z zestawu deweloperskiego języka C#", + "configuration.dotnet.formatting.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting. (Previously `omnisharp.organizeImportsOnFormat`)", "configuration.dotnet.highlighting.highlightRelatedJsonComponents": "Wyróżnij powiązane składniki JSON pod kursorem.", "configuration.dotnet.highlighting.highlightRelatedRegexComponents": "Wyróżnij powiązane składniki wyrażenia regularnego pod kursorem.", "configuration.dotnet.inlayHints.enableInlayHintsForLiteralParameters": "Pokaż wskazówki dla literałów", @@ -105,7 +106,6 @@ "configuration.omnisharp.maxProjectResults": "Maksymalna liczba projektów do pokazania na liście rozwijanej „Wybierz projekt” (maksymalnie 250).", "configuration.omnisharp.minFindSymbolsFilterLength": "Minimalna liczba znaków do wprowadzenia przed wykonaniem operacji „Przejdź do symbolu w obszarze roboczym” powoduje wyświetlenie wyników.", "configuration.omnisharp.monoPath": "Określa ścieżkę do instalacji mono, która ma być używana, gdy element „useModernNet” jest ustawiony na wartość false, a nie domyślną instalację systemową. Przykład: \"„/Library/Frameworks/Mono.framework/Versions/Current”", - "configuration.omnisharp.organizeImportsOnFormat": "Określa, czy dyrektywy „using” mają być grupowane i sortowane podczas formatowania dokumentu.", "configuration.omnisharp.projectFilesExcludePattern": "Wzorzec wykluczania używany przez element OmniSharp do znajdowania wszystkich plików projektu.", "configuration.omnisharp.projectLoadTimeout": "Czas, przez który edytor Visual Studio Code będzie oczekiwać na uruchomienie serwera OmniSharp. Czas jest wyrażony w sekundach.", "configuration.omnisharp.razor.completion.commitElementsWithSpace": "Określa, czy zatwierdzać pomocnik tagów i elementy składników ze spacjami.", diff --git a/package.nls.pt-br.json b/package.nls.pt-br.json index dc976d54b..7234ed931 100644 --- a/package.nls.pt-br.json +++ b/package.nls.pt-br.json @@ -45,6 +45,7 @@ "configuration.dotnet.completion.triggerCompletionInArgumentLists": "Mostrar automaticamente a lista de conclusão nas listas de argumentos", "configuration.dotnet.defaultSolution.description": "O caminho da solução padrão a ser aberta no workspace ou definido como 'desabilitado' para ignorá-la. (Anteriormente `omnisharp.defaultLaunchSolution`)", "configuration.dotnet.enableXamlTools": "Habilita ferramentas XAML ao usar o Kit de Desenvolvimento em C#", + "configuration.dotnet.formatting.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting. (Previously `omnisharp.organizeImportsOnFormat`)", "configuration.dotnet.highlighting.highlightRelatedJsonComponents": "Destaque os componentes JSON relacionados sob o cursor.", "configuration.dotnet.highlighting.highlightRelatedRegexComponents": "Destaque os componentes de expressão regular relacionados sob o cursor.", "configuration.dotnet.inlayHints.enableInlayHintsForLiteralParameters": "Mostrar as dicas para os literais", @@ -105,7 +106,6 @@ "configuration.omnisharp.maxProjectResults": "O número máximo de projetos a serem mostrados na lista suspensa “Selecionar Projeto” (máximo de 250).", "configuration.omnisharp.minFindSymbolsFilterLength": "O número mínimo de caracteres a serem inseridos antes da operação “Acessar Símbolo no Workspace” mostra os resultados.", "configuration.omnisharp.monoPath": "Especifica o caminho para uma instalação mono a ser usada quando \"useModernNet\" estiver definido como falso, em vez de o padrão do sistema. Exemplo: \"/Library/Frameworks/Mono.framework/Versions/Current\"", - "configuration.omnisharp.organizeImportsOnFormat": "Especifica se as diretivas “usando” devem ser agrupadas e classificadas durante a formatação do documento.", "configuration.omnisharp.projectFilesExcludePattern": "O padrão de exclusão usado pelo OmniSharp para localizar todos os arquivos do projeto.", "configuration.omnisharp.projectLoadTimeout": "O tempo que o Visual Studio Code aguardará para que o servidor OmniSharp seja iniciado. O tempo é expresso em segundos.", "configuration.omnisharp.razor.completion.commitElementsWithSpace": "Especifica se o auxiliar de marca e os elementos de componente devem ser confirmados com um espaço.", diff --git a/package.nls.ru.json b/package.nls.ru.json index e84a8c33a..c4af3a4fc 100644 --- a/package.nls.ru.json +++ b/package.nls.ru.json @@ -45,6 +45,7 @@ "configuration.dotnet.completion.triggerCompletionInArgumentLists": "Автоматически показывать список завершения в списках аргументов", "configuration.dotnet.defaultSolution.description": "Путь к решению по умолчанию, которое будет открыто в рабочей области. Или задайте значение \"Отключить\", чтобы пропустить его. (Ранее — \"omnisharp.defaultLaunchSolution\")", "configuration.dotnet.enableXamlTools": "Включает инструменты XAML при использовании комплекта разработки C# Dev Kit.", + "configuration.dotnet.formatting.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting. (Previously `omnisharp.organizeImportsOnFormat`)", "configuration.dotnet.highlighting.highlightRelatedJsonComponents": "Выделить связанные компоненты JSON под курсором.", "configuration.dotnet.highlighting.highlightRelatedRegexComponents": "Выделение связанных компонентов регулярных выражений под курсором.", "configuration.dotnet.inlayHints.enableInlayHintsForLiteralParameters": "Отображать подсказки для литералов", @@ -105,7 +106,6 @@ "configuration.omnisharp.maxProjectResults": "Максимальное количество проектов, отображаемых в раскрывающемся списке \"Выбор проекта\" (не более 250).", "configuration.omnisharp.minFindSymbolsFilterLength": "Минимальное количество символов для ввода, прежде чем операция \"Перейти к символу в рабочей области\" отобразит какие-либо результаты.", "configuration.omnisharp.monoPath": "Указывает путь к установке Mono, которая используется, если для параметра \"useModernNet\" настроено значение false, а не системное значение по умолчанию. Пример: \"/Library/Frameworks/Mono.framework/Versions/Current\"", - "configuration.omnisharp.organizeImportsOnFormat": "Указывает, следует ли группировать и сортировать директивы \"using\" во время форматирования документов.", "configuration.omnisharp.projectFilesExcludePattern": "Шаблон исключения, используемый OmniSharp для поиска всех файлов проекта.", "configuration.omnisharp.projectLoadTimeout": "Время, в течение которого Visual Studio Code будет ожидать запуск сервера OmniSharp. Время указывается в секундах.", "configuration.omnisharp.razor.completion.commitElementsWithSpace": "Указывает, следует ли зафиксировать вспомогательное приложение тегов и элементы компонентов с пробелом.", diff --git a/package.nls.tr.json b/package.nls.tr.json index 1dfb26b70..03d4f8a4f 100644 --- a/package.nls.tr.json +++ b/package.nls.tr.json @@ -45,6 +45,7 @@ "configuration.dotnet.completion.triggerCompletionInArgumentLists": "Bağımsız değişken listelerinde tamamlama listesini otomatik olarak göster", "configuration.dotnet.defaultSolution.description": "Varsayılan çözümün yolu, çalışma alanında açılacak veya atlamak için 'devre dışı' olarak ayarlanacak. (Daha önce 'omnisharp.defaultLaunchSolution')", "configuration.dotnet.enableXamlTools": "C# Geliştirme Setini kullanırken XAML araçlarını etkinleştirir", + "configuration.dotnet.formatting.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting. (Previously `omnisharp.organizeImportsOnFormat`)", "configuration.dotnet.highlighting.highlightRelatedJsonComponents": "İmlecin altındaki ilgili JSON bileşenlerini vurgula.", "configuration.dotnet.highlighting.highlightRelatedRegexComponents": "İmleç altındaki ilgili normal ifade bileşenlerini vurgula.", "configuration.dotnet.inlayHints.enableInlayHintsForLiteralParameters": "Sabit değerler için ipuçlarını göster", @@ -105,7 +106,6 @@ "configuration.omnisharp.maxProjectResults": "'Proje Seç' açılan menüsünde gösterilecek en fazla proje sayısı (en fazla 250).", "configuration.omnisharp.minFindSymbolsFilterLength": "'Çalışma Alanında Sembole Git' işlemi sonuçları göstermeden önce girilecek minimum karakter sayısı.", "configuration.omnisharp.monoPath": "\"useModernNet\" false olarak ayarlandığında, varsayılan sistem yerine kullanılacak mono kurulumunun yolunu belirtir. Örnek: \"/Library/Frameworks/Mono.framework/Versions/Current\"", - "configuration.omnisharp.organizeImportsOnFormat": "'using' yönergelerinin belge biçimlendirmesi sırasında gruplandırılarak sıralandırılıp sıralandırılmayacağını belirtir.", "configuration.omnisharp.projectFilesExcludePattern": "Tüm proje dosyalarını bulmak için OmniSharp tarafından kullanılan dışlama deseni.", "configuration.omnisharp.projectLoadTimeout": "Visual Studio Code'un OmniSharp sunucusunun başlamasını bekleyeceği süre. Süre saniye cinsinden ifade edilir.", "configuration.omnisharp.razor.completion.commitElementsWithSpace": "Etiket yardımcısı ve bileşen öğelerinin bir boşlukla işlenip işlenmeyeceğini belirtir.", diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json index 5b5ee8f9d..a898a9e86 100644 --- a/package.nls.zh-cn.json +++ b/package.nls.zh-cn.json @@ -45,6 +45,7 @@ "configuration.dotnet.completion.triggerCompletionInArgumentLists": "自动显示参数列表中的补全列表", "configuration.dotnet.defaultSolution.description": "要在工作区中打开的默认解决方案的路径,或者设置为“禁用”以跳过它。(之前为 \"omnisharp.defaultLaunchSolution\")", "configuration.dotnet.enableXamlTools": "使用 C# 开发工具包时启用 XAML 工具", + "configuration.dotnet.formatting.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting. (Previously `omnisharp.organizeImportsOnFormat`)", "configuration.dotnet.highlighting.highlightRelatedJsonComponents": "突出显示光标下的相关 JSON 组件。", "configuration.dotnet.highlighting.highlightRelatedRegexComponents": "突出显示光标下的相关正则表达式组件。", "configuration.dotnet.inlayHints.enableInlayHintsForLiteralParameters": "显示文本提示", @@ -105,7 +106,6 @@ "configuration.omnisharp.maxProjectResults": "“选择项目”下拉菜单中显示的项目最大数量(最多 250 个)。", "configuration.omnisharp.minFindSymbolsFilterLength": "“转到工作区中的符号”操作显示任何结果之前需要输入的最少字符数。", "configuration.omnisharp.monoPath": "指定当“useModernNet”设置为 false 时要使用的 Mono 安装路径,而不是默认的系统路径。示例:“/Library/Frameworks/Mono.framework/Versions/Current”", - "configuration.omnisharp.organizeImportsOnFormat": "指定在文档格式化期间是否应对“使用”指令进行分组和排序。", "configuration.omnisharp.projectFilesExcludePattern": "OmniSharp 用于查找所有项目文件的排除模式。", "configuration.omnisharp.projectLoadTimeout": "Visual Studio Code 等待 OmniSharp 服务器启动的时间。时间以秒来表示。", "configuration.omnisharp.razor.completion.commitElementsWithSpace": "指定是否提交带有空格的标记帮助程序和组件元素。", diff --git a/package.nls.zh-tw.json b/package.nls.zh-tw.json index 120bd0538..55edc8b0d 100644 --- a/package.nls.zh-tw.json +++ b/package.nls.zh-tw.json @@ -45,6 +45,7 @@ "configuration.dotnet.completion.triggerCompletionInArgumentLists": "自動在引數清單中顯示自動完成清單", "configuration.dotnet.defaultSolution.description": "要在工作區中開啟的預設解決方案路徑,或設為 [停用] 以略過它。(先前為 `omnisharp.defaultLaunchSolution`)", "configuration.dotnet.enableXamlTools": "使用 C# 開發套件時啟用 XAML 工具", + "configuration.dotnet.formatting.organizeImportsOnFormat": "Specifies whether 'using' directives should be grouped and sorted during document formatting. (Previously `omnisharp.organizeImportsOnFormat`)", "configuration.dotnet.highlighting.highlightRelatedJsonComponents": "反白資料指標下的相關 JSON 元件。", "configuration.dotnet.highlighting.highlightRelatedRegexComponents": "反白資料指標下的相關規則運算式元件。", "configuration.dotnet.inlayHints.enableInlayHintsForLiteralParameters": "顯示常值的提示", @@ -105,7 +106,6 @@ "configuration.omnisharp.maxProjectResults": "要在 [選取專案] 下拉式清單中顯示的專案數上限 (最多 250 個)。", "configuration.omnisharp.minFindSymbolsFilterLength": "在 [前往工作區中的符號] 作業顯示任何結果之前,要輸入的字元數下限。", "configuration.omnisharp.monoPath": "指定當 \"useModernNet\" 設定為 false 而非預設的系統時,要使用的 Mono 安裝的路徑。範例: \"/Library/Frameworks/Mono.framework/Versions/Current\"", - "configuration.omnisharp.organizeImportsOnFormat": "指定在文件格式化期間,是否應該將 'using' 指示詞分組和排序。", "configuration.omnisharp.projectFilesExcludePattern": "OmniSharp 用來尋找所有專案檔案的排除模式。", "configuration.omnisharp.projectLoadTimeout": "Visual Studio Code 將等候 OmniSharp 伺服器啟動的時間。時間以秒表示。", "configuration.omnisharp.razor.completion.commitElementsWithSpace": "指定是否以空格來認可標記協助程式和元件元素。", From b60c35930fd0b31c71fa801d8306c5c1ea123d04 Mon Sep 17 00:00:00 2001 From: Bret Johnson Date: Fri, 24 Jan 2025 15:31:17 -0500 Subject: [PATCH 35/38] Bump xamlTools --- CHANGELOG.md | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb17a97cd..7a7404a44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,8 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # 2.63.x -* Bump xamlTools to 17.14.35716.216 (PR: [#7932](https://github.com/dotnet/vscode-csharp/pull/7932)) -* Update Roslyn to 4.14.0-1.25072.1 (PR: [#7935](https://github.com/dotnet/vscode-csharp/pull/7935)) + * Bump xamlTools to 17.14.35723.260 (PR: [#7932](https://github.com/dotnet/vscode-csharp/pull/7932)) + * Update Roslyn to 4.14.0-1.25072.1 (PR: [#7935](https://github.com/dotnet/vscode-csharp/pull/7935)) * Remove explicit recursion in the json detection analyzer (#76764) (PR: [#76764](https://github.com/dotnet/roslyn/pull/76764)) * Consider silly cyclic assignment in scoped variance (#76261) (PR: [#76261](https://github.com/dotnet/roslyn/pull/76261)) * Fix ordering of 'params' vs 'scoped' in metadata as source (#76745) (PR: [#76745](https://github.com/dotnet/roslyn/pull/76745)) diff --git a/package.json b/package.json index 31e336bbd..131953808 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "omniSharp": "1.39.12", "razor": "9.0.0-preview.25064.4", "razorOmnisharp": "7.0.0-preview.23363.1", - "xamlTools": "17.14.35716.216" + "xamlTools": "17.14.35723.260" }, "main": "./dist/extension", "l10n": "./l10n", From f8d10779f520b1c014d0ab5aaf6da8fa3a3eea4d Mon Sep 17 00:00:00 2001 From: Bret Johnson Date: Fri, 24 Jan 2025 15:33:09 -0500 Subject: [PATCH 36/38] mend --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a7404a44..862a8299f 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.63.x - * Bump xamlTools to 17.14.35723.260 (PR: [#7932](https://github.com/dotnet/vscode-csharp/pull/7932)) + * Bump xamlTools to 17.14.35723.260 (PR: [#7932](https://github.com/dotnet/vscode-csharp/pull/7941)) * Update Roslyn to 4.14.0-1.25072.1 (PR: [#7935](https://github.com/dotnet/vscode-csharp/pull/7935)) * Remove explicit recursion in the json detection analyzer (#76764) (PR: [#76764](https://github.com/dotnet/roslyn/pull/76764)) * Consider silly cyclic assignment in scoped variance (#76261) (PR: [#76261](https://github.com/dotnet/roslyn/pull/76261)) From 1cb5c3e77e2765df40d7f1d54e5ad56d186da11e Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Fri, 24 Jan 2025 13:08:08 -0800 Subject: [PATCH 37/38] Fix indentation --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 862a8299f..502f29535 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,8 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) # 2.63.x - * Bump xamlTools to 17.14.35723.260 (PR: [#7932](https://github.com/dotnet/vscode-csharp/pull/7941)) - * Update Roslyn to 4.14.0-1.25072.1 (PR: [#7935](https://github.com/dotnet/vscode-csharp/pull/7935)) +* Bump xamlTools to 17.14.35723.260 (PR: [#7932](https://github.com/dotnet/vscode-csharp/pull/7941)) +* Update Roslyn to 4.14.0-1.25072.1 (PR: [#7935](https://github.com/dotnet/vscode-csharp/pull/7935)) * Remove explicit recursion in the json detection analyzer (#76764) (PR: [#76764](https://github.com/dotnet/roslyn/pull/76764)) * Consider silly cyclic assignment in scoped variance (#76261) (PR: [#76261](https://github.com/dotnet/roslyn/pull/76261)) * Fix ordering of 'params' vs 'scoped' in metadata as source (#76745) (PR: [#76745](https://github.com/dotnet/roslyn/pull/76745)) From 6980e37cda19ee4260ed654c8a6ee0c7f529632f Mon Sep 17 00:00:00 2001 From: Joey Robichaud Date: Fri, 24 Jan 2025 17:07:30 -0800 Subject: [PATCH 38/38] Update Roslyn to 4.14.0-1.25074.7 --- CHANGELOG.md | 14 ++++++++++++-- package.json | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 502f29535..d6590c7e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,18 @@ # 2.63.x * Bump xamlTools to 17.14.35723.260 (PR: [#7932](https://github.com/dotnet/vscode-csharp/pull/7941)) -* Update Roslyn to 4.14.0-1.25072.1 (PR: [#7935](https://github.com/dotnet/vscode-csharp/pull/7935)) +* Update Roslyn to 4.14.0-1.25074.7 (PR: [#7942](https://github.com/dotnet/vscode-csharp/pull/7942)) + * Enable extract refactorings in LSP (PR: [#76718](https://github.com/dotnet/roslyn/pull/76718)) + * Speed up 'fix all' for 'use auto prop' by running in parallel (PR: [#76905](https://github.com/dotnet/roslyn/pull/76905)) + * Add support for converting an auto-prop to a field-backed property. (PR: [#76900](https://github.com/dotnet/roslyn/pull/76900)) + * Fix throw in generator comparer (PR: [#76769](https://github.com/dotnet/roslyn/pull/76769)) + * Do not offer the containing type when offering completion in teh base-list (PR: [#76891](https://github.com/dotnet/roslyn/pull/76891)) + * Improve handling bad metadata in EE (PR: [#76878](https://github.com/dotnet/roslyn/pull/76878)) + * Record completion of "Simple lambda parameters with modifiers" feature (PR: [#76884](https://github.com/dotnet/roslyn/pull/76884)) + * Reduce work in ConversionsBase.AddUserDefinedConversionsToExplicitCandidateSet (PR: [#76835](https://github.com/dotnet/roslyn/pull/76835)) + * Update formatOnType handler to support formatting on NewLine (PR: [#76876](https://github.com/dotnet/roslyn/pull/76876)) + * Fix new document formatting (PR: [#76736](https://github.com/dotnet/roslyn/pull/76736)) + * Initial work to collapse comments at the end of a block (PR: [#76865](https://github.com/dotnet/roslyn/pull/76865)) * Remove explicit recursion in the json detection analyzer (#76764) (PR: [#76764](https://github.com/dotnet/roslyn/pull/76764)) * Consider silly cyclic assignment in scoped variance (#76261) (PR: [#76261](https://github.com/dotnet/roslyn/pull/76261)) * Fix ordering of 'params' vs 'scoped' in metadata as source (#76745) (PR: [#76745](https://github.com/dotnet/roslyn/pull/76745)) @@ -18,7 +29,6 @@ * Do not lift type parameters in extract method declared within the selected region (#76724) (PR: [#76724](https://github.com/dotnet/roslyn/pull/76724)) * Always use .OriginalDefinition uniformly in the unread-members analyzer (#76698) (PR: [#76698](https://github.com/dotnet/roslyn/pull/76698)) * Adding checks for mutable structs. (#76711) (PR: [#76711](https://github.com/dotnet/roslyn/pull/76711)) - * Stash and restore original culture in CultureNormalizer (#76713) (PR: [#76713](https://github.com/dotnet/roslyn/pull/76713)) * Add option for choosing stdio as the LSP communication channel (#76437) (PR: [#76437](https://github.com/dotnet/roslyn/pull/76437)) * Support organizing imports as part of LSP document formatting (PR: [#76806](https://github.com/dotnet/roslyn/pull/76806)) * Improve collapsing of members followed by pp directives (PR: [#76837](https://github.com/dotnet/roslyn/pull/76837)) diff --git a/package.json b/package.json index 131953808..a2308ca2e 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ } }, "defaults": { - "roslyn": "4.14.0-1.25072.1", + "roslyn": "4.14.0-1.25074.7", "omniSharp": "1.39.12", "razor": "9.0.0-preview.25064.4", "razorOmnisharp": "7.0.0-preview.23363.1",