From f09715ff6bcfe0d6ec8de32ec337cffa45b90032 Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Thu, 10 Oct 2024 11:56:26 -0700 Subject: [PATCH 01/78] Add packages for copilot folks (#12822) --- Extension/package.json | 4 ++ Extension/yarn.lock | 134 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 136 insertions(+), 2 deletions(-) diff --git a/Extension/package.json b/Extension/package.json index 99310ee1c..60cdf0019 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -6490,8 +6490,10 @@ "@types/node": "^20.14.2", "@types/node-fetch": "^2.6.11", "@types/plist": "^3.0.5", + "@types/proxyquire": "^1.3.31", "@types/semver": "^7.5.8", "@types/shell-quote": "^1.7.5", + "@types/sinon": "^17.0.3", "@types/tmp": "^0.2.6", "@types/which": "^2.0.2", "@types/yauzl": "^2.10.3", @@ -6519,6 +6521,8 @@ "parse-git-config": "^3.0.0", "parse5": "^7.1.2", "parse5-traverse": "^1.0.3", + "proxyquire": "^2.1.3", + "sinon": "^19.0.2", "ts-loader": "^9.5.1", "ts-node": "^10.9.2", "typescript": "^5.4.5", diff --git a/Extension/yarn.lock b/Extension/yarn.lock index 16653af1f..7a59a937d 100644 --- a/Extension/yarn.lock +++ b/Extension/yarn.lock @@ -372,6 +372,34 @@ resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" integrity sha1-kn3S+um8M2FAOsLHoAwy3c6a1+g= +"@sinonjs/commons@^3.0.1": + version "3.0.1" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha1-ECk1fkTKkBphVYX20nc428iQhM0= + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^13.0.1", "@sinonjs/fake-timers@^13.0.2": + version "13.0.2" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@sinonjs/fake-timers/-/fake-timers-13.0.2.tgz#3ffe88abb062067a580fdfba706ad00435a0f2a6" + integrity sha1-P/6Iq7BiBnpYD9+6cGrQBDWg8qY= + dependencies: + "@sinonjs/commons" "^3.0.1" + +"@sinonjs/samsam@^8.0.1": + version "8.0.2" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@sinonjs/samsam/-/samsam-8.0.2.tgz#e4386bf668ff36c95949e55a38dc5f5892fc2689" + integrity sha1-5Dhr9mj/NslZSeVaONxfWJL8Jok= + dependencies: + "@sinonjs/commons" "^3.0.1" + lodash.get "^4.4.2" + type-detect "^4.1.0" + +"@sinonjs/text-encoding@^0.7.3": + version "0.7.3" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz#282046f03e886e352b2d5f5da5eb755e01457f3f" + integrity sha1-KCBG8D6IbjUrLV9dpet1XgFFfz8= + "@tsconfig/node10@^1.0.7": version "1.0.11" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" @@ -460,6 +488,11 @@ "@types/node" "*" xmlbuilder ">=11.0.1" +"@types/proxyquire@^1.3.31": + version "1.3.31" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/proxyquire/-/proxyquire-1.3.31.tgz#a008b78dad6061754e3adf2cb64b60303f68deaa" + integrity sha1-oAi3ja1gYXVOOt8stktgMD9o3qo= + "@types/semver@^7.5.0", "@types/semver@^7.5.8": version "7.5.8" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" @@ -470,6 +503,18 @@ resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/shell-quote/-/shell-quote-1.7.5.tgz#6db4704742d307cd6d604e124e3ad6cd5ed943f3" integrity sha1-bbRwR0LTB81tYE4STjrWzV7ZQ/M= +"@types/sinon@^17.0.3": + version "17.0.3" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/sinon/-/sinon-17.0.3.tgz#9aa7e62f0a323b9ead177ed23a36ea757141a5fa" + integrity sha1-mqfmLwoyO56tF37SOjbqdXFBpfo= + dependencies: + "@types/sinonjs__fake-timers" "*" + +"@types/sinonjs__fake-timers@*": + version "8.1.5" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz#5fd3592ff10c1e9695d377020c033116cc2889f2" + integrity sha1-X9NZL/EMHpaV03cCDAMxFswoifI= + "@types/tmp@^0.2.6": version "0.2.6" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/tmp/-/tmp-0.2.6.tgz#d785ee90c52d7cc020e249c948c36f7b32d1e217" @@ -1521,6 +1566,11 @@ diff@^5.2.0: resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" integrity sha1-Jt7QR80RebeLlTfV73JVA84a5TE= +diff@^7.0.0: + version "7.0.0" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a" + integrity sha1-P7NNOHzXbYA/buvqZ7kh2rAYKpo= + dir-glob@^3.0.1: version "3.0.1" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2095,6 +2145,14 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +fill-keys@^1.0.2: + version "1.0.2" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/fill-keys/-/fill-keys-1.0.2.tgz#9a8fa36f4e8ad634e3bf6b4f3c8882551452eb20" + integrity sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA= + dependencies: + is-object "~1.0.1" + merge-descriptors "~1.0.0" + fill-range@^7.1.1: version "7.1.1" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" @@ -2791,6 +2849,11 @@ is-number@^7.0.0: resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss= +is-object@~1.0.1: + version "1.0.2" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + integrity sha1-pWVS4cZlyelQtKAlRh2ofnL4b88= + is-path-inside@^3.0.3: version "3.0.3" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" @@ -2997,6 +3060,11 @@ jszip@^3.10.1: readable-stream "~2.3.6" setimmediate "^1.0.5" +just-extend@^6.2.0: + version "6.2.0" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/just-extend/-/just-extend-6.2.0.tgz#b816abfb3d67ee860482e7401564672558163947" + integrity sha1-uBar+z1n7oYEgudAFWRnJVgWOUc= + keyv@^4.5.3: version "4.5.4" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" @@ -3094,6 +3162,11 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + lodash.merge@^4.6.2: version "4.6.2" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -3151,6 +3224,11 @@ memoizee@0.4.X: next-tick "^1.1.0" timers-ext "^0.1.7" +merge-descriptors@~1.0.0: + version "1.0.3" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" + integrity sha1-2AMZpl88eTU1Hlz9rI+TGFBNvtU= + merge-stream@^2.0.0: version "2.0.0" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -3243,6 +3321,11 @@ mocha@^10.4.0: yargs-parser "^20.2.9" yargs-unparser "^2.0.0" +module-not-found-error@^1.0.1: + version "1.0.1" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/module-not-found-error/-/module-not-found-error-1.0.1.tgz#cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0" + integrity sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA= + ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" @@ -3284,6 +3367,17 @@ next-tick@^1.1.0: resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" integrity sha1-GDbuMK1W1n7ygbIr0Zn3CUSbNes= +nise@^6.1.1: + version "6.1.1" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/nise/-/nise-6.1.1.tgz#78ea93cc49be122e44cb7c8fdf597b0e8778b64a" + integrity sha1-eOqTzEm+Ei5Ey3yP31l7Dod4tko= + dependencies: + "@sinonjs/commons" "^3.0.1" + "@sinonjs/fake-timers" "^13.0.1" + "@sinonjs/text-encoding" "^0.7.3" + just-extend "^6.2.0" + path-to-regexp "^8.1.0" + node-fetch@^2.7.0: version "2.7.0" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" @@ -3576,6 +3670,11 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" +path-to-regexp@^8.1.0: + version "8.2.0" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/path-to-regexp/-/path-to-regexp-8.2.0.tgz#73990cc29e57a3ff2a0d914095156df5db79e8b4" + integrity sha1-c5kMwp5Xo/8qDZFAlRVt9dt56LQ= + path-type@^4.0.0: version "4.0.0" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -3661,6 +3760,15 @@ prompts@^2.4.2: kleur "^3.0.3" sisteransi "^1.0.5" +proxyquire@^2.1.3: + version "2.1.3" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/proxyquire/-/proxyquire-2.1.3.tgz#2049a7eefa10a9a953346a18e54aab2b4268df39" + integrity sha1-IEmn7voQqalTNGoY5UqrK0Jo3zk= + dependencies: + fill-keys "^1.0.2" + module-not-found-error "^1.0.1" + resolve "^1.11.1" + pump@^2.0.0: version "2.0.1" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" @@ -3837,7 +3945,7 @@ resolve-options@^2.0.0: dependencies: value-or-function "^4.0.0" -resolve@^1.20.0, resolve@^1.22.4: +resolve@^1.11.1, resolve@^1.20.0, resolve@^1.22.4: version "1.22.8" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha1-tsh6nyqgbfq1Lj1wrIzeMh+lpI0= @@ -4011,6 +4119,18 @@ signal-exit@^3.0.2: resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha1-qaF2f4r4QVURTqq9c/mSc8j1mtk= +sinon@^19.0.2: + version "19.0.2" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/sinon/-/sinon-19.0.2.tgz#944cf771d22236aa84fc1ab70ce5bffc3a215dad" + integrity sha1-lEz3cdIiNqqE/Bq3DOW//DohXa0= + dependencies: + "@sinonjs/commons" "^3.0.1" + "@sinonjs/fake-timers" "^13.0.2" + "@sinonjs/samsam" "^8.0.1" + diff "^7.0.0" + nise "^6.1.1" + supports-color "^7.2.0" + sisteransi@^1.0.5: version "1.0.5" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -4231,7 +4351,7 @@ strip-json-comments@^3.1.1: resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY= -supports-color@^7.1.0: +supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha1-G33NyzK4E4gBs+R4umpRyqiWSNo= @@ -4459,6 +4579,16 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-detect@4.0.8: + version "4.0.8" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw= + +type-detect@^4.1.0: + version "4.1.0" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" + integrity sha1-3rJFPo8I3K566YxiaxPd2wFVkGw= + type-fest@^0.20.2: version "0.20.2" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" From 05c9176fb84bda5006f0df8d95a4302db3a966bb Mon Sep 17 00:00:00 2001 From: Glen Chung <105310954+kuchungmsft@users.noreply.github.com> Date: Mon, 14 Oct 2024 11:46:00 -0700 Subject: [PATCH 02/78] Add Cpp Context Traits to Completions Prompt (#12821) - Move related files code to its own module - Refactor related files provider code to enable unit testing - Add Cpp context traits to completions prompt --- .../src/LanguageServer/copilotProviders.ts | 134 +++++++ Extension/src/LanguageServer/extension.ts | 86 +--- Extension/src/main.ts | 3 +- .../tests/copilotProviders.test.ts | 371 ++++++++++++++++++ 4 files changed, 512 insertions(+), 82 deletions(-) create mode 100644 Extension/src/LanguageServer/copilotProviders.ts create mode 100644 Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts diff --git a/Extension/src/LanguageServer/copilotProviders.ts b/Extension/src/LanguageServer/copilotProviders.ts new file mode 100644 index 000000000..2847212ef --- /dev/null +++ b/Extension/src/LanguageServer/copilotProviders.ts @@ -0,0 +1,134 @@ +/* -------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All Rights Reserved. + * See 'LICENSE' in the project root for license information. + * ------------------------------------------------------------------------------------------ */ +'use strict'; + +import * as vscode from 'vscode'; +import * as util from '../common'; +import * as telemetry from '../telemetry'; +import { ChatContextResult, GetIncludesResult } from './client'; +import { getActiveClient } from './extension'; + +let isRelatedFilesApiEnabled: boolean | undefined; + +export interface CopilotTrait { + name: string; + value: string; + includeInPrompt?: boolean; + promptTextOverride?: string; +} + +export interface CopilotApi { + registerRelatedFilesProvider( + providerId: { extensionId: string; languageId: string }, + callback: ( + uri: vscode.Uri, + context: { flags: Record }, + cancellationToken: vscode.CancellationToken + ) => Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] }> + ): Disposable; +} + +export async function registerRelatedFilesProvider(): Promise { + if (!await getIsRelatedFilesApiEnabled()) { + return; + } + + const api = await getCopilotApi(); + if (util.extensionContext && api) { + try { + for (const languageId of ['c', 'cpp', 'cuda-cpp']) { + api.registerRelatedFilesProvider( + { extensionId: util.extensionContext.extension.id, languageId }, + async (_uri: vscode.Uri, context: { flags: Record }, token: vscode.CancellationToken) => { + + const getIncludesHandler = async () => (await getIncludesWithCancellation(1, token))?.includedFiles.map(file => vscode.Uri.file(file)) ?? []; + const getTraitsHandler = async () => { + const chatContext: ChatContextResult | undefined = await (getActiveClient().getChatContext(token) ?? undefined); + + if (!chatContext) { + return undefined; + } + + let traits: CopilotTrait[] = [ + { name: "language", value: chatContext.language, includeInPrompt: true, promptTextOverride: `The language is ${chatContext.language}.` }, + { name: "compiler", value: chatContext.compiler, includeInPrompt: true, promptTextOverride: `This project compiles using ${chatContext.compiler}.` }, + { name: "standardVersion", value: chatContext.standardVersion, includeInPrompt: true, promptTextOverride: `This project uses the ${chatContext.standardVersion} language standard.` }, + { name: "targetPlatform", value: chatContext.targetPlatform, includeInPrompt: true, promptTextOverride: `This build targets ${chatContext.targetPlatform}.` }, + { name: "targetArchitecture", value: chatContext.targetArchitecture, includeInPrompt: true, promptTextOverride: `This build targets ${chatContext.targetArchitecture}.` } + ]; + + const excludeTraits = context.flags.copilotcppExcludeTraits as string[] ?? []; + traits = traits.filter(trait => !excludeTraits.includes(trait.name)); + + return traits.length > 0 ? traits : undefined; + }; + + // Call both handlers in parallel + const traitsPromise = ((context.flags.copilotcppTraits as boolean) ?? false) ? getTraitsHandler() : Promise.resolve(undefined); + const includesPromise = getIncludesHandler(); + + return { entries: await includesPromise, traits: await traitsPromise }; + } + ); + } + } catch { + console.log("Failed to register Copilot related files provider."); + } + } +} + +export async function registerRelatedFilesCommands(commandDisposables: vscode.Disposable[], enabled: boolean): Promise { + if (await getIsRelatedFilesApiEnabled()) { + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.getIncludes', enabled ? (maxDepth: number) => getIncludes(maxDepth) : () => Promise.resolve())); + } +} + +async function getIncludesWithCancellation(maxDepth: number, token: vscode.CancellationToken): Promise { + const activeClient = getActiveClient(); + const includes = await activeClient.getIncludes(maxDepth, token); + const wksFolder = activeClient.RootUri?.toString(); + + if (!wksFolder) { + return includes; + } + + includes.includedFiles = includes.includedFiles.filter(header => vscode.Uri.file(header).toString().startsWith(wksFolder)); + return includes; +} + +async function getIncludes(maxDepth: number): Promise { + const tokenSource = new vscode.CancellationTokenSource(); + try { + const includes = await getIncludesWithCancellation(maxDepth, tokenSource.token); + return includes; + } finally { + tokenSource.dispose(); + } +} + +async function getIsRelatedFilesApiEnabled(): Promise { + if (isRelatedFilesApiEnabled === undefined) { + isRelatedFilesApiEnabled = await telemetry.isExperimentEnabled("CppToolsRelatedFilesApi"); + } + + return isRelatedFilesApiEnabled; +} + +export async function getCopilotApi(): Promise { + const copilotExtension = vscode.extensions.getExtension('github.copilot'); + if (!copilotExtension) { + return undefined; + } + + if (!copilotExtension.isActive) { + try { + return await copilotExtension.activate(); + } catch { + return undefined; + } + } else { + return copilotExtension.exports; + } +} diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index 47a7cd034..c1fadda4c 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -20,9 +20,10 @@ import * as util from '../common'; import { getCrashCallStacksChannel } from '../logger'; import { PlatformInformation } from '../platform'; import * as telemetry from '../telemetry'; -import { Client, DefaultClient, DoxygenCodeActionCommandArguments, GetIncludesResult, openFileVersions } from './client'; +import { Client, DefaultClient, DoxygenCodeActionCommandArguments, openFileVersions } from './client'; import { ClientCollection } from './clientCollection'; import { CodeActionDiagnosticInfo, CodeAnalysisDiagnosticIdentifiersAndUri, codeAnalysisAllFixes, codeAnalysisCodeToFixes, codeAnalysisFileToCodeActions } from './codeAnalysis'; +import { registerRelatedFilesCommands, registerRelatedFilesProvider } from './copilotProviders'; import { CppBuildTaskProvider } from './cppBuildTaskProvider'; import { getCustomConfigProviders } from './customProviders'; import { getLanguageConfig } from './languageConfig'; @@ -33,24 +34,6 @@ import { CppSettings } from './settings'; import { LanguageStatusUI, getUI } from './ui'; import { makeLspRange, rangeEquals, showInstallCompilerWalkthrough } from './utils'; -interface CopilotTrait { - name: string; - value: string; - includeInPrompt?: boolean; - promptTextOverride?: string; -} - -interface CopilotApi { - registerRelatedFilesProvider( - providerId: { extensionId: string; languageId: string }, - callback: ( - uri: vscode.Uri, - context: { flags: Record }, - cancellationToken: vscode.CancellationToken - ) => Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] }> - ): Disposable; -} - nls.config({ messageFormat: nls.MessageFormat.bundle, bundleFormat: nls.BundleFormat.standalone })(); const localize: nls.LocalizeFunc = nls.loadMessageBundle(); export const CppSourceStr: string = "C/C++"; @@ -201,8 +184,7 @@ export async function activate(): Promise { void clients.ActiveClient.ready.then(() => intervalTimer = global.setInterval(onInterval, 2500)); - const isRelatedFilesApiEnabled = await telemetry.isExperimentEnabled("CppToolsRelatedFilesApi"); - registerCommands(true, isRelatedFilesApiEnabled); + await registerCommands(true); vscode.tasks.onDidStartTask(() => getActiveClient().PauseCodeAnalysis()); @@ -274,22 +256,7 @@ export async function activate(): Promise { disposables.push(tool); } - if (isRelatedFilesApiEnabled) { - const api = await getCopilotApi(); - if (util.extensionContext && api) { - try { - for (const languageId of ['c', 'cpp', 'cuda-cpp']) { - api.registerRelatedFilesProvider( - { extensionId: util.extensionContext.extension.id, languageId }, - async (_uri: vscode.Uri, _context: { flags: Record }, token: vscode.CancellationToken) => - ({ entries: (await getIncludesWithCancellation(1, token))?.includedFiles.map(file => vscode.Uri.file(file)) ?? [] }) - ); - } - } catch { - console.log("Failed to register Copilot related files provider."); - } - } - } + await registerRelatedFilesProvider(); } export function updateLanguageConfigurations(): void { @@ -386,7 +353,7 @@ function onInterval(): void { /** * registered commands */ -export function registerCommands(enabled: boolean, isRelatedFilesApiEnabled: boolean): void { +export async function registerCommands(enabled: boolean): Promise { commandDisposables.forEach(d => d.dispose()); commandDisposables.length = 0; commandDisposables.push(vscode.commands.registerCommand('C_Cpp.SwitchHeaderSource', enabled ? onSwitchHeaderSource : onDisabledCommand)); @@ -445,9 +412,7 @@ export function registerCommands(enabled: boolean, isRelatedFilesApiEnabled: boo commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ExtractToMemberFunction', enabled ? () => onExtractToFunction(false, true) : onDisabledCommand)); commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ExpandSelection', enabled ? (r: Range) => onExpandSelection(r) : onDisabledCommand)); - if (!isRelatedFilesApiEnabled) { - commandDisposables.push(vscode.commands.registerCommand('C_Cpp.getIncludes', enabled ? (maxDepth: number) => getIncludes(maxDepth) : () => Promise.resolve())); - } + await registerRelatedFilesCommands(commandDisposables, enabled); } function onDisabledCommand() { @@ -1412,42 +1377,3 @@ export async function preReleaseCheck(): Promise { } } } - -export async function getIncludesWithCancellation(maxDepth: number, token: vscode.CancellationToken): Promise { - const includes = await clients.ActiveClient.getIncludes(maxDepth, token); - const wksFolder = clients.ActiveClient.RootUri?.toString(); - - if (!wksFolder) { - return includes; - } - - includes.includedFiles = includes.includedFiles.filter(header => vscode.Uri.file(header).toString().startsWith(wksFolder)); - return includes; -} - -async function getIncludes(maxDepth: number): Promise { - const tokenSource = new vscode.CancellationTokenSource(); - try { - const includes = await getIncludesWithCancellation(maxDepth, tokenSource.token); - return includes; - } finally { - tokenSource.dispose(); - } -} - -async function getCopilotApi(): Promise { - const copilotExtension = vscode.extensions.getExtension('github.copilot'); - if (!copilotExtension) { - return undefined; - } - - if (!copilotExtension.isActive) { - try { - return await copilotExtension.activate(); - } catch { - return undefined; - } - } else { - return copilotExtension.exports; - } -} diff --git a/Extension/src/main.ts b/Extension/src/main.ts index fd6bacb89..e15389dda 100644 --- a/Extension/src/main.ts +++ b/Extension/src/main.ts @@ -146,8 +146,7 @@ export async function activate(context: vscode.ExtensionContext): Promise { + let moduleUnderTest: any; + let getIsRelatedFilesApiEnabledStub: sinon.SinonStub; + let mockCopilotApi: sinon.SinonStubbedInstance; + let getActiveClientStub: sinon.SinonStub; + let activeClientStub: sinon.SinonStubbedInstance; + let vscodeGetExtensionsStub: sinon.SinonStub; + let callbackPromise: Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] }> | undefined; + let vscodeExtension: vscode.Extension; + + beforeEach(() => { + proxyquire.noPreserveCache(); // Tells proxyquire to not fetch the module from cache + // Ensures that each test has a freshly loaded instance of moduleUnderTest + moduleUnderTest = proxyquire( + '../../../../src/LanguageServer/copilotProviders', + {} // Stub if you need to, or keep the object empty + ); + + getIsRelatedFilesApiEnabledStub = sinon.stub(telemetry, 'isExperimentEnabled'); + sinon.stub(util, 'extensionContext').value({ extension: { id: 'test-extension-id' } }); + + class MockCopilotApi implements CopilotApi { + public registerRelatedFilesProvider( + _providerId: { extensionId: string; languageId: string }, + _callback: ( + uri: vscode.Uri, + context: { flags: Record }, + cancellationToken: vscode.CancellationToken + ) => Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] }> + ): vscode.Disposable & { [Symbol.dispose](): void } { + return { + dispose: () => { }, + [Symbol.dispose]: () => { } + }; + } + } + mockCopilotApi = sinon.createStubInstance(MockCopilotApi); + vscodeExtension = { + id: 'test-extension-id', + extensionUri: vscode.Uri.parse('file:///test-extension-path'), + extensionPath: 'test-extension-path', + isActive: true, + packageJSON: { name: 'test-extension-name' }, + activate: async () => { }, + exports: mockCopilotApi, + extensionKind: vscode.ExtensionKind.UI + }; + + activeClientStub = sinon.createStubInstance(DefaultClient); + getActiveClientStub = sinon.stub(extension, 'getActiveClient').returns(activeClientStub); + activeClientStub.getIncludes.resolves({ includedFiles: [] }); + }); + + afterEach(() => { + sinon.restore(); + }); + + const arrange = ({ cppToolsRelatedFilesApi, vscodeExtension, getIncludeFiles, chatContext, rootUri, flags }: + { cppToolsRelatedFilesApi: boolean; vscodeExtension?: vscode.Extension; getIncludeFiles?: GetIncludesResult; chatContext?: ChatContextResult; rootUri?: vscode.Uri; flags?: Record } = + { cppToolsRelatedFilesApi: false, vscodeExtension: undefined, getIncludeFiles: undefined, chatContext: undefined, rootUri: undefined, flags: {} } + ) => { + getIsRelatedFilesApiEnabledStub.withArgs('CppToolsRelatedFilesApi').resolves(cppToolsRelatedFilesApi); + activeClientStub.getIncludes.resolves(getIncludeFiles); + activeClientStub.getChatContext.resolves(chatContext); + sinon.stub(activeClientStub, 'RootUri').get(() => rootUri); + mockCopilotApi.registerRelatedFilesProvider.callsFake((_providerId: { extensionId: string; languageId: string }, callback: (uri: vscode.Uri, context: { flags: Record }, cancellationToken: vscode.CancellationToken) => Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] }>) => { + const tokenSource = new vscode.CancellationTokenSource(); + try { + callbackPromise = callback(vscode.Uri.parse('file:///test-extension-path'), { flags: flags ?? {} }, tokenSource.token); + } finally { + tokenSource.dispose(); + } + + return { + dispose: () => { }, + [Symbol.dispose]: () => { } + }; + }); + vscodeGetExtensionsStub = sinon.stub(vscode.extensions, 'getExtension').returns(vscodeExtension); + }; + + it('should not register provider if CppToolsRelatedFilesApi is not enabled', async () => { + arrange( + { cppToolsRelatedFilesApi: false } + ); + + await moduleUnderTest.registerRelatedFilesProvider(); + + ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); + }); + + it('should register provider if CppToolsRelatedFilesApi is enabled', async () => { + arrange( + { cppToolsRelatedFilesApi: true, vscodeExtension: vscodeExtension } + ); + + await moduleUnderTest.registerRelatedFilesProvider(); + + ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); + ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); + ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); + }); + + it('should not add #cpp traits when ChatContext isn\'t available.', async () => { + arrange({ + cppToolsRelatedFilesApi: true, + vscodeExtension: vscodeExtension, + getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + chatContext: undefined, + rootUri: vscode.Uri.file('C:\\src\\my_project'), + flags: { copilotcppTraits: true } + }); + await moduleUnderTest.registerRelatedFilesProvider(); + + const result = await callbackPromise; + + ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); + ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); + ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); + ok(getActiveClientStub.callCount !== 0, 'getActiveClient should be called'); + ok(callbackPromise, 'callbackPromise should be defined'); + ok(result, 'result should be defined'); + ok(result.entries.length === 1, 'result.entries should have 1 included file'); + ok(result.entries[0].toString() === 'file:///c%3A/src/my_project/foo.h', 'result.entries should have "file:///c%3A/src/my_project/foo.h"'); + ok(result.traits === undefined, 'result.traits should be undefined'); + }); + + it('should not add #cpp traits when copilotcppTraits flag is false.', async () => { + arrange({ + cppToolsRelatedFilesApi: true, + vscodeExtension: vscodeExtension, + getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + chatContext: { + language: 'c++', + standardVersion: 'c++20', + compiler: 'msvc', + targetPlatform: 'windows', + targetArchitecture: 'x64' + }, + rootUri: vscode.Uri.file('C:\\src\\my_project'), + flags: { copilotcppTraits: false } + }); + await moduleUnderTest.registerRelatedFilesProvider(); + + const result = await callbackPromise; + + ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); + ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); + ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); + ok(getActiveClientStub.callCount !== 0, 'getActiveClient should be called'); + ok(callbackPromise, 'callbackPromise should be defined'); + ok(result, 'result should be defined'); + ok(result.entries.length === 1, 'result.entries should have 1 included file'); + ok(result.entries[0].toString() === 'file:///c%3A/src/my_project/foo.h', 'result.entries should have "file:///c%3A/src/my_project/foo.h"'); + ok(result.traits === undefined, 'result.traits should be undefined'); + }); + + it('should add #cpp traits when copilotcppTraits flag is true.', async () => { + arrange({ + cppToolsRelatedFilesApi: true, + vscodeExtension: vscodeExtension, + getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + chatContext: { + language: 'c++', + standardVersion: 'c++20', + compiler: 'msvc', + targetPlatform: 'windows', + targetArchitecture: 'x64' + }, + rootUri: vscode.Uri.file('C:\\src\\my_project'), + flags: { copilotcppTraits: true } + }); + await moduleUnderTest.registerRelatedFilesProvider(); + + const result = await callbackPromise; + + ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); + ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); + ok(mockCopilotApi.registerRelatedFilesProvider.calledThrice, 'registerRelatedFilesProvider should be called three times'); + ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); + ok(getActiveClientStub.callCount !== 0, 'getActiveClient should be called'); + ok(callbackPromise, 'callbackPromise should be defined'); + ok(result, 'result should be defined'); + ok(result.entries.length === 1, 'result.entries should have 1 included file'); + ok(result.entries[0].toString() === 'file:///c%3A/src/my_project/foo.h', 'result.entries should have "file:///c%3A/src/my_project/foo.h"'); + ok(result.traits, 'result.traits should be defined'); + ok(result.traits.length === 5, 'result.traits should have 5 traits'); + ok(result.traits[0].name === 'language', 'result.traits[0].name should be "language"'); + ok(result.traits[0].value === 'c++', 'result.traits[0].value should be "c++"'); + ok(result.traits[0].includeInPrompt, 'result.traits[0].includeInPrompt should be true'); + ok(result.traits[0].promptTextOverride === 'The language is c++.', 'result.traits[0].promptTextOverride should be "The language is c++."'); + ok(result.traits[1].name === 'compiler', 'result.traits[1].name should be "compiler"'); + ok(result.traits[1].value === 'msvc', 'result.traits[1].value should be "msvc"'); + ok(result.traits[1].includeInPrompt, 'result.traits[1].includeInPrompt should be true'); + ok(result.traits[1].promptTextOverride === 'This project compiles using msvc.', 'result.traits[1].promptTextOverride should be "This project compiles using msvc."'); + ok(result.traits[2].name === 'standardVersion', 'result.traits[2].name should be "standardVersion"'); + ok(result.traits[2].value === 'c++20', 'result.traits[2].value should be "c++20"'); + ok(result.traits[2].includeInPrompt, 'result.traits[2].includeInPrompt should be true'); + ok(result.traits[2].promptTextOverride === 'This project uses the c++20 language standard.', 'result.traits[2].promptTextOverride should be "This project uses the c++20 language standard."'); + ok(result.traits[3].name === 'targetPlatform', 'result.traits[3].name should be "targetPlatform"'); + ok(result.traits[3].value === 'windows', 'result.traits[3].value should be "windows"'); + ok(result.traits[3].includeInPrompt, 'result.traits[3].includeInPrompt should be true'); + ok(result.traits[3].promptTextOverride === 'This build targets windows.', 'result.traits[3].promptTextOverride should be "This build targets windows."'); + ok(result.traits[4].name === 'targetArchitecture', 'result.traits[4].name should be "targetArchitecture"'); + ok(result.traits[4].value === 'x64', 'result.traits[4].value should be "x64"'); + ok(result.traits[4].includeInPrompt, 'result.traits[4].includeInPrompt should be true'); + ok(result.traits[4].promptTextOverride === 'This build targets x64.', 'result.traits[4].promptTextOverride should be "This build targets x64."'); + }); + + it('should exclude #cpp traits per copilotcppExcludeTraits.', async () => { + const excludeTraits = ['compiler', 'targetPlatform']; + arrange({ + cppToolsRelatedFilesApi: true, + vscodeExtension: vscodeExtension, + getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + chatContext: { + language: 'c++', + standardVersion: 'c++20', + compiler: 'msvc', + targetPlatform: 'windows', + targetArchitecture: 'x64' + }, + rootUri: vscode.Uri.file('C:\\src\\my_project'), + flags: { copilotcppTraits: true, copilotcppExcludeTraits: excludeTraits } + }); + await moduleUnderTest.registerRelatedFilesProvider(); + + const result = await callbackPromise; + + ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); + ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); + ok(mockCopilotApi.registerRelatedFilesProvider.calledThrice, 'registerRelatedFilesProvider should be called three times'); + ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); + ok(getActiveClientStub.callCount !== 0, 'getActiveClient should be called'); + ok(callbackPromise, 'callbackPromise should be defined'); + ok(result, 'result should be defined'); + ok(result.entries.length === 1, 'result.entries should have 1 included file'); + ok(result.entries[0].toString() === 'file:///c%3A/src/my_project/foo.h', 'result.entries should have "file:///c%3A/src/my_project/foo.h"'); + ok(result.traits, 'result.traits should be defined'); + ok(result.traits.length === 3, 'result.traits should have 3 traits'); + ok(result.traits.filter(trait => excludeTraits.includes(trait.name)).length === 0, 'result.traits should not include excluded traits'); + }); + + it('should handle errors during provider registration', async () => { + arrange( + { cppToolsRelatedFilesApi: true } + ); + + await moduleUnderTest.registerRelatedFilesProvider(); + + ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); + ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); + ok(mockCopilotApi.registerRelatedFilesProvider.notCalled, 'registerRelatedFilesProvider should not be called'); + }); +}); + +describe('registerRelatedFilesCommands', () => { + let moduleUnderTest: any; + let getIsRelatedFilesApiEnabledStub: sinon.SinonStub; + let registerCommandStub: sinon.SinonStub; + let commandDisposables: vscode.Disposable[]; + let getActiveClientStub: sinon.SinonStub; + let activeClientStub: sinon.SinonStubbedInstance; + let getIncludesResult: Promise = Promise.resolve(undefined); + + beforeEach(() => { + proxyquire.noPreserveCache(); // Tells proxyquire to not fetch the module from cache + // Ensures that each test has a freshly loaded instance of moduleUnderTest + moduleUnderTest = proxyquire( + '../../../../src/LanguageServer/copilotProviders', + {} // Stub if you need to, or keep the object empty + ); + + activeClientStub = sinon.createStubInstance(DefaultClient); + getActiveClientStub = sinon.stub(extension, 'getActiveClient').returns(activeClientStub); + activeClientStub.getIncludes.resolves({ includedFiles: [] }); + getIsRelatedFilesApiEnabledStub = sinon.stub(telemetry, 'isExperimentEnabled'); + registerCommandStub = sinon.stub(vscode.commands, 'registerCommand'); + commandDisposables = []; + }); + + afterEach(() => { + sinon.restore(); + }); + + const arrange = ({ cppToolsRelatedFilesApi, getIncludeFiles, rootUri }: + { cppToolsRelatedFilesApi: boolean; getIncludeFiles?: GetIncludesResult; rootUri?: vscode.Uri } = + { cppToolsRelatedFilesApi: false, getIncludeFiles: undefined, rootUri: undefined } + ) => { + getIsRelatedFilesApiEnabledStub.withArgs('CppToolsRelatedFilesApi').resolves(cppToolsRelatedFilesApi); + activeClientStub.getIncludes.resolves(getIncludeFiles); + sinon.stub(activeClientStub, 'RootUri').get(() => rootUri); + registerCommandStub.callsFake((command: string, callback: (maxDepth: number) => Promise) => { + getIncludesResult = callback(1); + }); + }; + + it('should register C_Cpp.getIncludes command if CppToolsRelatedFilesApi is enabled', async () => { + arrange({ cppToolsRelatedFilesApi: true }); + + await moduleUnderTest.registerRelatedFilesCommands(commandDisposables, true); + + ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); + ok(registerCommandStub.calledOnce, 'registerCommand should be called once'); + ok(commandDisposables.length === 1, 'commandDisposables should have one disposable'); + ok(registerCommandStub.calledWithMatch('C_Cpp.getIncludes', sinon.match.func), 'registerCommand should be called with "C_Cpp.getIncludes" and a function'); + }); + + it('should register C_Cpp.getIncludes command that can handle requests properly', async () => { + arrange({ + cppToolsRelatedFilesApi: true, + getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo1.h', 'C:\\src\\my_project\\foo2.h'] }, + rootUri: vscode.Uri.file('C:\\src\\my_project') + }); + await moduleUnderTest.registerRelatedFilesCommands(commandDisposables, true); + + const includesResult = await getIncludesResult; + + ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); + ok(getActiveClientStub.calledOnce, 'getActiveClient should be called once'); + ok(includesResult, 'includesResult should be defined'); + ok(includesResult?.includedFiles.length === 2, 'includesResult should have 2 included files'); + ok(includesResult?.includedFiles[0] === 'C:\\src\\my_project\\foo1.h', 'includesResult should have "C:\\src\\my_project\\foo1.h"'); + ok(includesResult?.includedFiles[1] === 'C:\\src\\my_project\\foo2.h', 'includesResult should have "C:\\src\\my_project\\foo2.h"'); + }); + + it('should not register C_Cpp.getIncludes command if CppToolsRelatedFilesApi is not enabled', async () => { + arrange({ + cppToolsRelatedFilesApi: false + }); + + await moduleUnderTest.registerRelatedFilesCommands(commandDisposables, true); + + ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); + ok(registerCommandStub.notCalled, 'registerCommand should not be called'); + ok(commandDisposables.length === 0, 'commandDisposables should be empty'); + }); + + it('should register C_Cpp.getIncludes as no-op command if enabled is false', async () => { + arrange({ + cppToolsRelatedFilesApi: true, + getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + rootUri: vscode.Uri.file('C:\\src\\my_project') + }); + await moduleUnderTest.registerRelatedFilesCommands(commandDisposables, false); + + const includesResult = await getIncludesResult; + + ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); + ok(registerCommandStub.calledOnce, 'registerCommand should be called once'); + ok(commandDisposables.length === 1, 'commandDisposables should have one disposable'); + ok(includesResult === undefined, 'includesResult should be undefined'); + ok(registerCommandStub.calledWithMatch('C_Cpp.getIncludes', sinon.match.func), 'registerCommand should be called with "C_Cpp.getIncludes" and a function'); + }); +}); From a4998ed84a79a4475854dd3a40fecb18cc3832fc Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Mon, 14 Oct 2024 11:59:51 -0700 Subject: [PATCH 03/78] React to breaking changes in lmTools API (#12838) --- Extension/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Extension/package.json b/Extension/package.json index 60cdf0019..6a15e8bf2 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -6444,10 +6444,10 @@ ], "languageModelTools": [ { - "id": "cpptools-lmtool-configuration", - "name": "cpp", + "name": "cpptools-lmtool-configuration", + "toolReferenceName": "cpp", "displayName": "%c_cpp.languageModelTools.configuration.displayName%", - "canBeInvokedManually": true, + "canBeReferencedInPrompt": true, "userDescription": "%c_cpp.languageModelTools.configuration.userDescription%", "modelDescription": "For the active C or C++ file, this tool provides: the language (C, C++, or CUDA), the language standard version (such as C++11, C++14, C++17, or C++20), the compiler (such as GCC, Clang, or MSVC), the target platform (such as x86, x64, or ARM), and the target architecture (such as 32-bit or 64-bit).", "icon": "$(file-code)", From 038a5ee5e7b09e8d0b2cca8417f4e6ea693ffdfd Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Wed, 16 Oct 2024 15:34:25 -0700 Subject: [PATCH 04/78] Update for clang-tidy 19. (#12834) --- Extension/package.json | 44 ++++++++++++++++++-- Extension/src/LanguageServer/codeAnalysis.ts | 27 ++++++------ 2 files changed, 54 insertions(+), 17 deletions(-) diff --git a/Extension/package.json b/Extension/package.json index 6a15e8bf2..d147a3cd3 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -1837,6 +1837,8 @@ "android-cloexec-pipe2", "android-cloexec-socket", "android-comparison-in-temp-failure-retry", + "boost-use-*", + "boost-use-ranges", "boost-use-to-string", "bugprone-*", "bugprone-argument-comment", @@ -1884,9 +1886,11 @@ "bugprone-not-null-terminated-result", "bugprone-optional-value-conversion", "bugprone-parent-virtual-call", + "bugprone-pointer-arithmetic-on-polymorphic-object", "bugprone-posix-return", "bugprone-redundant-branch-condition", "bugprone-reserved-identifier", + "bugprone-return-const-ref-from-parameter", "bugprone-shared-ptr-array-mismatch", "bugprone-signal-handler", "bugprone-signed-char-misuse", @@ -1933,10 +1937,10 @@ "cert-con*", "cert-con36-c", "cert-con54-cpp", + "cert-ctr56-cpp", "cert-dcl*", "cert-dcl03-c", "cert-dcl16-c", - "cert-dcl21-cpp", "cert-dcl37-c", "cert-dcl50-cpp", "cert-dcl51-cpp", @@ -1957,6 +1961,7 @@ "cert-flp*", "cert-flp30-c", "cert-flp37-c", + "cert-int09-c", "cert-mem57-cpp", "cert-msc*", "cert-msc30-c", @@ -1994,6 +1999,7 @@ "clang-analyzer-core.uninitialized.UndefReturn", "clang-analyzer-core.VLASize", "clang-analyzer-cplusplus.*", + "clang-analyzer-cplusplus.ArrayDelete", "clang-analyzer-cplusplus.InnerPointer", "clang-analyzer-cplusplus.Move", "clang-analyzer-cplusplus.NewDelete", @@ -2024,6 +2030,7 @@ "clang-analyzer-optin.performance.GCDAntipattern", "clang-analyzer-optin.performance.Padding", "clang-analyzer-optin.portability.UnixAPI", + "clang-analyzer-optin.taint.TaintedAlloc", "clang-analyzer-osx.*", "clang-analyzer-osx.API", "clang-analyzer-osx.cocoa.*", @@ -2075,8 +2082,11 @@ "clang-analyzer-security.insecureAPI.strcpy", "clang-analyzer-security.insecureAPI.UncheckedReturn", "clang-analyzer-security.insecureAPI.vfork", + "clang-analyzer-security.PutenvStackArray", + "clang-analyzer-security.SetgidSetuidOrder", "clang-analyzer-unix.*", "clang-analyzer-unix.API", + "clang-analyzer-unix.BlockInCriticalSection", "clang-analyzer-unix.cstring.*", "clang-analyzer-unix.cstring.BadSizeArg", "clang-analyzer-unix.cstring.NullArg", @@ -2085,6 +2095,7 @@ "clang-analyzer-unix.MallocSizeof", "clang-analyzer-unix.MismatchedDeallocator", "clang-analyzer-unix.StdCLibraryFunctions", + "clang-analyzer-unix.Stream", "clang-analyzer-unix.Vfork", "clang-analyzer-valist.*", "clang-analyzer-valist.CopyToSelf", @@ -2216,7 +2227,7 @@ "hicpp-use-nullptr", "hicpp-use-override", "hicpp-vararg", - "linuxkernel-must-use-errs", + "linuxkernel-must-check-errs", "llvm-*", "llvm-else-after-return", "llvm-header-guard", @@ -2257,7 +2268,9 @@ "misc-unused-alias-decls", "misc-unused-parameters", "misc-unused-using-decls", + "misc-use-*", "misc-use-anonymous-namespace", + "misc-use-internal-linkage", "modernize-*", "modernize-avoid-*", "modernize-avoid-bind", @@ -2271,6 +2284,7 @@ "modernize-make-*", "modernize-make-shared", "modernize-make-unique", + "modernize-min-max-use-initializer-list", "modernize-pass-by-value", "modernize-raw-string-literal", "modernize-redundant-void-arg", @@ -2297,8 +2311,10 @@ "modernize-use-noexcept", "modernize-use-nullptr", "modernize-use-override", + "modernize-use-ranges", "modernize-use-starts-ends-with", "modernize-use-std-*", + "modernize-use-std-format", "modernize-use-std-numbers", "modernize-use-std-print", "modernize-use-trailing-return-type", @@ -2366,6 +2382,7 @@ "readability-delete-null-pointer", "readability-duplicate-include", "readability-else-after-return", + "readability-enum-initial-value", "readability-function-*", "readability-function-cognitive-complexity", "readability-function-size", @@ -2377,6 +2394,7 @@ "readability-isolate-declaration", "readability-magic-numbers", "readability-make-member-function-const", + "readability-math-missing-parentheses", "readability-misleading-indentation", "readability-misplaced-array-index", "readability-named-parameter", @@ -2473,6 +2491,8 @@ "android-cloexec-pipe2", "android-cloexec-socket", "android-comparison-in-temp-failure-retry", + "boost-use-*", + "boost-use-ranges", "boost-use-to-string", "bugprone-*", "bugprone-argument-comment", @@ -2520,9 +2540,11 @@ "bugprone-not-null-terminated-result", "bugprone-optional-value-conversion", "bugprone-parent-virtual-call", + "bugprone-pointer-arithmetic-on-polymorphic-object", "bugprone-posix-return", "bugprone-redundant-branch-condition", "bugprone-reserved-identifier", + "bugprone-return-const-ref-from-parameter", "bugprone-shared-ptr-array-mismatch", "bugprone-signal-handler", "bugprone-signed-char-misuse", @@ -2569,10 +2591,10 @@ "cert-con*", "cert-con36-c", "cert-con54-cpp", + "cert-ctr56-cpp", "cert-dcl*", "cert-dcl03-c", "cert-dcl16-c", - "cert-dcl21-cpp", "cert-dcl37-c", "cert-dcl50-cpp", "cert-dcl51-cpp", @@ -2593,6 +2615,7 @@ "cert-flp*", "cert-flp30-c", "cert-flp37-c", + "cert-int09-c", "cert-mem57-cpp", "cert-msc*", "cert-msc30-c", @@ -2630,6 +2653,7 @@ "clang-analyzer-core.uninitialized.UndefReturn", "clang-analyzer-core.VLASize", "clang-analyzer-cplusplus.*", + "clang-analyzer-cplusplus.ArrayDelete", "clang-analyzer-cplusplus.InnerPointer", "clang-analyzer-cplusplus.Move", "clang-analyzer-cplusplus.NewDelete", @@ -2660,6 +2684,7 @@ "clang-analyzer-optin.performance.GCDAntipattern", "clang-analyzer-optin.performance.Padding", "clang-analyzer-optin.portability.UnixAPI", + "clang-analyzer-optin.taint.TaintedAlloc", "clang-analyzer-osx.*", "clang-analyzer-osx.API", "clang-analyzer-osx.cocoa.*", @@ -2711,8 +2736,11 @@ "clang-analyzer-security.insecureAPI.strcpy", "clang-analyzer-security.insecureAPI.UncheckedReturn", "clang-analyzer-security.insecureAPI.vfork", + "clang-analyzer-security.PutenvStackArray", + "clang-analyzer-security.SetgidSetuidOrder", "clang-analyzer-unix.*", "clang-analyzer-unix.API", + "clang-analyzer-unix.BlockInCriticalSection", "clang-analyzer-unix.cstring.*", "clang-analyzer-unix.cstring.BadSizeArg", "clang-analyzer-unix.cstring.NullArg", @@ -2721,6 +2749,7 @@ "clang-analyzer-unix.MallocSizeof", "clang-analyzer-unix.MismatchedDeallocator", "clang-analyzer-unix.StdCLibraryFunctions", + "clang-analyzer-unix.Stream", "clang-analyzer-unix.Vfork", "clang-analyzer-valist.*", "clang-analyzer-valist.CopyToSelf", @@ -2852,7 +2881,7 @@ "hicpp-use-nullptr", "hicpp-use-override", "hicpp-vararg", - "linuxkernel-must-use-errs", + "linuxkernel-must-check-errs", "llvm-*", "llvm-else-after-return", "llvm-header-guard", @@ -2893,7 +2922,9 @@ "misc-unused-alias-decls", "misc-unused-parameters", "misc-unused-using-decls", + "misc-use-*", "misc-use-anonymous-namespace", + "misc-use-internal-linkage", "modernize-*", "modernize-avoid-*", "modernize-avoid-bind", @@ -2907,6 +2938,7 @@ "modernize-make-*", "modernize-make-shared", "modernize-make-unique", + "modernize-min-max-use-initializer-list", "modernize-pass-by-value", "modernize-raw-string-literal", "modernize-redundant-void-arg", @@ -2933,8 +2965,10 @@ "modernize-use-noexcept", "modernize-use-nullptr", "modernize-use-override", + "modernize-use-ranges", "modernize-use-starts-ends-with", "modernize-use-std-*", + "modernize-use-std-format", "modernize-use-std-numbers", "modernize-use-std-print", "modernize-use-trailing-return-type", @@ -3002,6 +3036,7 @@ "readability-delete-null-pointer", "readability-duplicate-include", "readability-else-after-return", + "readability-enum-initial-value", "readability-function-*", "readability-function-cognitive-complexity", "readability-function-size", @@ -3013,6 +3048,7 @@ "readability-isolate-declaration", "readability-magic-numbers", "readability-make-member-function-const", + "readability-math-missing-parentheses", "readability-misleading-indentation", "readability-misplaced-array-index", "readability-named-parameter", diff --git a/Extension/src/LanguageServer/codeAnalysis.ts b/Extension/src/LanguageServer/codeAnalysis.ts index c709516d5..155f9fad3 100644 --- a/Extension/src/LanguageServer/codeAnalysis.ts +++ b/Extension/src/LanguageServer/codeAnalysis.ts @@ -122,7 +122,7 @@ export const codeAnalysisAllFixes: CodeActionAllInfo = { command: { title: 'FixAllCodeAnalysisProblems', command: 'C_Cpp.FixAllCodeAnalysisProblems', - arguments: [ 0, undefined, true, [] ] + arguments: [0, undefined, true, []] }, kind: vscode.CodeActionKind.QuickFix }, @@ -179,7 +179,7 @@ function rebuildCodeAnalysisCodeAndAllFixes(): void { command: { title: 'FixAllTypeCodeAnalysisProblems', command: 'C_Cpp.FixAllTypeCodeAnalysisProblems', - arguments: [ codeToFixes[0], ++codeToFixes[1].version, allTypeWorkspaceEdit, true, identifiersAndUris ] + arguments: [codeToFixes[0], ++codeToFixes[1].version, allTypeWorkspaceEdit, true, identifiersAndUris] }, kind: vscode.CodeActionKind.QuickFix }; @@ -191,7 +191,7 @@ function rebuildCodeAnalysisCodeAndAllFixes(): void { command: { title: 'DisableAllTypeCodeAnalysisProblems', command: 'C_Cpp.DisableAllTypeCodeAnalysisProblems', - arguments: [ codeToFixes[0], identifiersAndUris ] + arguments: [codeToFixes[0], identifiersAndUris] }, kind: vscode.CodeActionKind.QuickFix }; @@ -205,7 +205,7 @@ function rebuildCodeAnalysisCodeAndAllFixes(): void { command: { title: 'RemoveAllTypeCodeAnalysisProblems', command: 'C_Cpp.RemoveCodeAnalysisProblems', - arguments: [ false, identifiersAndUris ] + arguments: [false, identifiersAndUris] }, kind: vscode.CodeActionKind.QuickFix }; @@ -259,7 +259,7 @@ export function publishCodeAnalysisDiagnostics(params: PublishCodeAnalysisDiagno const diagnostic: vscode.Diagnostic = new vscode.Diagnostic(makeVscodeRange(d.range), getLocalizedString(d.localizeStringParams), d.severity); const identifier: CodeAnalysisDiagnosticIdentifier = { range: d.range, code: d.code }; - const identifiersAndUri: CodeAnalysisDiagnosticIdentifiersAndUri = { uri: params.uri, identifiers: [ identifier ] }; + const identifiersAndUri: CodeAnalysisDiagnosticIdentifiersAndUri = { uri: params.uri, identifiers: [identifier] }; const codeAction: CodeActionDiagnosticInfo = { version: nextVersion, range: makeVscodeRange(identifier.range), @@ -269,7 +269,7 @@ export function publishCodeAnalysisDiagnostics(params: PublishCodeAnalysisDiagno command: { title: 'RemoveCodeAnalysisProblems', command: 'C_Cpp.RemoveCodeAnalysisProblems', - arguments: [ false, [ identifiersAndUri ] ] + arguments: [false, [identifiersAndUri]] }, kind: vscode.CodeActionKind.QuickFix } @@ -285,7 +285,7 @@ export function publishCodeAnalysisDiagnostics(params: PublishCodeAnalysisDiagno command: { title: 'FixThisCodeAnalysisProblem', command: 'C_Cpp.FixThisCodeAnalysisProblem', - arguments: [ nextVersion, codeActionWorkspaceEdit.workspaceEdit, true, [ identifiersAndUri ] ] + arguments: [nextVersion, codeActionWorkspaceEdit.workspaceEdit, true, [identifiersAndUri]] }, kind: vscode.CodeActionKind.QuickFix }; @@ -313,13 +313,14 @@ export function publishCodeAnalysisDiagnostics(params: PublishCodeAnalysisDiagno } const relatedIdentifier: CodeAnalysisDiagnosticIdentifier = { range: info.location.range, code: d.code }; const relatedIdentifiersAndUri: CodeAnalysisDiagnosticIdentifiersAndUri = { - uri: info.location.uri, identifiers: [ relatedIdentifier ] }; + uri: info.location.uri, identifiers: [relatedIdentifier] + }; const relatedCodeAction: vscode.CodeAction = { title: localize("fix.this.problem", "Fix this {0} problem", d.code), command: { title: 'FixThisCodeAnalysisProblem', command: 'C_Cpp.FixThisCodeAnalysisProblem', - arguments: [ nextVersion, relatedWorkspaceEdit, true, [ relatedIdentifiersAndUri ] ] + arguments: [nextVersion, relatedWorkspaceEdit, true, [relatedIdentifiersAndUri]] }, kind: vscode.CodeActionKind.QuickFix }; @@ -334,7 +335,7 @@ export function publishCodeAnalysisDiagnostics(params: PublishCodeAnalysisDiagno }; relatedCodeActions.push(relatedCodeActionInfo); } - rootAndRelatedWorkspaceEdits.push({ workspaceEdit: relatedWorkspaceEdit}); + rootAndRelatedWorkspaceEdits.push({ workspaceEdit: relatedWorkspaceEdit }); rootAndRelatedIdentifiersAndUris.push(relatedIdentifiersAndUri); } } @@ -349,7 +350,7 @@ export function publishCodeAnalysisDiagnostics(params: PublishCodeAnalysisDiagno const rootAndRelatedWorkspaceEdit: CodeActionWorkspaceEdit = rootAndRelatedWorkspaceEdits[rootAndRelatedWorkspaceEditsIndex]; if (rootAndRelatedWorkspaceEdit !== undefined) { if (existingInfo.workspaceEdits === undefined) { - existingInfo.workspaceEdits = [ rootAndRelatedWorkspaceEdit ]; + existingInfo.workspaceEdits = [rootAndRelatedWorkspaceEdit]; } else { existingInfo.workspaceEdits.push(rootAndRelatedWorkspaceEdit); } @@ -378,7 +379,7 @@ export function publishCodeAnalysisDiagnostics(params: PublishCodeAnalysisDiagno docPage = `checks${checksGroup}/${checksPage}.html`; } // TODO: This should be checking the clang-tidy version used to better support usage of older versions. - const primaryDocUri: vscode.Uri = vscode.Uri.parse(`https://releases.llvm.org/18.1.6/tools/clang/tools/extra/docs/clang-tidy/${docPage}`); + const primaryDocUri: vscode.Uri = vscode.Uri.parse(`https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/clang-tidy/${docPage}`); diagnostic.code = { value: identifier.code, target: primaryDocUri }; if (new CppSettings().clangTidyCodeActionShowDocumentation) { @@ -388,7 +389,7 @@ export function publishCodeAnalysisDiagnostics(params: PublishCodeAnalysisDiagno command: { title: 'ShowDocumentation', command: 'C_Cpp.ShowCodeAnalysisDocumentation', - arguments: [ primaryDocUri ] + arguments: [primaryDocUri] }, kind: vscode.CodeActionKind.QuickFix }; From 9df3a17b110ddec44dce32ba91e8dfc8566bc019 Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Thu, 17 Oct 2024 15:05:33 -0700 Subject: [PATCH 05/78] Always use related files API for Copilot completions (#12848) --- .../src/LanguageServer/copilotProviders.ts | 31 ---- Extension/src/LanguageServer/extension.ts | 4 +- .../tests/copilotProviders.test.ts | 138 +----------------- 3 files changed, 7 insertions(+), 166 deletions(-) diff --git a/Extension/src/LanguageServer/copilotProviders.ts b/Extension/src/LanguageServer/copilotProviders.ts index 2847212ef..f23554f76 100644 --- a/Extension/src/LanguageServer/copilotProviders.ts +++ b/Extension/src/LanguageServer/copilotProviders.ts @@ -6,12 +6,9 @@ import * as vscode from 'vscode'; import * as util from '../common'; -import * as telemetry from '../telemetry'; import { ChatContextResult, GetIncludesResult } from './client'; import { getActiveClient } from './extension'; -let isRelatedFilesApiEnabled: boolean | undefined; - export interface CopilotTrait { name: string; value: string; @@ -31,10 +28,6 @@ export interface CopilotApi { } export async function registerRelatedFilesProvider(): Promise { - if (!await getIsRelatedFilesApiEnabled()) { - return; - } - const api = await getCopilotApi(); if (util.extensionContext && api) { try { @@ -79,12 +72,6 @@ export async function registerRelatedFilesProvider(): Promise { } } -export async function registerRelatedFilesCommands(commandDisposables: vscode.Disposable[], enabled: boolean): Promise { - if (await getIsRelatedFilesApiEnabled()) { - commandDisposables.push(vscode.commands.registerCommand('C_Cpp.getIncludes', enabled ? (maxDepth: number) => getIncludes(maxDepth) : () => Promise.resolve())); - } -} - async function getIncludesWithCancellation(maxDepth: number, token: vscode.CancellationToken): Promise { const activeClient = getActiveClient(); const includes = await activeClient.getIncludes(maxDepth, token); @@ -98,24 +85,6 @@ async function getIncludesWithCancellation(maxDepth: number, token: vscode.Cance return includes; } -async function getIncludes(maxDepth: number): Promise { - const tokenSource = new vscode.CancellationTokenSource(); - try { - const includes = await getIncludesWithCancellation(maxDepth, tokenSource.token); - return includes; - } finally { - tokenSource.dispose(); - } -} - -async function getIsRelatedFilesApiEnabled(): Promise { - if (isRelatedFilesApiEnabled === undefined) { - isRelatedFilesApiEnabled = await telemetry.isExperimentEnabled("CppToolsRelatedFilesApi"); - } - - return isRelatedFilesApiEnabled; -} - export async function getCopilotApi(): Promise { const copilotExtension = vscode.extensions.getExtension('github.copilot'); if (!copilotExtension) { diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index c1fadda4c..bca68b9ef 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -23,7 +23,7 @@ import * as telemetry from '../telemetry'; import { Client, DefaultClient, DoxygenCodeActionCommandArguments, openFileVersions } from './client'; import { ClientCollection } from './clientCollection'; import { CodeActionDiagnosticInfo, CodeAnalysisDiagnosticIdentifiersAndUri, codeAnalysisAllFixes, codeAnalysisCodeToFixes, codeAnalysisFileToCodeActions } from './codeAnalysis'; -import { registerRelatedFilesCommands, registerRelatedFilesProvider } from './copilotProviders'; +import { registerRelatedFilesProvider } from './copilotProviders'; import { CppBuildTaskProvider } from './cppBuildTaskProvider'; import { getCustomConfigProviders } from './customProviders'; import { getLanguageConfig } from './languageConfig'; @@ -411,8 +411,6 @@ export async function registerCommands(enabled: boolean): Promise { commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ExtractToFreeFunction', enabled ? () => onExtractToFunction(true, false) : onDisabledCommand)); commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ExtractToMemberFunction', enabled ? () => onExtractToFunction(false, true) : onDisabledCommand)); commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ExpandSelection', enabled ? (r: Range) => onExpandSelection(r) : onDisabledCommand)); - - await registerRelatedFilesCommands(commandDisposables, enabled); } function onDisabledCommand() { diff --git a/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts b/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts index 69ddb9936..c06f438f8 100644 --- a/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts +++ b/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts @@ -12,11 +12,9 @@ import * as util from '../../../../src/common'; import { ChatContextResult, DefaultClient, GetIncludesResult } from '../../../../src/LanguageServer/client'; import { CopilotApi, CopilotTrait } from '../../../../src/LanguageServer/copilotProviders'; import * as extension from '../../../../src/LanguageServer/extension'; -import * as telemetry from '../../../../src/telemetry'; describe('registerRelatedFilesProvider', () => { let moduleUnderTest: any; - let getIsRelatedFilesApiEnabledStub: sinon.SinonStub; let mockCopilotApi: sinon.SinonStubbedInstance; let getActiveClientStub: sinon.SinonStub; let activeClientStub: sinon.SinonStubbedInstance; @@ -32,7 +30,6 @@ describe('registerRelatedFilesProvider', () => { {} // Stub if you need to, or keep the object empty ); - getIsRelatedFilesApiEnabledStub = sinon.stub(telemetry, 'isExperimentEnabled'); sinon.stub(util, 'extensionContext').value({ extension: { id: 'test-extension-id' } }); class MockCopilotApi implements CopilotApi { @@ -71,11 +68,10 @@ describe('registerRelatedFilesProvider', () => { sinon.restore(); }); - const arrange = ({ cppToolsRelatedFilesApi, vscodeExtension, getIncludeFiles, chatContext, rootUri, flags }: - { cppToolsRelatedFilesApi: boolean; vscodeExtension?: vscode.Extension; getIncludeFiles?: GetIncludesResult; chatContext?: ChatContextResult; rootUri?: vscode.Uri; flags?: Record } = - { cppToolsRelatedFilesApi: false, vscodeExtension: undefined, getIncludeFiles: undefined, chatContext: undefined, rootUri: undefined, flags: {} } + const arrange = ({ vscodeExtension, getIncludeFiles, chatContext, rootUri, flags }: + { vscodeExtension?: vscode.Extension; getIncludeFiles?: GetIncludesResult; chatContext?: ChatContextResult; rootUri?: vscode.Uri; flags?: Record } = + { vscodeExtension: undefined, getIncludeFiles: undefined, chatContext: undefined, rootUri: undefined, flags: {} } ) => { - getIsRelatedFilesApiEnabledStub.withArgs('CppToolsRelatedFilesApi').resolves(cppToolsRelatedFilesApi); activeClientStub.getIncludes.resolves(getIncludeFiles); activeClientStub.getChatContext.resolves(chatContext); sinon.stub(activeClientStub, 'RootUri').get(() => rootUri); @@ -95,31 +91,19 @@ describe('registerRelatedFilesProvider', () => { vscodeGetExtensionsStub = sinon.stub(vscode.extensions, 'getExtension').returns(vscodeExtension); }; - it('should not register provider if CppToolsRelatedFilesApi is not enabled', async () => { + it('should register provider', async () => { arrange( - { cppToolsRelatedFilesApi: false } + { vscodeExtension: vscodeExtension } ); await moduleUnderTest.registerRelatedFilesProvider(); - ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); - }); - - it('should register provider if CppToolsRelatedFilesApi is enabled', async () => { - arrange( - { cppToolsRelatedFilesApi: true, vscodeExtension: vscodeExtension } - ); - - await moduleUnderTest.registerRelatedFilesProvider(); - - ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); }); it('should not add #cpp traits when ChatContext isn\'t available.', async () => { arrange({ - cppToolsRelatedFilesApi: true, vscodeExtension: vscodeExtension, getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, chatContext: undefined, @@ -130,7 +114,6 @@ describe('registerRelatedFilesProvider', () => { const result = await callbackPromise; - ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); ok(getActiveClientStub.callCount !== 0, 'getActiveClient should be called'); @@ -143,7 +126,6 @@ describe('registerRelatedFilesProvider', () => { it('should not add #cpp traits when copilotcppTraits flag is false.', async () => { arrange({ - cppToolsRelatedFilesApi: true, vscodeExtension: vscodeExtension, getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, chatContext: { @@ -160,7 +142,6 @@ describe('registerRelatedFilesProvider', () => { const result = await callbackPromise; - ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); ok(getActiveClientStub.callCount !== 0, 'getActiveClient should be called'); @@ -173,7 +154,6 @@ describe('registerRelatedFilesProvider', () => { it('should add #cpp traits when copilotcppTraits flag is true.', async () => { arrange({ - cppToolsRelatedFilesApi: true, vscodeExtension: vscodeExtension, getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, chatContext: { @@ -190,7 +170,6 @@ describe('registerRelatedFilesProvider', () => { const result = await callbackPromise; - ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); ok(mockCopilotApi.registerRelatedFilesProvider.calledThrice, 'registerRelatedFilesProvider should be called three times'); ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); @@ -226,7 +205,6 @@ describe('registerRelatedFilesProvider', () => { it('should exclude #cpp traits per copilotcppExcludeTraits.', async () => { const excludeTraits = ['compiler', 'targetPlatform']; arrange({ - cppToolsRelatedFilesApi: true, vscodeExtension: vscodeExtension, getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, chatContext: { @@ -243,7 +221,6 @@ describe('registerRelatedFilesProvider', () => { const result = await callbackPromise; - ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); ok(mockCopilotApi.registerRelatedFilesProvider.calledThrice, 'registerRelatedFilesProvider should be called three times'); ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); @@ -258,114 +235,11 @@ describe('registerRelatedFilesProvider', () => { }); it('should handle errors during provider registration', async () => { - arrange( - { cppToolsRelatedFilesApi: true } - ); + arrange({}); await moduleUnderTest.registerRelatedFilesProvider(); - ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); ok(mockCopilotApi.registerRelatedFilesProvider.notCalled, 'registerRelatedFilesProvider should not be called'); }); }); - -describe('registerRelatedFilesCommands', () => { - let moduleUnderTest: any; - let getIsRelatedFilesApiEnabledStub: sinon.SinonStub; - let registerCommandStub: sinon.SinonStub; - let commandDisposables: vscode.Disposable[]; - let getActiveClientStub: sinon.SinonStub; - let activeClientStub: sinon.SinonStubbedInstance; - let getIncludesResult: Promise = Promise.resolve(undefined); - - beforeEach(() => { - proxyquire.noPreserveCache(); // Tells proxyquire to not fetch the module from cache - // Ensures that each test has a freshly loaded instance of moduleUnderTest - moduleUnderTest = proxyquire( - '../../../../src/LanguageServer/copilotProviders', - {} // Stub if you need to, or keep the object empty - ); - - activeClientStub = sinon.createStubInstance(DefaultClient); - getActiveClientStub = sinon.stub(extension, 'getActiveClient').returns(activeClientStub); - activeClientStub.getIncludes.resolves({ includedFiles: [] }); - getIsRelatedFilesApiEnabledStub = sinon.stub(telemetry, 'isExperimentEnabled'); - registerCommandStub = sinon.stub(vscode.commands, 'registerCommand'); - commandDisposables = []; - }); - - afterEach(() => { - sinon.restore(); - }); - - const arrange = ({ cppToolsRelatedFilesApi, getIncludeFiles, rootUri }: - { cppToolsRelatedFilesApi: boolean; getIncludeFiles?: GetIncludesResult; rootUri?: vscode.Uri } = - { cppToolsRelatedFilesApi: false, getIncludeFiles: undefined, rootUri: undefined } - ) => { - getIsRelatedFilesApiEnabledStub.withArgs('CppToolsRelatedFilesApi').resolves(cppToolsRelatedFilesApi); - activeClientStub.getIncludes.resolves(getIncludeFiles); - sinon.stub(activeClientStub, 'RootUri').get(() => rootUri); - registerCommandStub.callsFake((command: string, callback: (maxDepth: number) => Promise) => { - getIncludesResult = callback(1); - }); - }; - - it('should register C_Cpp.getIncludes command if CppToolsRelatedFilesApi is enabled', async () => { - arrange({ cppToolsRelatedFilesApi: true }); - - await moduleUnderTest.registerRelatedFilesCommands(commandDisposables, true); - - ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); - ok(registerCommandStub.calledOnce, 'registerCommand should be called once'); - ok(commandDisposables.length === 1, 'commandDisposables should have one disposable'); - ok(registerCommandStub.calledWithMatch('C_Cpp.getIncludes', sinon.match.func), 'registerCommand should be called with "C_Cpp.getIncludes" and a function'); - }); - - it('should register C_Cpp.getIncludes command that can handle requests properly', async () => { - arrange({ - cppToolsRelatedFilesApi: true, - getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo1.h', 'C:\\src\\my_project\\foo2.h'] }, - rootUri: vscode.Uri.file('C:\\src\\my_project') - }); - await moduleUnderTest.registerRelatedFilesCommands(commandDisposables, true); - - const includesResult = await getIncludesResult; - - ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); - ok(getActiveClientStub.calledOnce, 'getActiveClient should be called once'); - ok(includesResult, 'includesResult should be defined'); - ok(includesResult?.includedFiles.length === 2, 'includesResult should have 2 included files'); - ok(includesResult?.includedFiles[0] === 'C:\\src\\my_project\\foo1.h', 'includesResult should have "C:\\src\\my_project\\foo1.h"'); - ok(includesResult?.includedFiles[1] === 'C:\\src\\my_project\\foo2.h', 'includesResult should have "C:\\src\\my_project\\foo2.h"'); - }); - - it('should not register C_Cpp.getIncludes command if CppToolsRelatedFilesApi is not enabled', async () => { - arrange({ - cppToolsRelatedFilesApi: false - }); - - await moduleUnderTest.registerRelatedFilesCommands(commandDisposables, true); - - ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); - ok(registerCommandStub.notCalled, 'registerCommand should not be called'); - ok(commandDisposables.length === 0, 'commandDisposables should be empty'); - }); - - it('should register C_Cpp.getIncludes as no-op command if enabled is false', async () => { - arrange({ - cppToolsRelatedFilesApi: true, - getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, - rootUri: vscode.Uri.file('C:\\src\\my_project') - }); - await moduleUnderTest.registerRelatedFilesCommands(commandDisposables, false); - - const includesResult = await getIncludesResult; - - ok(getIsRelatedFilesApiEnabledStub.calledOnce, 'getIsRelatedFilesApiEnabled should be called once'); - ok(registerCommandStub.calledOnce, 'registerCommand should be called once'); - ok(commandDisposables.length === 1, 'commandDisposables should have one disposable'); - ok(includesResult === undefined, 'includesResult should be undefined'); - ok(registerCommandStub.calledWithMatch('C_Cpp.getIncludes', sinon.match.func), 'registerCommand should be called with "C_Cpp.getIncludes" and a function'); - }); -}); From 401f91f3abebccde92c1963077df12631ff7685b Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Fri, 18 Oct 2024 11:00:46 -0700 Subject: [PATCH 06/78] Ensure updates to openFileVersion data is not delayed (#12851) --- Extension/src/LanguageServer/extension.ts | 6 ++++++ Extension/src/LanguageServer/protocolFilter.ts | 6 +----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index bca68b9ef..c70abfb26 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -170,6 +170,7 @@ export async function activate(): Promise { }); disposables.push(vscode.workspace.onDidChangeConfiguration(onDidChangeSettings)); + disposables.push(vscode.workspace.onDidChangeTextDocument(onDidChangeTextDocument)); disposables.push(vscode.window.onDidChangeTextEditorVisibleRanges((e) => clients.ActiveClient.enqueue(async () => onDidChangeTextEditorVisibleRanges(e)))); disposables.push(vscode.window.onDidChangeActiveTextEditor((e) => clients.ActiveClient.enqueue(async () => onDidChangeActiveTextEditor(e)))); ui.didChangeActiveEditor(); // Handle already active documents (for non-cpp files that we don't register didOpen). @@ -288,6 +289,11 @@ async function onDidChangeSettings(event: vscode.ConfigurationChangeEvent): Prom } } +async function onDidChangeTextDocument(event: vscode.TextDocumentChangeEvent): Promise { + const me: Client = clients.getClientFor(event.document.uri); + me.onDidChangeTextDocument(event); +} + let noActiveEditorTimeout: NodeJS.Timeout | undefined; async function onDidChangeTextEditorVisibleRanges(event: vscode.TextEditorVisibleRangesChangeEvent): Promise { diff --git a/Extension/src/LanguageServer/protocolFilter.ts b/Extension/src/LanguageServer/protocolFilter.ts index 742727241..4dddbbcc2 100644 --- a/Extension/src/LanguageServer/protocolFilter.ts +++ b/Extension/src/LanguageServer/protocolFilter.ts @@ -59,11 +59,7 @@ export function createProtocolFilter(): Middleware { } } }), - didChange: async (textDocumentChangeEvent, sendMessage) => clients.ActiveClient.enqueue(async () => { - const me: Client = clients.getClientFor(textDocumentChangeEvent.document.uri); - me.onDidChangeTextDocument(textDocumentChangeEvent); - await sendMessage(textDocumentChangeEvent); - }), + didChange: invoke1, willSave: invoke1, willSaveWaitUntil: async (event, sendMessage) => { // await clients.ActiveClient.ready; From 4ed9e22ef2759aad561d7af098e30a81f59d48e4 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Fri, 18 Oct 2024 11:19:06 -0700 Subject: [PATCH 07/78] Update edge strings for FI (#12847) --- Extension/bin/messages/cs/messages.json | 10 +++++----- Extension/bin/messages/de/messages.json | 8 ++++---- Extension/bin/messages/es/messages.json | 10 +++++----- Extension/bin/messages/fr/messages.json | 8 ++++---- Extension/bin/messages/it/messages.json | 8 ++++---- Extension/bin/messages/ja/messages.json | 8 ++++---- Extension/bin/messages/ko/messages.json | 10 +++++----- Extension/bin/messages/pl/messages.json | 10 +++++----- Extension/bin/messages/pt-br/messages.json | 8 ++++---- Extension/bin/messages/ru/messages.json | 8 ++++---- Extension/bin/messages/tr/messages.json | 10 +++++----- Extension/bin/messages/zh-cn/messages.json | 10 +++++----- Extension/bin/messages/zh-tw/messages.json | 10 +++++----- 13 files changed, 59 insertions(+), 59 deletions(-) diff --git a/Extension/bin/messages/cs/messages.json b/Extension/bin/messages/cs/messages.json index db0402333..f66e374c6 100644 --- a/Extension/bin/messages/cs/messages.json +++ b/Extension/bin/messages/cs/messages.json @@ -3,7 +3,7 @@ "poslední řádek souboru končí bez nového řádku", "poslední řádek souboru končí zpětným lomítkem", "Soubor #include %sq obsahuje sám sebe.", - "nedostatek paměti", + "Nedostatek paměti. Zvažte povolení 64bitového modulu IntelliSense a zvýšení limitu paměti IntelliSense v nastaveních.", null, "nezavřený komentář na konci souboru", "Nerozpoznaný token", @@ -1505,7 +1505,7 @@ "Chyba příkazového řádku", "vnitřní chyba", "Vnitřní chyba", - "-D", + null, null, "Došlo k dosažení limitu chyb.", "Smyčka interní chyby", @@ -1524,7 +1524,7 @@ "převodní jazyk (7)", "převodní jazyk (8)", "převodní jazyk (9)", - "PCH", + null, null, null, null, @@ -1537,7 +1537,7 @@ "neplatný znak pro literál char16_t", null, "Nerozpoznaná konvence volání %s, musí být jednou z:", - "%s", + null, null, null, "Nadřízený typ typu výčtu musí být integrální typ.", @@ -2955,7 +2955,7 @@ "Specifikátory omezení destruktoru musejí pokrývat sjednocení specifikátorů omezení všech konstruktorů.", "error", "Pro nostdlib se vyžaduje aspoň jedno nucené použití.", - "error-type", + "typ chyby", null, null, null, diff --git a/Extension/bin/messages/de/messages.json b/Extension/bin/messages/de/messages.json index 433ce5dc2..ac1cb6f09 100644 --- a/Extension/bin/messages/de/messages.json +++ b/Extension/bin/messages/de/messages.json @@ -3,7 +3,7 @@ "Die letzte Zeile von Dateien endet ohne Zeilenvorschub.", "Die letzte Zeile von Dateien endet mit einem umgekehrten Schrägstrich.", "Die #include-Datei \"%sq\" schließt sich selbst ein.", - "Nicht genügend Arbeitsspeicher.", + "Es ist nicht genügend Arbeitsspeicher vorhanden. Erwägen Sie, die 64-Bit-IntelliSense-Engine zu aktivieren und das IntelliSense-Arbeitsspeicherlimit in den Einstellungen zu erhöhen.", null, "Nicht geschlossener Kommentar am Ende der Datei", "Unbekanntes Token", @@ -1505,7 +1505,7 @@ "Befehlszeilenfehler", "Interner Fehler.", "Interner Fehler.", - "-D", + null, null, "Fehlerlimit erreicht.", "Interne Fehlerschleife", @@ -1524,7 +1524,7 @@ "Zwischensprache (7)", "Zwischensprache (8)", "Zwischensprache (9)", - "PCH", + null, null, null, null, @@ -1537,7 +1537,7 @@ "Ungültiges Zeichen für char16_t-Literal.", null, "Unbekannte Aufrufkonvention \"%s\", muss eine der folgenden Optionen sein:", - "%s", + null, null, null, "Der zugrunde liegende Typ des Enumerationstyps muss ein integraler Typ sein.", diff --git a/Extension/bin/messages/es/messages.json b/Extension/bin/messages/es/messages.json index 6465299d8..c77eb7264 100644 --- a/Extension/bin/messages/es/messages.json +++ b/Extension/bin/messages/es/messages.json @@ -3,7 +3,7 @@ "la última línea del archivo termina sin una nueva línea", "la última línea del archivo termina con una barra diagonal inversa", "el archivo #include %sq se incluye a sí mismo", - "memoria insuficiente", + "Memoria insuficiente. Considere la posibilidad de habilitar el motor de IntelliSense de 64 bits y aumentar el límite de memoria de IntelliSense en la configuración.", null, "comentario no cerrado al final del archivo", "token no reconocido", @@ -1505,7 +1505,7 @@ "Error de la línea de comandos", "Error interno", "Error interno", - "-D", + null, null, "Se ha alcanzado el límite de error.", "Bucle de error interno", @@ -1524,7 +1524,7 @@ "lenguaje intermedio (7)", "lenguaje intermedio (8)", "lenguaje intermedio (9)", - "PCH", + null, null, null, null, @@ -1537,7 +1537,7 @@ "carácter no válido para el literal char16_t", null, "convención de llamada %s no reconocida, debe ser una de las siguientes:", - "%s", + null, null, null, "el tipo subyacente del tipo de enumeración debe ser un tipo entero", @@ -2955,7 +2955,7 @@ "los especificadores de restricción del destructor deben cubrir la unión de los especificadores de restricción de todos los constructores", "error", "nostdlib requiere al menos un uso forzado", - "error-type", + "tipo de error", null, null, null, diff --git a/Extension/bin/messages/fr/messages.json b/Extension/bin/messages/fr/messages.json index 7a32a0c3c..62b13147e 100644 --- a/Extension/bin/messages/fr/messages.json +++ b/Extension/bin/messages/fr/messages.json @@ -3,7 +3,7 @@ "la dernière ligne du fichier se termine sans saut de ligne", "la dernière ligne du fichier se termine par une barre oblique inverse", "le fichier #include %sq s'inclut lui-même", - "Mémoire insuffisante", + "Plus de mémoire. Envisagez d’activer le moteur IntelliSense 64 bits et d’augmenter la limite de mémoire IntelliSense dans les paramètres.", null, "commentaire non fermé à la fin du fichier", "jeton non reconnu", @@ -1505,7 +1505,7 @@ "Erreur de ligne de commande", "erreur interne", "Erreur interne", - "-D", + null, null, "Limitation d'erreur atteinte.", "Boucle d'erreur interne", @@ -1524,7 +1524,7 @@ "langage intermédiaire (7)", "langage intermédiaire (8)", "langage intermédiaire (9)", - "PCH", + null, null, null, null, @@ -1537,7 +1537,7 @@ "caractère non valide pour le littéral char16_t", null, "convention d'appel inconnue %s, doit être l'une des suivantes :", - "%s", + null, null, null, "le type sous-jacent du type enum doit être un type intégral", diff --git a/Extension/bin/messages/it/messages.json b/Extension/bin/messages/it/messages.json index 29646d72c..a5363ac34 100644 --- a/Extension/bin/messages/it/messages.json +++ b/Extension/bin/messages/it/messages.json @@ -3,7 +3,7 @@ "l'ultima riga del file termina senza un carattere di nuova riga", "l'ultima riga del file termina con una barra rovesciata", "il file #include %sq include se stesso", - "memoria insufficiente", + "Memoria insufficiente. Provare ad abilitare il motore IntelliSense a 64 bit e ad aumentare il limite di memoria IntelliSense nelle impostazioni.", null, "commento non chiuso alla fine del file", "token non riconosciuto", @@ -1505,7 +1505,7 @@ "Errore nella riga di comando", "errore interno", "Errore interno", - "-D", + null, null, "Limite di errore raggiunto.", "Ciclo di errore interno", @@ -1524,7 +1524,7 @@ "linguaggio intermedio (7)", "linguaggio intermedio (8)", "linguaggio intermedio (9)", - "PCH", + null, null, null, null, @@ -1537,7 +1537,7 @@ "carattere non valido per il valore letterale char16_t", null, "convenzione di chiamata %s non riconosciuta. Deve essere una delle seguenti:", - "%s", + null, null, null, "il tipo sottostante del tipo enumerazione deve essere un tipo integrale", diff --git a/Extension/bin/messages/ja/messages.json b/Extension/bin/messages/ja/messages.json index c4df6c5f8..ed0f35076 100644 --- a/Extension/bin/messages/ja/messages.json +++ b/Extension/bin/messages/ja/messages.json @@ -3,7 +3,7 @@ "ファイルの最後の行が改行なしで終わっています", "ファイルの最後の行が円記号 (\\) で終わっています", "#include ファイル %sq にそれ自体が含まれています", - "メモリが不足しています", + "メモリ不足。64 ビットの IntelliSense エンジンを有効にし、設定で IntelliSense のメモリ制限を増やすことを検討してください。", null, "ファイルの末尾でコメントが閉じられていません", "認識されないトークンです", @@ -1505,7 +1505,7 @@ "コマンド ライン エラー", "内部エラー", "内部エラー", - "-D", + null, null, "エラーの上限に達しました。", "内部エラー ループ", @@ -1524,7 +1524,7 @@ "中間言語 (7)", "中間言語 (8)", "中間言語 (9)", - "PCH", + null, null, null, null, @@ -1537,7 +1537,7 @@ "char16_t リテラルには無効な文字です", null, "呼び出し規約 %s は認識されないため、次のいずれかを使用する必要があります:", - "%s", + null, null, null, "列挙型の基になる型は整数型である必要があります", diff --git a/Extension/bin/messages/ko/messages.json b/Extension/bin/messages/ko/messages.json index d357af164..594a08532 100644 --- a/Extension/bin/messages/ko/messages.json +++ b/Extension/bin/messages/ko/messages.json @@ -3,7 +3,7 @@ "파일의 마지막 줄이 줄 바꿈 없이 끝납니다.", "파일의 마지막 줄이 백슬래시로 끝납니다.", "#include 파일 %sq에 해당 파일 자체가 포함되어 있습니다.", - "메모리가 부족합니다.", + "메모리가 부족합니다. 64비트 IntelliSense 엔진을 사용하도록 설정하고 설정에서 IntelliSense 메모리 제한을 늘리는 것이 좋습니다.", null, "주석이 파일 끝에서 닫히지 않았습니다.", "인식할 수 없는 토큰입니다.", @@ -1505,7 +1505,7 @@ "명령줄 오류", "내부 오류", "내부 오류", - "-D", + null, null, "오류 한계에 도달했습니다.", "내부 오류 루프", @@ -1524,7 +1524,7 @@ "중간 언어 (7)", "중간 언어 (8)", "중간 언어 (9)", - "PCH", + null, null, null, null, @@ -1537,7 +1537,7 @@ "char16_t 리터럴에 대한 잘못된 문자", null, "인식할 수 없는 호출 규칙 %s, 다음 중 하나여야 함:", - "%s", + null, null, null, "열거형 형식의 내부 형식은 정수 계열 형식이어야 합니다.", @@ -2955,7 +2955,7 @@ "소멸자의 제한 지정자는 모든 생성자에 대한 제한 지정자의 공용 구조체를 지정해야 합니다.", "오류", "nostdlib에는 한 번 이상의 강제 사용이 필요합니다.", - "error-type", + "오류 유형", null, null, null, diff --git a/Extension/bin/messages/pl/messages.json b/Extension/bin/messages/pl/messages.json index 0dac450c8..9f88ee2bd 100644 --- a/Extension/bin/messages/pl/messages.json +++ b/Extension/bin/messages/pl/messages.json @@ -3,7 +3,7 @@ "ostatni wiersz w pliku nie jest zakończony znakiem nowego wiersza", "ostatni wiersz w pliku jest zakończony ukośnikiem", "dyrektywa #include dla pliku %sq powoduje, że plik dołącza siebie", - "brak pamięci", + "Za mało pamięci. Rozważ włączenie 64-bitowego aparatu usługi IntelliSense i zwiększenie limitu pamięci funkcji IntelliSense w ustawieniach.", null, "niezamknięty komentarz na końcu pliku", "nierozpoznany token", @@ -1505,7 +1505,7 @@ "Błąd wiersza polecenia", "błąd wewnętrzny", "Błąd wewnętrzny", - "-D", + null, null, "Osiągnięto limit błędów.", "Pętla błędu wewnętrznego", @@ -1524,7 +1524,7 @@ "język pośredni (7)", "język pośredni (8)", "język pośredni (9)", - "PCH", + null, null, null, null, @@ -1537,7 +1537,7 @@ "nieprawidłowy znak dla literału char16_t", null, "nierozpoznana konwencja wywoływania %s. Musi ona być jedną z następujących:", - "%s", + null, null, null, "typ bazowy typu wyliczenia musi być typem całkowitoliczbowym", @@ -2955,7 +2955,7 @@ "specyfikatory ograniczenia destruktora muszą obejmować unię specyfikatorów ograniczenia na wszystkich konstruktorach", "błąd", "element nostdlib wymaga co najmniej jednego wymuszonego użycia", - "error-type", + "typ błędu", null, null, null, diff --git a/Extension/bin/messages/pt-br/messages.json b/Extension/bin/messages/pt-br/messages.json index d0749eccc..2f1a4447f 100644 --- a/Extension/bin/messages/pt-br/messages.json +++ b/Extension/bin/messages/pt-br/messages.json @@ -3,7 +3,7 @@ "última linha do arquivo termina sem uma nova linha", "última linha do arquivo termina sem uma barra invertida", "#include arquivo %sq inclui a si mesmo", - "memória insuficiente", + "Memória insuficiente. Considere habilitar o mecanismo IntelliSense de 64 bits e aumentar o limite de memória do IntelliSense nas configurações.", null, "comentário anexado ao fim do arquivo", "token não reconhecido", @@ -1505,7 +1505,7 @@ "Erro de linha de comando", "erro interno", "Erro interno", - "-D", + null, null, "Limite de erro atingido.", "Laço de erro interno", @@ -1524,7 +1524,7 @@ "linguagem intermediária (7)", "linguagem intermediária (8)", "linguagem intermediária (9)", - "PCH", + null, null, null, null, @@ -1537,7 +1537,7 @@ "caractere inválido para literal char16_t", null, "convenção de chamadas não reconhecida %s, deve ser um dos:", - "%s", + null, null, null, "o tipo subjacente da enumeração deve ser integral", diff --git a/Extension/bin/messages/ru/messages.json b/Extension/bin/messages/ru/messages.json index ff6f4454d..263a85452 100644 --- a/Extension/bin/messages/ru/messages.json +++ b/Extension/bin/messages/ru/messages.json @@ -3,7 +3,7 @@ "последняя строка файла завершается без знака новой строки", "последняя строка файла завершается знаком обратной косой черты", "включаемый файл %sq включает самого себя", - "недостаточно памяти", + "Не хватает памяти. Рассмотрите возможность включения 64-разрядной подсистемы IntelliSense и увеличения лимита памяти IntelliSense в настройках.", null, "незакрытый комментарий в конце файла", "нераспознанная лексема", @@ -1505,7 +1505,7 @@ "Ошибка в командной строке", "внутренняя ошибка", "Внутренняя ошибка", - "-D", + null, null, "Достигнут предел ошибок.", "Внутренний цикл ошибки", @@ -1524,7 +1524,7 @@ "промежуточный язык (7)", "промежуточный язык (8)", "промежуточный язык (9)", - "PCH", + null, null, null, null, @@ -1537,7 +1537,7 @@ "недопустимый знак для литерала char16_t", null, "нераспознанное соглашение о вызовах %s; необходимо использовать одно из следующих:", - "%s", + null, null, null, "базовый тип для перечисляемого типа должен быть целочисленным", diff --git a/Extension/bin/messages/tr/messages.json b/Extension/bin/messages/tr/messages.json index a84368e92..8fd0f7a7f 100644 --- a/Extension/bin/messages/tr/messages.json +++ b/Extension/bin/messages/tr/messages.json @@ -3,7 +3,7 @@ "dosyanın son satırında yeni satır yok", "dosyasının son satırı ters eğik çizgi ile biter", "#include file %sq kendisini içerir", - "Bellek yetersiz", + "Yetersiz bellek. Ayarlarda 64 bit IntelliSense altyapısını etkinleştirmeyi ve IntelliSense bellek sınırını artırmayı düşünün.", null, "dosya sonunda açıklama kapatılmamış", "tanınmayan belirteç", @@ -1505,7 +1505,7 @@ "Komut satırı hatası", "iç hata", "İç hata", - "-D", + null, null, "Hata sınırına ulaşıldı.", "İç hata döngüsü", @@ -1524,7 +1524,7 @@ "ara dil (7)", "ara dil (8)", "ara dil (9)", - "PCH", + null, null, null, null, @@ -1537,7 +1537,7 @@ "char16_t sabit değeri için geçersiz karakter", null, "çağrı kuralı %s tanınmıyor, şunlardan biri olmalıdır:", - "%s", + null, null, null, "Sabit listesi türünün temel alınan türü bir tam sayı türü olmalıdır", @@ -2955,7 +2955,7 @@ "yıkıcının kısıtlama tanımlayıcıları, tüm oluşturuculardaki kısıtlama tanımlayıcılarının birleşimini kapsamalıdır", "hata", "nostdlib en az bir zorunlu kullanım gerektirir", - "error-type", + "hata türü", null, null, null, diff --git a/Extension/bin/messages/zh-cn/messages.json b/Extension/bin/messages/zh-cn/messages.json index 3def6317d..b527f4e9f 100644 --- a/Extension/bin/messages/zh-cn/messages.json +++ b/Extension/bin/messages/zh-cn/messages.json @@ -3,7 +3,7 @@ "文件的最后一行结束,没有新行", "文件的最后一行以反斜杠结束", "#include 文件 %sq 包含自身", - "内存不足", + "内存不足。请考虑启用 64 位 IntelliSense 引擎并在设置中增加 IntelliSense 内存限制。", null, "文件结尾的注释未闭合", "无法识别的标记", @@ -1505,7 +1505,7 @@ "命令行错误", "内部错误", "内部错误", - "-D", + null, null, "达到错误限制。", "内部错误循环", @@ -1524,7 +1524,7 @@ "中间语言(7)", "中间语言(8)", "中间语言(9)", - "PCH", + null, null, null, null, @@ -1537,7 +1537,7 @@ "char16_t 文本的无效字符", null, "无法识别的调用约定 %s,必须为以下内容之一:", - "%s", + null, null, null, "枚举类型的基础类型必须是整型", @@ -2955,7 +2955,7 @@ "析构函数的限制说明符必须包含所有构造函数的限制说明符的联合部分", "错误", "nostdlib 要求至少使用一个强制 using", - "error-type", + "错误类型", null, null, null, diff --git a/Extension/bin/messages/zh-tw/messages.json b/Extension/bin/messages/zh-tw/messages.json index 5ab723beb..aefdf6b3a 100644 --- a/Extension/bin/messages/zh-tw/messages.json +++ b/Extension/bin/messages/zh-tw/messages.json @@ -3,7 +3,7 @@ "檔案的最後一行不以新行字元結尾", "檔案的最後一行以反斜線結尾", "#include 檔案 %sq 包含本身", - "記憶體不足", + "記憶體不足。請考慮啟用 64 位元 IntelliSense 引擎,並在設定中增加 IntelliSense 記憶體限制。", null, "檔案結尾處有未封閉的註解", "無法辨認的語彙基元", @@ -1505,7 +1505,7 @@ "命令列錯誤", "內部錯誤", "內部錯誤", - "-D", + null, null, "已達錯誤限制。", "內部錯誤迴圈", @@ -1524,7 +1524,7 @@ "中繼語言 (7)", "中繼語言 (8)", "中繼語言 (9)", - "PCH", + null, null, null, null, @@ -1537,7 +1537,7 @@ "char16_t literal 的字元無效", null, "無法辨認的呼叫慣例 %s,必須是下列其中一個: ", - "%s", + null, null, null, "列舉類型的基礎類型必須是整數類型", @@ -2955,7 +2955,7 @@ "解構函式的限制規範必須涵蓋所有建構函式的限制規範聯集", "error", "nostdlib 至少需要一個強制 Using", - "error-type", + "錯誤類型", null, null, null, From 456af8c7af5df8e72a17eaa6e772ab18322680b9 Mon Sep 17 00:00:00 2001 From: "CSIGS@microsoft.com" Date: Fri, 18 Oct 2024 11:55:23 -0700 Subject: [PATCH 08/78] [Auto] Localization - Translated Strings (#12469) --- Extension/i18n/chs/package.i18n.json | 18 +++++++++--------- .../i18n/chs/src/LanguageServer/ui.i18n.json | 14 +++++++------- .../run-and-debug-project-linux.md.i18n.json | 2 +- .../run-and-debug-project-mac.md.i18n.json | 2 +- .../run-and-debug-project-windows.md.i18n.json | 2 +- .../install-compiler-windows.md.i18n.json | 4 ++-- .../install-compiler-windows10.md.i18n.json | 6 +++--- .../install-compiler-windows11.md.i18n.json | 6 +++--- Extension/i18n/cht/package.i18n.json | 10 +++++----- .../i18n/cht/src/LanguageServer/ui.i18n.json | 8 ++++---- .../install-compiler-windows.md.i18n.json | 4 ++-- .../install-compiler-windows10.md.i18n.json | 6 +++--- .../install-compiler-windows11.md.i18n.json | 6 +++--- Extension/i18n/csy/package.i18n.json | 16 ++++++++-------- .../i18n/csy/src/LanguageServer/ui.i18n.json | 14 +++++++------- .../install-compiler-windows.md.i18n.json | 2 +- .../install-compiler-windows10.md.i18n.json | 2 +- .../install-compiler-windows11.md.i18n.json | 2 +- Extension/i18n/deu/package.i18n.json | 16 ++++++++-------- .../i18n/deu/src/LanguageServer/ui.i18n.json | 14 +++++++------- Extension/i18n/esn/package.i18n.json | 12 ++++++------ .../i18n/esn/src/LanguageServer/ui.i18n.json | 10 +++++----- Extension/i18n/fra/package.i18n.json | 12 ++++++------ .../i18n/fra/src/LanguageServer/ui.i18n.json | 10 +++++----- .../install-compiler-windows.md.i18n.json | 2 +- .../install-compiler-windows10.md.i18n.json | 2 +- .../install-compiler-windows11.md.i18n.json | 2 +- Extension/i18n/ita/package.i18n.json | 10 +++++----- .../i18n/ita/src/LanguageServer/ui.i18n.json | 8 ++++---- Extension/i18n/jpn/package.i18n.json | 18 +++++++++--------- .../i18n/jpn/src/LanguageServer/ui.i18n.json | 14 +++++++------- .../install-compiler-windows.md.i18n.json | 2 +- .../install-compiler-windows10.md.i18n.json | 2 +- .../install-compiler-windows11.md.i18n.json | 2 +- Extension/i18n/kor/package.i18n.json | 10 +++++----- .../i18n/kor/src/LanguageServer/ui.i18n.json | 8 ++++---- Extension/i18n/plk/package.i18n.json | 12 ++++++------ .../i18n/plk/src/LanguageServer/ui.i18n.json | 2 +- .../install-compiler-windows.md.i18n.json | 2 +- .../install-compiler-windows10.md.i18n.json | 2 +- .../install-compiler-windows11.md.i18n.json | 2 +- Extension/i18n/ptb/package.i18n.json | 16 ++++++++-------- .../i18n/ptb/src/LanguageServer/ui.i18n.json | 14 +++++++------- .../install-compiler-windows.md.i18n.json | 2 +- .../install-compiler-windows10.md.i18n.json | 2 +- .../install-compiler-windows11.md.i18n.json | 2 +- Extension/i18n/rus/package.i18n.json | 16 ++++++++-------- .../i18n/rus/src/LanguageServer/ui.i18n.json | 14 +++++++------- Extension/i18n/trk/package.i18n.json | 16 ++++++++-------- .../i18n/trk/src/LanguageServer/ui.i18n.json | 14 +++++++------- .../install-compiler-windows.md.i18n.json | 2 +- .../install-compiler-windows10.md.i18n.json | 2 +- .../install-compiler-windows11.md.i18n.json | 2 +- 53 files changed, 200 insertions(+), 200 deletions(-) diff --git a/Extension/i18n/chs/package.i18n.json b/Extension/i18n/chs/package.i18n.json index 49d2aba10..c1c7f42e8 100644 --- a/Extension/i18n/chs/package.i18n.json +++ b/Extension/i18n/chs/package.i18n.json @@ -22,7 +22,6 @@ "c_cpp.command.switchHeaderSource.title": "切换标头/源", "c_cpp.command.enableErrorSquiggles.title": "启用错误波形曲线", "c_cpp.command.disableErrorSquiggles.title": "禁用错误波形曲线", - "c_cpp.command.toggleIncludeFallback.title": "在包含错误上切换 IntelliSense 引擎回退", "c_cpp.command.toggleDimInactiveRegions.title": "切换非活动区域着色", "c_cpp.command.resetDatabase.title": "重置 IntelliSense 数据库", "c_cpp.command.takeSurvey.title": "参加调查", @@ -37,9 +36,9 @@ "c_cpp.command.GoToNextDirectiveInGroup.title": "转到条件组中的下一个预处理器指令", "c_cpp.command.GoToPrevDirectiveInGroup.title": "转到条件组中的上一个预处理器指令", "c_cpp.command.CreateDeclarationOrDefinition.title": "创建声明/定义", - "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "在活动文件上运行 Code Analysis", - "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "在打开的文件上运行 Code Analysis", - "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "在所有文件上运行 Code Analysis", + "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "在活动文件上运行代码分析", + "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "在打开的文件上运行代码分析", + "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "在所有文件上运行代码分析", "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "清除所有代码分析问题", "c_cpp.command.BuildAndDebugFile.title": "调试 C/C++ 文件", "c_cpp.command.BuildAndRunFile.title": "运行 C/C++ 文件", @@ -65,7 +64,7 @@ "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "用于代码分析的最大并发线程数。默认值 `null` (空)使用从 `#C_Cpp.maxConcurrentThreads#` 继承的值的一半。", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "超过此内存使用量(以 MB 为单位)后,将并发运行更少的代码分析进程。默认值 `null` (空)使用从 `#C_Cpp.maxMemory#` 继承的值。", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "控制在 `#files.autoSave#` 为 `afterDelay` 且 `#C_Cpp.codeAnalysis.runAutomatically#` 为 `true` 时从编辑触发保存后,代码分析开始处理之前的延迟(以毫秒为单位)。", - "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "配置 glob 模式以排除用于代码分析的文件夹和文件。始终排除不在工作区文件夹下的文件。从 `#files.exclude#` 和 `#C_Cpp.files.exclude#` 继承值。详细了解 glob 模式 [此处](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)。", + "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "配置 glob 模式以排除用于代码分析的文件夹和文件。始终排除不在工作区文件夹下的文件。从 `#files.exclude#` 和 `#C_Cpp.files.exclude#` 继承值。详细了解 [glob 模式](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)。", "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "要与文件路径匹配的 glob 模式。设置为 `true` 或 `false` 以启用或禁用模式。", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "对匹配文件同辈进行其他检查。将 `$(basename)` 用作匹配文件名变量。", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "如果为 `true`,则代码分析将在文件打开或保存后自动在文件上运行。", @@ -184,8 +183,7 @@ "c_cpp.configuration.intelliSenseEngine.default.description": "通过单独的 IntelliSense 流程提供上下文感知结果。", "c_cpp.configuration.intelliSenseEngine.tagParser.description": "提供非上下文感知的“模糊”结果。", "c_cpp.configuration.intelliSenseEngine.disabled.description": "关闭 C/C++ 语言服务功能。", - "c_cpp.configuration.intelliSenseEngineFallback.markdownDescription": "控制 IntelliSense 引擎是否将自动切换为包含 `#include` 错误的翻译单元的标记分析器。", - "c_cpp.configuration.autocomplete.markdownDescription": "控制自动完成提供程序。如果 `disabled`,且你想要基于字词的补全功能,则还需要设置 `\"[cpp]\": {\"editor.wordBasedSuggestions\": }` (`c` 和 `cuda-cpp` 语音也类似)。", + "c_cpp.configuration.autocomplete.markdownDescription": "控制自动完成提供程序。如果 `disabled`,且你想要基于字词的补全功能,则还需要设置 `\"[cpp]\": {\"editor.wordBasedSuggestions\": }` (`c` 和 `cuda-cpp` 语言也类似)。", "c_cpp.configuration.autocomplete.default.description": "使用活动的 IntelliSense 引擎。", "c_cpp.configuration.autocomplete.disabled.description": "使用 Visual Studio Code 提供的基于字词的补全。", "c_cpp.configuration.errorSquiggles.description": "控制是否将 IntelliSense 引擎检测到的可疑编译错误报告回编辑器。还控制是否报告代码分析警告(如果找不到包含)。标记分析器引擎将忽略此设置。", @@ -257,7 +255,7 @@ "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "当来自 `nan` 和 `node-addon-api` 的包含路径为依赖项时,请将其添加。", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "如果为 `true`,则“重命名符号”将需要有效的 C/C++ 标识符。", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "如果为 `true`,则自动完成将在函数调用后自动添加 `(` ,在这种情况下,也可以添加 `)` ,具体取决于 `#editor.autoClosingBrackets#` 设置的值。", - "c_cpp.configuration.filesExclude.markdownDescription": "为排除文件夹(以及文件 - 如果更改了 `#C_Cpp.exclusionPolicy#`)配置 glob 模式。这些特定于 C/C++ 扩展,并且是 `#files.exclude#` 的补充,但与 `#files.exclude#` 不同,它们也适用于当前工作区文件夹之外的路径,并且不会从资源管理器视图中删除。[此处](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)。", + "c_cpp.configuration.filesExclude.markdownDescription": "为排除文件夹(以及文件 - 如果更改了 `#C_Cpp.exclusionPolicy#`)配置 glob 模式。这些特定于 C/C++ 扩展,并且是 `#files.exclude#` 的补充,但与 `#files.exclude#` 不同,它们也适用于当前工作区文件夹之外的路径,并且不会从资源管理器视图中删除。详细了解 [glob 模式](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)。", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "要与文件路径匹配的 glob 模式。设置为 `true` 或 `false` 以启用或禁用模式。", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "对匹配文件同辈进行其他检查。将 `$(basename)` 用作匹配文件名变量。", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "如果为 `true`,则调试程序 shell 命令替换将使用过时的反引号 ``(`)``。", @@ -448,5 +446,7 @@ "c_cpp.configuration.refactoring.includeHeader.markdownDescription": "控制在执行重构操作(例如创建声明/定义)时是否将已重构的函数/符号的头文件包含在其相应的源文件。", "c_cpp.configuration.refactoring.includeHeader.always.description": "如果头文件未显式包含在源文件中,则始终包含该头文件。", "c_cpp.configuration.refactoring.includeHeader.ifNeeded.description": "仅当头文件未显式包含在源文件中或通过隐式包含来包含在内时,才包含该头文件。", - "c_cpp.configuration.refactoring.includeHeader.never.description": "从不包含头文件。" + "c_cpp.configuration.refactoring.includeHeader.never.description": "从不包含头文件。", + "c_cpp.languageModelTools.configuration.displayName": "C/C++ 配置", + "c_cpp.languageModelTools.configuration.userDescription": "活动 C 或 C++ 文件的配置,例如语言标准版本和目标平台。" } \ No newline at end of file diff --git a/Extension/i18n/chs/src/LanguageServer/ui.i18n.json b/Extension/i18n/chs/src/LanguageServer/ui.i18n.json index 89ebd13fe..310529610 100644 --- a/Extension/i18n/chs/src/LanguageServer/ui.i18n.json +++ b/Extension/i18n/chs/src/LanguageServer/ui.i18n.json @@ -13,9 +13,9 @@ "complete.tagparser.text": "分析完毕", "rescan.tagparse.text": "重新扫描工作区", "c.cpp.parsing.open.files.tooltip": "正在分析打开的文件", - "running.analysis.text": "Code Analysis: 正在运行", - "paused.analysis.text": "Code Analysis: 已暂停", - "mode.analysis.prefix": "Code Analysis 模式:", + "running.analysis.text": "代码分析: 正在运行", + "paused.analysis.text": "代码分析: 已暂停", + "mode.analysis.prefix": "代码分析模式:", "click.to.preview": "单击以预览结果", "c.cpp.configureIntelliSenseStatus.text": "配置 IntelliSense", "cpptools.status.intellisense": "C/C++ IntelliSense 状态", @@ -25,7 +25,7 @@ "cpptools.detail.tagparser": "正在初始化...", "tagparser.resume.text": "继续", "tagparser.pause.text": "暂停", - "cpptools.status.codeanalysis": "C/C++ Code Analysis 状态", + "cpptools.status.codeanalysis": "C/C++ 代码分析状态", "c.cpp.codeanalysis.statusbar.runNow": "立即运行", "mode.codeanalysis.status.automatic": "自动", "mode.codeanalysis.status.manual": "手动", @@ -39,9 +39,9 @@ "pause.analysis": "暂停", "another.analysis": "启动另一个...", "select.command": "选择命令...", - "active.analysis": "在活动文件上运行 Code Analysis", - "all.analysis": "在所有文件上运行 Code Analysis", - "open.analysis": "在打开的文件上运行 Code Analysis", + "active.analysis": "在活动文件上运行代码分析", + "all.analysis": "在所有文件上运行代码分析", + "open.analysis": "在打开的文件上运行代码分析", "c.cpp.references.statusbar": "C/C++ 引用状态", "c.cpp.configuration.tooltip": "C/C++ 配置", "c.cpp.configureIntelliSenseStatus.cppText": "C/C++ 配置 IntelliSense", diff --git a/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json b/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json index e4649c98e..8ad0b82e2 100644 --- a/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json @@ -12,7 +12,7 @@ "walkthrough.linux.start.debugging": "开始调试", "walkthrough.linux.select.compiler": "选择 {0}。", "walkthrough.linux.choose.build.active.file": "选择 {0}。", - "walkthrough.linux.build.and.debug.active.file": "生成和调试活动文件", + "walkthrough.linux.build.and.debug.active.file": "构建和调试活动文件", "walkthrough.linux.after.running": "首次运行和调试 C++ 文件后,你将注意到项目 {0} 的文件夹内有两个新文件: {1} 和 {2}。", "walkthrough.linux.for.more.complex": "对于更复杂的生成和调试场景,可以在 {0} 和 {1} 中自定义生成任务和调试配置。例如,如果在从命令行生成时通常会将参数传递给编译器,则可以使用 {3} 属性以在 {2} 中指定这些参数。同样,可以定义要传递给程序的参数,以在 {4}中进行调试。" } \ No newline at end of file diff --git a/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json b/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json index 03b04beaf..81f2b5eb0 100644 --- a/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json @@ -12,7 +12,7 @@ "walkthrough.mac.start.debugging": "开始调试", "walkthrough.mac.select.compiler": "选择 {0}。", "walkthrough.mac.choose.build.active.file": "选择 {0}。", - "walkthrough.mac.build.and.debug.active.file": "生成和调试活动文件", + "walkthrough.mac.build.and.debug.active.file": "构建和调试活动文件", "walkthrough.mac.after.running": "首次运行和调试 C++ 文件后,你将注意到项目 {0} 的文件夹内有两个新文件: {1} 和 {2}。", "walkthrough.mac.for.more.complex": "对于更复杂的生成和调试场景,可以在 {0} 和 {1} 中自定义生成任务和调试配置。例如,如果在从命令行生成时通常会将参数传递给编译器,则可以使用 {3} 属性以在 {2} 中指定这些参数。同样,可以定义要传递给程序的参数,以在 {4}中进行调试。" } \ No newline at end of file diff --git a/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json b/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json index f3a047c2c..d396b16e4 100644 --- a/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json @@ -12,7 +12,7 @@ "walkthrough.windows.start.debugging": "开始调试", "walkthrough.windows.select.compiler": "选择 {0}。", "walkthrough.windows.choose.build.active.file": "选择 {0}。", - "walkthrough.windows.build.and.debug.active.file": "生成和调试活动文件", + "walkthrough.windows.build.and.debug.active.file": "构建和调试活动文件", "walkthrough.windows.after.running": "首次运行和调试 C++ 文件后,你将注意到项目 {0} 的文件夹内有两个新文件: {1} 和 {2}。", "walkthrough.windows.for.more.complex": "对于更复杂的生成和调试场景,可以在 {0} 和 {1} 中自定义生成任务和调试配置。例如,如果在从命令行生成时通常会将参数传递给编译器,则可以使用 {3} 属性以在 {2} 中指定这些参数。同样,可以定义要传递给程序的参数,以在 {4}中进行调试。" } \ No newline at end of file diff --git a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index e738b3b88..84bd1257a 100644 --- a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -17,8 +17,8 @@ "walkthrough.windows.note1": "注意", "walkthrough.windows.note1.text": "可以使用 Visual Studio 生成工具中的 C++ 工具集以及 Visual Studio Code 以编译、生成并验证任何 C++ 代码库,前提是同时具有有效的 Visual Studio 许可证(社区版、专业版或企业版),且正积极将其用于开发该 C++ 代码库。", "walkthrough.windows.open.command.prompt": "在 Windows“开始”菜单中键入‘开发人员’以打开 {0}。", - "walkthrough.windows.command.prompt.name1": "VS 的开发人员命令提示", - "walkthrough.windows.check.install": "在 VS 的开发人员命令提示中键入 {0} 以检查 MSVC 安装。你应该会看到包含版本和基本使用情况说明的版权消息。", + "walkthrough.windows.command.prompt.name1": "VS 的 Developer 命令提示", + "walkthrough.windows.check.install": "在 VS 的开发人员命令提示中键入 {0} 以检查 MSVC 安装。你应该会看到包含版本和基本使用说明的版权消息。", "walkthrough.windows.note2": "注意", "walkthrough.windows.note2.text": "要从命令行或 VS Code 使用 MSVC,必须从 {0} 运行。普通 shell (例如 {1}、 {2})或 Windows 命令提示符未设置必要的路径环境变量。", "walkthrough.windows.command.prompt.name2": "VS 的开发人员命令提示" diff --git a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index 8689aa88d..c0d79a4a4 100644 --- a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -9,10 +9,10 @@ "walkthrough.windows.text2": "若要安装 MSVC,请打开 VS Code 终端(CTRL + `)并在以下命令中粘贴:\n", "walkthrough.windows.note1": "注意", "walkthrough.windows.note1.text": "可以使用 Visual Studio 生成工具中的 C++ 工具集以及 Visual Studio Code 以编译、生成并验证任何 C++ 代码库,前提是同时具有有效的 Visual Studio 许可证(社区版、专业版或企业版),且正积极将其用于开发该 C++ 代码库。", - "walkthrough.windows.verify.compiler": "正在验证编译器安装", + "walkthrough.windows.verify.compiler": "验证编译器安装", "walkthrough.windows.open.command.prompt": "在 Windows“开始”菜单中键入‘开发人员’以打开 {0}。", - "walkthrough.windows.command.prompt.name1": "VS 的开发人员命令提示", - "walkthrough.windows.check.install": "在 VS 的开发人员命令提示中键入 {0} 以检查 MSVC 安装。你应该会看到包含版本和基本使用情况说明的版权消息。", + "walkthrough.windows.command.prompt.name1": "VS 的 Developer 命令提示", + "walkthrough.windows.check.install": "在 VS 的开发人员命令提示中键入 {0} 以检查 MSVC 安装。你应该会看到包含版本和基本使用说明的版权消息。", "walkthrough.windows.note2": "注意", "walkthrough.windows.note2.text": "要从命令行或 VS Code 使用 MSVC,必须从 {0} 运行。普通 shell (例如 {1}、 {2})或 Windows 命令提示符未设置必要的路径环境变量。", "walkthrough.windows.command.prompt.name2": "VS 的开发人员命令提示", diff --git a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index 8689aa88d..c0d79a4a4 100644 --- a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -9,10 +9,10 @@ "walkthrough.windows.text2": "若要安装 MSVC,请打开 VS Code 终端(CTRL + `)并在以下命令中粘贴:\n", "walkthrough.windows.note1": "注意", "walkthrough.windows.note1.text": "可以使用 Visual Studio 生成工具中的 C++ 工具集以及 Visual Studio Code 以编译、生成并验证任何 C++ 代码库,前提是同时具有有效的 Visual Studio 许可证(社区版、专业版或企业版),且正积极将其用于开发该 C++ 代码库。", - "walkthrough.windows.verify.compiler": "正在验证编译器安装", + "walkthrough.windows.verify.compiler": "验证编译器安装", "walkthrough.windows.open.command.prompt": "在 Windows“开始”菜单中键入‘开发人员’以打开 {0}。", - "walkthrough.windows.command.prompt.name1": "VS 的开发人员命令提示", - "walkthrough.windows.check.install": "在 VS 的开发人员命令提示中键入 {0} 以检查 MSVC 安装。你应该会看到包含版本和基本使用情况说明的版权消息。", + "walkthrough.windows.command.prompt.name1": "VS 的 Developer 命令提示", + "walkthrough.windows.check.install": "在 VS 的开发人员命令提示中键入 {0} 以检查 MSVC 安装。你应该会看到包含版本和基本使用说明的版权消息。", "walkthrough.windows.note2": "注意", "walkthrough.windows.note2.text": "要从命令行或 VS Code 使用 MSVC,必须从 {0} 运行。普通 shell (例如 {1}、 {2})或 Windows 命令提示符未设置必要的路径环境变量。", "walkthrough.windows.command.prompt.name2": "VS 的开发人员命令提示", diff --git a/Extension/i18n/cht/package.i18n.json b/Extension/i18n/cht/package.i18n.json index 1d47d65c8..32f54e389 100644 --- a/Extension/i18n/cht/package.i18n.json +++ b/Extension/i18n/cht/package.i18n.json @@ -22,7 +22,6 @@ "c_cpp.command.switchHeaderSource.title": "切換標頭/來源", "c_cpp.command.enableErrorSquiggles.title": "啟用錯誤波浪線", "c_cpp.command.disableErrorSquiggles.title": "停用錯誤波浪線", - "c_cpp.command.toggleIncludeFallback.title": "切換包含錯誤上的 IntelliSense 引擎後援", "c_cpp.command.toggleDimInactiveRegions.title": "切換非使用中的區域著色", "c_cpp.command.resetDatabase.title": "重設 IntelliSense 資料庫", "c_cpp.command.takeSurvey.title": "填寫問卷", @@ -65,7 +64,7 @@ "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "用於程式碼分析的同時執行緒數目上限。預設的 `null` (空白) 會使用繼承自 `#C_Cpp.maxConcurrentThreads#` 的值。", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "超過此記憶體使用量 (MB) 之後,同時執行的程式碼分析處理序將會減少。預設的 `null` (空白) 會使用繼承自 `#C_Cpp.maxMemory#` 的值。", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "當 `#files.autoSave#` 為 `afterDelay` 且 `#C_Cpp.codeAnalysis.runAutomatically#` 為 `true` 時,控制從編輯觸發儲存之後,程式碼分析開始處理之前的延遲 (毫秒)。", - "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "設定 Glob 模式以排除用於程式碼分析的資料夾與檔案。不在工作區資料夾之下的檔案將一律排除。從 `#files.exclude#` 與 `#C_Cpp.files.exclude#` 繼承值。請在 [此處](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) 閱讀更多有關於 Glob 模式的資訊。", + "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "設定 Glob 模式以排除用於程式碼分析的資料夾與檔案。不在工作區資料夾之下的檔案將一律排除。從 `#files.exclude#` 與 `#C_Cpp.files.exclude#` 繼承值。深入了解 [Glob 模式](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)。", "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "要符合檔案路徑的 Glob 模式。設為 `true` 或 `false` 可啟用或停用模式。", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "對相符檔案同層級進行額外檢查。請使用 `$(basename)` 作為相符檔案名稱的變數。", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "若為 `true`,則程式碼分析將會在檔案開啟或儲存之後,自動在該檔案上執行。", @@ -184,7 +183,6 @@ "c_cpp.configuration.intelliSenseEngine.default.description": "透過單獨的 IntelliSense 處理序提供內容感知結果。", "c_cpp.configuration.intelliSenseEngine.tagParser.description": "提供不屬於內容意識的 `模糊` 結果。", "c_cpp.configuration.intelliSenseEngine.disabled.description": "關閉 C/C++ 語言服務功能。", - "c_cpp.configuration.intelliSenseEngineFallback.markdownDescription": "控制 IntelliSense 引擎是否會自動切換到包含 `#include` 錯誤之編譯單位的標籤剖析器。", "c_cpp.configuration.autocomplete.markdownDescription": "控制自動完成提供者。若設為 `disabled` 且您想要以文字方式完成,您也必須設定 `\"[cpp]\": {\"editor.wordBasedSuggestions\": }` (且 `c` 及 `cuda-cpp` 語言也相同)。", "c_cpp.configuration.autocomplete.default.description": "使用作用中 IntelliSense 引擎。", "c_cpp.configuration.autocomplete.disabled.description": "使用 Visual Studio Code 所提供的文字型完成。", @@ -257,7 +255,7 @@ "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "當 `nan` 和 `node-addon-api` 為相依性時,從中新增 include 路徑。", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "若為 `true`,則「重新命名符號」需要有效的 C/C++ 識別碼。", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "若為 `true`,自動完成將會在函式呼叫之後自動新增 `(`,在這種情況下也可能會新增 `)`,取決於 `editor.autoClosingBrackets` 設定的值。", - "c_cpp.configuration.filesExclude.markdownDescription": "設定 Glob 模式以排除資料夾 (若變更 `#C_Cpp.exclusionPolicy#`,則也會排除檔案)。這些模式為 C/C++ 延伸模組所特有,且不屬於 `#files.exclude#`,但與 `#files.exclude#` 不同的是,目前工作區資料夾以外的路徑也會套用這些模式,並且不會將其從總管檢視中移除。請在 [此處](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) 閱讀更多有關於 Glob 模式的資訊。", + "c_cpp.configuration.filesExclude.markdownDescription": "設定 Glob 模式以排除資料夾 (若變更 `#C_Cpp.exclusionPolicy#`,則也會排除檔案)。這些模式為 C/C++ 延伸模組所特有,且是對 `#files.exclude#` 的外加,但與 `#files.exclude#` 不同的是,它們也適用於目前工作區資料夾以外的路徑,並且不會將其從總管檢視中移除。深入了解 [Glob 模式](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)。", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "要符合檔案路徑的 Glob 模式。設為 `true` 或 `false` 可啟用或停用模式。", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "對相符檔案同層級進行額外檢查。請使用 `$(basename)` 作為相符檔案名稱的變數。", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "若為 `true`,偵錯工具殼層命令替代將會使用已淘汰的反引號 ``(`)``。", @@ -448,5 +446,7 @@ "c_cpp.configuration.refactoring.includeHeader.markdownDescription": "控制在執行重構動作時,是否要將重構函式/符號的標頭檔案包含到其對應的來源檔案,例如建立宣告/定義。", "c_cpp.configuration.refactoring.includeHeader.always.description": "如果標頭檔案未明確包含在其來源檔案中,則一律包含該標頭檔案。", "c_cpp.configuration.refactoring.includeHeader.ifNeeded.description": "只有當標頭檔案未明確包含在其來源檔案或隱含包含時,才包含該標頭檔案。", - "c_cpp.configuration.refactoring.includeHeader.never.description": "永不包含標頭檔案。" + "c_cpp.configuration.refactoring.includeHeader.never.description": "永不包含標頭檔案。", + "c_cpp.languageModelTools.configuration.displayName": "C/C++ 設定", + "c_cpp.languageModelTools.configuration.userDescription": "使用中 C 或 C++ 檔案的設定,例如語言標準版本和目標平台。" } \ No newline at end of file diff --git a/Extension/i18n/cht/src/LanguageServer/ui.i18n.json b/Extension/i18n/cht/src/LanguageServer/ui.i18n.json index 4273d0b83..6bbcd2c32 100644 --- a/Extension/i18n/cht/src/LanguageServer/ui.i18n.json +++ b/Extension/i18n/cht/src/LanguageServer/ui.i18n.json @@ -13,9 +13,9 @@ "complete.tagparser.text": "剖析完成", "rescan.tagparse.text": "重新掃描工作區", "c.cpp.parsing.open.files.tooltip": "剖析開啟的檔案", - "running.analysis.text": "Code Analysis: 執行中", - "paused.analysis.text": "Code Analysis: 已暫停", - "mode.analysis.prefix": "Code Analysis 模式: ", + "running.analysis.text": "程式碼分析: 執行中", + "paused.analysis.text": "程式碼分析: 已暫停", + "mode.analysis.prefix": "程式碼分析模式: ", "click.to.preview": "按一下以預覽結果", "c.cpp.configureIntelliSenseStatus.text": "設定 IntelliSense", "cpptools.status.intellisense": "C/C++ IntelliSense 狀態", @@ -25,7 +25,7 @@ "cpptools.detail.tagparser": "正在初始化...", "tagparser.resume.text": "繼續", "tagparser.pause.text": "暫停", - "cpptools.status.codeanalysis": "C/C++ Code Analysis 狀態", + "cpptools.status.codeanalysis": "C/C++ 程式碼分析狀態", "c.cpp.codeanalysis.statusbar.runNow": "立即執行", "mode.codeanalysis.status.automatic": "自動", "mode.codeanalysis.status.manual": "手動", diff --git a/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index fd9fb7848..851509f3a 100644 --- a/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -17,8 +17,8 @@ "walkthrough.windows.note1": "備註", "walkthrough.windows.note1.text": "您可以使用 Visual Studio Build Tools 中的 C++ 工具組以及 Visual Studio Code 來編譯、組建及驗證任何 C++ 程式碼基底,只要您也擁有有效的 Visual Studio 授權 (社群版、專業版或企業版),且您正積極開發該 C++ 程式碼基底。", "walkthrough.windows.open.command.prompt": "在 Windows 開始頁面功能表中鍵入「開發人員」,以開啟 {0}。", - "walkthrough.windows.command.prompt.name1": "VS 的開發人員命令提示", - "walkthrough.windows.check.install": "在 VS 的開發人員命令提示字元中輸入 {0},以檢查您的 MSVC 安裝。您應該會看到内附版本及基本使用說明的著作權訊息。", + "walkthrough.windows.command.prompt.name1": "VS 的開發人員命令提示字元", + "walkthrough.windows.check.install": "在 VS 的開發人員命令提示字元中輸入 {0},即可檢查 MSVC 安裝。畫面會顯示版本的著作權訊息以及基本的使用說明。", "walkthrough.windows.note2": "備註", "walkthrough.windows.note2.text": "若要從命令列或 VS Code 使用 MSVC,您必須從 {0} 執行。一般殼層,例如 {1}、{2} 或 Windows 命令提示字元,沒有設定必要的路徑環境變數集。", "walkthrough.windows.command.prompt.name2": "VS 的開發人員命令提示" diff --git a/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index 1aeee9fe6..17bc7b24d 100644 --- a/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -9,10 +9,10 @@ "walkthrough.windows.text2": "若要安裝 MSVC,請開啟 VS Code 終端機 (CTRL + `),然後在下列命令中貼上:\n", "walkthrough.windows.note1": "備註", "walkthrough.windows.note1.text": "您可以使用 Visual Studio Build Tools 中的 C++ 工具組以及 Visual Studio Code 來編譯、組建及驗證任何 C++ 程式碼基底,只要您也擁有有效的 Visual Studio 授權 (社群版、專業版或企業版),且您正積極開發該 C++ 程式碼基底。", - "walkthrough.windows.verify.compiler": "正在驗證編譯器安裝", + "walkthrough.windows.verify.compiler": "驗證編譯器安裝", "walkthrough.windows.open.command.prompt": "在 Windows 開始頁面功能表中鍵入「開發人員」,以開啟 {0}。", - "walkthrough.windows.command.prompt.name1": "VS 的開發人員命令提示", - "walkthrough.windows.check.install": "在 VS 的開發人員命令提示字元中輸入 {0},以檢查您的 MSVC 安裝。您應該會看到内附版本及基本使用說明的著作權訊息。", + "walkthrough.windows.command.prompt.name1": "VS 的開發人員命令提示字元", + "walkthrough.windows.check.install": "在 VS 的開發人員命令提示字元中輸入 {0},即可檢查 MSVC 安裝。畫面會顯示版本的著作權訊息以及基本的使用說明。", "walkthrough.windows.note2": "備註", "walkthrough.windows.note2.text": "若要從命令列或 VS Code 使用 MSVC,您必須從 {0} 執行。一般殼層,例如 {1}、{2} 或 Windows 命令提示字元,沒有設定必要的路徑環境變數集。", "walkthrough.windows.command.prompt.name2": "VS 的開發人員命令提示", diff --git a/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index 1aeee9fe6..17bc7b24d 100644 --- a/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -9,10 +9,10 @@ "walkthrough.windows.text2": "若要安裝 MSVC,請開啟 VS Code 終端機 (CTRL + `),然後在下列命令中貼上:\n", "walkthrough.windows.note1": "備註", "walkthrough.windows.note1.text": "您可以使用 Visual Studio Build Tools 中的 C++ 工具組以及 Visual Studio Code 來編譯、組建及驗證任何 C++ 程式碼基底,只要您也擁有有效的 Visual Studio 授權 (社群版、專業版或企業版),且您正積極開發該 C++ 程式碼基底。", - "walkthrough.windows.verify.compiler": "正在驗證編譯器安裝", + "walkthrough.windows.verify.compiler": "驗證編譯器安裝", "walkthrough.windows.open.command.prompt": "在 Windows 開始頁面功能表中鍵入「開發人員」,以開啟 {0}。", - "walkthrough.windows.command.prompt.name1": "VS 的開發人員命令提示", - "walkthrough.windows.check.install": "在 VS 的開發人員命令提示字元中輸入 {0},以檢查您的 MSVC 安裝。您應該會看到内附版本及基本使用說明的著作權訊息。", + "walkthrough.windows.command.prompt.name1": "VS 的開發人員命令提示字元", + "walkthrough.windows.check.install": "在 VS 的開發人員命令提示字元中輸入 {0},即可檢查 MSVC 安裝。畫面會顯示版本的著作權訊息以及基本的使用說明。", "walkthrough.windows.note2": "備註", "walkthrough.windows.note2.text": "若要從命令列或 VS Code 使用 MSVC,您必須從 {0} 執行。一般殼層,例如 {1}、{2} 或 Windows 命令提示字元,沒有設定必要的路徑環境變數集。", "walkthrough.windows.command.prompt.name2": "VS 的開發人員命令提示", diff --git a/Extension/i18n/csy/package.i18n.json b/Extension/i18n/csy/package.i18n.json index 0e8801f2b..1bb35f387 100644 --- a/Extension/i18n/csy/package.i18n.json +++ b/Extension/i18n/csy/package.i18n.json @@ -22,7 +22,6 @@ "c_cpp.command.switchHeaderSource.title": "Přepnout hlavičku/zdroj", "c_cpp.command.enableErrorSquiggles.title": "Povolit podtrhávání chyb vlnovkou", "c_cpp.command.disableErrorSquiggles.title": "Zakázat podtrhávání chyb vlnovkou", - "c_cpp.command.toggleIncludeFallback.title": "Přepnout na zálohu modulu IntelliSense, když dojde k chybám vložených souborů", "c_cpp.command.toggleDimInactiveRegions.title": "Přepnout barvení neaktivních oblastí", "c_cpp.command.resetDatabase.title": "Resetovat databázi IntelliSense", "c_cpp.command.takeSurvey.title": "Vyplnit průzkum", @@ -37,9 +36,9 @@ "c_cpp.command.GoToNextDirectiveInGroup.title": "Přejít na další direktivu preprocesoru v podmíněné skupině", "c_cpp.command.GoToPrevDirectiveInGroup.title": "Přejít na předchozí direktivu preprocesoru v podmíněné skupině", "c_cpp.command.CreateDeclarationOrDefinition.title": "Vytvořit deklaraci/definici", - "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Spustit Code Analysis u aktivního souboru", - "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Spustit Code Analysis při otevírání souborů", - "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Spustit Code Analysis u všech souborů", + "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Spustit analýzu kódu u aktivního souboru", + "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Spustit analýzu kódu při otevírání souborů", + "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Spustit analýzu kódu u všech souborů", "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Vymazat všechny problémy s analýzou kódu", "c_cpp.command.BuildAndDebugFile.title": "Ladit soubor C/C++", "c_cpp.command.BuildAndRunFile.title": "Spustit soubor C/C++", @@ -65,7 +64,7 @@ "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "Maximální počet souběžných vláken, která se mají použít pro analýzu kódu. Výchozí hodnota `null` (prázdná) používá poloviční hodnotu zděděnou od `#C_Cpp.maxConcurrentThreads#`.", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "Po překročení tohoto využití paměti (v MB) bude souběžně spuštěno méně procesů analýzy kódu. Výchozí hodnota `null` (prázdná) používá hodnotu zděděnou od `#C_Cpp.maxMemory#`.", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "Určuje prodlevu v milisekundách před zahájením zpracování analýzy kódu po spuštění uložení z úpravy, když je `#files.autoSave#` `afterDelay` a `#C_Cpp.codeAnalysis.runAutomatically#` je `true`.", - "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Umožňuje nakonfigurovat vzory glob pro vyloučení složek a souborů pro analýzu kódu. Soubory mimo složku pracovního prostoru jsou vždy vyloučeny. Dědí hodnoty od `#files.exclude#` a `#C_Cpp.files.exclude#`. Další informace o vzorech glob [zde](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Umožňuje nakonfigurovat vzory glob pro vyloučení složek a souborů pro analýzu kódu. Soubory mimo složku pracovního prostoru jsou vždy vyloučeny. Dědí hodnoty od `#files.exclude#` a `#C_Cpp.files.exclude#`. Přečtěte si další informace o [vzorech glob](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "Vzor glob pro hledání shod s cestami k souborům. Pokud chcete vzor povolit, nastavte hodnotu `true`, pokud ho chcete zakázat, nastavte hodnotu `false`.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "Další kontrola položek na stejné úrovni u odpovídajícího souboru. Jako proměnnou názvu odpovídajícího souboru použijte `$(basename)`.", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "Pokud se nastaví na hodnotu `true`, analýza kódu se pro soubor spustí automaticky po jeho otevření nebo uložení.", @@ -184,7 +183,6 @@ "c_cpp.configuration.intelliSenseEngine.default.description": "Poskytuje výsledky v kontextu prostřednictvím samostatného procesu IntelliSense.", "c_cpp.configuration.intelliSenseEngine.tagParser.description": "Poskytuje přibližné výsledky, které nejsou v kontextu.", "c_cpp.configuration.intelliSenseEngine.disabled.description": "Vypne funkce služby jazyka C/C++.", - "c_cpp.configuration.intelliSenseEngineFallback.markdownDescription": "Určuje, jestli se modul IntelliSense automaticky přepne na analyzátor značek pro jednotky překladu, které obsahují chyby direktiv `#include`.", "c_cpp.configuration.autocomplete.markdownDescription": "Určuje poskytovatele automatického dokončování. Pokud je hodnota `disabled` a chcete dokončování na základě slov, musíte nastavit také `\"[cpp]\": {\"editor.wordBasedSuggestions\": }` (a podobně také pro jazyky `c` a `cuda-cpp`).", "c_cpp.configuration.autocomplete.default.description": "Používá aktivní modul IntelliSense.", "c_cpp.configuration.autocomplete.disabled.description": "Používá dokončování na základě slov, které nabízí Visual Studio Code.", @@ -257,7 +255,7 @@ "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Pokud existují závislosti, přidejte cesty pro zahrnuté soubory z `nan` a `node-addon-api`.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Když se tato hodnota nastaví na `true`, operace Přejmenovat symbol bude vyžadovat platný identifikátor C/C++.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Pokud je hodnota `true`, automatické dokončování automaticky přidá za volání funkcí znak `(`. V takovém případě se může přidat i znak `)`, což záleží na hodnotě nastavení `#editor.autoClosingBrackets#`.", - "c_cpp.configuration.filesExclude.markdownDescription": "Nakonfigurujte vzory glob pro vyloučení složek (a souborů, pokud se změní `#C_Cpp.exclusionPolicy#`). Ty jsou specifické pro rozšíření C/C++ a doplňují `#files.exclude#`, ale na rozdíl od `#files.exclude#` platí také pro cesty mimo aktuální složku pracovního prostoru a neodebírají se ze zobrazení Průzkumníka. Další informace o vzorech glob najdete [tady](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.filesExclude.markdownDescription": "Nakonfigurujte vzory glob pro vyloučení složek (a souborů, pokud se změní `#C_Cpp.exclusionPolicy#`). Ty jsou specifické pro rozšíření C/C++ a doplňují `#files.exclude#`, ale na rozdíl od `#files.exclude#` platí také pro cesty mimo aktuální složku pracovního prostoru a neodebírají se ze zobrazení Průzkumníka. Přečtěte si další informace o [vzorech glob](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "Vzor glob pro hledání shod s cestami k souborům. Pokud chcete vzor povolit, nastavte hodnotu `true`, pokud ho chcete zakázat, nastavte hodnotu `false`.", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "Další kontrola položek na stejné úrovni u odpovídajícího souboru. Jako proměnnou názvu odpovídajícího souboru použijte `$(basename)`.", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "Když se nastaví na `true`, nahrazování příkazů shellu ladicího programu bude používat starou verzi obrácené čárky ``(`)``.", @@ -448,5 +446,7 @@ "c_cpp.configuration.refactoring.includeHeader.markdownDescription": "Určuje, jestli se má do odpovídajícího zdrojového souboru zahrnout soubor hlaviček refaktorované funkce nebo symbolu při provádění akce refaktoringu, například vytvoření deklarace nebo definice.", "c_cpp.configuration.refactoring.includeHeader.always.description": "Vždy zahrňte soubor hlaviček, pokud není explicitně zahrnut do jeho zdrojového souboru.", "c_cpp.configuration.refactoring.includeHeader.ifNeeded.description": "Zahrňte soubor hlaviček pouze v případě, že není explicitně zahrnut do jeho zdrojového souboru nebo prostřednictvím implicitní zahrnutí.", - "c_cpp.configuration.refactoring.includeHeader.never.description": "Nikdy nezahrnujte soubor hlaviček." + "c_cpp.configuration.refactoring.includeHeader.never.description": "Nikdy nezahrnujte soubor hlaviček.", + "c_cpp.languageModelTools.configuration.displayName": "Konfigurace C/C++", + "c_cpp.languageModelTools.configuration.userDescription": "Konfigurace aktivního souboru C nebo C++, jako je standardní verze jazyka a cílová platforma" } diff --git a/Extension/i18n/csy/src/LanguageServer/ui.i18n.json b/Extension/i18n/csy/src/LanguageServer/ui.i18n.json index 3be6dcf56..d3b1aba52 100644 --- a/Extension/i18n/csy/src/LanguageServer/ui.i18n.json +++ b/Extension/i18n/csy/src/LanguageServer/ui.i18n.json @@ -13,9 +13,9 @@ "complete.tagparser.text": "Analýza byla dokončena.", "rescan.tagparse.text": "Znovu prohledat pracovní prostor", "c.cpp.parsing.open.files.tooltip": "Analýza otevřených souborů", - "running.analysis.text": "Code Analysis: Spuštěno", - "paused.analysis.text": "Code Analysis: Pozastaveno", - "mode.analysis.prefix": "Režim Code Analysis: ", + "running.analysis.text": "Analýza kódu: Spuštěno", + "paused.analysis.text": "Analýza kódu: Pozastaveno", + "mode.analysis.prefix": "Režim analýzy kódu: ", "click.to.preview": "kliknutím si můžete zobrazit náhled výsledků", "c.cpp.configureIntelliSenseStatus.text": "Konfigurovat IntelliSense", "cpptools.status.intellisense": "C/C++ IntelliSense Status", @@ -25,7 +25,7 @@ "cpptools.detail.tagparser": "Probíhá inicializace...", "tagparser.resume.text": "Pokračovat", "tagparser.pause.text": "Pozastavit", - "cpptools.status.codeanalysis": "Stav Code Analysis C/C++", + "cpptools.status.codeanalysis": "Stav analýzy kódu C/C++", "c.cpp.codeanalysis.statusbar.runNow": "Spustit", "mode.codeanalysis.status.automatic": "Automaticky", "mode.codeanalysis.status.manual": "Ručně", @@ -39,9 +39,9 @@ "pause.analysis": "Pozastavit", "another.analysis": "Spustit další…", "select.command": "Vyberte příkaz…", - "active.analysis": "Spustit Code Analysis u aktivního souboru", - "all.analysis": "Spustit Code Analysis u všech souborů", - "open.analysis": "Spustit Code Analysis při otevírání souborů", + "active.analysis": "Spustit analýzu kódu u aktivního souboru", + "all.analysis": "Spustit analýzu kódu u všech souborů", + "open.analysis": "Spustit analýzu kódu při otevírání souborů", "c.cpp.references.statusbar": "Stav odkazů jazyka C/C++", "c.cpp.configuration.tooltip": "Konfigurace C/C++", "c.cpp.configureIntelliSenseStatus.cppText": "Konfigurovat IntelliSense v C/C++", diff --git a/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index bb0daf1e3..1ab43c76b 100644 --- a/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -22,4 +22,4 @@ "walkthrough.windows.note2": "Poznámka", "walkthrough.windows.note2.text": "Pokud chcete použít MSVC z příkazového řádku nebo VS Code, musíte spouštět z {0}. Běžné prostředí, jako je {1}, {2} nebo příkazový řádek Windows, nemá nastavenou nezbytnou proměnnou prostředí cesty.", "walkthrough.windows.command.prompt.name2": "Developer Command Prompt for VS" -} \ No newline at end of file +} diff --git a/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index 1b28dda9e..8e1973951 100644 --- a/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -20,4 +20,4 @@ "walkthrough.windows.text3": "Pokud cílíte na Linux z Windows, podívejte se na {0}. Nebo můžete {1}.", "walkthrough.windows.link.title1": "Použití C++ a subsystému Windows pro Linux (WSL) ve VS Code", "walkthrough.windows.link.title2": "instalovat GCC na Windows pomocí MinGW" -} \ No newline at end of file +} diff --git a/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index 1b28dda9e..8e1973951 100644 --- a/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -20,4 +20,4 @@ "walkthrough.windows.text3": "Pokud cílíte na Linux z Windows, podívejte se na {0}. Nebo můžete {1}.", "walkthrough.windows.link.title1": "Použití C++ a subsystému Windows pro Linux (WSL) ve VS Code", "walkthrough.windows.link.title2": "instalovat GCC na Windows pomocí MinGW" -} \ No newline at end of file +} diff --git a/Extension/i18n/deu/package.i18n.json b/Extension/i18n/deu/package.i18n.json index 3b4cd79f4..b90b32354 100644 --- a/Extension/i18n/deu/package.i18n.json +++ b/Extension/i18n/deu/package.i18n.json @@ -22,7 +22,6 @@ "c_cpp.command.switchHeaderSource.title": "Header/Quelle umschalten", "c_cpp.command.enableErrorSquiggles.title": "Fehlerwellenlinien aktivieren", "c_cpp.command.disableErrorSquiggles.title": "Fehlerwellenlinien deaktivieren", - "c_cpp.command.toggleIncludeFallback.title": "Fallback der IntelliSense-Engine bei Includefehlern umschalten", "c_cpp.command.toggleDimInactiveRegions.title": "Farbgebung für inaktive Regionen umschalten", "c_cpp.command.resetDatabase.title": "IntelliSense-Datenbank zurücksetzen", "c_cpp.command.takeSurvey.title": "An Umfrage teilnehmen", @@ -37,9 +36,9 @@ "c_cpp.command.GoToNextDirectiveInGroup.title": "Zur nächsten Präprozessoranweisung in bedingter Gruppe wechseln", "c_cpp.command.GoToPrevDirectiveInGroup.title": "Zur vorherigen Präprozessoranweisung in bedingter Gruppe wechseln", "c_cpp.command.CreateDeclarationOrDefinition.title": "Deklaration/Definition erstellen", - "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Code Analysis auf \"Aktive Datei\" ausführen", - "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Code Analysis auf \"Dateien öffnen\" ausführen", - "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Code Analysis auf \"Alle Dateien\" ausführen", + "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Codeanalyse für aktive Dateien ausführen", + "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Codeanalyse für geöffnete Dateien ausführen", + "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Codeanalyse für alle Dateien ausführen", "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Alle Code Analysis Probleme löschen", "c_cpp.command.BuildAndDebugFile.title": "C/C++-Datei debuggen", "c_cpp.command.BuildAndRunFile.title": "C/C++-Datei ausführen", @@ -65,7 +64,7 @@ "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "Die maximale Anzahl gleichzeitiger Threads, die für die Codeanalyse verwendet werden sollen. Mit dem Standardwert `null` (leer) wird die Hälfte des Werts verwendet, der von `#C_Cpp.maxConcurrentThreads#` geerbt wurde.", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "Weniger Codeanalyseprozesse werden gleichzeitig ausgeführt, nachdem diese Speicherauslastung (in MB) überschritten wurde. Mit dem Standardwert `null` (leer) wird der Wert verwendet, der von `#C_Cpp.maxMemory#` geerbt wurde.", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "Steuert die Verzögerung in Millisekunden, bevor die Codeanalyse mit der Verarbeitung beginnt, nachdem durch eine Bearbeitung ein Speichervorgang ausgelöst wurde, wenn `#files.autoSave#` gleich `afterDelay` und `#C_Cpp.codeAnalysis.runAutomatically#` gleich `true` ist.", - "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Konfigurieren Sie Globmuster zum Ausschließen von Ordnern und Dateien für die Codeanalyse. Dateien, die sich nicht im Arbeitsbereichsordner befinden, werden immer ausgeschlossen. Erbt Werte von `#files.exclude#` und `#C_Cpp.files.exclude#`. Weitere Informationen zu Globmustern finden Sie [hier](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Konfigurieren Sie Globmuster zum Ausschließen von Ordnern und Dateien für die Codeanalyse. Dateien, die sich nicht im Arbeitsbereichsordner befinden, werden immer ausgeschlossen. Erbt Werte von `#files.exclude#` und `#C_Cpp.files.exclude#`. Weitere Informationen zu [Globmustern](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "Das Globmuster, mit dem Dateipfade verglichen werden sollen. Legen Sie diesen Wert auf `true` oder `false` fest, um das Muster zu aktivieren bzw. zu deaktivieren.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "Zusätzliche Überprüfung der gleichgeordneten Elemente einer entsprechenden Datei. Verwenden Sie `$(basename)` als Variable für den entsprechenden Dateinamen.", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "Bei `true` wird die Codeanalyse automatisch für eine Datei ausgeführt, nachdem sie geöffnet oder gespeichert wurde.", @@ -184,7 +183,6 @@ "c_cpp.configuration.intelliSenseEngine.default.description": "Stellt kontextbezogene Ergebnisse über einen separaten IntelliSense-Prozess bereit.", "c_cpp.configuration.intelliSenseEngine.tagParser.description": "Stellt „Fuzzy“-Ergebnisse bereit, die nicht kontextbezogen sind.", "c_cpp.configuration.intelliSenseEngine.disabled.description": "Deaktiviert die Features des C/C++-Sprachdiensts.", - "c_cpp.configuration.intelliSenseEngineFallback.markdownDescription": "Steuert, ob das IntelliSense-Modul automatisch zum Tagparser für Übersetzungseinheiten wechselt, die `#include#`-Fehler enthalten.", "c_cpp.configuration.autocomplete.markdownDescription": "Steuert den Anbieter für AutoVervollständigen. Wenn `disabled` festgelegt ist und Sie die wortbasierte Vervollständigung wünschen, müssen Sie auch `\"[cpp]\": {\"editor.wordBasedSuggestions\": }` festlegen (und analog auch für die Sprachen `c` und `cuda-cpp`).", "c_cpp.configuration.autocomplete.default.description": "Verwendet das aktive IntelliSense-Modul.", "c_cpp.configuration.autocomplete.disabled.description": "Verwendet die von Visual Studio Code bereitgestellte wortbasierte Vervollständigung.", @@ -257,7 +255,7 @@ "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Fügen Sie Includepfade aus `nan` und `node-addon-api` hinzu, wenn es sich um Abhängigkeiten handelt.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Wenn `true` festgelegt ist, erfordert 'Symbol umbenennen' einen gültigen C/C++-Bezeichner.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Wenn `true` festgelegt ist, fügt AutoVervollständigen automatisch `(` nach Funktionsaufrufen hinzu. In diesem Fall kann auch `)` in Abhängigkeit vom Wert der Einstellung `#editor.autoClosingBrackets#` hinzugefügt werden.", - "c_cpp.configuration.filesExclude.markdownDescription": "Konfigurieren Sie Globmuster zum Ausschließen von Ordnern (und Dateien, wenn `#C_Cpp.exclusionPolicy#` geändert wird). Diese sind spezifisch für die C/C++-Erweiterung und gelten zusätzlich zu `#files.exclude#`, aber im Gegensatz zu `#files.exclude#` gelten sie auch für Pfade außerhalb des aktuellen Arbeitsbereichsordners und werden nicht aus der Explorer-Ansicht entfernt. Weitere Informationen zu Globmustern finden Sie [hier](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.filesExclude.markdownDescription": "Konfigurieren Sie Globmuster zum Ausschließen von Ordnern (und Dateien, wenn `#C_Cpp.exclusionPolicy#` geändert wird). Diese sind spezifisch für die C/C++-Erweiterung und gelten zusätzlich zu `#files.exclude#`, aber im Gegensatz zu `#files.exclude#` gelten sie auch für Pfade außerhalb des aktuellen Arbeitsbereichsordners und werden nicht aus der Explorer-Ansicht entfernt. Weitere Informationen zu [Globmustern](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "Das Globmuster, mit dem Dateipfade verglichen werden sollen. Legen Sie diesen Wert auf `true` oder `false` fest, um das Muster zu aktivieren bzw. zu deaktivieren.", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "Zusätzliche Überprüfung der gleichgeordneten Elemente einer entsprechenden Datei. Verwenden Sie `$(basename)` als Variable für den entsprechenden Dateinamen.", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "Wenn `true` festgelegt ist, verwendet die Befehlsersetzung der Debugger-Shell veraltete Backtick-Zeichen ``(`)``.", @@ -448,5 +446,7 @@ "c_cpp.configuration.refactoring.includeHeader.markdownDescription": "Steuert, ob die Headerdatei einer umgestalteten Funktion/eines umgestalteten Symbols in die zugehörige Quelldatei aufgenommen werden soll, wenn ein Refactoring durchgeführt wird (beispielweise beim Erstellen einer Deklaration/Definition).", "c_cpp.configuration.refactoring.includeHeader.always.description": "Hiermit wird die Headerdatei immer eingeschlossen, wenn sie nicht explizit in der zugehörigen Quelldatei enthalten ist.", "c_cpp.configuration.refactoring.includeHeader.ifNeeded.description": "Hiermit wird die Headerdatei nur dann eingeschlossen, wenn sie nicht explizit in der zugehörigen Quelldatei enthalten ist oder implizit eingeschlossen wird.", - "c_cpp.configuration.refactoring.includeHeader.never.description": "Hiermit wird die Headerdatei nie eingeschlossen." + "c_cpp.configuration.refactoring.includeHeader.never.description": "Hiermit wird die Headerdatei nie eingeschlossen.", + "c_cpp.languageModelTools.configuration.displayName": "C/C++-Konfiguration", + "c_cpp.languageModelTools.configuration.userDescription": "Konfiguration der aktiven C- oder C++-Datei, z. B. Sprachstandardversion und Zielplattform." } diff --git a/Extension/i18n/deu/src/LanguageServer/ui.i18n.json b/Extension/i18n/deu/src/LanguageServer/ui.i18n.json index c5f0aa415..3301afac2 100644 --- a/Extension/i18n/deu/src/LanguageServer/ui.i18n.json +++ b/Extension/i18n/deu/src/LanguageServer/ui.i18n.json @@ -13,9 +13,9 @@ "complete.tagparser.text": "Parsing abgeschlossen", "rescan.tagparse.text": "Arbeitsbereich neu einlesen", "c.cpp.parsing.open.files.tooltip": "Offene Dateien werden geparst", - "running.analysis.text": "Code Analysis: Wird ausgeführt", - "paused.analysis.text": "Code Analysis: Angehalten", - "mode.analysis.prefix": "Code Analysis-Modus: ", + "running.analysis.text": "Codeanalyse: Wird ausgeführt", + "paused.analysis.text": "Codeanalyse: Angehalten", + "mode.analysis.prefix": "Codeanalyse-Modus: ", "click.to.preview": "Klicken Sie, um eine Vorschau der Ergebnisse anzuzeigen.", "c.cpp.configureIntelliSenseStatus.text": "IntelliSense konfigurieren", "cpptools.status.intellisense": "Status von C/C++-IntelliSense", @@ -25,7 +25,7 @@ "cpptools.detail.tagparser": "Wird initialisiert...", "tagparser.resume.text": "Fortsetzen", "tagparser.pause.text": "Anhalten", - "cpptools.status.codeanalysis": "C/C++-Code Analysis-Status", + "cpptools.status.codeanalysis": "Status der C/C++-Codeanalyse", "c.cpp.codeanalysis.statusbar.runNow": "Jetzt ausführen", "mode.codeanalysis.status.automatic": "Automatisch", "mode.codeanalysis.status.manual": "Manuell", @@ -39,9 +39,9 @@ "pause.analysis": "Anhalten", "another.analysis": "Starten Sie eine weitere...", "select.command": "Befehl auswählen...", - "active.analysis": "Code Analysis auf \"Aktive Dateien\" ausführen", - "all.analysis": "Code Analysis auf \"Alle Dateien\" ausführen", - "open.analysis": "Code Analysis auf \"Dateien öffnen\" ausführen", + "active.analysis": "Codeanalyse für aktive Dateien ausführen", + "all.analysis": "Codeanalyse für alle Dateien ausführen", + "open.analysis": "Codeanalyse für geöffnete Dateien ausführen", "c.cpp.references.statusbar": "C/C++-Verweisstatus", "c.cpp.configuration.tooltip": "C/C++-Konfiguration", "c.cpp.configureIntelliSenseStatus.cppText": "IntelliSense in C/C++ konfigurieren", diff --git a/Extension/i18n/esn/package.i18n.json b/Extension/i18n/esn/package.i18n.json index 90158d9e2..8178647ef 100644 --- a/Extension/i18n/esn/package.i18n.json +++ b/Extension/i18n/esn/package.i18n.json @@ -22,7 +22,6 @@ "c_cpp.command.switchHeaderSource.title": "Cambiar el encabezado o el origen", "c_cpp.command.enableErrorSquiggles.title": "Habilitar el subrayado ondulado de errores", "c_cpp.command.disableErrorSquiggles.title": "Deshabilitar el subrayado ondulado de errores", - "c_cpp.command.toggleIncludeFallback.title": "Alternar el elemento Fallback del motor de IntelliSense cuando se producen errores de include", "c_cpp.command.toggleDimInactiveRegions.title": "Alternar el coloreado de las regiones inactivas", "c_cpp.command.resetDatabase.title": "Restablecer la base de datos de IntelliSense", "c_cpp.command.takeSurvey.title": "Realizar encuesta", @@ -37,7 +36,7 @@ "c_cpp.command.GoToNextDirectiveInGroup.title": "Ir a la directiva del preprocesador siguiente en el grupo condicional", "c_cpp.command.GoToPrevDirectiveInGroup.title": "Ir a la directiva del preprocesador anterior en el grupo condicional", "c_cpp.command.CreateDeclarationOrDefinition.title": "Crear declaración o definición", - "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Ejecutar Code Analysis en el archivo activo", + "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Ejecutar análisis de código en el archivo activo", "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Ejecutar análisis de código en archivos abiertos", "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Ejecutar análisis de código en todos los archivos", "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Borrar todos los problemas de Code Analysis", @@ -65,7 +64,7 @@ "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "Número máximo de subprocesos simultáneos que se usarán para análisis de código. El valor predeterminado de `null` (vacío) usa la mitad del valor heredado de `#C_Cpp.maxConcurrentThreads#`.", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "Menos procesos de análisis de código se ejecutarán simultáneamente después de superar este uso de memoria (en MB). El valor predeterminado de `null` (vacío) usa el valor heredado de `#C_Cpp.maxMemory#`.", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "Controla el retraso en milisegundos antes de que el análisis de código empiece a procesarse después de que se desencadene un guardado desde una edición cuando `#files.autoSave#` es `afterDelay` y `#C_Cpp.codeAnalysis.runAutomatically#` es `true`.", - "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Configure patrones globales para excluir carpetas y archivos para el análisis de código. Los archivos que no estén en la carpeta del área de trabajo siempre se excluyen. Hereda valores de `#files.exclude#` y `#C_Cpp.files.exclude#`. Más información sobre los patrones globales [aquí](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Configure patrones globales para excluir carpetas y archivos para el análisis de código. Los archivos que no estén en la carpeta del área de trabajo siempre se excluyen. Hereda valores de `#files.exclude#` y `#C_Cpp.files.exclude#`. Obtenga información sobre [patrones globales](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "El patrón global con el que se van a comparar las rutas de acceso de los archivos. Establézcalo en `true` o `false` para habilitarlo o deshabilitarlo.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "Comprobación adicional de los elementos del mismo nivel de un archivo coincidente. Usa `$(basename)` como variable para el nombre del archivo coincidente.", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "Si es `true`, el análisis de código se ejecutará automáticamente en un archivo después de abrirlo o guardarlo.", @@ -184,7 +183,6 @@ "c_cpp.configuration.intelliSenseEngine.default.description": "Proporciona resultados que reconocen el contexto a través de un proceso de IntelliSense independiente.", "c_cpp.configuration.intelliSenseEngine.tagParser.description": "Proporciona resultados \"fuzzy\" que no tienen en cuenta el contexto.", "c_cpp.configuration.intelliSenseEngine.disabled.description": "Desactiva las características del servicio de lenguaje C/C++.", - "c_cpp.configuration.intelliSenseEngineFallback.markdownDescription": "Controla si el motor de IntelliSense cambiará automáticamente al Analizador de etiquetas para las unidades de traducción que contengan errores de `#include`.", "c_cpp.configuration.autocomplete.markdownDescription": "Controla el proveedor de finalización automática. Si está `disabled` y desea completarse con palabras, también tendrá que establecer `\"[cpp]\": {\"editor.wordBasedSuggestions\": }` (y de forma similar para los lenguajes `c` y `cuda-cpp`).", "c_cpp.configuration.autocomplete.default.description": "Usa el motor de IntelliSense activo.", "c_cpp.configuration.autocomplete.disabled.description": "Usa la finalización basada en palabras proporcionada por Visual Studio Code.", @@ -257,7 +255,7 @@ "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Agrega rutas de acceso de inclusión de `nan` y `node-addon-api` cuando sean dependencias.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Si es `true`, 'Cambiar nombre de símbolo' requerirá un identificador de C/C++ válido.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Si es `true`, la opción de autocompletar agregará `(` de forma automática después de las llamadas a funciones, en cuyo caso puede que también se agregue `)`, en función del valor de la configuración de `editor.autoClosingBrackets`.", - "c_cpp.configuration.filesExclude.markdownDescription": "Configura patrones globales para excluir carpetas (y archivos si se cambia `#C_Cpp.exclusionPolicy#`). Estos son específicos de la extensión de C/C++ y se agregan a `#files.exclude#`, pero a diferencia de `#files.exclude#` también se aplican a rutas fuera de la carpeta del área de trabajo actual y no se quitan de la Vista del explorador. Más información acerca de los patrones de globales [aquí](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.filesExclude.markdownDescription": "Configure patrones globales para excluir carpetas (y archivos si se cambia `#C_Cpp.exclusionPolicy#`). Son específicos de la extensión de C/C++ y se agregan a `#files.exclude#`, pero a diferencia de `#files.exclude#`, también se aplican a las rutas de acceso fuera de la carpeta del área de trabajo actual y no se quitan de la vista del Explorador. Obtenga información sobre [patrones globales](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "El patrón global con el que se van a comparar las rutas de acceso de los archivos. Establézcalo en `true` o `false` para habilitarlo o deshabilitarlo.", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "Comprobación adicional de los elementos del mismo nivel de un archivo coincidente. Usa `$(basename)` como variable para el nombre del archivo coincidente.", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "Si es `true`, la sustitución de comandos del shell del depurador usará un acento grave obsoleto ``(`)``.", @@ -448,5 +446,7 @@ "c_cpp.configuration.refactoring.includeHeader.markdownDescription": "Controla si se incluye el archivo de encabezado de una función/símbolo refactorizado a su correspondiente archivo de origen al realizar una acción de refactorización, como crear declaración/definición.", "c_cpp.configuration.refactoring.includeHeader.always.description": "Incluya siempre el archivo de encabezado si no está incluido explícitamente en su archivo de origen.", "c_cpp.configuration.refactoring.includeHeader.ifNeeded.description": "Incluya el archivo de encabezado sólo si no está incluido explícitamente en su archivo de origen o mediante inclusión implícita.", - "c_cpp.configuration.refactoring.includeHeader.never.description": "Nunca incluya el archivo de encabezado." + "c_cpp.configuration.refactoring.includeHeader.never.description": "Nunca incluya el archivo de encabezado.", + "c_cpp.languageModelTools.configuration.displayName": "Configuración de C/C++", + "c_cpp.languageModelTools.configuration.userDescription": "Configuración del archivo activo de C o C++, como la versión estándar del lenguaje y la plataforma de destino." } diff --git a/Extension/i18n/esn/src/LanguageServer/ui.i18n.json b/Extension/i18n/esn/src/LanguageServer/ui.i18n.json index 2cd228755..6d8f7583d 100644 --- a/Extension/i18n/esn/src/LanguageServer/ui.i18n.json +++ b/Extension/i18n/esn/src/LanguageServer/ui.i18n.json @@ -13,9 +13,9 @@ "complete.tagparser.text": "Análisis finalizado", "rescan.tagparse.text": "Volver a examinar el área de trabajo", "c.cpp.parsing.open.files.tooltip": "Analizando archivos abiertos", - "running.analysis.text": "Code Analysis: en ejecución", - "paused.analysis.text": "Code Analysis: en pausa", - "mode.analysis.prefix": "Modo de Code Analysis: ", + "running.analysis.text": "Análisis de código: en ejecución", + "paused.analysis.text": "Análisis de código: en pausa", + "mode.analysis.prefix": "Modo de análisis de código: ", "click.to.preview": "hacer clic para obtener una vista previa de los resultados", "c.cpp.configureIntelliSenseStatus.text": "Configurar IntelliSense", "cpptools.status.intellisense": "Estado de IntelliSense de C/C++", @@ -25,7 +25,7 @@ "cpptools.detail.tagparser": "Inicializando...", "tagparser.resume.text": "Reanudar", "tagparser.pause.text": "Pausa", - "cpptools.status.codeanalysis": "Estado de Code Analysis de C/C++", + "cpptools.status.codeanalysis": "Estado de análisis de código de C/C++", "c.cpp.codeanalysis.statusbar.runNow": "Ejecutar ahora", "mode.codeanalysis.status.automatic": "Automático", "mode.codeanalysis.status.manual": "Manual", @@ -39,7 +39,7 @@ "pause.analysis": "Pausa", "another.analysis": "Iniciar otro...", "select.command": "Seleccione un comando...", - "active.analysis": "Ejecutar Code Analysis en el archivo activo", + "active.analysis": "Ejecutar análisis de código en el archivo activo", "all.analysis": "Ejecutar análisis de código en todos los archivos", "open.analysis": "Ejecutar análisis de código en archivos abiertos", "c.cpp.references.statusbar": "Estado de referencias de C/C++", diff --git a/Extension/i18n/fra/package.i18n.json b/Extension/i18n/fra/package.i18n.json index 39c112cab..64276fc9d 100644 --- a/Extension/i18n/fra/package.i18n.json +++ b/Extension/i18n/fra/package.i18n.json @@ -22,7 +22,6 @@ "c_cpp.command.switchHeaderSource.title": "Basculer l'en-tête/la source", "c_cpp.command.enableErrorSquiggles.title": "Activer les tildes d'erreur", "c_cpp.command.disableErrorSquiggles.title": "Désactiver les tildes d'erreur", - "c_cpp.command.toggleIncludeFallback.title": "Activer/désactiver le basculement du moteur IntelliSense en cas d'erreurs d'inclusion", "c_cpp.command.toggleDimInactiveRegions.title": "Activer/désactiver la colorisation des régions inactives", "c_cpp.command.resetDatabase.title": "Réinitialiser la base de données IntelliSense", "c_cpp.command.takeSurvey.title": "Répondre à l'enquête", @@ -37,7 +36,7 @@ "c_cpp.command.GoToNextDirectiveInGroup.title": "Accéder à la directive de préprocesseur suivante dans le groupe conditionnel", "c_cpp.command.GoToPrevDirectiveInGroup.title": "Accéder à la directive de préprocesseur précédente dans le groupe conditionnel", "c_cpp.command.CreateDeclarationOrDefinition.title": "Créer la déclaration/la définition", - "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Exécuter Code Analysis sur le fichier actif", + "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Exécuter l’analyse de code sur le fichier actif", "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Exécuter une analyse de code sur Ouvrir les fichiers", "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Exécuter une analyse de code sur Tous les fichiers", "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Effacer tous les problèmes d’analyse du code", @@ -65,7 +64,7 @@ "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "Le nombre maximum de threads simultanés à utiliser pour l'analyse de code. La valeur par défaut de `null` (vide) utilise la moitié de la valeur héritée de `#C_Cpp.maxConcurrentThreads#`.", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "Moins de processus d’analyse du code s’exécuteront simultanément après le dépassement de cette utilisation de la mémoire (en Mo). La valeur par défaut de `null` (vide) utilise la valeur héritée de `#C_Cpp.maxMemory#`.", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "Contrôle le délai en millisecondes avant le début du traitement de l’analyse du code après le déclenchement d’un enregistrement à partir d’une modification quand `#files.autoSave#` a la valeur `afterDelay` et `#C_Cpp.codeAnalysis.runAutomatically#` a la valeur `true`.", - "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Configurez des modèles Glob pour exclure des dossiers et des fichiers pour l’analyse du code. Les fichiers qui ne se trouvent pas dans le dossier de l’espace de travail sont toujours exclus. Hérite des valeurs de `#files.exclude#` et `#C_Cpp.files.exclude#`. En savoir plus sur les modèles Glob [ici](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Configurez des modèles Glob pour exclure des dossiers et des fichiers pour l’analyse du code. Les fichiers qui ne se trouvent pas dans le dossier de l’espace de travail sont toujours exclus. Hérite des valeurs de `#files.exclude#` et `#C_Cpp.files.exclude#`. En savoir plus sur les [motifs globaux](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "Le modèle global pour la correspondance des chemins de fichiers. Définissez-le à `true` ou `false` pour activer ou désactiver le motif.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "Vérification supplémentaire des frères d'un fichier correspondant. Utilisez `$(basename)` comme variable pour le nom de fichier correspondant.", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "Si la valeur est `true`, l’analyse du code s’exécute automatiquement sur un fichier une fois qu’il est ouvert ou enregistré.", @@ -184,7 +183,6 @@ "c_cpp.configuration.intelliSenseEngine.default.description": "Fournit des résultats contextuels via un processus IntelliSense distinct.", "c_cpp.configuration.intelliSenseEngine.tagParser.description": "Fournit des résultats « flous » qui ne sont pas compatibles avec le contexte.", "c_cpp.configuration.intelliSenseEngine.disabled.description": "Désactive les fonctionnalités du service de langage C/C++.", - "c_cpp.configuration.intelliSenseEngineFallback.markdownDescription": "Contrôle si le moteur IntelliSense bascule automatiquement vers l'analyseur de balises pour les unités de traduction qui contiennent des erreurs `#include`.", "c_cpp.configuration.autocomplete.markdownDescription": "Contrôle le fournisseur de la saisie semi-automatique. Si `disabled` et que vous souhaitez une complétion basée sur les mots, vous devrez également définir `\"[cpp]\": {\"editor.wordBasedSuggestions\": }` (et de même pour `c` et `cuda-cpp` langues).", "c_cpp.configuration.autocomplete.default.description": "Utilise le moteur IntelliSense actif.", "c_cpp.configuration.autocomplete.disabled.description": "Utilise la saisie semi-automatique basée sur le mot fournie par Visual Studio Code.", @@ -257,7 +255,7 @@ "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Ajouter les chemins d'inclusion de `nan` et `node-addon-api` quand ils sont des dépendances.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Si `true`, 'Renommer le symbole' exigera un identifiant C/C++ valide.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Si la valeur est `true`, l'autocomplétion ajoute automatiquement `(` après les appels de fonction. Dans ce cas `)` peut également être ajouté, en fonction de la valeur du paramètre `#editor.autoClosingBrackets#`.", - "c_cpp.configuration.filesExclude.markdownDescription": "Configurer les modèles globaux pour exclure les dossiers (et les fichiers si `#C_Cpp.exclusionPolicy#` est modifié). Ils sont spécifiques à l'extension C/C++ et s'ajoutent à `#files.exclude#`, mais contrairement à `#files.exclude#`, ils s'appliquent également aux chemins en dehors du dossier de l'espace de travail actuel et ne sont pas supprimés de la vue de l'explorateur. Pour en savoir plus sur les modèles globaux, cliquez ici (https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.filesExclude.markdownDescription": "Configurer les modèles globaux pour exclure les dossiers (et les fichiers si `#C_Cpp.exclusionPolicy#` est modifié). Ils sont spécifiques à l’extension C/C++ et s’ajoutent à `#files.exclude#`, mais contrairement à `#files.exclude#`, ils s’appliquent également aux chemins en dehors du dossier de l’espace de travail actuel et ne sont pas supprimés de la vue de l’explorateur. En savoir plus sur les [motifs globaux](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "Le modèle global pour la correspondance des chemins de fichiers. Définissez-le à `true` ou `false` pour activer ou désactiver le motif.", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "Vérification supplémentaire des frères d'un fichier correspondant. Utilisez `$(basename)` comme variable pour le nom de fichier correspondant.", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "Si la valeur est `true`, le remplacement de la commande d'interpréteur de commandes du débogueur utilise un accent grave ``(`)`` obsolète.", @@ -448,5 +446,7 @@ "c_cpp.configuration.refactoring.includeHeader.markdownDescription": "Contrôle si le fichier d’en-tête d’une fonction/symbole refactorisation doit être inclus dans son fichier source correspondant lors d’une action de refactorisation, par exemple créer une déclaration/définition.", "c_cpp.configuration.refactoring.includeHeader.always.description": "Toujours inclure le fichier d’en-tête s’il n’est pas inclus explicitement dans son fichier source.", "c_cpp.configuration.refactoring.includeHeader.ifNeeded.description": "Incluez uniquement le fichier d’en-tête s’il n’est pas inclus explicitement dans son fichier source ou via une inclusion implicite.", - "c_cpp.configuration.refactoring.includeHeader.never.description": "Ne jamais inclure le fichier d’en-tête." + "c_cpp.configuration.refactoring.includeHeader.never.description": "Ne jamais inclure le fichier d’en-tête.", + "c_cpp.languageModelTools.configuration.displayName": "Configuration C/C++", + "c_cpp.languageModelTools.configuration.userDescription": "Configuration du fichier C ou C++ actif, comme la version standard du langage et la plateforme cible." } diff --git a/Extension/i18n/fra/src/LanguageServer/ui.i18n.json b/Extension/i18n/fra/src/LanguageServer/ui.i18n.json index 5b2e103fe..92a9f8476 100644 --- a/Extension/i18n/fra/src/LanguageServer/ui.i18n.json +++ b/Extension/i18n/fra/src/LanguageServer/ui.i18n.json @@ -13,9 +13,9 @@ "complete.tagparser.text": "Analyse terminée", "rescan.tagparse.text": "Réanalyser l'espace de travail", "c.cpp.parsing.open.files.tooltip": "Analyse des fichiers ouverts", - "running.analysis.text": "Code Analysis : en cours d’exécution", - "paused.analysis.text": "Code Analysis : suspendu", - "mode.analysis.prefix": "Mode Code Analysis : ", + "running.analysis.text": "Analyse de code : en cours d’exécution", + "paused.analysis.text": "Analyse de code : suspendu", + "mode.analysis.prefix": "Mode Analyse de code : ", "click.to.preview": "cliquez pour voir un aperçu des résultats", "c.cpp.configureIntelliSenseStatus.text": "Configurer IntelliSense", "cpptools.status.intellisense": "État IntelliSense C/C++", @@ -25,7 +25,7 @@ "cpptools.detail.tagparser": "Initialisation en cours...", "tagparser.resume.text": "Reprendre", "tagparser.pause.text": "Pause", - "cpptools.status.codeanalysis": "État du Code Analysis C/C++", + "cpptools.status.codeanalysis": "État de l’analyse de code C/C++", "c.cpp.codeanalysis.statusbar.runNow": "Exécuter maintenant", "mode.codeanalysis.status.automatic": "Automatique", "mode.codeanalysis.status.manual": "Manuel", @@ -39,7 +39,7 @@ "pause.analysis": "Suspendre", "another.analysis": "Démarrer une autre...", "select.command": "Sélectionner une commande...", - "active.analysis": "Exécuter Code Analysis sur le fichier actif", + "active.analysis": "Exécuter l’analyse de code sur le fichier actif", "all.analysis": "Exécuter une analyse de code sur Tous les fichiers", "open.analysis": "Exécuter une analyse de code sur Ouvrir les fichiers", "c.cpp.references.statusbar": "État des références C/C++", diff --git a/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index d2bc1a1bf..5900f2c40 100644 --- a/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -17,7 +17,7 @@ "walkthrough.windows.note1": "Remarque", "walkthrough.windows.note1.text": "Vous pouvez utiliser l’ensemble d’outils C++ à partir de Visual Studio Build Tools avec Visual Studio Code pour compiler, générer et vérifier n’importe quelle base de code C++, tant que vous disposez également d’une licence Visual Studio valide (Community, Pro ou Enterprise) que vous utilisez activement pour développer cette base de code C++.", "walkthrough.windows.open.command.prompt": "Ouvrez le {0} en tapant « développeur » dans le menu Démarrer de Windows.", - "walkthrough.windows.command.prompt.name1": "Invite de commandes développeur pour VS", + "walkthrough.windows.command.prompt.name1": "Invite de commandes Developer pour VS", "walkthrough.windows.check.install": "Vérifiez l’installation de votre MSVC en tapant {0} dans la Invite de commandes développeur pour VS. Vous devez voir un message de Copyright avec la version et la description de l’utilisation de base.", "walkthrough.windows.note2": "Remarque", "walkthrough.windows.note2.text": "Pour utiliser MSVC à partir de la ligne de commande ou VS Code, vous devez exécuter à partir d’un {0}. Un interpréteur de commandes ordinaire, tel que {1}, {2} ou l’invite de commandes Windows, n’a pas les variables d’environnement de chemin d’accès nécessaires définies.", diff --git a/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index 99608c9ac..41da8b169 100644 --- a/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -11,7 +11,7 @@ "walkthrough.windows.note1.text": "Vous pouvez utiliser l’ensemble d’outils C++ à partir de Visual Studio Build Tools avec Visual Studio Code pour compiler, générer et vérifier n’importe quelle base de code C++, tant que vous disposez également d’une licence Visual Studio valide (Community, Pro ou Enterprise) que vous utilisez activement pour développer cette base de code C++.", "walkthrough.windows.verify.compiler": "Vérification de l’installation du compilateur", "walkthrough.windows.open.command.prompt": "Ouvrez le {0} en tapant « développeur » dans le menu Démarrer de Windows.", - "walkthrough.windows.command.prompt.name1": "Invite de commandes développeur pour VS", + "walkthrough.windows.command.prompt.name1": "Invite de commandes Developer pour VS", "walkthrough.windows.check.install": "Vérifiez l’installation de votre MSVC en tapant {0} dans la Invite de commandes développeur pour VS. Vous devez voir un message de Copyright avec la version et la description de l’utilisation de base.", "walkthrough.windows.note2": "Remarque", "walkthrough.windows.note2.text": "Pour utiliser MSVC à partir de la ligne de commande ou VS Code, vous devez exécuter à partir d’un {0}. Un interpréteur de commandes ordinaire, tel que {1}, {2} ou l’invite de commandes Windows, n’a pas les variables d’environnement de chemin d’accès nécessaires définies.", diff --git a/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index 99608c9ac..41da8b169 100644 --- a/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -11,7 +11,7 @@ "walkthrough.windows.note1.text": "Vous pouvez utiliser l’ensemble d’outils C++ à partir de Visual Studio Build Tools avec Visual Studio Code pour compiler, générer et vérifier n’importe quelle base de code C++, tant que vous disposez également d’une licence Visual Studio valide (Community, Pro ou Enterprise) que vous utilisez activement pour développer cette base de code C++.", "walkthrough.windows.verify.compiler": "Vérification de l’installation du compilateur", "walkthrough.windows.open.command.prompt": "Ouvrez le {0} en tapant « développeur » dans le menu Démarrer de Windows.", - "walkthrough.windows.command.prompt.name1": "Invite de commandes développeur pour VS", + "walkthrough.windows.command.prompt.name1": "Invite de commandes Developer pour VS", "walkthrough.windows.check.install": "Vérifiez l’installation de votre MSVC en tapant {0} dans la Invite de commandes développeur pour VS. Vous devez voir un message de Copyright avec la version et la description de l’utilisation de base.", "walkthrough.windows.note2": "Remarque", "walkthrough.windows.note2.text": "Pour utiliser MSVC à partir de la ligne de commande ou VS Code, vous devez exécuter à partir d’un {0}. Un interpréteur de commandes ordinaire, tel que {1}, {2} ou l’invite de commandes Windows, n’a pas les variables d’environnement de chemin d’accès nécessaires définies.", diff --git a/Extension/i18n/ita/package.i18n.json b/Extension/i18n/ita/package.i18n.json index 8ed330808..147faa484 100644 --- a/Extension/i18n/ita/package.i18n.json +++ b/Extension/i18n/ita/package.i18n.json @@ -22,7 +22,6 @@ "c_cpp.command.switchHeaderSource.title": "Scambia intestazione/origine", "c_cpp.command.enableErrorSquiggles.title": "Abilita i segni di revisione per gli errori", "c_cpp.command.disableErrorSquiggles.title": "Disabilita i segni di revisione per gli errori", - "c_cpp.command.toggleIncludeFallback.title": "Attiva/Disattiva fallback del motore IntelliSense in caso di errori di inclusione", "c_cpp.command.toggleDimInactiveRegions.title": "Attiva/Disattiva colorazione delle aree inattive", "c_cpp.command.resetDatabase.title": "Reimposta database IntelliSense", "c_cpp.command.takeSurvey.title": "Partecipa al sondaggio", @@ -65,7 +64,7 @@ "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "Numero massimo di thread simultanei da utilizzare per analisi del codice. Il valore predefinito di `null` (vuoto) usa metà del valore ereditato da `#C_Cpp.maxConcurrentThreads#`.", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "Un numero minore di processi di analisi del codice verrà eseguito simultaneamente dopo il superamento dell'utilizzo di memoria (in MB). Il valore predefinito di `null` (vuoto) usa il valore ereditato da `#C_Cpp.maxMemory#`.", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "Controlla il ritardo in millisecondi prima dell'avvio dell'elaborazione di analisi del codice dopo l'attivazione di un salvataggio da una modifica quando `#files.autoSave#` è `afterDelay` e `#C_Cpp.codeAnalysis.runAutomatically#` è `true`.", - "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Configurare i criteri GLOB per escludere cartelle e file per l'analisi del codice. I file non inclusi nella cartella dell'area di lavoro sono sempre esclusi. Eredita i valori da `#files.exclude#` e `#C_Cpp.files.exclude#`. Altre informazioni sui criteri GLOB [qui](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Configurare i criteri GLOB per escludere cartelle e file per l'analisi del codice. I file non inclusi nella cartella dell'area di lavoro sono sempre esclusi. Eredita i valori da `#files.exclude#` e `#C_Cpp.files.exclude#`. Altre informazioni su [criteri GLOB](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "Criterio GLOB da usare per trovare percorsi file. Impostare su `True` o `False` per abilitare o disabilitare il criterio.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "Controllo aggiuntivo sugli elementi di pari livello di un file corrispondente. Usare `$(basename)` come variabile del nome file corrispondente.", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "Se è `true`, analisi del codice verrà eseguito automaticamente su un file dopo l'apertura o il salvataggio.", @@ -184,7 +183,6 @@ "c_cpp.configuration.intelliSenseEngine.default.description": "Fornisce risultati compatibili con il contesto tramite un processo IntelliSense separato.", "c_cpp.configuration.intelliSenseEngine.tagParser.description": "Fornisce risultati 'fuzzy' che non sono compatibili con il contesto.", "c_cpp.configuration.intelliSenseEngine.disabled.description": "Disattiva le funzionalità del servizio di linguaggio C/C++.", - "c_cpp.configuration.intelliSenseEngineFallback.markdownDescription": "Controlla se il motore IntelliSense passerà automaticamente al parser di tag per le unità di conversione contenenti errori `#include`.", "c_cpp.configuration.autocomplete.markdownDescription": "Controlla il provider di completamento automatico. Se è `disabled` e si vuole il completamento basato sulle parole, sarà necessario impostare anche `\"[cpp]\": {\"editor.wordBasedSuggestions\": }` (e analogamente per i linguaggi `c` e `cuda-cpp`).", "c_cpp.configuration.autocomplete.default.description": "Usa il motore IntelliSense attivo.", "c_cpp.configuration.autocomplete.disabled.description": "Usa il completamento basato su parole fornito da Visual Studio Code.", @@ -257,7 +255,7 @@ "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Aggiungere percorsi di inclusione da `nan` e `node-addon-api` quando sono dipendenze.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Se è `true`, con 'Rinomina simbolo' sarà richiesto un identificatore C/C++ valido.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Se è `true`, il completamento automatico aggiungerà automaticamente `(` dopo le chiamate di funzione. In tal caso potrebbe essere aggiunto anche `)`, a seconda del valore dell'impostazione `#editor.autoClosingBrackets#`.", - "c_cpp.configuration.filesExclude.markdownDescription": "Configurare i criteri GLOB per escludere le cartelle (e i file se `#C_Cpp.exclusionPolicy#` viene modificato). Sono specifici dell'estensione C/C++ e si aggiungono a `#files.exclude#`, ma diversamente da `#files.exclude#` si applicano anche ai percorsi esterni alla cartella dell'area di lavoro corrente e non vengono rimossi dalla visualizzazione Esplora risorse. Altre informazioni sui criteri GLOB [qui](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.filesExclude.markdownDescription": "Configurare i criteri GLOB per escludere le cartelle (e i file se `#C_Cpp.exclusionPolicy#` viene modificato). Sono specifici dell'estensione C/C++ e si aggiungono a `#files.exclude#`, ma diversamente da `#files.exclude#` si applicano anche ai percorsi esterni alla cartella dell'area di lavoro corrente e non vengono rimossi dalla visualizzazione Esplora risorse. Altre informazioni su [criteri GLOB](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "Criterio GLOB da usare per trovare percorsi file. Impostare su `true` o `false` per abilitare o disabilitare il criterio.", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "Controllo aggiuntivo sugli elementi di pari livello di un file corrispondente. Usare `$(basename)` come variabile del nome file corrispondente.", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "Se è `true`, per la sostituzione del comando della shell del debugger verrà usato il carattere backtick obsoleto ``(`)``.", @@ -448,5 +446,7 @@ "c_cpp.configuration.refactoring.includeHeader.markdownDescription": "Controlla se includere il file di intestazione di una funzione o di un simbolo di refactoring nel file di origine corrispondente quando si esegue un'azione di refactoring, ad esempio creare dichiarazione/definizione.", "c_cpp.configuration.refactoring.includeHeader.always.description": "Includere sempre il file di intestazione se non è incluso in modo esplicito nel file di origine.", "c_cpp.configuration.refactoring.includeHeader.ifNeeded.description": "Includere il file di intestazione solo se non è incluso in modo esplicito nel file di origine o tramite l'inclusione implicita.", - "c_cpp.configuration.refactoring.includeHeader.never.description": "Non includere mai il file di intestazione." + "c_cpp.configuration.refactoring.includeHeader.never.description": "Non includere mai il file di intestazione.", + "c_cpp.languageModelTools.configuration.displayName": "Configurazione di C/C++", + "c_cpp.languageModelTools.configuration.userDescription": "Configurazione del file C o C++ attivo, ad esempio la versione standard del linguaggio e la piattaforma di destinazione." } diff --git a/Extension/i18n/ita/src/LanguageServer/ui.i18n.json b/Extension/i18n/ita/src/LanguageServer/ui.i18n.json index eae60a36b..d33496cf2 100644 --- a/Extension/i18n/ita/src/LanguageServer/ui.i18n.json +++ b/Extension/i18n/ita/src/LanguageServer/ui.i18n.json @@ -13,9 +13,9 @@ "complete.tagparser.text": "Analisi completata", "rescan.tagparse.text": "Ripeti analisi area di lavoro", "c.cpp.parsing.open.files.tooltip": "Analisi dei file aperti", - "running.analysis.text": "Code Analysis: In esecuzione", - "paused.analysis.text": "Code Analysis: Sospeso", - "mode.analysis.prefix": "Modalità Code Analysis: ", + "running.analysis.text": "Analisi del codice: in esecuzione", + "paused.analysis.text": "Analisi del codice: sospesa", + "mode.analysis.prefix": "Modalità di analisi del codice: ", "click.to.preview": "fare clic per visualizzare l'anteprima dei risultati", "c.cpp.configureIntelliSenseStatus.text": "Configura IntelliSense", "cpptools.status.intellisense": "Stato IntelliSense C/C++", @@ -25,7 +25,7 @@ "cpptools.detail.tagparser": "Inizializzazione...", "tagparser.resume.text": "Riprendi", "tagparser.pause.text": "Sospendi", - "cpptools.status.codeanalysis": "Stato Code Analysis C/C++", + "cpptools.status.codeanalysis": "Stato dell’analisi del codice C/C++", "c.cpp.codeanalysis.statusbar.runNow": "Esegui", "mode.codeanalysis.status.automatic": "Automatico", "mode.codeanalysis.status.manual": "Manuale", diff --git a/Extension/i18n/jpn/package.i18n.json b/Extension/i18n/jpn/package.i18n.json index e72a18051..d3ea6612e 100644 --- a/Extension/i18n/jpn/package.i18n.json +++ b/Extension/i18n/jpn/package.i18n.json @@ -22,7 +22,6 @@ "c_cpp.command.switchHeaderSource.title": "ヘッダー/ソースの切り替え", "c_cpp.command.enableErrorSquiggles.title": "エラーの波線を有効にする", "c_cpp.command.disableErrorSquiggles.title": "エラーの波線を無効にする", - "c_cpp.command.toggleIncludeFallback.title": "インクルード エラー時の IntelliSense エンジンのフォールバックの切り替え", "c_cpp.command.toggleDimInactiveRegions.title": "非アクティブな領域の色づけの切り替え", "c_cpp.command.resetDatabase.title": "IntelliSense データベースのリセット", "c_cpp.command.takeSurvey.title": "アンケートに答える", @@ -37,9 +36,9 @@ "c_cpp.command.GoToNextDirectiveInGroup.title": "条件付きグループ内の次のプリプロセッサ ディレクティブへ移動", "c_cpp.command.GoToPrevDirectiveInGroup.title": "条件付きグループ内の前のプリプロセッサ ディレクティブへ移動", "c_cpp.command.CreateDeclarationOrDefinition.title": "宣言/定義の作成", - "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "アクティブ ファイルで Code Analysis を実行する", - "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "開いているファイルで Code Analysis を実行する", - "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "すべてのファイルで Code Analysis を実行する", + "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "アクティブ ファイルでコード分析を実行する", + "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "開いているファイルでコード分析を実行する", + "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "すべてのファイルでコード分析を実行する", "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "すべてのコード分析の問題をクリアする", "c_cpp.command.BuildAndDebugFile.title": "C/C++ ファイルのデバッグ", "c_cpp.command.BuildAndRunFile.title": "C/C++ ファイルの実行", @@ -65,7 +64,7 @@ "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "コード分析に使用する同時実行スレッドの最大数。既定値の `null` (空) では、`#C_Cpp.maxConcurrentThreads#` から継承された値の半分が使用されます。", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "このメモリ使用量 (MB 単位) を超えると、同時に実行されるコード分析プロセスの数が減少します。既定値の `null` (空) では、`#C_Cpp.maxMemory#` から継承された値が使用されます。", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "`#files.autoSave#` が `afterDelay` で `#C_Cpp.codeAnalysis.runAutomatically#` が `true` の場合に、編集から保存がトリガーされてからコード分析が処理を開始するまでの遅延をミリ秒単位で制御します。", - "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "コード分析用にフォルダーとファイルを除外するための glob パターンを構成します。ワークスペース フォルダーの下にないファイルは常に除外されます。`#files.exclude#` および `#C_Cpp.files.exclude#` から値を継承します。glob パターンの詳細については、[こちら](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) を参照してください。", + "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "コード分析用にフォルダーとファイルを除外するための glob パターンを構成します。ワークスペース フォルダーの下にないファイルは常に除外されます。`#files.exclude#` および `#C_Cpp.files.exclude#` から値を継承します。[glob パターン](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) についての詳細をご確認ください。", "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "ファイル パスの照合基準となる glob パターン。これを `true` または `false` に設定すると、パターンがそれぞれ有効/無効になります。", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "一致するファイルの兄弟をさらにチェックします。一致するファイル名の変数として `$(basename)` を使用します。", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "`true` の場合、ファイルを開いたり保存したりすると、コード分析が自動的に実行されます。", @@ -184,7 +183,6 @@ "c_cpp.configuration.intelliSenseEngine.default.description": "独立した IntelliSense プロセスを使用してコンテキストを認識する結果を提供します。", "c_cpp.configuration.intelliSenseEngine.tagParser.description": "コンテキストを認識しない\"あいまいな\"結果を提供します。 ", "c_cpp.configuration.intelliSenseEngine.disabled.description": "C/C++ 言語サービス機能をオフにします。", - "c_cpp.configuration.intelliSenseEngineFallback.markdownDescription": "`#include` エラーを含む翻訳単位に対して、IntelliSense エンジンをタグ パーサーに自動的に切り替えるかどうかを制御します。", "c_cpp.configuration.autocomplete.markdownDescription": "オートコンプリート プロバイダーを制御します。`disabled` になっていて、単語ベースの補完が必要な場合には、`\"[cpp]\": {\"editor.wordBasedSuggestions\": }` を設定する必要があります (`c` および `cuda-cpp` 言語でも同様です)。", "c_cpp.configuration.autocomplete.default.description": "アクティブな IntelliSense エンジンを使用します。", "c_cpp.configuration.autocomplete.disabled.description": "Visual Studio Code によって提供される単語ベースの補完機能を使用します。", @@ -257,7 +255,7 @@ "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "依存関係である場合は、`nan` および `node-addon-api` のインクルード パスを追加してください。", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "`true` の場合、'シンボルの名前変更' には有効な C/C++ 識別子が必要です。", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "`true` の場合、関数呼び出しの後に `(` が自動的に追加されます。その場合は、`#editor.autoClosingBrackets#` 設定の値に応じて、`)` も追加される場合があります。", - "c_cpp.configuration.filesExclude.markdownDescription": "フォルダー (および `#C_Cpp.exclusionPolicy#` が変更されている場合はファイル) を除外するための glob パターンを構成します。これらは C/C++ 拡張機能に固有であり、 `#files.exclude#` に追加となりますが、 `#files.exclude#` とは異なります。現在のワークスペース フォルダーの外部のパスにも適用され、エクスプローラー ビューからは削除されません。glob パターンの詳細については、[こちら](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) を参照してください。", + "c_cpp.configuration.filesExclude.markdownDescription": "フォルダー (および `#C_Cpp.exclusionPolicy#` が変更されている場合はファイル) を除外するための glob パターンを構成します。これらは C/C++ 拡張機能に固有であり、`#files.exclude#` に加えてありますが、`#files.exclude#` とは異なり、現在のワークスペース フォルダーの外部のパスにも適用され、エクスプローラー ビューからは削除されません。[glob パターン](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) についての詳細をご確認ください。", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "ファイル パスの照合基準となる glob パターン。これを `true` または `false` に設定すると、パターンがそれぞれ有効/無効になります。", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "一致するファイルの兄弟をさらにチェックします。一致するファイル名の変数として `$(basename)` を使用します。", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "`true` の場合、デバッガー シェルのコマンド置換では古いバックティック ``(`)`` が使用されます。", @@ -448,5 +446,7 @@ "c_cpp.configuration.refactoring.includeHeader.markdownDescription": "宣言/定義の作成などのリファクタリング アクションを実行するときに、リファクタリングされた関数/シンボルのヘッダー ファイルを対応するソース ファイルに含めるかどうかを制御します。", "c_cpp.configuration.refactoring.includeHeader.always.description": "ヘッダー ファイルがソース ファイルに明示的に含まれていない場合は、常にヘッダー ファイルを含めます。", "c_cpp.configuration.refactoring.includeHeader.ifNeeded.description": "ヘッダー ファイルがソース ファイルに明示的に含まれていない場合、または暗黙的にインクルードされていない場合にのみ、ヘッダー ファイルを含めます。", - "c_cpp.configuration.refactoring.includeHeader.never.description": "ヘッダー ファイルを含めることはありません。" -} + "c_cpp.configuration.refactoring.includeHeader.never.description": "ヘッダー ファイルを含めることはありません。", + "c_cpp.languageModelTools.configuration.displayName": "C/C++ 構成", + "c_cpp.languageModelTools.configuration.userDescription": "言語標準バージョンやターゲット プラットフォームなど、アクティブ C または C++ ファイルの構成。" +} \ No newline at end of file diff --git a/Extension/i18n/jpn/src/LanguageServer/ui.i18n.json b/Extension/i18n/jpn/src/LanguageServer/ui.i18n.json index eaa8bf0a3..e7a1e0bf8 100644 --- a/Extension/i18n/jpn/src/LanguageServer/ui.i18n.json +++ b/Extension/i18n/jpn/src/LanguageServer/ui.i18n.json @@ -13,9 +13,9 @@ "complete.tagparser.text": "解析完了", "rescan.tagparse.text": "ワークスペースの再スキャン", "c.cpp.parsing.open.files.tooltip": "開いているファイルを解析しています", - "running.analysis.text": "Code Analysis: 実行中", - "paused.analysis.text": "Code Analysis: 一時停止", - "mode.analysis.prefix": "Code Analysis モード: ", + "running.analysis.text": "コード分析: 実行中", + "paused.analysis.text": "コード分析: 一時停止", + "mode.analysis.prefix": "コード分析モード: ", "click.to.preview": "クリックして結果をプレビューします", "c.cpp.configureIntelliSenseStatus.text": "IntelliSense の構成", "cpptools.status.intellisense": "C/c + + IntelliSense の状態", @@ -25,7 +25,7 @@ "cpptools.detail.tagparser": "初期化しています...", "tagparser.resume.text": "再開", "tagparser.pause.text": "一時停止", - "cpptools.status.codeanalysis": "C/C++ Code Analysis の状態", + "cpptools.status.codeanalysis": "C/C++ コード分析の状態", "c.cpp.codeanalysis.statusbar.runNow": "直ちに実行", "mode.codeanalysis.status.automatic": "自動", "mode.codeanalysis.status.manual": "手動", @@ -39,9 +39,9 @@ "pause.analysis": "一時停止", "another.analysis": "別のファイルを開始...", "select.command": "コマンドを選択する...", - "active.analysis": "アクティブ ファイルで Code Analysis を実行する", - "all.analysis": "すべてのファイルで Code Analysis を実行する", - "open.analysis": "開いているファイルで Code Analysis を実行する", + "active.analysis": "アクティブ ファイルでコード分析を実行する", + "all.analysis": "すべてのファイルでコード分析を実行する", + "open.analysis": "開いているファイルでコード分析を実行する", "c.cpp.references.statusbar": "C/C + + リファレンスの状態", "c.cpp.configuration.tooltip": "C/C++ 構成", "c.cpp.configureIntelliSenseStatus.cppText": "C/C++ IntelliSense の構成", diff --git a/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index 9a1fb14d7..b59ce0ea5 100644 --- a/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -17,7 +17,7 @@ "walkthrough.windows.note1": "メモ", "walkthrough.windows.note1.text": "有効な Visual Studio ライセンス (Community、Pro、Enterprise のいずれか) があり、その C++ コードベースの開発に積極的に使用している場合は、Visual Studio Build Tools の C++ ツールセットを Visual Studio Code と合わせて使用して、C++ コードベースのコンパイル、ビルド、および検証を行うことができます。", "walkthrough.windows.open.command.prompt": "Windows スタート メニューに '開発者' と入力して、{0} を開きます。", - "walkthrough.windows.command.prompt.name1": "VS 向け開発者コマンド プロンプト", + "walkthrough.windows.command.prompt.name1": "VS 向け developer コマンド プロンプト", "walkthrough.windows.check.install": "VS の開発者コマンド プロンプトに {0} を入力して、MSVC インストールを確認します。バージョンと基本的な使用法の説明とともに、著作権に関するメッセージが表示されます。", "walkthrough.windows.note2": "メモ", "walkthrough.windows.note2.text": "コマンド ラインまたは VS Code で MSVC を使用するには、{0} で実行する必要があります。{1}、{2}、Windows コマンド プロンプトなどの通常のシェルには、必要なパス環境変数が設定されていません。", diff --git a/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index b5f8ddd56..caff1dfdb 100644 --- a/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -11,7 +11,7 @@ "walkthrough.windows.note1.text": "有効な Visual Studio ライセンス (Community、Pro、Enterprise のいずれか) があり、その C++ コードベースの開発に積極的に使用している場合は、Visual Studio Build Tools の C++ ツールセットを Visual Studio Code と合わせて使用して、C++ コードベースのコンパイル、ビルド、および検証を行うことができます。", "walkthrough.windows.verify.compiler": "コンパイラのインストールの確認中", "walkthrough.windows.open.command.prompt": "Windows スタート メニューに '開発者' と入力して、{0} を開きます。", - "walkthrough.windows.command.prompt.name1": "VS 向け開発者コマンド プロンプト", + "walkthrough.windows.command.prompt.name1": "VS 向け developer コマンド プロンプト", "walkthrough.windows.check.install": "VS の開発者コマンド プロンプトに {0} を入力して、MSVC インストールを確認します。バージョンと基本的な使用法の説明とともに、著作権に関するメッセージが表示されます。", "walkthrough.windows.note2": "メモ", "walkthrough.windows.note2.text": "コマンド ラインまたは VS Code で MSVC を使用するには、{0} で実行する必要があります。{1}、{2}、Windows コマンド プロンプトなどの通常のシェルには、必要なパス環境変数が設定されていません。", diff --git a/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index b5f8ddd56..caff1dfdb 100644 --- a/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -11,7 +11,7 @@ "walkthrough.windows.note1.text": "有効な Visual Studio ライセンス (Community、Pro、Enterprise のいずれか) があり、その C++ コードベースの開発に積極的に使用している場合は、Visual Studio Build Tools の C++ ツールセットを Visual Studio Code と合わせて使用して、C++ コードベースのコンパイル、ビルド、および検証を行うことができます。", "walkthrough.windows.verify.compiler": "コンパイラのインストールの確認中", "walkthrough.windows.open.command.prompt": "Windows スタート メニューに '開発者' と入力して、{0} を開きます。", - "walkthrough.windows.command.prompt.name1": "VS 向け開発者コマンド プロンプト", + "walkthrough.windows.command.prompt.name1": "VS 向け developer コマンド プロンプト", "walkthrough.windows.check.install": "VS の開発者コマンド プロンプトに {0} を入力して、MSVC インストールを確認します。バージョンと基本的な使用法の説明とともに、著作権に関するメッセージが表示されます。", "walkthrough.windows.note2": "メモ", "walkthrough.windows.note2.text": "コマンド ラインまたは VS Code で MSVC を使用するには、{0} で実行する必要があります。{1}、{2}、Windows コマンド プロンプトなどの通常のシェルには、必要なパス環境変数が設定されていません。", diff --git a/Extension/i18n/kor/package.i18n.json b/Extension/i18n/kor/package.i18n.json index caeef87bd..4172646f1 100644 --- a/Extension/i18n/kor/package.i18n.json +++ b/Extension/i18n/kor/package.i18n.json @@ -22,7 +22,6 @@ "c_cpp.command.switchHeaderSource.title": "헤더/소스 전환", "c_cpp.command.enableErrorSquiggles.title": "오류 표시선 사용", "c_cpp.command.disableErrorSquiggles.title": "오류 표시선 사용 안 함", - "c_cpp.command.toggleIncludeFallback.title": "포함 오류 발생 시 IntelliSense 엔진 대체 설정/해제", "c_cpp.command.toggleDimInactiveRegions.title": "비활성 영역 색 지정 설정/해제", "c_cpp.command.resetDatabase.title": "IntelliSense 데이터베이스 다시 설정", "c_cpp.command.takeSurvey.title": "설문 조사 참여", @@ -65,7 +64,7 @@ "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "코드 분석에 사용할 최대 동시 스레드 수입니다. 기본값인 `null`(비어 있음)은 `#C_Cpp.maxConcurrentThreads#`에서 상속된 값의 절반을 사용합니다.", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "이 메모리 사용량(MB)을 초과한 후에는 더 적은 수의 코드 분석 프로세스가 동시에 실행됩니다. 기본값인 `null`(비어 있음)은 `#C_Cpp.maxMemory#`에서 상속된 값을 사용합니다.", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "`#files.autoSave#`가 `afterDelay`이고 `#C_Cpp.codeAnalysis.runAutomatically#`가 `true`인 경우 편집에서 저장이 트리거된 후 코드 분석이 처리를 시작하기 전에 지연을 밀리초 단위로 제어합니다.", - "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "코드 분석을 위해 폴더 및 파일을 제외하기 위한 glob 패턴을 구성합니다. 작업 영역 폴더 아래에 있지 않은 파일은 항상 제외됩니다. `#files.exclude#` 및 `#C_Cpp.files.exclude#`에서 값을 상속합니다. [여기](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)에서 glob 패턴에 대해 자세히 알아보세요.", + "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "코드 분석을 위해 폴더 및 파일을 제외하기 위한 glob 패턴을 구성합니다. 작업 영역 폴더에 속하지 않은 파일은 항상 제외됩니다. `#files.exclude#` 및 `#C_Cpp.files.exclude#`에서 값을 상속합니다. [glob 패턴](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)에 대해 자세히 알아보세요.", "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "파일 경로를 일치시킬 GLOB 패턴입니다. 패턴을 사용하거나 사용하지 않도록 설정하려면 `true` 또는 `false`로 설정하세요.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "일치하는 파일의 형제에 대한 추가 검사입니다. `$(basename)`을 일치하는 파일 이름에 대한 변수로 사용하세요.", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "`true`인 경우 파일을 열거나 저장한 후 코드 분석이 자동으로 실행됩니다.", @@ -184,7 +183,6 @@ "c_cpp.configuration.intelliSenseEngine.default.description": "별도의 IntelliSense 프로세스를 통해 컨텍스트 인식 결과를 제공합니다.", "c_cpp.configuration.intelliSenseEngine.tagParser.description": "\"유사\" 결과를 제공합니다. 컨텍스트를 인식하지 않는 결과입니다.", "c_cpp.configuration.intelliSenseEngine.disabled.description": "C/C++ 언어 서비스 기능을 해제합니다.", - "c_cpp.configuration.intelliSenseEngineFallback.markdownDescription": "IntelliSense 엔진이 `#include` 오류를 포함하는 변환 단위에 대해 태그 파서로 자동으로 전환되는지 여부를 제어합니다.", "c_cpp.configuration.autocomplete.markdownDescription": "자동 완성 공급자를 제어합니다. `disabled`에서 단어 기반 완성을 원할 경우 `\"[cpp]\": {\"editor.wordBasedSuggestions\": }`를 설정해야 합니다(`c`와 `cuda-cpp` 언어도 동일).", "c_cpp.configuration.autocomplete.default.description": "활성 IntelliSense 엔진을 사용합니다.", "c_cpp.configuration.autocomplete.disabled.description": "Visual Studio Code에서 제공하는 단어 기반 완성을 사용합니다.", @@ -257,7 +255,7 @@ "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "`nan` 및 `node-addon-api`가 종속성일 때 해당 포함 경로를 추가합니다.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "`true`이면 '기호 이름 바꾸기'에 유효한 C/C++ 식별자가 필요합니다.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "`true`이면 자동 완성에서 `#editor.autoClosingBrackets#` 설정 값에 따라 함수 호출 뒤에 `(`를 자동으로 추가하며, 이 경우 `)`도 추가될 수 있습니다.", - "c_cpp.configuration.filesExclude.markdownDescription": "폴더(및 `#C_Cpp.exclusionPolicy#`가 변경된 경우 파일)를 제외하기 위한 GLOB 패턴을 구성합니다. 이는 C/C++ 확장에 고유하며 `#files.exclude#`에 추가되지만 `#files.exclude#`와 달리 현재 작업 영역 폴더 외부의 경로에도 적용되고 탐색기 보기에서 제거되지 않습니다. [여기](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)에서 GLOB 패턴에 대해 자세히 알아보세요.", + "c_cpp.configuration.filesExclude.markdownDescription": "폴더를 제외하기 위한 glob 패턴을 구성합니다(`#C_Cpp.exclusionPolicy#`가 변경된 경우 파일도). 이는 C/C++ 확장에만 해당하며 `#files.exclude#`와 더불어 사용되지만 `#files.exclude#`와 달리 현재 작업 영역 폴더 외부의 경로에도 적용되며 탐색기 보기에서 제거되지 않습니다. [glob 패턴](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)에 대해 자세히 알아보세요.", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "파일 경로를 일치시킬 GLOB 패턴입니다. 패턴을 사용하거나 사용하지 않도록 설정하려면 `true` 또는 `false`로 설정하세요.", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "일치하는 파일의 형제에 대한 추가 검사입니다. `$(basename)`을 일치하는 파일 이름에 대한 변수로 사용하세요.", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "`true`인 경우 디버거 셸 명령 대체가 사용되지 않는 백틱``(`)``을 사용합니다.", @@ -448,5 +446,7 @@ "c_cpp.configuration.refactoring.includeHeader.markdownDescription": "선언/정의 만들기와 같은 리팩터링 작업을 수행할 때 리팩터링된 함수/기호의 헤더 파일을 해당 소스 파일에 포함할지 여부를 제어합니다.", "c_cpp.configuration.refactoring.includeHeader.always.description": "헤더 파일이 소스 파일에 명시적으로 포함되지 않은 경우 항상 헤더 파일을 포함합니다.", "c_cpp.configuration.refactoring.includeHeader.ifNeeded.description": "헤더 파일이 소스 파일에 명시적으로 포함되지 않았거나 암시적 포함을 통해 포함된 경우에만 헤더 파일을 포함합니다.", - "c_cpp.configuration.refactoring.includeHeader.never.description": "헤더 파일을 포함하지 않습니다." + "c_cpp.configuration.refactoring.includeHeader.never.description": "헤더 파일을 포함하지 않습니다.", + "c_cpp.languageModelTools.configuration.displayName": "C/C++ 구성", + "c_cpp.languageModelTools.configuration.userDescription": "언어 표준 버전 및 대상 플랫폼과 같은 활성 C 또는 C++ 파일의 구성입니다." } \ No newline at end of file diff --git a/Extension/i18n/kor/src/LanguageServer/ui.i18n.json b/Extension/i18n/kor/src/LanguageServer/ui.i18n.json index 74bdd0927..a4b834026 100644 --- a/Extension/i18n/kor/src/LanguageServer/ui.i18n.json +++ b/Extension/i18n/kor/src/LanguageServer/ui.i18n.json @@ -13,9 +13,9 @@ "complete.tagparser.text": "구문 분석이 완료되었습니다.", "rescan.tagparse.text": "작업 영역 다시 검사", "c.cpp.parsing.open.files.tooltip": "열린 파일을 구문 분석하는 중", - "running.analysis.text": "Code Analysis: 실행 중", - "paused.analysis.text": "Code Analysis: 일시 중지됨", - "mode.analysis.prefix": "Code Analysis 모드: ", + "running.analysis.text": "코드 분석: 실행 중", + "paused.analysis.text": "코드 분석: 일시 중지됨", + "mode.analysis.prefix": "코드 분석 모드: ", "click.to.preview": "결과를 미리 보려면 클릭", "c.cpp.configureIntelliSenseStatus.text": "IntelliSense 구성", "cpptools.status.intellisense": "C/C++ IntelliSense 상태", @@ -25,7 +25,7 @@ "cpptools.detail.tagparser": "초기화하는 중...", "tagparser.resume.text": "다시 시작", "tagparser.pause.text": "일시 중지", - "cpptools.status.codeanalysis": "C/C++ Code Analysis 상태", + "cpptools.status.codeanalysis": "C/C++ 코드 분석 상태", "c.cpp.codeanalysis.statusbar.runNow": "지금 실행", "mode.codeanalysis.status.automatic": "자동", "mode.codeanalysis.status.manual": "수동", diff --git a/Extension/i18n/plk/package.i18n.json b/Extension/i18n/plk/package.i18n.json index 9d1a03c2c..8fb0a91bf 100644 --- a/Extension/i18n/plk/package.i18n.json +++ b/Extension/i18n/plk/package.i18n.json @@ -22,7 +22,6 @@ "c_cpp.command.switchHeaderSource.title": "Przełączanie nagłówka/źródła", "c_cpp.command.enableErrorSquiggles.title": "Włączanie zygzaków sygnalizujących błędy", "c_cpp.command.disableErrorSquiggles.title": "Wyłączanie zygzaków sygnalizujących błędy", - "c_cpp.command.toggleIncludeFallback.title": "Przełączanie powrotu aparatu funkcji IntelliSense w przypadku błędów dyrektywy include", "c_cpp.command.toggleDimInactiveRegions.title": "Przełączanie kolorowania regionów nieaktywnych", "c_cpp.command.resetDatabase.title": "Resetowanie bazy danych funkcji IntelliSense", "c_cpp.command.takeSurvey.title": "Wypełnij ankietę", @@ -38,7 +37,7 @@ "c_cpp.command.GoToPrevDirectiveInGroup.title": "Przejdź do poprzedniej dyrektywy preprocesora w grupie warunkowej", "c_cpp.command.CreateDeclarationOrDefinition.title": "Utwórz deklarację/definicję", "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Uruchom analizę kodu dla aktywnego pliku", - "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Uruchamianie rozszerzenia Code Analysis na otwartych plikach", + "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Uruchamianie analizy kodu dla otwartych plików", "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Uruchamianie analizy kodu dla wszystkich plików", "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Wyczyść wszystkie problemy z analizą kodu", "c_cpp.command.BuildAndDebugFile.title": "Debuguj plik C/C++", @@ -65,7 +64,7 @@ "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "Maksymalna liczba współbieżnych wątków do użycia na potrzeby analizy kodu. Wartość domyślna `null` (pusta) używa połowy wartości elementu `#C_Cpp.maxConcurrentThreads#`.", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "Mniej procesów analizy kodu będzie uruchamianych współbieżnie po przekroczeniu tego użycia pamięci (w MB). Wartość domyślna `null` (pusta) używa wartości dziedziczonej z elementu `#C_Cpp.maxMemory#`.", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "Steruje opóźnieniem w milisekundach zanim rozszerzenie Code Analysis rozpocznie przetwarzanie po wyzwoleniu zapisu z edycji, gdy właściwość `#files.autoSave#` ma wartość `afterDelay`, a właściwość `#C_Cpp.codeAnalysis.runAutomatically#` ma wartość `true`.", - "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Skonfiguruj wzorce globalne na potrzeby wykluczania folderów i plików na potrzeby analizy kodu. Pliki, które nie znajdują się w folderze obszaru roboczego, są zawsze wykluczone. Dziedziczy wartości z elementów `#files.exclude#` i `#C_Cpp.files.exclude#`. Przeczytaj więcej o wzorcach globalnych [tutaj](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Skonfiguruj wzorce globalne dla wykluczania folderów i plików na potrzeby analizy kodu. Pliki, które nie znajdują się w folderze obszaru roboczego, są zawsze wykluczone. Dziedziczy wartości z elementów `#files.exclude#` i `#C_Cpp.files.exclude#`. Przeczytaj więcej o [wzorcach globalnych](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "Wzorzec globalny do dopasowywania ścieżek do plików. Aby włączyć lub wyłączyć wzorzec, ustaw na wartość `true` lub `false`.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "Dodatkowe sprawdzenie elementów równorzędnych pasującego pliku. Użyj ciągu `$(basename)` jako zmiennej dla nazwy pasującego pliku.", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "W przypadku wartości `true` analiza kodu będzie uruchamiana automatycznie w pliku po jego otwarciu lub zapisaniu.", @@ -184,7 +183,6 @@ "c_cpp.configuration.intelliSenseEngine.default.description": "Udostępnia wyniki związane z kontekstem za pomocą osobnego procesu funkcji IntelliSense.", "c_cpp.configuration.intelliSenseEngine.tagParser.description": "Dostarcza wyników typu „wątpliwy”, które nie są oparte na kontekstach.", "c_cpp.configuration.intelliSenseEngine.disabled.description": "Wyłącza funkcje usługi języka C/C++.", - "c_cpp.configuration.intelliSenseEngineFallback.markdownDescription": "Określa, czy aparat funkcji IntelliSense automatycznie przełączy się na parser znaczników dla jednostek translacji zawierających błędy dyrektywy `#include`.", "c_cpp.configuration.autocomplete.markdownDescription": "Kontroluje dostawcę funkcji automatycznego uzupełniania. Jeśli ma wartość `disabled` i chcesz stosować uzupełnianie oparte na wyrazach, musisz również ustawić element `\"[cpp]\": {\"editor.wordBasedSuggestions\": }` (oraz podobnie w przypadku języków `c` i `cuda-cpp`).", "c_cpp.configuration.autocomplete.default.description": "Używa aktywnego aparatu funkcji IntelliSense.", "c_cpp.configuration.autocomplete.disabled.description": "Używa uzupełnienia opartego na wyrazach zapewnianego przez program Visual Studio Code.", @@ -257,7 +255,7 @@ "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Dodaj ścieżki dołączania z plików `nan` i `node-addon-api`, jeśli są one zależnościami.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Jeśli ma wartość `true`, element „Symbol zmiany nazwy” będzie wymagać prawidłowego identyfikatora C/C++.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Jeśli ma wartość `true`, autouzupełnianie będzie automatycznie dodawać znak `(` po wywołaniach funkcji, a w niektórych przypadkach może również dodawać znak `)`, zależnie od ustawienia `#editor.autoClosingBrackets#`.", - "c_cpp.configuration.filesExclude.markdownDescription": "Skonfiguruj wzorce globalne na potrzeby wykluczania folderów (i plików w przypadku zmiany elementu `#C_Cpp.exclusionPolicy#`). Są one specyficzne dla rozszerzenia języka C/C++ i są dodatkiem do elementu `#files.exclude#`, ale w przeciwieństwie `#files.exclude#` do tego elementu mają również zastosowanie do ścieżek spoza bieżącego folderu obszaru roboczego i nie są usuwane z widoku Eksploratora. Przeczytaj więcej o wzorcach globalnych [tutaj](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.filesExclude.markdownDescription": "Skonfiguruj wzorce globalne na potrzeby wykluczania folderów (i plików w przypadku zmiany zasad `#C_Cpp.exclusionPolicy#`). Są one specyficzne dla rozszerzenia języka C/C++ i są dodatkiem do elementu `#files.exclude#`, ale w przeciwieństwie do elementu `#files.exclude#` mają również zastosowanie do ścieżek spoza bieżącego folderu obszaru roboczego i nie są usuwane z widoku Eksploratora. Przeczytaj więcej o [wzorcach globalnych](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "Wzorzec globalny do dopasowywania ścieżek do plików. Aby włączyć lub wyłączyć wzorzec, ustaw na wartość `true` lub `false`.", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "Dodatkowe sprawdzenie elementów równorzędnych pasującego pliku. Użyj ciągu `$(basename)` jako zmiennej dla nazwy pasującego pliku.", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "Jeśli `true`, to podstawianie komend powłoki debuggera będzie używało przestarzałego backticka ``(`)``.", @@ -448,5 +446,7 @@ "c_cpp.configuration.refactoring.includeHeader.markdownDescription": "Kontroluje, czy dołączyć plik nagłówkowy refaktoryzowanej funkcji/symbolu do odpowiadającego mu pliku źródłowego podczas wykonywania akcji refaktoryzacji, takiej jak tworzenie deklaracji/definicji.", "c_cpp.configuration.refactoring.includeHeader.always.description": "Zawsze dołączaj plik nagłówka, jeśli nie jest jawnie uwzględniony do swojego pliku źródłowego.", "c_cpp.configuration.refactoring.includeHeader.ifNeeded.description": "Dołącz plik nagłówkowy tylko wtedy, gdy nie został on uwzględniony jawnie do pliku źródłowego lub przez niejawne uwzględnienie.", - "c_cpp.configuration.refactoring.includeHeader.never.description": "Nigdy nie uwzględniaj pliku nagłówkowego." + "c_cpp.configuration.refactoring.includeHeader.never.description": "Nigdy nie uwzględniaj pliku nagłówkowego.", + "c_cpp.languageModelTools.configuration.displayName": "Konfiguracja języka C/C++", + "c_cpp.languageModelTools.configuration.userDescription": "Konfiguracja aktywnego pliku C lub C++, na przykład standardowa wersja języka i platforma docelowa." } diff --git a/Extension/i18n/plk/src/LanguageServer/ui.i18n.json b/Extension/i18n/plk/src/LanguageServer/ui.i18n.json index 102e58a00..cfe6ab487 100644 --- a/Extension/i18n/plk/src/LanguageServer/ui.i18n.json +++ b/Extension/i18n/plk/src/LanguageServer/ui.i18n.json @@ -41,7 +41,7 @@ "select.command": "Wybierz polecenie...", "active.analysis": "Uruchom analizę kodu dla aktywnego pliku", "all.analysis": "Uruchamianie analizy kodu dla wszystkich plików", - "open.analysis": "Uruchamianie rozszerzenia Code Analysis na otwartych plikach", + "open.analysis": "Uruchamianie analizy kodu dla otwartych plików", "c.cpp.references.statusbar": "Stan odwołań języka C/C++", "c.cpp.configuration.tooltip": "Konfiguracja języka C/C++", "c.cpp.configureIntelliSenseStatus.cppText": "Konfigurowanie funkcji IntelliSense (C/C++)", diff --git a/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index 17a5e4515..ea8f9bc4b 100644 --- a/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -17,7 +17,7 @@ "walkthrough.windows.note1": "Uwaga", "walkthrough.windows.note1.text": "Zestawu narzędzi języka C++ z narzędzi Visual Studio Build Tools wraz z programem Visual Studio Code można używać do kompilowania, tworzenia i weryfikowania dowolnej bazy kodu języka C++, o ile masz również ważną licencję programu Visual Studio (Community, Pro lub Enterprise), której aktywnie używasz do opracowywania tej bazy kodu języka C++.", "walkthrough.windows.open.command.prompt": "Otwórz pozycję {0}, wpisując „deweloper” w menu Start systemu Windows.", - "walkthrough.windows.command.prompt.name1": "Wiersz polecenia dla deweloperów dla programu VS", + "walkthrough.windows.command.prompt.name1": "Wiersz polecenia Developer dla programu VS", "walkthrough.windows.check.install": "Sprawdź instalację programu MSVC, wpisując {0} w wierszu polecenia dewelopera dla programu VS. Powinien zostać wyświetlony komunikat o prawach autorskich z wersją i opisem użycia podstawowego.", "walkthrough.windows.note2": "Uwaga", "walkthrough.windows.note2.text": "Aby użyć programu MSVC z wiersza polecenia lub programu VS Code, należy uruchomić z {0}. Zwykła powłoka, taka jak {1}, {2} lub wiersz polecenia systemu Windows, nie ma ustawionych wymaganych zmiennych środowiskowych ścieżki.", diff --git a/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index c116fa370..24a885648 100644 --- a/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -11,7 +11,7 @@ "walkthrough.windows.note1.text": "Zestawu narzędzi języka C++ z narzędzi Visual Studio Build Tools wraz z programem Visual Studio Code można używać do kompilowania, tworzenia i weryfikowania dowolnej bazy kodu języka C++, o ile masz również ważną licencję programu Visual Studio (Community, Pro lub Enterprise), której aktywnie używasz do opracowywania tej bazy kodu języka C++.", "walkthrough.windows.verify.compiler": "Weryfikowanie instalacji kompilatora", "walkthrough.windows.open.command.prompt": "Otwórz pozycję {0}, wpisując „deweloper” w menu Start systemu Windows.", - "walkthrough.windows.command.prompt.name1": "Wiersz polecenia dla deweloperów dla programu VS", + "walkthrough.windows.command.prompt.name1": "Wiersz polecenia Developer dla programu VS", "walkthrough.windows.check.install": "Sprawdź instalację programu MSVC, wpisując {0} w wierszu polecenia dewelopera dla programu VS. Powinien zostać wyświetlony komunikat o prawach autorskich z wersją i opisem użycia podstawowego.", "walkthrough.windows.note2": "Notatka", "walkthrough.windows.note2.text": "Aby użyć programu MSVC z wiersza polecenia lub programu VS Code, należy uruchomić z {0}. Zwykła powłoka, taka jak {1}, {2} lub wiersz polecenia systemu Windows, nie ma ustawionych wymaganych zmiennych środowiskowych ścieżki.", diff --git a/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index c116fa370..24a885648 100644 --- a/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -11,7 +11,7 @@ "walkthrough.windows.note1.text": "Zestawu narzędzi języka C++ z narzędzi Visual Studio Build Tools wraz z programem Visual Studio Code można używać do kompilowania, tworzenia i weryfikowania dowolnej bazy kodu języka C++, o ile masz również ważną licencję programu Visual Studio (Community, Pro lub Enterprise), której aktywnie używasz do opracowywania tej bazy kodu języka C++.", "walkthrough.windows.verify.compiler": "Weryfikowanie instalacji kompilatora", "walkthrough.windows.open.command.prompt": "Otwórz pozycję {0}, wpisując „deweloper” w menu Start systemu Windows.", - "walkthrough.windows.command.prompt.name1": "Wiersz polecenia dla deweloperów dla programu VS", + "walkthrough.windows.command.prompt.name1": "Wiersz polecenia Developer dla programu VS", "walkthrough.windows.check.install": "Sprawdź instalację programu MSVC, wpisując {0} w wierszu polecenia dewelopera dla programu VS. Powinien zostać wyświetlony komunikat o prawach autorskich z wersją i opisem użycia podstawowego.", "walkthrough.windows.note2": "Notatka", "walkthrough.windows.note2.text": "Aby użyć programu MSVC z wiersza polecenia lub programu VS Code, należy uruchomić z {0}. Zwykła powłoka, taka jak {1}, {2} lub wiersz polecenia systemu Windows, nie ma ustawionych wymaganych zmiennych środowiskowych ścieżki.", diff --git a/Extension/i18n/ptb/package.i18n.json b/Extension/i18n/ptb/package.i18n.json index 363a591b5..1b4cbfd31 100644 --- a/Extension/i18n/ptb/package.i18n.json +++ b/Extension/i18n/ptb/package.i18n.json @@ -22,7 +22,6 @@ "c_cpp.command.switchHeaderSource.title": "Alternar Cabeçalho/Origem", "c_cpp.command.enableErrorSquiggles.title": "Habilitar Rabiscos de Erro", "c_cpp.command.disableErrorSquiggles.title": "Desabilitar Rabiscos de Erro", - "c_cpp.command.toggleIncludeFallback.title": "Ativar/Desativar o Fallback do Mecanismo IntelliSense em Erros de Inclusão", "c_cpp.command.toggleDimInactiveRegions.title": "Ativar/Desativar a Colorização de Região Inativa", "c_cpp.command.resetDatabase.title": "Redefinir o Banco de Dados IntelliSense", "c_cpp.command.takeSurvey.title": "Responder Pesquisa", @@ -37,9 +36,9 @@ "c_cpp.command.GoToNextDirectiveInGroup.title": "Ir para a próxima diretiva de pré-processador no grupo condicional", "c_cpp.command.GoToPrevDirectiveInGroup.title": "Ir para a diretiva de pré-processador anterior no grupo condicional", "c_cpp.command.CreateDeclarationOrDefinition.title": "Criar Declaração/Definição", - "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Executar Code Analysis no Arquivo Ativo", - "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Executar Code Analysis em Abrir Arquivos", - "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Executar Code Analysis em Todos os Arquivos", + "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Executar Análise de Código no Arquivo Ativo", + "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Executar Análise de Código em Abrir Arquivos", + "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Executar Análise de Código em Todos os Arquivos", "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Limpar Todos os Problemas de Code Analysis", "c_cpp.command.BuildAndDebugFile.title": "Depurar Arquivo C/C++", "c_cpp.command.BuildAndRunFile.title": "Executar Arquivo C/C++", @@ -65,7 +64,7 @@ "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "O número máximo de threads simultâneos a serem usados para análise de código. O padrão `null` (vazio) usa metade do valor herdado de `#C_Cpp.maxConcurrentThreads#`.", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "Menos processos de análise de código serão executados simultaneamente depois que esse uso de memória (em MB) for excedido. O padrão de `null` (vazio) usa o valor herdado de `#C_Cpp.maxMemory#`.", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "Controla o atraso em milissegundos antes que a análise de código comece o processamento depois que um salvamento é disparado de uma edição quando `#files.autoSave#` é `afterDelay` e `#C_Cpp.codeAnalysis.runAutomatically#` é `true`.", - "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Configure padrões glob para excluir pastas e arquivos para análise de código. Arquivos que não estão na pasta do workspace são sempre excluídos. Herda valores de `#files.exclude#` e `#C_Cpp.files.exclude#`. Leia mais sobre padrões glob [aqui](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Configure padrões glob para excluir pastas e arquivos para análise de código. Arquivos que não estão na pasta do espaço de trabalho são sempre excluídos. Herda valores de `#files.exclude#` e `#C_Cpp.files.exclude#`. Saiba mais sobre [glob patterns](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "O padrão glob para corresponder aos caminhos de arquivo. Defina como `true` ou `false` para habilitar ou desabilitar o padrão.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "Verificação adicional nos irmãos de um arquivo correspondente. Use `$(basename)` como variável para o nome do arquivo correspondente.", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "Se for `true`, a análise de código será executada automaticamente em um arquivo depois que ele for aberto ou salvo.", @@ -184,7 +183,6 @@ "c_cpp.configuration.intelliSenseEngine.default.description": "Fornece resultados baseados no contextopor meio de um processo IntelliSense separado.", "c_cpp.configuration.intelliSenseEngine.tagParser.description": "Fornece resultados \"difusos\" que não são sensíveis ao contexto.", "c_cpp.configuration.intelliSenseEngine.disabled.description": "Desabilita os recursos do serviço de linguagem C/C++.", - "c_cpp.configuration.intelliSenseEngineFallback.markdownDescription": "Controla se o mecanismo IntelliSense mudará automaticamente para o Analisador de tags para unidades de tradução contendo erros `#include`.", "c_cpp.configuration.autocomplete.markdownDescription": "Controla o provedor de preenchimento automático. Se estiver `disabled` e você quiser a conclusão baseada em palavras, também precisará definir `\"[cpp]\": {\"editor.wordBasedSuggestions\": }` (e da mesma forma para linguagens `c` e `cuda-cpp`).", "c_cpp.configuration.autocomplete.default.description": "Usa o mecanismo IntelliSense ativo.", "c_cpp.configuration.autocomplete.disabled.description": "Usa o preenchimento baseado em palavras fornecido pelo Visual Studio Code.", @@ -257,7 +255,7 @@ "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Adicione caminhos de inclusão de `nan` e `node-addon-api` quando forem dependências.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Se `true`, 'Renomear Símbolo' exigirá um identificador C/C++ válido.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Se `true`, autocomplete adicionará automaticamente `(` após chamadas de função, neste caso `)` também pode ser adicionado, dependendo do valor da configuração `#editor.autoClosingBrackets#`.", - "c_cpp.configuration.filesExclude.markdownDescription": "Configure os padrões glob para excluir pastas (e arquivos se `#C_Cpp.exclusionPolicy#` for alterado). Eles são específicos para a extensão C/C++ e são adicionais a `#files.exclude#`, mas ao contrário de `#files.exclude#` eles também se aplicam a caminhos fora da pasta do espaço de trabalho atual e não são removidos da visualização do Explorer. Leia mais sobre padrões glob [aqui](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.filesExclude.markdownDescription": "Configure padrões glob para excluir pastas (e arquivos se `#C_Cpp.exclusionPolicy#` for alterado). Esses são específicos para a extensão C/C++ e são adicionais a `#files.exclude#`, mas ao contrário de `#files.exclude#`, eles também se aplicam a caminhos fora do espaço de trabalho atual e não são removidos da visualização do Explorer. Saiba mais sobre [glob patterns](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "O padrão glob para corresponder aos caminhos de arquivo. Defina como `true` ou `false` para habilitar ou desabilitar o padrão.", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "Verificação adicional nos irmãos de um arquivo correspondente. Use `$(basename)` como variável para o nome do arquivo correspondente.", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "Se for `true`, a substituição do comando shell do depurador usará o acento grave obsoleto ``(`)``.", @@ -448,5 +446,7 @@ "c_cpp.configuration.refactoring.includeHeader.markdownDescription": "Controla se o arquivo de cabeçalho de uma função/símbolo refatorado deve ser incluído em seu arquivo de origem correspondente ao executar uma ação de refatoração, como criar declaração/definição.", "c_cpp.configuration.refactoring.includeHeader.always.description": "Sempre inclua o arquivo de cabeçalho se ele não estiver incluído explicitamente em seu arquivo de origem.", "c_cpp.configuration.refactoring.includeHeader.ifNeeded.description": "Inclua o arquivo de cabeçalho apenas se ele não estiver incluído explicitamente em seu arquivo de origem ou por meio de inclusão implícita.", - "c_cpp.configuration.refactoring.includeHeader.never.description": "Nunca inclua o arquivo de cabeçalho." + "c_cpp.configuration.refactoring.includeHeader.never.description": "Nunca inclua o arquivo de cabeçalho.", + "c_cpp.languageModelTools.configuration.displayName": "Configuração C/C++", + "c_cpp.languageModelTools.configuration.userDescription": "Configuração do arquivo C ou C++ ativo, como versão do padrão da linguagem e plataforma de destino." } diff --git a/Extension/i18n/ptb/src/LanguageServer/ui.i18n.json b/Extension/i18n/ptb/src/LanguageServer/ui.i18n.json index 01a26e8fd..d819ea3cc 100644 --- a/Extension/i18n/ptb/src/LanguageServer/ui.i18n.json +++ b/Extension/i18n/ptb/src/LanguageServer/ui.i18n.json @@ -13,9 +13,9 @@ "complete.tagparser.text": "Análise Concluída", "rescan.tagparse.text": "Examinar Novamente o Workspace", "c.cpp.parsing.open.files.tooltip": "Analisando Arquivos Abertos", - "running.analysis.text": "Code Analysis: em Execução", - "paused.analysis.text": "Code Analysis: Pausado", - "mode.analysis.prefix": "Modo do Code Analysis: ", + "running.analysis.text": "Análise de Código: em Execução", + "paused.analysis.text": "Análise de Código: Pausado", + "mode.analysis.prefix": "Modo do Análise de Código: ", "click.to.preview": "clique aqui para visualizar os resultados", "c.cpp.configureIntelliSenseStatus.text": "Configurar o IntelliSense", "cpptools.status.intellisense": "Status do IntelliSense do C/C++", @@ -25,7 +25,7 @@ "cpptools.detail.tagparser": "Inicializando...", "tagparser.resume.text": "Retomar", "tagparser.pause.text": "Pausar", - "cpptools.status.codeanalysis": "Status do Code Analysis do C/C++", + "cpptools.status.codeanalysis": "Status do Análise de Código do C/C++", "c.cpp.codeanalysis.statusbar.runNow": "Executar Agora", "mode.codeanalysis.status.automatic": "Automático", "mode.codeanalysis.status.manual": "Manual", @@ -39,9 +39,9 @@ "pause.analysis": "Pausar", "another.analysis": "Iniciar Outro...", "select.command": "Selecionar um comando...", - "active.analysis": "Executar Code Analysis no Arquivo Ativo", - "all.analysis": "Executar Code Analysis em Todos os Arquivos", - "open.analysis": "Executar Code Analysis em Abrir Arquivos", + "active.analysis": "Executar Análise de Código no Arquivo Ativo", + "all.analysis": "Executar Análise de Código em Todos os Arquivos", + "open.analysis": "Executar Análise de Código em Abrir Arquivos", "c.cpp.references.statusbar": "Status de Referências do C/C++", "c.cpp.configuration.tooltip": "Configuração de C/C++", "c.cpp.configureIntelliSenseStatus.cppText": "C/C++ Configurar IntelliSense", diff --git a/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index 693788e81..69ca126dc 100644 --- a/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -17,7 +17,7 @@ "walkthrough.windows.note1": "Observação", "walkthrough.windows.note1.text": "Você pode usar o conjunto de ferramentas C++ das Ferramentas de Build do Visual Studio junto com o Visual Studio Code para compilar, construir e verificar qualquer base de código C++, contanto que também tenha uma licença válida do Visual Studio (Community, Pro ou Enterprise) que esteja ativamente usando para desenvolver essa base de código C++.", "walkthrough.windows.open.command.prompt": "Abra o {0} digitando 'desenvolvedor' no menu Iniciar do Windows.", - "walkthrough.windows.command.prompt.name1": "Prompt de comando do desenvolvedor para VS", + "walkthrough.windows.command.prompt.name1": "Prompt de comando developer para VS", "walkthrough.windows.check.install": "Verifique a instalação do MSVC digitando {0} no Prompt de comando do desenvolvedor para VS. Você deve ver uma mensagem de copyright com a versão e a descrição básica de uso.", "walkthrough.windows.note2": "Observação", "walkthrough.windows.note2.text": "Para usar o MSVC a partir da linha de comando ou Código VS, você deve executar a partir de um {0}. Um shell comum como {1}, {2} ou o prompt de comando do Windows não possui as variáveis ​​de ambiente de caminho necessárias definidas.", diff --git a/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index e401ff4da..43c5f573b 100644 --- a/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -11,7 +11,7 @@ "walkthrough.windows.note1.text": "Você pode usar o conjunto de ferramentas C++ das Ferramentas de Build do Visual Studio junto com o Visual Studio Code para compilar, construir e verificar qualquer base de código C++, contanto que também tenha uma licença válida do Visual Studio (Community, Pro ou Enterprise) que esteja ativamente usando para desenvolver essa base de código C++.", "walkthrough.windows.verify.compiler": "Verificando a instalação do compilador", "walkthrough.windows.open.command.prompt": "Abra o {0} digitando 'desenvolvedor' no menu Iniciar do Windows.", - "walkthrough.windows.command.prompt.name1": "Prompt de comando do desenvolvedor para VS", + "walkthrough.windows.command.prompt.name1": "Prompt de comando developer para VS", "walkthrough.windows.check.install": "Verifique a instalação do MSVC digitando {0} no Prompt de comando do desenvolvedor para VS. Você deve ver uma mensagem de copyright com a versão e a descrição básica de uso.", "walkthrough.windows.note2": "Observação", "walkthrough.windows.note2.text": "Para usar o MSVC a partir da linha de comando ou Código VS, você deve executar a partir de um {0}. Um shell comum como {1}, {2} ou o prompt de comando do Windows não possui as variáveis ​​de ambiente de caminho necessárias definidas.", diff --git a/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index e401ff4da..43c5f573b 100644 --- a/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -11,7 +11,7 @@ "walkthrough.windows.note1.text": "Você pode usar o conjunto de ferramentas C++ das Ferramentas de Build do Visual Studio junto com o Visual Studio Code para compilar, construir e verificar qualquer base de código C++, contanto que também tenha uma licença válida do Visual Studio (Community, Pro ou Enterprise) que esteja ativamente usando para desenvolver essa base de código C++.", "walkthrough.windows.verify.compiler": "Verificando a instalação do compilador", "walkthrough.windows.open.command.prompt": "Abra o {0} digitando 'desenvolvedor' no menu Iniciar do Windows.", - "walkthrough.windows.command.prompt.name1": "Prompt de comando do desenvolvedor para VS", + "walkthrough.windows.command.prompt.name1": "Prompt de comando developer para VS", "walkthrough.windows.check.install": "Verifique a instalação do MSVC digitando {0} no Prompt de comando do desenvolvedor para VS. Você deve ver uma mensagem de copyright com a versão e a descrição básica de uso.", "walkthrough.windows.note2": "Observação", "walkthrough.windows.note2.text": "Para usar o MSVC a partir da linha de comando ou Código VS, você deve executar a partir de um {0}. Um shell comum como {1}, {2} ou o prompt de comando do Windows não possui as variáveis ​​de ambiente de caminho necessárias definidas.", diff --git a/Extension/i18n/rus/package.i18n.json b/Extension/i18n/rus/package.i18n.json index 5377643c9..f36089737 100644 --- a/Extension/i18n/rus/package.i18n.json +++ b/Extension/i18n/rus/package.i18n.json @@ -22,7 +22,6 @@ "c_cpp.command.switchHeaderSource.title": "Переключить заголовок/источник", "c_cpp.command.enableErrorSquiggles.title": "Включить волнистые линии для ошибок", "c_cpp.command.disableErrorSquiggles.title": "Отключить волнистые линии для ошибок", - "c_cpp.command.toggleIncludeFallback.title": "Переключить резервный вариант подсистемы IntelliSense при ошибках включения", "c_cpp.command.toggleDimInactiveRegions.title": "Переключить раскраску неактивных областей", "c_cpp.command.resetDatabase.title": "Сброс базы данных IntelliSense", "c_cpp.command.takeSurvey.title": "Пройти опрос", @@ -37,9 +36,9 @@ "c_cpp.command.GoToNextDirectiveInGroup.title": "Перейти к следующей директиве препроцессора в условной группе", "c_cpp.command.GoToPrevDirectiveInGroup.title": "Перейти к предыдущей директиве препроцессора в условной группе", "c_cpp.command.CreateDeclarationOrDefinition.title": "Создать объявление или определение", - "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Запустить Code Analysis в активном файле", - "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Запустить Code Analysis в открытых файлах", - "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Запустить Code Analysis во всех файлах", + "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Запустить анализ кода в активном файле", + "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Запустить анализ кода в открытых файлах", + "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Запустить анализ кода во всех файлах", "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Очистка всех проблем анализа кода", "c_cpp.command.BuildAndDebugFile.title": "Выполнить отладку файла C/C++", "c_cpp.command.BuildAndRunFile.title": "Запустить файл C/C++", @@ -65,7 +64,7 @@ "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "Максимальное число одновременных потоков, используемых при выполнении анализа кода. При заданном по умолчанию значении `null` (пусто) используется половина значения, унаследованного от `#C_Cpp.maxConcurrentThreads#`.", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "После превышения этого объема используемой памяти (в МБ) одновременно будет запускаться меньше процессов анализа кода. При заданном по умолчанию значении `null` (пусто) используется значение, унаследованное от `#C_Cpp.maxMemory#`.", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "Задает задержку в миллисекундах перед началом выполнения анализа кода после сигнала к сохранению изменяемого элемента, когда свойство `#files.autoSave#` имеет значение `afterDelay`, а свойство `#C_Cpp.codeAnalysis.runAutomatically#` — значение `true`.", - "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Настройка стандартных масок для исключения папок и файлов при анализе кода. Файлы, не входящие в папку рабочей области, всегда исключаются. Наследуются значения из `#files.exclude#` и `#C_Cpp.files.exclude#`. Дополнительные сведения о стандартных масках см. [здесь](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Настройка стандартных масок для исключения папок и файлов при анализе кода. Файлы, не входящие в папку рабочей области, всегда исключаются. Наследуются значения из `#files.exclude#` и `#C_Cpp.files.exclude#`. Дополнительные сведения о [шаблонах глобусов](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "Стандартная маска, соответствующая путям к файлам. Задайте значение `true` или `false`, чтобы включить или отключить маску.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "Дополнительная проверка элементов того же уровня соответствующего файла. Используйте `$(basename)` в качестве переменной для соответствующего имени файла.", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "При значении `true` после открытия или сохранения файла анализ кода будет выполняться для него автоматически.", @@ -184,7 +183,6 @@ "c_cpp.configuration.intelliSenseEngine.default.description": "Предоставляет результаты, зависящие от контекста, с помощью отдельного процесса IntelliSense.", "c_cpp.configuration.intelliSenseEngine.tagParser.description": "Предоставляет \"нечеткие\" результаты, не зависящие от контекста.", "c_cpp.configuration.intelliSenseEngine.disabled.description": "Отключает компоненты службы языка C/C++.", - "c_cpp.configuration.intelliSenseEngineFallback.markdownDescription": "Определяет, будет ли подсистема IntelliSense автоматически переключаться на анализатор тегов для единиц трансляции, содержащих ошибки `#include`.", "c_cpp.configuration.autocomplete.markdownDescription": "Управляет поставщиком автозавершения. Если присвоено значение `disabled`, и вам требуется завершение по словам, также настройте `\"[cpp]\": {\"editor.wordBasedSuggestions\": }` (и аналогично для языков `c` и `cuda-cpp`).", "c_cpp.configuration.autocomplete.default.description": "Использует активную подсистему IntelliSense.", "c_cpp.configuration.autocomplete.disabled.description": "Использует завершение на основе слов, предоставляемое Visual Studio Code.", @@ -257,7 +255,7 @@ "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Добавьте пути включения из `nan` и `node-addon-api`, если они являются зависимостями.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Если этот параметр имеет значение `true`, для операции 'Переименование символа' потребуется указать допустимый идентификатор C/C++.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Если присвоено значение `true`, автозаполнение автоматически добавит `(` после вызовов функции, при этом также может добавляться `)` в зависимости от значения параметра `#editor.autoClosingBrackets#`.", - "c_cpp.configuration.filesExclude.markdownDescription": "Настройка стандартных масок для исключения папок (и файлов, если внесено изменение в `#C_Cpp.exclusionPolicy#`). Они специфичны для расширения C/C++ и дополняют `#files.exclude#`, но в отличие от `#files.exclude#` они применяются также к путям вне папки используемой рабочей области и не удаляются из представления обозревателя. Дополнительные сведения о стандартных масках см. [здесь](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.filesExclude.markdownDescription": "Настройка стандартных масок для исключения папок (и файлов, если внесено изменение в `#C_Cpp.exclusionPolicy#`). Они специфичны для расширения C/C++ и дополняют `#files.exclude#`, но в отличие от `#files.exclude#` они применяются также к путям вне папки используемой рабочей области и не удаляются из представления обозревателя. Дополнительные сведения о [шаблонах глобусов](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "Стандартная маска, соответствующая путям к файлам. Задайте значение `true` или `false`, чтобы включить или отключить маску.", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "Дополнительная проверка элементов того же уровня соответствующего файла. Используйте `$(basename)` в качестве переменной для соответствующего имени файла.", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "Если задано значение `true`, для подстановки команд оболочки отладчика будет использоваться устаревший обратный апостроф ``(`)``.", @@ -448,5 +446,7 @@ "c_cpp.configuration.refactoring.includeHeader.markdownDescription": "Определяет, следует ли включать файл заголовка переработанной функции/символа в соответствующий исходный файл при выполнении действия рефакторинга, например при создании объявления/определения.", "c_cpp.configuration.refactoring.includeHeader.always.description": "Всегда включать файл заголовка, если он не включен явным образом в исходный файл.", "c_cpp.configuration.refactoring.includeHeader.ifNeeded.description": "Включать файл заголовка, только если он не включен явным образом в исходный файл или путем неявного включения.", - "c_cpp.configuration.refactoring.includeHeader.never.description": "Никогда не включать файл заголовка." + "c_cpp.configuration.refactoring.includeHeader.never.description": "Никогда не включать файл заголовка.", + "c_cpp.languageModelTools.configuration.displayName": "Конфигурация C/C++", + "c_cpp.languageModelTools.configuration.userDescription": "Конфигурация активного файла C или C++, например, версия стандарта языка и целевая платформа." } \ No newline at end of file diff --git a/Extension/i18n/rus/src/LanguageServer/ui.i18n.json b/Extension/i18n/rus/src/LanguageServer/ui.i18n.json index d0498f1cd..f3c7d21aa 100644 --- a/Extension/i18n/rus/src/LanguageServer/ui.i18n.json +++ b/Extension/i18n/rus/src/LanguageServer/ui.i18n.json @@ -13,9 +13,9 @@ "complete.tagparser.text": "Анализ завершен", "rescan.tagparse.text": "Повторное сканирование рабочей области", "c.cpp.parsing.open.files.tooltip": "Анализ открытых файлов", - "running.analysis.text": "Code Analysis: запуск", - "paused.analysis.text": "Code Analysis: приостановлено", - "mode.analysis.prefix": "Режим Code Analysis: ", + "running.analysis.text": "Анализ кода: запуск", + "paused.analysis.text": "Анализ кода: приостановлено", + "mode.analysis.prefix": "Режим анализа кода: ", "click.to.preview": "щелкните для предварительного просмотра результатов", "c.cpp.configureIntelliSenseStatus.text": "Настройка IntelliSense", "cpptools.status.intellisense": "Состояние IntelliSense C/C++", @@ -25,7 +25,7 @@ "cpptools.detail.tagparser": "Выполняется инициализация…", "tagparser.resume.text": "Возобновить", "tagparser.pause.text": "Приостановить", - "cpptools.status.codeanalysis": "Состояние Code Analysis C/C++", + "cpptools.status.codeanalysis": "Состояние анализа кода C/C++", "c.cpp.codeanalysis.statusbar.runNow": "Запустить сейчас", "mode.codeanalysis.status.automatic": "Автоматически", "mode.codeanalysis.status.manual": "Вручную", @@ -39,9 +39,9 @@ "pause.analysis": "Приостановить", "another.analysis": "Запустить другой...", "select.command": "Выберите команду...", - "active.analysis": "Запустить Code Analysis в активном файле", - "all.analysis": "Запустить Code Analysis во всех файлах", - "open.analysis": "Запустить Code Analysis в открытых файлах", + "active.analysis": "Запустить анализ кода в активном файле", + "all.analysis": "Запустить анализ кода во всех файлах", + "open.analysis": "Запустить анализ кода в открытых файлах", "c.cpp.references.statusbar": "Состояние ссылок C/C++", "c.cpp.configuration.tooltip": "Конфигурация C/C++", "c.cpp.configureIntelliSenseStatus.cppText": "Настройка IntelliSense C/C++", diff --git a/Extension/i18n/trk/package.i18n.json b/Extension/i18n/trk/package.i18n.json index 1757c8f53..dbfed7ef8 100644 --- a/Extension/i18n/trk/package.i18n.json +++ b/Extension/i18n/trk/package.i18n.json @@ -22,7 +22,6 @@ "c_cpp.command.switchHeaderSource.title": "Üst Bilgiyi/Kaynağı Değiştir", "c_cpp.command.enableErrorSquiggles.title": "Hata İlişkilendirmelerini Etkinleştir", "c_cpp.command.disableErrorSquiggles.title": "Hata İlişkilendirmelerini Devre Dışı Bırak", - "c_cpp.command.toggleIncludeFallback.title": "Ekleme Hatalarında IntelliSense Altyapısı Geri Dönüşünü Aç/Kapat", "c_cpp.command.toggleDimInactiveRegions.title": "Etkin Olmayan Bölge Renklendirmeyi Aç/Kapat", "c_cpp.command.resetDatabase.title": "IntelliSense Veritabanını Sıfırla", "c_cpp.command.takeSurvey.title": "Ankete Katılın", @@ -37,9 +36,9 @@ "c_cpp.command.GoToNextDirectiveInGroup.title": "Koşullu grupta sonraki ön işlemci yönergesine git", "c_cpp.command.GoToPrevDirectiveInGroup.title": "Koşullu grupta önceki ön işlemci yönergesine git", "c_cpp.command.CreateDeclarationOrDefinition.title": "Bildirim / Tanım Oluştur", - "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Aktif Dosyada Code Analysis’i Çalıştır", - "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Açık Dosyalarda Code Analysis’i Çalıştır", - "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Tüm Dosyalarda Code Analysis’i Çalıştır", + "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Aktif Dosyada Kod Analizini Çalıştır", + "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Açık Dosyalarda Kod Analizini Çalıştır", + "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Tüm Dosyalarda Kod Analizini Çalıştır", "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Tüm Kod Analizi Sorunlarını Temizle", "c_cpp.command.BuildAndDebugFile.title": "C/C++ Dosyasında Hata Ayıklama", "c_cpp.command.BuildAndRunFile.title": "C/C++ Dosyasını Çalıştırın", @@ -65,7 +64,7 @@ "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "Kod analizi için kullanılacak maksimum eşzamanlı iş parçacığı sayısı. Varsayılan `null` (boş), `#C_Cpp.maxConcurrentThreads#` öğesinden devralınan değerin yarısını kullanır.", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "Bu bellek kullanımı (MB cinsinden) aşıldıktan sonra daha az kod analizi işlemi aynı anda çalışır. Varsayılan `null` (boş), `#C_Cpp.maxMemory#` öğesinden devralınan değeri kullanır.", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "`#files.autoSave#` değeri `afterDelay` ve `#C_Cpp.codeAnalysis.runAutomatically#` değeri `true` olduğunda, bir düzenlemeden bir kaydetme tetiklendikten sonra kod analizinin işlenmesine başlamadan önce geçen milisaniye cinsinden gecikmeyi kontrol eder.", - "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Kod analizi klasörleri ve dosyalarını hariç tutmak için glob desenlerini yapılandırın. Çalışma alanı klasörü altında olmayan dosyalar her zaman hariç tutulur. `#files.exclude#` ve `#C_Cpp.files.exclude#` öğelerinden değerleri devralır. Glob desenleri ile ilgili daha fazla bilgiyi [buradan](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) okuyun.", + "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Klasörleri ve dosyaları kod analizi için hariç tutmak üzere glob desenlerini yapılandırın. Çalışma alanı klasörü altında olmayan dosyalar her zaman hariç tutulur. `#files.exclude#` ve `#C_Cpp.files.exclude#` öğelerinden değerleri devralır. [Glob desenleri](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) ile ilgili daha fazla bilgi edinin.", "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "Dosya yollarıyla eşleşecek glob deseni. Deseni etkinleştirmek veya devre dışı bırakmak için `true` ya da `false` olarak ayarlayın.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "Eşleşen bir dosyanın eşdüzey öğeleri üzerindeki ek denetim. Eşleşen dosya adı için değişken olarak `$(basename)` kullanın.", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "`true` ise, dosya açıldıktan veya kaydedildikten sonra kod analizi otomatik olarak çalışır.", @@ -184,7 +183,6 @@ "c_cpp.configuration.intelliSenseEngine.default.description": "Ayrı bir IntelliSense işlemi aracılığıyla bağlama duyarlı sonuçlar sağlar.", "c_cpp.configuration.intelliSenseEngine.tagParser.description": "Bağlama duyarlı olmayan \"belirsiz\" sonuçlar sağlar.", "c_cpp.configuration.intelliSenseEngine.disabled.description": "C/C++ dil hizmeti özelliklerini kapatır.", - "c_cpp.configuration.intelliSenseEngineFallback.markdownDescription": "IntelliSense altyapısının `#include` hatalarını içeren çeviri birimleri için otomatik olarak Etiket Ayrıştırıcısı'na geçip geçmeyeceğini denetler.", "c_cpp.configuration.autocomplete.markdownDescription": "Otomatik tamamlama sağlayıcısını kontrol eder. `disabled` ise ve sözcük tabanlı tamamlama istiyorsanız, aynı zamanda `\"[cpp]\": {\"editor.wordBasedSuggestions\": }` (ve aynı şekilde `c` ve `cuda-cpp` dilleri için) ayarını da belirlemeniz gerekir.", "c_cpp.configuration.autocomplete.default.description": "Etkin IntelliSense altyapısını kullanır.", "c_cpp.configuration.autocomplete.disabled.description": "Visual Studio Code tarafından sağlanan sözcük tabanlı tamamlamayı kullanır.", @@ -257,7 +255,7 @@ "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "`nan` ve `node-addon-api` bağımlılık olduğunda bunlardan ekleme yolları ekleyin.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "`true` ise, 'Sembolü Yeniden Adlandır' işlemi için geçerli bir C/C++ tanımlayıcısı gerekir.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "`true` ise otomatik tamamla özelliği, işlev çağrılarından sonra otomatik olarak `(` ekler. Bazı durumlarda `#editor.autoClosingBrackets#` ayarının değerine bağlı olarak `)` karakteri de eklenebilir.", - "c_cpp.configuration.filesExclude.markdownDescription": "Klasörleri (ve `#C_Cpp.exclusionPolicy#` değiştirilirse dosyaları) hariç tutmak için glob desenlerini yapılandırın. Bunlar, C/C++ uzantısına özgüdür ve `#files.exclude#` öğesine ek olarak, ancak `#files.exclude#` öğesinden farklı olarak, geçerli çalışma alanı klasörünün dışındaki yollara da uygulanırlar ve Explorer görünümünden kaldırılmazlar. Glob desenleri ile ilgili daha fazla bilgiyi [buradan](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) okuyun.", + "c_cpp.configuration.filesExclude.markdownDescription": "Klasörleri (ve `#C_Cpp.exclusionPolicy#` değiştirilirse dosyaları) hariç tutmak için glob desenlerini yapılandırın. Bunlar, C/C++ uzantısına özgüdür ve `#files.exclude#` öğesine ek olarak, ancak `#files.exclude#` öğesinden farklı olarak, geçerli çalışma alanı klasörünün dışındaki yollara da uygulanırlar ve Explorer görünümünden kaldırılmazlar. [Glob desenleri](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) ile ilgili daha fazla bilgi edinin.", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "Dosya yollarıyla eşleşecek glob deseni. Deseni etkinleştirmek veya devre dışı bırakmak için `true` ya da `false` olarak ayarlayın.", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "Eşleşen bir dosyanın eşdüzey öğeleri üzerindeki ek denetim. Eşleşen dosya adı için değişken olarak `$(basename)` kullanın.", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "`true`ise, hata ayıklayıcı kabuk komut değiştirme eski kesme işaretini ``(`)`` kullanır.", @@ -448,5 +446,7 @@ "c_cpp.configuration.refactoring.includeHeader.markdownDescription": "Bildirim/tanım oluşturma gibi bir yeniden düzenleme eylemi gerçekleştirildiğinde, yeniden düzenlenen bir işlevin/sembolün üst bilgi dosyasının karşılık gelen kaynak dosyasına eklenmiş olup olmadığını kontrol eder.", "c_cpp.configuration.refactoring.includeHeader.always.description": "Kaynak dosyasına açıkça eklenmediyse, üst bilgi dosyasını her zaman dahil et.", "c_cpp.configuration.refactoring.includeHeader.ifNeeded.description": "Üst bilgi dosyasını yalnızca kaynak dosyasına açıkça eklenmediyse veya örtük ekleme yoluyla dahil et.", - "c_cpp.configuration.refactoring.includeHeader.never.description": "Üst bilgi dosyasını hiçbir zaman ekleme." + "c_cpp.configuration.refactoring.includeHeader.never.description": "Üst bilgi dosyasını hiçbir zaman ekleme.", + "c_cpp.languageModelTools.configuration.displayName": "C/C++ yapılandırması", + "c_cpp.languageModelTools.configuration.userDescription": "Dil standardı sürümü ve hedef platform gibi etkin C veya C++ dosyası yapılandırması." } diff --git a/Extension/i18n/trk/src/LanguageServer/ui.i18n.json b/Extension/i18n/trk/src/LanguageServer/ui.i18n.json index 56708e0b1..8c280d4f5 100644 --- a/Extension/i18n/trk/src/LanguageServer/ui.i18n.json +++ b/Extension/i18n/trk/src/LanguageServer/ui.i18n.json @@ -13,9 +13,9 @@ "complete.tagparser.text": "Ayrıştırma Tamamlandı", "rescan.tagparse.text": "Çalışma Alanını Yeniden Tara", "c.cpp.parsing.open.files.tooltip": "Açık Dosyalar Ayrıştırılıyor", - "running.analysis.text": "Code Analysis: Çalışıyor", - "paused.analysis.text": "Code Analysis: Duraklatıldı", - "mode.analysis.prefix": "Code Analysis Modu: ", + "running.analysis.text": "Kod Analizi: Çalışıyor", + "paused.analysis.text": "Kod Analizi: Duraklatıldı", + "mode.analysis.prefix": "Kod Analizi Modu: ", "click.to.preview": "sonuçların önizlemesini görüntülemek için tıklayın", "c.cpp.configureIntelliSenseStatus.text": "IntelliSense'i Yapılandır", "cpptools.status.intellisense": "C/C++ IntelliSense Durumu", @@ -25,7 +25,7 @@ "cpptools.detail.tagparser": "Başlatılıyor...", "tagparser.resume.text": "Sürdür", "tagparser.pause.text": "Duraklat", - "cpptools.status.codeanalysis": "C/C++ Code Analysis Durumu", + "cpptools.status.codeanalysis": "C/C++ Kod Analizi Durumu", "c.cpp.codeanalysis.statusbar.runNow": "Şimdi Çalıştır", "mode.codeanalysis.status.automatic": "Otomatik", "mode.codeanalysis.status.manual": "El ile", @@ -39,9 +39,9 @@ "pause.analysis": "Duraklat", "another.analysis": "Başkasını Başlat...", "select.command": "Komut seç...", - "active.analysis": "Aktif Dosyada Code Analysis’i Çalıştır", - "all.analysis": "Tüm Dosyalarda Code Analysis’i Çalıştır", - "open.analysis": "Açık Dosyalarda Code Analysis’i Çalıştır", + "active.analysis": "Aktif Dosyada Kod Analizini Çalıştır", + "all.analysis": "Tüm Dosyalarda Kod Analizini Çalıştır", + "open.analysis": "Açık Dosyalarda Kod Analizini Çalıştır", "c.cpp.references.statusbar": "C/C++ Başvuruları Durumu", "c.cpp.configuration.tooltip": "C/C++ Yapılandırması", "c.cpp.configureIntelliSenseStatus.cppText": "C/C++ IntelliSense'i Yapılandır", diff --git a/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index a6e1ef92e..5473c3d9e 100644 --- a/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -17,7 +17,7 @@ "walkthrough.windows.note1": "Not", "walkthrough.windows.note1.text": "Herhangi bir C++ kod temelini derlemek, oluşturmak ve doğrulamak için Visual Studio Code ile birlikte Visual Studio Derleme Araçları’nda bulunan C++ araç takımını kullanabilirsiniz. Bunun yanı sıra, bu C++ kod temelini geliştirmek için etkin olarak kullandığınız geçerli bir Visual Studio lisansına (Community, Pro veya Enterprise) sahip olursunuz.", "walkthrough.windows.open.command.prompt": "Windows Başlat menüsüne 'geliştirici' yazarak {0} açın.", - "walkthrough.windows.command.prompt.name1": "VS için Geliştirici Komut İstemi", + "walkthrough.windows.command.prompt.name1": "VS için Developer Komut İstemi", "walkthrough.windows.check.install": "VS için Geliştirici Komut İstemi’ne {0} yazarak MSVC yüklemenizi denetleyin. Sürüm ve temel kullanım açıklamasını içeren bir telif hakkı iletisi göreceksiniz.", "walkthrough.windows.note2": "Not", "walkthrough.windows.note2.text": "Komut satırından veya VS Code’dan MSVC’yi kullanmak için şuradan çalıştırmanız gerek: {0}. {1}, {2} veya Windows komut istemi gibi sıradan bir kabuk gerekli yol ortam değişkenleri kümesi içermez.", diff --git a/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index f46f3850d..4012a3d4a 100644 --- a/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -11,7 +11,7 @@ "walkthrough.windows.note1.text": "Herhangi bir C++ kod temelini derlemek, oluşturmak ve doğrulamak için Visual Studio Code ile birlikte Visual Studio Derleme Araçları’nda bulunan C++ araç takımını kullanabilirsiniz. Bunun yanı sıra, bu C++ kod temelini geliştirmek için etkin olarak kullandığınız geçerli bir Visual Studio lisansına (Community, Pro veya Enterprise) sahip olursunuz.", "walkthrough.windows.verify.compiler": "Derleyici yüklemesi doğrulanıyor", "walkthrough.windows.open.command.prompt": "Windows Başlat menüsüne 'geliştirici' yazarak {0} açın.", - "walkthrough.windows.command.prompt.name1": "VS için Geliştirici Komut İstemi", + "walkthrough.windows.command.prompt.name1": "VS için Developer Komut İstemi", "walkthrough.windows.check.install": "VS için Geliştirici Komut İstemi’ne {0} yazarak MSVC yüklemenizi denetleyin. Sürüm ve temel kullanım açıklamasını içeren bir telif hakkı iletisi göreceksiniz.", "walkthrough.windows.note2": "Not", "walkthrough.windows.note2.text": "Komut satırından veya VS Code’dan MSVC’yi kullanmak için şuradan çalıştırmanız gerek: {0}. {1}, {2} veya Windows komut istemi gibi sıradan bir kabuk gerekli yol ortam değişkenleri kümesi içermez.", diff --git a/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index f46f3850d..4012a3d4a 100644 --- a/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -11,7 +11,7 @@ "walkthrough.windows.note1.text": "Herhangi bir C++ kod temelini derlemek, oluşturmak ve doğrulamak için Visual Studio Code ile birlikte Visual Studio Derleme Araçları’nda bulunan C++ araç takımını kullanabilirsiniz. Bunun yanı sıra, bu C++ kod temelini geliştirmek için etkin olarak kullandığınız geçerli bir Visual Studio lisansına (Community, Pro veya Enterprise) sahip olursunuz.", "walkthrough.windows.verify.compiler": "Derleyici yüklemesi doğrulanıyor", "walkthrough.windows.open.command.prompt": "Windows Başlat menüsüne 'geliştirici' yazarak {0} açın.", - "walkthrough.windows.command.prompt.name1": "VS için Geliştirici Komut İstemi", + "walkthrough.windows.command.prompt.name1": "VS için Developer Komut İstemi", "walkthrough.windows.check.install": "VS için Geliştirici Komut İstemi’ne {0} yazarak MSVC yüklemenizi denetleyin. Sürüm ve temel kullanım açıklamasını içeren bir telif hakkı iletisi göreceksiniz.", "walkthrough.windows.note2": "Not", "walkthrough.windows.note2.text": "Komut satırından veya VS Code’dan MSVC’yi kullanmak için şuradan çalıştırmanız gerek: {0}. {1}, {2} veya Windows komut istemi gibi sıradan bir kabuk gerekli yol ortam değişkenleri kümesi içermez.", From ad12ca63b0df1093d0446d31f2341d39e8f4d895 Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Mon, 21 Oct 2024 08:47:53 -0700 Subject: [PATCH 09/78] React to lmTools API breaking changes (#12866) --- Extension/package.json | 5 +---- Extension/src/LanguageServer/lmTool.ts | 9 ++------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/Extension/package.json b/Extension/package.json index d147a3cd3..182e2ccfc 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -6487,10 +6487,7 @@ "userDescription": "%c_cpp.languageModelTools.configuration.userDescription%", "modelDescription": "For the active C or C++ file, this tool provides: the language (C, C++, or CUDA), the language standard version (such as C++11, C++14, C++17, or C++20), the compiler (such as GCC, Clang, or MSVC), the target platform (such as x86, x64, or ARM), and the target architecture (such as 32-bit or 64-bit).", "icon": "$(file-code)", - "when": "(config.C_Cpp.experimentalFeatures =~ /^[eE]nabled$/)", - "supportedContentTypes": [ - "text/plain" - ] + "when": "(config.C_Cpp.experimentalFeatures =~ /^[eE]nabled$/)" } ] }, diff --git a/Extension/src/LanguageServer/lmTool.ts b/Extension/src/LanguageServer/lmTool.ts index 5951377b4..ed5be61a0 100644 --- a/Extension/src/LanguageServer/lmTool.ts +++ b/Extension/src/LanguageServer/lmTool.ts @@ -44,15 +44,10 @@ const knownValues: { [Property in keyof ChatContextResult]?: { [id: string]: str } }; -const plainTextContentType = 'text/plain'; - export class CppConfigurationLanguageModelTool implements vscode.LanguageModelTool { public async invoke(options: vscode.LanguageModelToolInvocationOptions, token: vscode.CancellationToken): Promise { - const result: vscode.LanguageModelToolResult = {}; - if (options.requestedContentTypes.includes(plainTextContentType)) { - result[plainTextContentType] = await this.getContext(token); - } - return result; + return new vscode.LanguageModelToolResult([ + new vscode.LanguageModelTextPart(await this.getContext(token))]); } private async getContext(token: vscode.CancellationToken): Promise { From a61c55ca8cbf07722ddc9b067b86adb6b5958f5c Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Mon, 21 Oct 2024 12:45:35 -0700 Subject: [PATCH 10/78] Update changelog for 1.22.10 (#12852) --- Extension/CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 71a2ad23e..8891897fa 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,5 +1,10 @@ # C/C++ for Visual Studio Code Changelog +## Version 1.22.10: October 21, 2024 +### Bug Fixes +* Fix the 'Extract to Function' feature not working. +* Fix the 'Go to Next/Prev Preprocessor Conditional' feature not working. + ## Version 1.22.9: October 10, 2024 ### Performance Improvements * Initialization performance improvements. [#12030](https://github.com/microsoft/vscode-cpptools/issues/12030) From ddb7a5502dbd66e5cfa38209cd3e785460758851 Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Mon, 21 Oct 2024 14:02:25 -0700 Subject: [PATCH 11/78] Fix E2E tests (#12871) --- .../tests/copilotProviders.test.ts | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts b/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts index c06f438f8..54052e122 100644 --- a/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts +++ b/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts @@ -22,6 +22,12 @@ describe('registerRelatedFilesProvider', () => { let callbackPromise: Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] }> | undefined; let vscodeExtension: vscode.Extension; + const includedFiles = process.platform === 'win32' ? + ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] : + ['/system/include/vector', '/system/include/string', '/home/src/my_project/foo.h']; + const rootUri = vscode.Uri.file(process.platform === 'win32' ? 'C:\\src\\my_project' : '/home/src/my_project'); + const expectedInclude = process.platform === 'win32' ? 'file:///c%3A/src/my_project/foo.h' : 'file:///home/src/my_project/foo.h'; + beforeEach(() => { proxyquire.noPreserveCache(); // Tells proxyquire to not fetch the module from cache // Ensures that each test has a freshly loaded instance of moduleUnderTest @@ -105,9 +111,9 @@ describe('registerRelatedFilesProvider', () => { it('should not add #cpp traits when ChatContext isn\'t available.', async () => { arrange({ vscodeExtension: vscodeExtension, - getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + getIncludeFiles: { includedFiles }, chatContext: undefined, - rootUri: vscode.Uri.file('C:\\src\\my_project'), + rootUri, flags: { copilotcppTraits: true } }); await moduleUnderTest.registerRelatedFilesProvider(); @@ -120,14 +126,14 @@ describe('registerRelatedFilesProvider', () => { ok(callbackPromise, 'callbackPromise should be defined'); ok(result, 'result should be defined'); ok(result.entries.length === 1, 'result.entries should have 1 included file'); - ok(result.entries[0].toString() === 'file:///c%3A/src/my_project/foo.h', 'result.entries should have "file:///c%3A/src/my_project/foo.h"'); + ok(result.entries[0].toString() === expectedInclude, `result.entries should have "${expectedInclude}"`); ok(result.traits === undefined, 'result.traits should be undefined'); }); it('should not add #cpp traits when copilotcppTraits flag is false.', async () => { arrange({ vscodeExtension: vscodeExtension, - getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + getIncludeFiles: { includedFiles }, chatContext: { language: 'c++', standardVersion: 'c++20', @@ -135,7 +141,7 @@ describe('registerRelatedFilesProvider', () => { targetPlatform: 'windows', targetArchitecture: 'x64' }, - rootUri: vscode.Uri.file('C:\\src\\my_project'), + rootUri, flags: { copilotcppTraits: false } }); await moduleUnderTest.registerRelatedFilesProvider(); @@ -148,14 +154,14 @@ describe('registerRelatedFilesProvider', () => { ok(callbackPromise, 'callbackPromise should be defined'); ok(result, 'result should be defined'); ok(result.entries.length === 1, 'result.entries should have 1 included file'); - ok(result.entries[0].toString() === 'file:///c%3A/src/my_project/foo.h', 'result.entries should have "file:///c%3A/src/my_project/foo.h"'); + ok(result.entries[0].toString() === expectedInclude, `result.entries should have "${expectedInclude}"`); ok(result.traits === undefined, 'result.traits should be undefined'); }); it('should add #cpp traits when copilotcppTraits flag is true.', async () => { arrange({ vscodeExtension: vscodeExtension, - getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + getIncludeFiles: { includedFiles }, chatContext: { language: 'c++', standardVersion: 'c++20', @@ -163,7 +169,7 @@ describe('registerRelatedFilesProvider', () => { targetPlatform: 'windows', targetArchitecture: 'x64' }, - rootUri: vscode.Uri.file('C:\\src\\my_project'), + rootUri, flags: { copilotcppTraits: true } }); await moduleUnderTest.registerRelatedFilesProvider(); @@ -177,7 +183,7 @@ describe('registerRelatedFilesProvider', () => { ok(callbackPromise, 'callbackPromise should be defined'); ok(result, 'result should be defined'); ok(result.entries.length === 1, 'result.entries should have 1 included file'); - ok(result.entries[0].toString() === 'file:///c%3A/src/my_project/foo.h', 'result.entries should have "file:///c%3A/src/my_project/foo.h"'); + ok(result.entries[0].toString() === expectedInclude, `result.entries should have "${expectedInclude}"`); ok(result.traits, 'result.traits should be defined'); ok(result.traits.length === 5, 'result.traits should have 5 traits'); ok(result.traits[0].name === 'language', 'result.traits[0].name should be "language"'); @@ -206,7 +212,7 @@ describe('registerRelatedFilesProvider', () => { const excludeTraits = ['compiler', 'targetPlatform']; arrange({ vscodeExtension: vscodeExtension, - getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + getIncludeFiles: { includedFiles }, chatContext: { language: 'c++', standardVersion: 'c++20', @@ -214,7 +220,7 @@ describe('registerRelatedFilesProvider', () => { targetPlatform: 'windows', targetArchitecture: 'x64' }, - rootUri: vscode.Uri.file('C:\\src\\my_project'), + rootUri, flags: { copilotcppTraits: true, copilotcppExcludeTraits: excludeTraits } }); await moduleUnderTest.registerRelatedFilesProvider(); @@ -228,7 +234,7 @@ describe('registerRelatedFilesProvider', () => { ok(callbackPromise, 'callbackPromise should be defined'); ok(result, 'result should be defined'); ok(result.entries.length === 1, 'result.entries should have 1 included file'); - ok(result.entries[0].toString() === 'file:///c%3A/src/my_project/foo.h', 'result.entries should have "file:///c%3A/src/my_project/foo.h"'); + ok(result.entries[0].toString() === expectedInclude, `result.entries should have "${expectedInclude}"`); ok(result.traits, 'result.traits should be defined'); ok(result.traits.length === 3, 'result.traits should have 3 traits'); ok(result.traits.filter(trait => excludeTraits.includes(trait.name)).length === 0, 'result.traits should not include excluded traits'); From a248d107da06b0d1fd3fc24cdd3172c3ce2c8c4d Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Mon, 21 Oct 2024 15:20:07 -0700 Subject: [PATCH 12/78] Check-in lmTools API to avoid build breaks (#12872) --- Extension/.gitignore | 4 + Extension/package.json | 2 +- Extension/vscode.proposed.lmTools.d.ts | 407 +++++++++++++++++++++++++ 3 files changed, 412 insertions(+), 1 deletion(-) create mode 100644 Extension/vscode.proposed.lmTools.d.ts diff --git a/Extension/.gitignore b/Extension/.gitignore index 1adad30d0..06e718e78 100644 --- a/Extension/.gitignore +++ b/Extension/.gitignore @@ -35,3 +35,7 @@ src/nativeStrings.ts vscode*.d.ts .scripts/_* + +# The lmTools API is still changing frequently. We want to avoid spontaneous +# build breaks just because the upstream API changed in VS Code Insiders. +!vscode.proposed.lmTools.d.ts diff --git a/Extension/package.json b/Extension/package.json index 182e2ccfc..bdc0895c0 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -6512,7 +6512,7 @@ "translations-generate": "set NODE_OPTIONS=--no-experimental-fetch && gulp translations-generate", "translations-import": "gulp translations-import", "import-edge-strings": "ts-node -T ./.scripts/import_edge_strings.ts", - "prep:dts": "yarn verify dts --quiet || (npx vscode-dts dev && npx vscode-dts main)", + "prep:dts": "yarn verify dts --quiet || (npx vscode-dts dev && npx vscode-dts main && git checkout -- vscode.proposed.lmTools.d.ts)", "build": "yarn prep:dts && echo [Building TypeScript code] && tsc --build tsconfig.json" }, "devDependencies": { diff --git a/Extension/vscode.proposed.lmTools.d.ts b/Extension/vscode.proposed.lmTools.d.ts new file mode 100644 index 000000000..2b40bd7b0 --- /dev/null +++ b/Extension/vscode.proposed.lmTools.d.ts @@ -0,0 +1,407 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +// version: 10 +// https://github.com/microsoft/vscode/issues/213274 + +declare module 'vscode' { + + export namespace lm { + /** + * Register a LanguageModelTool. The tool must also be registered in the package.json `languageModelTools` contribution + * point. A registered tool is available in the {@link lm.tools} list for any extension to see. But in order for it to + * be seen by a language model, it must be passed in the list of available tools in {@link LanguageModelChatRequestOptions.tools}. + */ + export function registerTool(name: string, tool: LanguageModelTool): Disposable; + + /** + * A list of all available tools that were registered by all extensions using {@link lm.registerTool}. They can be called + * with {@link lm.invokeTool} with a set of parameters that match their declared `parametersSchema`. + */ + export const tools: readonly LanguageModelToolInformation[]; + + /** + * Invoke a tool listed in {@link lm.tools} by name with the given parameters. + * + * The caller must pass a {@link LanguageModelToolInvocationOptions.toolInvocationToken}, which comes from + * {@link ChatRequest.toolInvocationToken} when the tool is being invoked by a by a {@link ChatParticipant}, and + * associates the invocation to a chat session. + * + * The tool will return a {@link LanguageModelToolResult} which contains an array of {@link LanguageModelTextPart} and + * {@link LanguageModelPromptTsxPart}. If the tool caller is using `@vscode/prompt-tsx`, it can incorporate the response + * parts into its prompt using a `ToolResult`. If not, the parts can be passed along to the {@link LanguageModelChat} via + * a User message with a {@link LanguageModelToolResultPart}. + * + * If a chat participant wants to preserve tool results for requests across multiple turns, it can store tool results in + * the {@link ChatResult.metadata} returned from the handler and retrieve them on the next turn from + * {@link ChatResponseTurn.result}. + */ + export function invokeTool(name: string, options: LanguageModelToolInvocationOptions, token: CancellationToken): Thenable; + } + + /** + * A tool that is available to the language model via {@link LanguageModelChatRequestOptions}. A language model uses all the + * properties of this interface to decide which tool to call, and how to call it. + */ + export interface LanguageModelChatTool { + /** + * The name of the tool. + */ + name: string; + + /** + * The description of the tool. + */ + description: string; + + /** + * A JSON schema for the parameters this tool accepts. + */ + parametersSchema?: object; + } + + /** + * A tool-calling mode for the language model to use. + */ + export enum LanguageModelChatToolMode { + /** + * The language model can choose to call a tool or generate a message. Is the default. + */ + Auto = 1, + + /** + * The language model must call one of the provided tools. Note- some models only support a single tool when using this + * mode. TODO@API - do we throw, or just pick the first tool? Or only offer an API that allows callers to pick a single + * tool? Go back to `toolChoice?: string`? + */ + Required = 2 + } + + export interface LanguageModelChatRequestOptions { + + /** + * An optional list of tools that are available to the language model. These could be registered tools available via + * {@link lm.tools}, or private tools that are just implemented within the calling extension. + * + * If the LLM requests to call one of these tools, it will return a {@link LanguageModelToolCallPart} in + * {@link LanguageModelChatResponse.stream}. It's the caller's responsibility to invoke the tool. If it's a tool + * registered in {@link lm.tools}, that means calling {@link lm.invokeTool}. + * + * Then, the tool result can be provided to the LLM by creating an Assistant-type {@link LanguageModelChatMessage} with a + * {@link LanguageModelToolCallPart}, followed by a User-type message with a {@link LanguageModelToolResultPart}. + */ + tools?: LanguageModelChatTool[]; + + /** + * The tool-selecting mode to use. {@link LanguageModelChatToolMode.Auto} by default. + */ + toolMode?: LanguageModelChatToolMode; + } + + /** + * A language model response part indicating a tool call, returned from a {@link LanguageModelChatResponse}, and also can be + * included as a content part on a {@link LanguageModelChatMessage}, to represent a previous tool call in a chat request. + */ + export class LanguageModelToolCallPart { + /** + * The name of the tool to call. + */ + name: string; + + /** + * The ID of the tool call. This is a unique identifier for the tool call within the chat request. + */ + callId: string; + + /** + * The parameters with which to call the tool. + */ + parameters: object; + + /** + * Create a new LanguageModelToolCallPart. + */ + constructor(name: string, callId: string, parameters: object); + } + + /** + * A language model response part containing a piece of text, returned from a {@link LanguageModelChatResponse}. + */ + export class LanguageModelTextPart { + /** + * The text content of the part. + */ + value: string; + + /** + * Construct a text part with the given content. + * @param value The text content of the part. + */ + constructor(value: string); + } + + /** + * A language model response part containing a PromptElementJSON from `@vscode/prompt-tsx`. + * @see {@link LanguageModelToolResult} + */ + export class LanguageModelPromptTsxPart { + /** + * The value of the part. + */ + value: unknown; + + /** + * The mimeType of this part, exported from the `@vscode/prompt-tsx` library. + */ + mime: string; + + /** + * Construct a prompt-tsx part with the given content. + * @param value The value of the part, the result of `renderPromptElementJSON` from `@vscode/prompt-tsx`. + * @param mime The mimeType of the part, exported from `@vscode/prompt-tsx` as `contentType`. + */ + constructor(value: unknown, mime: string); + } + + export interface LanguageModelChatResponse { + /** + * A stream of parts that make up the response. Could be extended with more types in the future. A + * {@link LanguageModelTextPart} is part of the assistant's response to be shown to the user. A + * {@link LanguageModelToolCallPart} is a request from the language model to call a tool. + */ + stream: AsyncIterable; + } + + /** + * The result of a tool call. Can only be included in the content of a User message. + */ + export class LanguageModelToolResultPart { + /** + * The ID of the tool call. + */ + callId: string; + + /** + * The value of the tool result. + */ + content: (LanguageModelTextPart | LanguageModelPromptTsxPart | unknown)[]; + + /** + * @param callId The ID of the tool call. + * @param content The content of the tool result. + */ + constructor(callId: string, content: (LanguageModelTextPart | LanguageModelPromptTsxPart | unknown)[]); + } + + export interface LanguageModelChatMessage { + /** + * A heterogeneous array of other things that a message can contain as content. Some parts may be message-type specific + * for some models. + */ + content2: (string | LanguageModelToolResultPart | LanguageModelToolCallPart)[]; + } + + /** + * A result returned from a tool invocation. If using `@vscode/prompt-tsx`, this result may be rendered using a `ToolResult`. + */ + export class LanguageModelToolResult { + /** + * A list of tool result content parts. Includes `unknown` becauses this list may be extended with new content types in + * the future. + * @see {@link lm.invokeTool}. + */ + content: (LanguageModelTextPart | LanguageModelPromptTsxPart | unknown)[]; + + /** + * Create a LanguageModelToolResult + * @param content A list of tool result content parts + */ + constructor(content: (LanguageModelTextPart | LanguageModelPromptTsxPart | unknown)[]); + } + + /** + * A token that can be passed to {@link lm.invokeTool} when invoking a tool inside the context of handling a chat request. + */ + export type ChatParticipantToolToken = unknown; + + /** + * Options provided for tool invocation. + */ + export interface LanguageModelToolInvocationOptions { + /** + * When this tool is being invoked by a {@link ChatParticipant} within the context of a chat request, this token should be + * passed from {@link ChatRequest.toolInvocationToken}. In that case, a progress bar will be automatically shown for the + * tool invocation in the chat response view, and if the tool requires user confirmation, it will show up inline in the + * chat view. If the tool is being invoked outside of a chat request, `undefined` should be passed instead. + * + * If a tool invokes another tool during its invocation, it can pass along the `toolInvocationToken` that it received. + */ + toolInvocationToken: ChatParticipantToolToken | undefined; + + /** + * The parameters with which to invoke the tool. The parameters must match the schema defined in + * {@link LanguageModelToolInformation.parametersSchema} + */ + parameters: T; + + /** + * Options to hint at how many tokens the tool should return in its response, and enable the tool to count tokens + * accurately. + */ + tokenizationOptions?: LanguageModelToolTokenizationOptions; + } + + /** + * Options related to tokenization for a tool invocation. + */ + export interface LanguageModelToolTokenizationOptions { + /** + * If known, the maximum number of tokens the tool should emit in its result. + */ + tokenBudget: number; + + /** + * Count the number of tokens in a message using the model specific tokenizer-logic. + * @param text A string. + * @param token Optional cancellation token. See {@link CancellationTokenSource} for how to create one. + * @returns A thenable that resolves to the number of tokens. + */ + countTokens(text: string, token?: CancellationToken): Thenable; + } + + /** + * Information about a registered tool available in {@link lm.tools}. + */ + export interface LanguageModelToolInformation { + /** + * A unique name for the tool. + */ + readonly name: string; + + /** + * A description of this tool that may be passed to a language model. + */ + readonly description: string; + + /** + * A JSON schema for the parameters this tool accepts. + */ + readonly parametersSchema: object | undefined; + + /** + * A set of tags, declared by the tool, that roughly describe the tool's capabilities. A tool user may use these to filter + * the set of tools to just ones that are relevant for the task at hand. + */ + readonly tags: readonly string[]; + } + + /** + * When this is returned in {@link PreparedToolInvocation}, the user will be asked to confirm before running the tool. These + * messages will be shown with buttons that say "Continue" and "Cancel". + */ + export interface LanguageModelToolConfirmationMessages { + /** + * The title of the confirmation message. + */ + title: string; + + /** + * The body of the confirmation message. + */ + message: string | MarkdownString; + } + + /** + * Options for {@link LanguageModelTool.prepareInvocation}. + */ + export interface LanguageModelToolInvocationPrepareOptions { + /** + * The parameters that the tool is being invoked with. + */ + parameters: T; + } + + /** + * A tool that can be invoked by a call to a {@link LanguageModelChat}. + */ + export interface LanguageModelTool { + /** + * Invoke the tool with the given parameters and return a result. + * + * The provided {@link LanguageModelToolInvocationOptions.parameters} are currently not validated against the declared + * schema, but will be in the future. + */ + invoke(options: LanguageModelToolInvocationOptions, token: CancellationToken): ProviderResult; + + /** + * Called once before a tool is invoked. It's recommended to implement this to customize the progress message that appears + * while the tool is running, and to provide a more useful message with context from the invocation parameters. Can also + * signal that a tool needs user confirmation before running, if appropriate. Must be free of side-effects. A call to + * `prepareInvocation` is not necessarily followed by a call to `invoke`. + */ + prepareInvocation?(options: LanguageModelToolInvocationPrepareOptions, token: CancellationToken): ProviderResult; + } + + /** + * The result of a call to {@link LanguageModelTool.prepareInvocation}. + */ + export interface PreparedToolInvocation { + /** + * A customized progress message to show while the tool runs. + */ + invocationMessage?: string; + + /** + * The presence of this property indicates that the user should be asked to confirm before running the tool. The user + * should be asked for confirmation for any tool that has a side-effect or may potentially be dangerous. + */ + confirmationMessages?: LanguageModelToolConfirmationMessages; + } + + /** + * A reference to a tool that the user manually attached to their request, either using the `#`-syntax inline, or as an + * attachment via the paperclip button. + */ + export interface ChatLanguageModelToolReference { + /** + * The tool name. Refers to a tool listed in {@link lm.tools}. + */ + readonly name: string; + + /** + * The start and end index of the reference in the {@link ChatRequest.prompt prompt}. When undefined, the reference was + * not part of the prompt text. + * + * *Note* that the indices take the leading `#`-character into account which means they can be used to modify the prompt + * as-is. + */ + readonly range?: [start: number, end: number]; + } + + export interface ChatRequest { + /** + * The list of tools that the user attached to their request. + * + * When a tool reference is present, the chat participant should make a chat request using + * {@link LanguageModelChatToolMode.Required} to force the language model to generate parameters for the tool. Then, the + * participant can use {@link lm.invokeTool} to use the tool attach the result to its request for the user's prompt. The + * tool may contribute useful extra context for the user's request. + */ + readonly toolReferences: readonly ChatLanguageModelToolReference[]; + + /** + * A token that can be passed to {@link lm.invokeTool} when invoking a tool inside the context of handling a chat request. + * This associates the tool invocation to a chat session. + */ + readonly toolInvocationToken: ChatParticipantToolToken; + } + + export interface ChatRequestTurn { + /** + * The list of tools were attached to this request. + */ + readonly toolReferences?: readonly ChatLanguageModelToolReference[]; + } +} From 1f7f2f77adb457ef2d986cd99c1c977d6b2f2cb9 Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Tue, 22 Oct 2024 09:08:31 -0700 Subject: [PATCH 13/78] Switch to stable lmTools API (#12874) * Revert "Check-in lmTools API to avoid build breaks (#12872)" This reverts commit a248d107da06b0d1fd3fc24cdd3172c3ce2c8c4d. * Switch to stable lmTools API --- Extension/.gitignore | 4 - Extension/package.json | 5 +- Extension/vscode.proposed.lmTools.d.ts | 407 ------------------------- 3 files changed, 2 insertions(+), 414 deletions(-) delete mode 100644 Extension/vscode.proposed.lmTools.d.ts diff --git a/Extension/.gitignore b/Extension/.gitignore index 06e718e78..1adad30d0 100644 --- a/Extension/.gitignore +++ b/Extension/.gitignore @@ -35,7 +35,3 @@ src/nativeStrings.ts vscode*.d.ts .scripts/_* - -# The lmTools API is still changing frequently. We want to avoid spontaneous -# build breaks just because the upstream API changed in VS Code Insiders. -!vscode.proposed.lmTools.d.ts diff --git a/Extension/package.json b/Extension/package.json index bdc0895c0..cad8ec768 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -38,8 +38,7 @@ "Snippets" ], "enabledApiProposals": [ - "terminalDataWriteEvent", - "lmTools" + "terminalDataWriteEvent" ], "capabilities": { "untrustedWorkspaces": { @@ -6512,7 +6511,7 @@ "translations-generate": "set NODE_OPTIONS=--no-experimental-fetch && gulp translations-generate", "translations-import": "gulp translations-import", "import-edge-strings": "ts-node -T ./.scripts/import_edge_strings.ts", - "prep:dts": "yarn verify dts --quiet || (npx vscode-dts dev && npx vscode-dts main && git checkout -- vscode.proposed.lmTools.d.ts)", + "prep:dts": "yarn verify dts --quiet || (npx vscode-dts dev && npx vscode-dts main)", "build": "yarn prep:dts && echo [Building TypeScript code] && tsc --build tsconfig.json" }, "devDependencies": { diff --git a/Extension/vscode.proposed.lmTools.d.ts b/Extension/vscode.proposed.lmTools.d.ts deleted file mode 100644 index 2b40bd7b0..000000000 --- a/Extension/vscode.proposed.lmTools.d.ts +++ /dev/null @@ -1,407 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -// version: 10 -// https://github.com/microsoft/vscode/issues/213274 - -declare module 'vscode' { - - export namespace lm { - /** - * Register a LanguageModelTool. The tool must also be registered in the package.json `languageModelTools` contribution - * point. A registered tool is available in the {@link lm.tools} list for any extension to see. But in order for it to - * be seen by a language model, it must be passed in the list of available tools in {@link LanguageModelChatRequestOptions.tools}. - */ - export function registerTool(name: string, tool: LanguageModelTool): Disposable; - - /** - * A list of all available tools that were registered by all extensions using {@link lm.registerTool}. They can be called - * with {@link lm.invokeTool} with a set of parameters that match their declared `parametersSchema`. - */ - export const tools: readonly LanguageModelToolInformation[]; - - /** - * Invoke a tool listed in {@link lm.tools} by name with the given parameters. - * - * The caller must pass a {@link LanguageModelToolInvocationOptions.toolInvocationToken}, which comes from - * {@link ChatRequest.toolInvocationToken} when the tool is being invoked by a by a {@link ChatParticipant}, and - * associates the invocation to a chat session. - * - * The tool will return a {@link LanguageModelToolResult} which contains an array of {@link LanguageModelTextPart} and - * {@link LanguageModelPromptTsxPart}. If the tool caller is using `@vscode/prompt-tsx`, it can incorporate the response - * parts into its prompt using a `ToolResult`. If not, the parts can be passed along to the {@link LanguageModelChat} via - * a User message with a {@link LanguageModelToolResultPart}. - * - * If a chat participant wants to preserve tool results for requests across multiple turns, it can store tool results in - * the {@link ChatResult.metadata} returned from the handler and retrieve them on the next turn from - * {@link ChatResponseTurn.result}. - */ - export function invokeTool(name: string, options: LanguageModelToolInvocationOptions, token: CancellationToken): Thenable; - } - - /** - * A tool that is available to the language model via {@link LanguageModelChatRequestOptions}. A language model uses all the - * properties of this interface to decide which tool to call, and how to call it. - */ - export interface LanguageModelChatTool { - /** - * The name of the tool. - */ - name: string; - - /** - * The description of the tool. - */ - description: string; - - /** - * A JSON schema for the parameters this tool accepts. - */ - parametersSchema?: object; - } - - /** - * A tool-calling mode for the language model to use. - */ - export enum LanguageModelChatToolMode { - /** - * The language model can choose to call a tool or generate a message. Is the default. - */ - Auto = 1, - - /** - * The language model must call one of the provided tools. Note- some models only support a single tool when using this - * mode. TODO@API - do we throw, or just pick the first tool? Or only offer an API that allows callers to pick a single - * tool? Go back to `toolChoice?: string`? - */ - Required = 2 - } - - export interface LanguageModelChatRequestOptions { - - /** - * An optional list of tools that are available to the language model. These could be registered tools available via - * {@link lm.tools}, or private tools that are just implemented within the calling extension. - * - * If the LLM requests to call one of these tools, it will return a {@link LanguageModelToolCallPart} in - * {@link LanguageModelChatResponse.stream}. It's the caller's responsibility to invoke the tool. If it's a tool - * registered in {@link lm.tools}, that means calling {@link lm.invokeTool}. - * - * Then, the tool result can be provided to the LLM by creating an Assistant-type {@link LanguageModelChatMessage} with a - * {@link LanguageModelToolCallPart}, followed by a User-type message with a {@link LanguageModelToolResultPart}. - */ - tools?: LanguageModelChatTool[]; - - /** - * The tool-selecting mode to use. {@link LanguageModelChatToolMode.Auto} by default. - */ - toolMode?: LanguageModelChatToolMode; - } - - /** - * A language model response part indicating a tool call, returned from a {@link LanguageModelChatResponse}, and also can be - * included as a content part on a {@link LanguageModelChatMessage}, to represent a previous tool call in a chat request. - */ - export class LanguageModelToolCallPart { - /** - * The name of the tool to call. - */ - name: string; - - /** - * The ID of the tool call. This is a unique identifier for the tool call within the chat request. - */ - callId: string; - - /** - * The parameters with which to call the tool. - */ - parameters: object; - - /** - * Create a new LanguageModelToolCallPart. - */ - constructor(name: string, callId: string, parameters: object); - } - - /** - * A language model response part containing a piece of text, returned from a {@link LanguageModelChatResponse}. - */ - export class LanguageModelTextPart { - /** - * The text content of the part. - */ - value: string; - - /** - * Construct a text part with the given content. - * @param value The text content of the part. - */ - constructor(value: string); - } - - /** - * A language model response part containing a PromptElementJSON from `@vscode/prompt-tsx`. - * @see {@link LanguageModelToolResult} - */ - export class LanguageModelPromptTsxPart { - /** - * The value of the part. - */ - value: unknown; - - /** - * The mimeType of this part, exported from the `@vscode/prompt-tsx` library. - */ - mime: string; - - /** - * Construct a prompt-tsx part with the given content. - * @param value The value of the part, the result of `renderPromptElementJSON` from `@vscode/prompt-tsx`. - * @param mime The mimeType of the part, exported from `@vscode/prompt-tsx` as `contentType`. - */ - constructor(value: unknown, mime: string); - } - - export interface LanguageModelChatResponse { - /** - * A stream of parts that make up the response. Could be extended with more types in the future. A - * {@link LanguageModelTextPart} is part of the assistant's response to be shown to the user. A - * {@link LanguageModelToolCallPart} is a request from the language model to call a tool. - */ - stream: AsyncIterable; - } - - /** - * The result of a tool call. Can only be included in the content of a User message. - */ - export class LanguageModelToolResultPart { - /** - * The ID of the tool call. - */ - callId: string; - - /** - * The value of the tool result. - */ - content: (LanguageModelTextPart | LanguageModelPromptTsxPart | unknown)[]; - - /** - * @param callId The ID of the tool call. - * @param content The content of the tool result. - */ - constructor(callId: string, content: (LanguageModelTextPart | LanguageModelPromptTsxPart | unknown)[]); - } - - export interface LanguageModelChatMessage { - /** - * A heterogeneous array of other things that a message can contain as content. Some parts may be message-type specific - * for some models. - */ - content2: (string | LanguageModelToolResultPart | LanguageModelToolCallPart)[]; - } - - /** - * A result returned from a tool invocation. If using `@vscode/prompt-tsx`, this result may be rendered using a `ToolResult`. - */ - export class LanguageModelToolResult { - /** - * A list of tool result content parts. Includes `unknown` becauses this list may be extended with new content types in - * the future. - * @see {@link lm.invokeTool}. - */ - content: (LanguageModelTextPart | LanguageModelPromptTsxPart | unknown)[]; - - /** - * Create a LanguageModelToolResult - * @param content A list of tool result content parts - */ - constructor(content: (LanguageModelTextPart | LanguageModelPromptTsxPart | unknown)[]); - } - - /** - * A token that can be passed to {@link lm.invokeTool} when invoking a tool inside the context of handling a chat request. - */ - export type ChatParticipantToolToken = unknown; - - /** - * Options provided for tool invocation. - */ - export interface LanguageModelToolInvocationOptions { - /** - * When this tool is being invoked by a {@link ChatParticipant} within the context of a chat request, this token should be - * passed from {@link ChatRequest.toolInvocationToken}. In that case, a progress bar will be automatically shown for the - * tool invocation in the chat response view, and if the tool requires user confirmation, it will show up inline in the - * chat view. If the tool is being invoked outside of a chat request, `undefined` should be passed instead. - * - * If a tool invokes another tool during its invocation, it can pass along the `toolInvocationToken` that it received. - */ - toolInvocationToken: ChatParticipantToolToken | undefined; - - /** - * The parameters with which to invoke the tool. The parameters must match the schema defined in - * {@link LanguageModelToolInformation.parametersSchema} - */ - parameters: T; - - /** - * Options to hint at how many tokens the tool should return in its response, and enable the tool to count tokens - * accurately. - */ - tokenizationOptions?: LanguageModelToolTokenizationOptions; - } - - /** - * Options related to tokenization for a tool invocation. - */ - export interface LanguageModelToolTokenizationOptions { - /** - * If known, the maximum number of tokens the tool should emit in its result. - */ - tokenBudget: number; - - /** - * Count the number of tokens in a message using the model specific tokenizer-logic. - * @param text A string. - * @param token Optional cancellation token. See {@link CancellationTokenSource} for how to create one. - * @returns A thenable that resolves to the number of tokens. - */ - countTokens(text: string, token?: CancellationToken): Thenable; - } - - /** - * Information about a registered tool available in {@link lm.tools}. - */ - export interface LanguageModelToolInformation { - /** - * A unique name for the tool. - */ - readonly name: string; - - /** - * A description of this tool that may be passed to a language model. - */ - readonly description: string; - - /** - * A JSON schema for the parameters this tool accepts. - */ - readonly parametersSchema: object | undefined; - - /** - * A set of tags, declared by the tool, that roughly describe the tool's capabilities. A tool user may use these to filter - * the set of tools to just ones that are relevant for the task at hand. - */ - readonly tags: readonly string[]; - } - - /** - * When this is returned in {@link PreparedToolInvocation}, the user will be asked to confirm before running the tool. These - * messages will be shown with buttons that say "Continue" and "Cancel". - */ - export interface LanguageModelToolConfirmationMessages { - /** - * The title of the confirmation message. - */ - title: string; - - /** - * The body of the confirmation message. - */ - message: string | MarkdownString; - } - - /** - * Options for {@link LanguageModelTool.prepareInvocation}. - */ - export interface LanguageModelToolInvocationPrepareOptions { - /** - * The parameters that the tool is being invoked with. - */ - parameters: T; - } - - /** - * A tool that can be invoked by a call to a {@link LanguageModelChat}. - */ - export interface LanguageModelTool { - /** - * Invoke the tool with the given parameters and return a result. - * - * The provided {@link LanguageModelToolInvocationOptions.parameters} are currently not validated against the declared - * schema, but will be in the future. - */ - invoke(options: LanguageModelToolInvocationOptions, token: CancellationToken): ProviderResult; - - /** - * Called once before a tool is invoked. It's recommended to implement this to customize the progress message that appears - * while the tool is running, and to provide a more useful message with context from the invocation parameters. Can also - * signal that a tool needs user confirmation before running, if appropriate. Must be free of side-effects. A call to - * `prepareInvocation` is not necessarily followed by a call to `invoke`. - */ - prepareInvocation?(options: LanguageModelToolInvocationPrepareOptions, token: CancellationToken): ProviderResult; - } - - /** - * The result of a call to {@link LanguageModelTool.prepareInvocation}. - */ - export interface PreparedToolInvocation { - /** - * A customized progress message to show while the tool runs. - */ - invocationMessage?: string; - - /** - * The presence of this property indicates that the user should be asked to confirm before running the tool. The user - * should be asked for confirmation for any tool that has a side-effect or may potentially be dangerous. - */ - confirmationMessages?: LanguageModelToolConfirmationMessages; - } - - /** - * A reference to a tool that the user manually attached to their request, either using the `#`-syntax inline, or as an - * attachment via the paperclip button. - */ - export interface ChatLanguageModelToolReference { - /** - * The tool name. Refers to a tool listed in {@link lm.tools}. - */ - readonly name: string; - - /** - * The start and end index of the reference in the {@link ChatRequest.prompt prompt}. When undefined, the reference was - * not part of the prompt text. - * - * *Note* that the indices take the leading `#`-character into account which means they can be used to modify the prompt - * as-is. - */ - readonly range?: [start: number, end: number]; - } - - export interface ChatRequest { - /** - * The list of tools that the user attached to their request. - * - * When a tool reference is present, the chat participant should make a chat request using - * {@link LanguageModelChatToolMode.Required} to force the language model to generate parameters for the tool. Then, the - * participant can use {@link lm.invokeTool} to use the tool attach the result to its request for the user's prompt. The - * tool may contribute useful extra context for the user's request. - */ - readonly toolReferences: readonly ChatLanguageModelToolReference[]; - - /** - * A token that can be passed to {@link lm.invokeTool} when invoking a tool inside the context of handling a chat request. - * This associates the tool invocation to a chat session. - */ - readonly toolInvocationToken: ChatParticipantToolToken; - } - - export interface ChatRequestTurn { - /** - * The list of tools were attached to this request. - */ - readonly toolReferences?: readonly ChatLanguageModelToolReference[]; - } -} From e58e96369f7bc3e0fb6dfb95a689cd107cf0fc2b Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Tue, 22 Oct 2024 15:31:38 -0700 Subject: [PATCH 14/78] Prevent redundant progressive squiggle updates (#12876) --- Extension/src/LanguageServer/client.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 04dcaba70..7d4d81d5a 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -2387,7 +2387,9 @@ export class DefaultClient implements Client { } this.updateInactiveRegions(intelliSenseResult.uri, intelliSenseResult.inactiveRegions, intelliSenseResult.clearExistingInactiveRegions, intelliSenseResult.isCompletePass); - this.updateSquiggles(intelliSenseResult.uri, intelliSenseResult.diagnostics, intelliSenseResult.clearExistingDiagnostics); + if (intelliSenseResult.clearExistingDiagnostics || intelliSenseResult.diagnostics.length > 0) { + this.updateSquiggles(intelliSenseResult.uri, intelliSenseResult.diagnostics, intelliSenseResult.clearExistingDiagnostics); + } } private updateSquiggles(uriString: string, diagnostics: IntelliSenseDiagnostic[], startNewSet: boolean): void { From 5416e796220500e984b71ab622bc781a16187098 Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Thu, 24 Oct 2024 13:42:43 -0700 Subject: [PATCH 15/78] Values set in settings are not immediately available for use (#12881) --- Extension/src/LanguageServer/client.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 7d4d81d5a..e46743815 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -1046,7 +1046,7 @@ export class DefaultClient implements Client { if (index === paths.length - 1) { action = "disable"; settings.defaultCompilerPath = ""; - await this.configuration.updateCompilerPathIfSet(settings.defaultCompilerPath); + await this.configuration.updateCompilerPathIfSet(""); configurationSelected = true; await this.showPrompt(sender); return ui.ShowConfigureIntelliSenseButton(false, this, ConfigurationType.CompilerPath, "disablePrompt"); @@ -1066,7 +1066,7 @@ export class DefaultClient implements Client { configurationSelected = true; action = "compiler browsed"; settings.defaultCompilerPath = result[0].fsPath; - await this.configuration.updateCompilerPathIfSet(settings.defaultCompilerPath); + await this.configuration.updateCompilerPathIfSet(result[0].fsPath); void SessionState.trustedCompilerFound.set(true); } else { configurationSelected = true; @@ -1084,8 +1084,9 @@ export class DefaultClient implements Client { return ui.ShowConfigureIntelliSenseButton(false, this, ConfigurationType.CompileCommands, showButtonSender); } else { action = "select compiler"; - settings.defaultCompilerPath = util.isCl(paths[index]) ? "cl.exe" : paths[index]; - await this.configuration.updateCompilerPathIfSet(settings.defaultCompilerPath); + const newCompiler: string = util.isCl(paths[index]) ? "cl.exe" : paths[index]; + settings.defaultCompilerPath = newCompiler; + await this.configuration.updateCompilerPathIfSet(newCompiler); void SessionState.trustedCompilerFound.set(true); } } From 8cb1deff7602b844ec35a134fecc2d91ba42c851 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Thu, 24 Oct 2024 13:58:32 -0700 Subject: [PATCH 16/78] Update changelog for 1.23.0 (#12880) * Update changelog for 1.23.0. --- Extension/CHANGELOG.md | 19 ++++++++++++++++++- Extension/package.json | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 8891897fa..606fb27f5 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,11 +1,28 @@ # C/C++ for Visual Studio Code Changelog +## Version 1.23.0: October 24, 2024 +### Enhancements +* Update to clang-format and clang-tidy 19.1.2. [#12824](https://github.com/microsoft/vscode-cpptools/issues/12824) + +### Bug Fixes +* Fix some translation issues. [#7824](https://github.com/microsoft/vscode-cpptools/issues/7824), [#12439](https://github.com/microsoft/vscode-cpptools/issues/12439), [#12440](https://github.com/microsoft/vscode-cpptools/issues/12440), [#12441](https://github.com/microsoft/vscode-cpptools/issues/12441) +* Fix a bug with 'Select IntelliSense Configuration'. [#12705](https://github.com/microsoft/vscode-cpptools/issues/12705) +* Fix newlines being removed from hover markdown code blocks. [#12794](https://github.com/microsoft/vscode-cpptools/issues/12794) +* Fix clang-format using `-` instead of `--` args. [#12819](https://github.com/microsoft/vscode-cpptools/issues/12819) +* Fix processing of `compile_commands.json` generated by the clang `-MJ` option. [#12837](https://github.com/microsoft/vscode-cpptools/issues/12837) +* Fix handling of `-I` and `-isystem` with the same path. [#12842](https://github.com/microsoft/vscode-cpptools/issues/12842) +* Fix stale colorization due to delays in updating the open file version. [PR #12851](https://github.com/microsoft/vscode-cpptools/pull/12851) +* Fix redundant progressive squiggle updates. [PR #12876](https://github.com/microsoft/vscode-cpptools/pull/12876) +* Fix inactive regions with multi-byte UTF-8 characters. [#12879](https://github.com/microsoft/vscode-cpptools/issues/12879) +* Fix some duplicate requests potentially not getting discarded. +* Fix a random crash in `start_process_and_wait_for_exit`. + ## Version 1.22.10: October 21, 2024 ### Bug Fixes * Fix the 'Extract to Function' feature not working. * Fix the 'Go to Next/Prev Preprocessor Conditional' feature not working. -## Version 1.22.9: October 10, 2024 +## Version 1.22.9: October 14, 2024 ### Performance Improvements * Initialization performance improvements. [#12030](https://github.com/microsoft/vscode-cpptools/issues/12030) - Some processing is parallelized and started earlier (populating the filename cache, discovering files). [#11954](https://github.com/microsoft/vscode-cpptools/issues/11954), [#12169](https://github.com/microsoft/vscode-cpptools/issues/12169) diff --git a/Extension/package.json b/Extension/package.json index cad8ec768..97e425dcd 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -2,7 +2,7 @@ "name": "cpptools", "displayName": "C/C++", "description": "C/C++ IntelliSense, debugging, and code browsing.", - "version": "1.22.9-main", + "version": "1.23.0-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", From 4138750b3b1e30cff35344d78bf9a1b4e89c9b8f Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Tue, 29 Oct 2024 12:05:17 -0700 Subject: [PATCH 17/78] Enable #cpp for all users (#12898) * Enable #cpp for all users * Address PR comments --- Extension/src/Debugger/configurationProvider.ts | 2 +- Extension/src/LanguageServer/extension.ts | 12 +++++++++--- Extension/src/common.ts | 4 ++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Extension/src/Debugger/configurationProvider.ts b/Extension/src/Debugger/configurationProvider.ts index 2b9ce38ac..067983fea 100644 --- a/Extension/src/Debugger/configurationProvider.ts +++ b/Extension/src/Debugger/configurationProvider.ts @@ -331,7 +331,7 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv // Run deploy steps if (config.deploySteps && config.deploySteps.length !== 0) { - const codeVersion: number[] = vscode.version.split('.').map(num => parseInt(num, undefined)); + const codeVersion: number[] = util.getVsCodeVersion(); if ((util.isNumber(codeVersion[0]) && codeVersion[0] < 1) || (util.isNumber(codeVersion[0]) && codeVersion[0] === 1 && util.isNumber(codeVersion[1]) && codeVersion[1] < 69)) { void logger.getOutputChannelLogger().showErrorMessage(localize("vs.code.1.69+.required", "'deploySteps' require VS Code 1.69+.")); return undefined; diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index c70abfb26..02dd3e886 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -252,9 +252,15 @@ export async function activate(): Promise { activeDocument = activeEditor.document; } - if (util.extensionContext && new CppSettings().experimentalFeatures) { - const tool = vscode.lm.registerTool('cpptools-lmtool-configuration', new CppConfigurationLanguageModelTool()); - disposables.push(tool); + if (util.extensionContext) { + // lmTools wasn't stabilized until 1.95, but (as of October 2024) + // cpptools can be installed on older versions of VS Code. See + // https://github.com/microsoft/vscode-cpptools/blob/main/Extension/package.json#L14 + const version = util.getVsCodeVersion(); + if (version[0] > 1 || (version[0] === 1 && version[1] >= 95)) { + const tool = vscode.lm.registerTool('cpptools-lmtool-configuration', new CppConfigurationLanguageModelTool()); + disposables.push(tool); + } } await registerRelatedFilesProvider(); diff --git a/Extension/src/common.ts b/Extension/src/common.ts index c962a719c..dbd0bcdd6 100644 --- a/Extension/src/common.ts +++ b/Extension/src/common.ts @@ -1814,3 +1814,7 @@ export function findExePathInArgs(args: CommandString[]): string | undefined { return undefined; } + +export function getVsCodeVersion(): number[] { + return vscode.version.split('.').map(num => parseInt(num, undefined)); +} From d56740e4989f61c105424988d4db8f083c642e0b Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 29 Oct 2024 12:40:07 -0700 Subject: [PATCH 18/78] Update changelog (2nd time). (#12899) * Update changelog (2nd time). --- Extension/CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 606fb27f5..d00d6843e 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,8 +1,9 @@ # C/C++ for Visual Studio Code Changelog -## Version 1.23.0: October 24, 2024 +## Version 1.23.0: October 29, 2024 ### Enhancements * Update to clang-format and clang-tidy 19.1.2. [#12824](https://github.com/microsoft/vscode-cpptools/issues/12824) +* Enable `#cpp` with GitHub Copilot chat without `C_Cpp.experimentalFeatures` enabled. [PR #12898](https://github.com/microsoft/vscode-cpptools/pull/12898) ### Bug Fixes * Fix some translation issues. [#7824](https://github.com/microsoft/vscode-cpptools/issues/7824), [#12439](https://github.com/microsoft/vscode-cpptools/issues/12439), [#12440](https://github.com/microsoft/vscode-cpptools/issues/12440), [#12441](https://github.com/microsoft/vscode-cpptools/issues/12441) From f51404d9dbd11c67844583099833be943aef261d Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 29 Oct 2024 17:57:47 -0700 Subject: [PATCH 19/78] Switch to @vscode/dts. (#12901) --- Extension/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extension/package.json b/Extension/package.json index 97e425dcd..f183a39f5 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -6511,7 +6511,7 @@ "translations-generate": "set NODE_OPTIONS=--no-experimental-fetch && gulp translations-generate", "translations-import": "gulp translations-import", "import-edge-strings": "ts-node -T ./.scripts/import_edge_strings.ts", - "prep:dts": "yarn verify dts --quiet || (npx vscode-dts dev && npx vscode-dts main)", + "prep:dts": "yarn verify dts --quiet || (npx @vscode/dts dev && npx @vscode/dts main)", "build": "yarn prep:dts && echo [Building TypeScript code] && tsc --build tsconfig.json" }, "devDependencies": { From e45dbcec9bbef37cc1ecec0a38c9e34a612631aa Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Tue, 29 Oct 2024 18:46:13 -0700 Subject: [PATCH 20/78] Fix issue with requests in protocolFilter.ts causing stalls (#12906) --- .../src/LanguageServer/protocolFilter.ts | 62 ++++++------------- 1 file changed, 18 insertions(+), 44 deletions(-) diff --git a/Extension/src/LanguageServer/protocolFilter.ts b/Extension/src/LanguageServer/protocolFilter.ts index 4dddbbcc2..b292c67b1 100644 --- a/Extension/src/LanguageServer/protocolFilter.ts +++ b/Extension/src/LanguageServer/protocolFilter.ts @@ -8,6 +8,7 @@ import * as path from 'path'; import * as vscode from 'vscode'; import { Middleware } from 'vscode-languageclient'; import * as util from '../common'; +import { logAndReturn } from '../Utility/Async/returns'; import { Client } from './client'; import { clients } from './extension'; import { shouldChangeFromCToCpp } from './utils'; @@ -18,14 +19,8 @@ export const ServerCancelled: number = -32802; let anyFileOpened: boolean = false; export function createProtocolFilter(): Middleware { - // Disabling lint for invoke handlers - const invoke1 = (a: any, next: (a: any) => any): any => clients.ActiveClient.enqueue(() => next(a)); - const invoke2 = (a: any, b: any, next: (a: any, b: any) => any): any => clients.ActiveClient.enqueue(() => next(a, b)); - const invoke3 = (a: any, b: any, c: any, next: (a: any, b: any, c: any) => any): any => clients.ActiveClient.enqueue(() => next(a, b, c)); - const invoke4 = (a: any, b: any, c: any, d: any, next: (a: any, b: any, c: any, d: any) => any): any => clients.ActiveClient.enqueue(() => next(a, b, c, d)); - return { - didOpen: async (document, sendMessage) => clients.ActiveClient.enqueue(async () => { + didOpen: async (document, sendMessage) => { if (!util.isCpp(document)) { return; } @@ -41,62 +36,41 @@ export function createProtocolFilter(): Middleware { const mappingString: string = baseFileName + "@" + document.fileName; client.addFileAssociations(mappingString, "cpp"); client.sendDidChangeSettings(); - document = await vscode.languages.setTextDocumentLanguage(document, "cpp"); + // This will cause the file to be closed and reopened. + void vscode.languages.setTextDocumentLanguage(document, "cpp"); + return; } // client.takeOwnership() will call client.TrackedDocuments.add() again, but that's ok. It's a Set. client.onDidOpenTextDocument(document); client.takeOwnership(document); - await sendMessage(document); - - // For a file already open when we activate, sometimes we don't get any notifications about visible - // or active text editors, visible ranges, or text selection. As a workaround, we trigger - // onDidChangeVisibleTextEditors here, only for the first file opened. - if (!anyFileOpened) { - anyFileOpened = true; - const cppEditors: vscode.TextEditor[] = vscode.window.visibleTextEditors.filter(e => util.isCpp(e.document)); - await client.onDidChangeVisibleTextEditors(cppEditors); - } + void sendMessage(document).then(() => { + // For a file already open when we activate, sometimes we don't get any notifications about visible + // or active text editors, visible ranges, or text selection. As a workaround, we trigger + // onDidChangeVisibleTextEditors here, only for the first file opened. + if (!anyFileOpened) { + anyFileOpened = true; + const cppEditors: vscode.TextEditor[] = vscode.window.visibleTextEditors.filter(e => util.isCpp(e.document)); + client.onDidChangeVisibleTextEditors(cppEditors).catch(logAndReturn.undefined); + } + }); } } - }), - didChange: invoke1, - willSave: invoke1, + }, willSaveWaitUntil: async (event, sendMessage) => { - // await clients.ActiveClient.ready; - // Don't use awaitUntilLanguageClientReady. - // Otherwise, the message can be delayed too long. const me: Client = clients.getClientFor(event.document.uri); if (me.TrackedDocuments.has(event.document.uri.toString())) { return sendMessage(event); } return []; }, - didSave: invoke1, - didClose: async (document, sendMessage) => clients.ActiveClient.enqueue(async () => { + didClose: async (document, sendMessage) => { const me: Client = clients.getClientFor(document.uri); const uriString: string = document.uri.toString(); if (me.TrackedDocuments.has(uriString)) { me.onDidCloseTextDocument(document); me.TrackedDocuments.delete(uriString); - await sendMessage(document); - } - }), - provideCompletionItem: invoke4, - resolveCompletionItem: invoke2, - provideHover: async (document, position, token, next: (document: any, position: any, token: any) => any) => clients.ActiveClient.enqueue(async () => { - const me: Client = clients.getClientFor(document.uri); - if (me.TrackedDocuments.has(document.uri.toString())) { - return next(document, position, token); + void sendMessage(document); } - return null; - }), - provideSignatureHelp: invoke4, - provideDefinition: invoke3, - provideReferences: invoke4, - provideDocumentHighlights: invoke3, - provideDeclaration: invoke3, - workspace: { - didChangeConfiguration: invoke1 } }; } From 1462b0dacb09060edadb54798c066f54b1f695d7 Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Wed, 30 Oct 2024 10:54:22 -0700 Subject: [PATCH 21/78] Normalize messages for bad paths (#12904) --- Extension/src/LanguageServer/configurations.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Extension/src/LanguageServer/configurations.ts b/Extension/src/LanguageServer/configurations.ts index 3a02622b0..3339514cc 100644 --- a/Extension/src/LanguageServer/configurations.ts +++ b/Extension/src/LanguageServer/configurations.ts @@ -1948,7 +1948,7 @@ export class CppProperties { compilerPath = checkPathExists.path; } if (!compilerPathExists) { - compilerMessage = localize('cannot.find2', "Cannot find \"{0}\".", compilerPath); + compilerMessage = localize('cannot.find', "Cannot find: {0}", compilerPath); newSquiggleMetrics.PathNonExistent++; } if (compilerMessage) { @@ -1975,7 +1975,7 @@ export class CppProperties { dotConfigPath = checkPathExists.path; } if (!dotConfigPathExists) { - dotConfigMessage = localize('cannot.find2', "Cannot find \"{0}\".", dotConfigPath); + dotConfigMessage = localize('cannot.find', "Cannot find: {0}", dotConfigPath); newSquiggleMetrics.PathNonExistent++; } else if (dotConfigPath && !util.checkFileExistsSync(dotConfigPath)) { dotConfigMessage = localize("path.is.not.a.file", "Path is not a file: {0}", dotConfigPath); @@ -2083,7 +2083,7 @@ export class CppProperties { } else { badPath = `"${expandedPaths[0]}"`; } - message = localize('cannot.find2', "Cannot find {0}", badPath); + message = localize('cannot.find', "Cannot find: {0}", badPath); newSquiggleMetrics.PathNonExistent++; } else { // Check for file versus path mismatches. @@ -2141,7 +2141,7 @@ export class CppProperties { endOffset = curOffset + curMatch.length; let message: string; if (!pathExists) { - message = localize('cannot.find2', "Cannot find \"{0}\".", expandedPaths[0]); + message = localize('cannot.find', "Cannot find: {0}", expandedPaths[0]); newSquiggleMetrics.PathNonExistent++; const diagnostic: vscode.Diagnostic = new vscode.Diagnostic( new vscode.Range(document.positionAt(envTextStartOffSet + curOffset), From dc8140199b1a1b0bc90c14e4b791ec40d78f8152 Mon Sep 17 00:00:00 2001 From: Luca <681992+lukka@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:32:31 -0700 Subject: [PATCH 22/78] Ensure only wel known values are passed in to the LLM #2293227 (#12907) Co-authored-by: Ben McMorran --- Extension/src/LanguageServer/lmTool.ts | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/Extension/src/LanguageServer/lmTool.ts b/Extension/src/LanguageServer/lmTool.ts index ed5be61a0..6a39e4e91 100644 --- a/Extension/src/LanguageServer/lmTool.ts +++ b/Extension/src/LanguageServer/lmTool.ts @@ -75,11 +75,29 @@ export class CppConfigurationLanguageModelTool implements vscode.LanguageModelTo for (const key in knownValues) { const knownKey = key as keyof ChatContextResult; if (knownValues[knownKey] && chatContext[knownKey]) { - chatContext[knownKey] = knownValues[knownKey][chatContext[knownKey]] || chatContext[knownKey]; + // Clear the value if it's not in the known values. + chatContext[knownKey] = knownValues[knownKey][chatContext[knownKey]] || ""; } } - return `The user is working on a ${chatContext.language} project. The project uses language version ${chatContext.standardVersion}, compiles using the ${chatContext.compiler} compiler, targets the ${chatContext.targetPlatform} platform, and targets the ${chatContext.targetArchitecture} architecture.`; + let contextString = ""; + if (chatContext.language) { + contextString += `The user is working on a ${chatContext.language} project. `; + } + if (chatContext.standardVersion) { + contextString += `The project uses language version ${chatContext.standardVersion}. `; + } + if (chatContext.compiler) { + contextString += `The project compiles using the ${chatContext.compiler} compiler. `; + } + if (chatContext.targetPlatform) { + contextString += `The project targets the ${chatContext.targetPlatform} platform. `; + } + if (chatContext.targetArchitecture) { + contextString += `The project targets the ${chatContext.targetArchitecture} architecture. `; + } + + return contextString; } catch { await this.reportError(); From fcd0b0c25f7933104a3d7ae01e69a872d5f5ab52 Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Wed, 30 Oct 2024 17:02:51 -0700 Subject: [PATCH 23/78] Add telemetry for #cpp failures (#12910) --- Extension/src/LanguageServer/lmTool.ts | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Extension/src/LanguageServer/lmTool.ts b/Extension/src/LanguageServer/lmTool.ts index 6a39e4e91..c3fad8b6e 100644 --- a/Extension/src/LanguageServer/lmTool.ts +++ b/Extension/src/LanguageServer/lmTool.ts @@ -51,6 +51,7 @@ export class CppConfigurationLanguageModelTool implements vscode.LanguageModelTo } private async getContext(token: vscode.CancellationToken): Promise { + const telemetryProperties: Record = {}; try { const currentDoc = vscode.window.activeTextEditor?.document; if (!currentDoc || (!util.isCpp(currentDoc) && !util.isHeaderFile(currentDoc.uri))) { @@ -62,16 +63,6 @@ export class CppConfigurationLanguageModelTool implements vscode.LanguageModelTo return 'No configuration information is available for the active document.'; } - telemetry.logLanguageModelToolEvent( - 'cpp', - { - "language": chatContext.language, - "compiler": chatContext.compiler, - "standardVersion": chatContext.standardVersion, - "targetPlatform": chatContext.targetPlatform, - "targetArchitecture": chatContext.targetArchitecture - }); - for (const key in knownValues) { const knownKey = key as keyof ChatContextResult; if (knownValues[knownKey] && chatContext[knownKey]) { @@ -83,25 +74,33 @@ export class CppConfigurationLanguageModelTool implements vscode.LanguageModelTo let contextString = ""; if (chatContext.language) { contextString += `The user is working on a ${chatContext.language} project. `; + telemetryProperties["language"] = chatContext.language; } if (chatContext.standardVersion) { contextString += `The project uses language version ${chatContext.standardVersion}. `; + telemetryProperties["standardVersion"] = chatContext.standardVersion; } if (chatContext.compiler) { contextString += `The project compiles using the ${chatContext.compiler} compiler. `; + telemetryProperties["compiler"] = chatContext.compiler; } if (chatContext.targetPlatform) { contextString += `The project targets the ${chatContext.targetPlatform} platform. `; + telemetryProperties["targetPlatform"] = chatContext.targetPlatform; } if (chatContext.targetArchitecture) { contextString += `The project targets the ${chatContext.targetArchitecture} architecture. `; + telemetryProperties["targetArchitecture"] = chatContext.targetArchitecture; } return contextString; } catch { await this.reportError(); + telemetryProperties["error"] = "true"; return ""; + } finally { + telemetry.logLanguageModelToolEvent('cpp', telemetryProperties); } } From 390046ccf41b5a00ae5583c0a6d3805a2d8d8e05 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Mon, 4 Nov 2024 18:08:15 -0800 Subject: [PATCH 24/78] Fix processing of bools and numbers in editorConfig files (#12923) --- Extension/src/LanguageServer/editorConfig.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Extension/src/LanguageServer/editorConfig.ts b/Extension/src/LanguageServer/editorConfig.ts index 1ac8452b4..21a73673c 100644 --- a/Extension/src/LanguageServer/editorConfig.ts +++ b/Extension/src/LanguageServer/editorConfig.ts @@ -92,7 +92,17 @@ function parseEditorConfigContent(content: string): Record { const [key, ...values] = line.split('='); if (key && values.length > 0) { const trimmedKey = key.trim(); - const value = values.join('=').trim(); + let value: any = values.join('=').trim(); + + // Convert boolean-like and numeric values. + if (value.toLowerCase() === 'true') { + value = true; + } else if (value.toLowerCase() === 'false') { + value = false; + } else if (!isNaN(Number(value))) { + value = Number(value); + } + if (currentSection) { // Ensure the current section is initialized. if (!config[currentSection]) { @@ -114,7 +124,7 @@ function getEditorConfig(filePath: string): any { const rootDir: string = path.parse(currentDir).root; // Traverse from the file's directory to the root directory. - for (;;) { + for (; ;) { const editorConfigPath: string = path.join(currentDir, '.editorconfig'); if (fs.existsSync(editorConfigPath)) { const configFileContent: string = fs.readFileSync(editorConfigPath, 'utf-8'); @@ -139,7 +149,7 @@ function getEditorConfig(filePath: string): any { }); // Check if the current .editorconfig is the root. - if (configData['*']?.root?.toLowerCase() === 'true') { + if (configData['*']?.root) { break; // Stop searching after processing the root = true file. } } From 1b21b6942287192422eaf21d444b8f5da9d8b7e1 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 5 Nov 2024 17:15:09 -0800 Subject: [PATCH 25/78] Update changelog for 1.23.1 (#12931) * Update changelog for 1.23.1 --- Extension/CHANGELOG.md | 14 ++++++++++++++ Extension/package.json | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index d00d6843e..f8abeefa4 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,5 +1,19 @@ # C/C++ for Visual Studio Code Changelog +### Version 1.23.1: November 6, 2024 +### Bug Fixes +* A potential fix for a crash during process shutdown (in `uv_run`). [#12668](https://github.com/microsoft/vscode-cpptools/issues/12668) +* Fix a performance issue where some LSP requests would delay other LSP requests. [#12905](https://github.com/microsoft/vscode-cpptools/issues/12905) +* A potential fix for a crash in cpptools (in `report_intellisense_results`). +* Fix a random deadlock in `handle_edits`. +* Other internal fixes. + +## Version 1.22.11: November 5, 2024 +### Bug Fixes +* Fix system includes incorrectly being treated as non-system includes when specified with `-I`. [#12842](https://github.com/microsoft/vscode-cpptools/issues/12842) +* Fix inactive region ranges when multi-byte UTF-8 characters are used. [#12879](https://github.com/microsoft/vscode-cpptools/issues/12879) +* Fix formatting with `.editorconfig` files. [#12921](https://github.com/microsoft/vscode-cpptools/issues/12921) + ## Version 1.23.0: October 29, 2024 ### Enhancements * Update to clang-format and clang-tidy 19.1.2. [#12824](https://github.com/microsoft/vscode-cpptools/issues/12824) diff --git a/Extension/package.json b/Extension/package.json index f183a39f5..733e2f429 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -2,7 +2,7 @@ "name": "cpptools", "displayName": "C/C++", "description": "C/C++ IntelliSense, debugging, and code browsing.", - "version": "1.23.0-main", + "version": "1.23.1-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", From c9cae0b8c056b68cdb6fae3e9c0922424c740e57 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Wed, 6 Nov 2024 12:43:56 -0800 Subject: [PATCH 26/78] Update changelog. (#12938) --- Extension/CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index f8abeefa4..da554b2e1 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -5,7 +5,8 @@ * A potential fix for a crash during process shutdown (in `uv_run`). [#12668](https://github.com/microsoft/vscode-cpptools/issues/12668) * Fix a performance issue where some LSP requests would delay other LSP requests. [#12905](https://github.com/microsoft/vscode-cpptools/issues/12905) * A potential fix for a crash in cpptools (in `report_intellisense_results`). -* Fix a random deadlock in `handle_edits`. +* Fix a random deadlock with `compiler_info::find_or_create`. +* Fix a random deadlock with `handle_edits`. * Other internal fixes. ## Version 1.22.11: November 5, 2024 From 911c39d054384a181d4fdbef6a844d61151bd20a Mon Sep 17 00:00:00 2001 From: Yiftah Waisman <63462505+yiftahw@users.noreply.github.com> Date: Wed, 13 Nov 2024 02:02:42 +0200 Subject: [PATCH 27/78] Fixes to compile commands file watchers fallback logic (#12948) * close file watchers before clearing the array * keep track of fallback time per file --- .../src/LanguageServer/configurations.ts | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/Extension/src/LanguageServer/configurations.ts b/Extension/src/LanguageServer/configurations.ts index 3339514cc..6f23eb347 100644 --- a/Extension/src/LanguageServer/configurations.ts +++ b/Extension/src/LanguageServer/configurations.ts @@ -138,7 +138,7 @@ export class CppProperties { private configFileWatcherFallbackTime: Date = new Date(); // Used when file watching fails. private compileCommandsFile: vscode.Uri | undefined | null = undefined; private compileCommandsFileWatchers: fs.FSWatcher[] = []; - private compileCommandsFileWatcherFallbackTime: Date = new Date(); // Used when file watching fails. + private compileCommandsFileWatcherFallbackTime: Map = new Map(); // Used when file watching fails. private defaultCompilerPath: string | null = null; private knownCompilers?: KnownCompiler[]; private defaultCStandard: string | null = null; @@ -1093,6 +1093,10 @@ export class CppProperties { if (configuration.compileCommands) { configuration.compileCommands = this.resolvePath(configuration.compileCommands); + if (!this.compileCommandsFileWatcherFallbackTime.has(configuration.compileCommands)) { + // Start tracking the fallback time for a new path. + this.compileCommandsFileWatcherFallbackTime.set(configuration.compileCommands, new Date()); + } } if (configuration.forcedInclude) { @@ -1104,12 +1108,31 @@ export class CppProperties { } } + this.clearStaleCompileCommandsFileWatcherFallbackTimes(); this.updateCompileCommandsFileWatchers(); if (!this.configurationIncomplete) { this.onConfigurationsChanged(); } } + private clearStaleCompileCommandsFileWatcherFallbackTimes(): void { + // We need to keep track of relevant timestamps, so we cannot simply clear all entries. + // Instead, we clear entries that are no longer relevant. + const trackedCompileCommandsPaths: Set = new Set(); + this.configurationJson?.configurations.forEach((config: Configuration) => { + const path = this.resolvePath(config.compileCommands); + if (path.length > 0) { + trackedCompileCommandsPaths.add(path); + } + }); + + for (const path of this.compileCommandsFileWatcherFallbackTime.keys()) { + if (!trackedCompileCommandsPaths.has(path)) { + this.compileCommandsFileWatcherFallbackTime.delete(path); + } + } + } + private compileCommandsFileWatcherTimer?: NodeJS.Timeout; private compileCommandsFileWatcherFiles: Set = new Set(); @@ -2310,14 +2333,18 @@ export class CppProperties { fs.stat(compileCommandsFile, (err, stats) => { if (err) { if (err.code === "ENOENT" && this.compileCommandsFile) { + this.compileCommandsFileWatchers.forEach((watcher: fs.FSWatcher) => watcher.close()); this.compileCommandsFileWatchers = []; // reset file watchers this.onCompileCommandsChanged(compileCommandsFile); this.compileCommandsFile = null; // File deleted } - } else if (stats.mtime > this.compileCommandsFileWatcherFallbackTime) { - this.compileCommandsFileWatcherFallbackTime = new Date(); - this.onCompileCommandsChanged(compileCommandsFile); - this.compileCommandsFile = vscode.Uri.file(compileCommandsFile); // File created. + } else { + const compileCommandsLastChanged: Date | undefined = this.compileCommandsFileWatcherFallbackTime.get(compileCommandsFile); + if (compileCommandsLastChanged !== undefined && stats.mtime > compileCommandsLastChanged) { + this.compileCommandsFileWatcherFallbackTime.set(compileCommandsFile, new Date()); + this.onCompileCommandsChanged(compileCommandsFile); + this.compileCommandsFile = vscode.Uri.file(compileCommandsFile); // File created. + } } }); } From 9646722501d18fb0f64dcac608576593afa80a59 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Tue, 12 Nov 2024 16:25:04 -0800 Subject: [PATCH 28/78] Address issue with `Attempting to use languageClient before initialized` (#12959) --- Extension/src/LanguageServer/client.ts | 6 ++++++ Extension/src/LanguageServer/protocolFilter.ts | 14 +------------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index e46743815..fdc7d8ec0 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -1285,6 +1285,12 @@ export class DefaultClient implements Client { // Listen for messages from the language server. this.registerNotifications(); + + // If a file is already open when we activate, sometimes we don't get any notifications about visible + // or active text editors, visible ranges, or text selection. As a workaround, we trigger + // onDidChangeVisibleTextEditors here. + const cppEditors: vscode.TextEditor[] = vscode.window.visibleTextEditors.filter(e => util.isCpp(e.document)); + await this.onDidChangeVisibleTextEditors(cppEditors); } // update all client configurations diff --git a/Extension/src/LanguageServer/protocolFilter.ts b/Extension/src/LanguageServer/protocolFilter.ts index b292c67b1..9829f0a13 100644 --- a/Extension/src/LanguageServer/protocolFilter.ts +++ b/Extension/src/LanguageServer/protocolFilter.ts @@ -8,7 +8,6 @@ import * as path from 'path'; import * as vscode from 'vscode'; import { Middleware } from 'vscode-languageclient'; import * as util from '../common'; -import { logAndReturn } from '../Utility/Async/returns'; import { Client } from './client'; import { clients } from './extension'; import { shouldChangeFromCToCpp } from './utils'; @@ -16,8 +15,6 @@ import { shouldChangeFromCToCpp } from './utils'; export const RequestCancelled: number = -32800; export const ServerCancelled: number = -32802; -let anyFileOpened: boolean = false; - export function createProtocolFilter(): Middleware { return { didOpen: async (document, sendMessage) => { @@ -43,16 +40,7 @@ export function createProtocolFilter(): Middleware { // client.takeOwnership() will call client.TrackedDocuments.add() again, but that's ok. It's a Set. client.onDidOpenTextDocument(document); client.takeOwnership(document); - void sendMessage(document).then(() => { - // For a file already open when we activate, sometimes we don't get any notifications about visible - // or active text editors, visible ranges, or text selection. As a workaround, we trigger - // onDidChangeVisibleTextEditors here, only for the first file opened. - if (!anyFileOpened) { - anyFileOpened = true; - const cppEditors: vscode.TextEditor[] = vscode.window.visibleTextEditors.filter(e => util.isCpp(e.document)); - client.onDidChangeVisibleTextEditors(cppEditors).catch(logAndReturn.undefined); - } - }); + void sendMessage(document); } } }, From 05fbc0eae7d220ac2be00efcf4d36c21915e4f94 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Tue, 12 Nov 2024 18:44:32 -0800 Subject: [PATCH 29/78] Fix matching of editorConfig sections patterns (#12953) --- Extension/ThirdPartyNotices.txt | 26 ++++++++++++ Extension/package.json | 3 +- Extension/src/LanguageServer/client.ts | 3 +- Extension/src/LanguageServer/editorConfig.ts | 43 +++++++++++++++----- Extension/yarn.lock | 9 +++- 5 files changed, 70 insertions(+), 14 deletions(-) diff --git a/Extension/ThirdPartyNotices.txt b/Extension/ThirdPartyNotices.txt index e7ba616c5..3dc5f2feb 100644 --- a/Extension/ThirdPartyNotices.txt +++ b/Extension/ThirdPartyNotices.txt @@ -2429,6 +2429,7 @@ The notices below are from non-npm sources. - ANTLR (http://www.antlr2.org/) - C++11 Sublime Text Snippets (https://github.com/Rapptz/cpp-sublime-snippet) - Clang (https://clang.llvm.org/) +- editorconfig-core-js (https://github.com/editorconfig/editorconfig-core-js) - gcc-11/libgcc (https://packages.ubuntu.com/jammy/gcc-11-base) - Guidelines Support Library (https://github.com/Microsoft/GSL) - libc++ (https://libcxx.llvm.org/index.html) @@ -2677,6 +2678,31 @@ mechanisms: ========================================= END OF Clang NOTICES AND INFORMATION +%% editorconfig-core-js NOTICES AND INFORMATION BEGIN HERE +========================================= +Copyright © 2012 EditorConfig Team + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +========================================= +END OF editorconfig-core-js NOTICES AND INFORMATION + %% gcc-9/libgcc NOTICES AND INFORMATION BEGIN HERE ========================================= The following runtime libraries are licensed under the terms of the diff --git a/Extension/package.json b/Extension/package.json index 733e2f429..4f1f849f9 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -6517,7 +6517,6 @@ "devDependencies": { "@octokit/rest": "^20.1.1", "@types/glob": "^7.2.0", - "@types/minimatch": "^3.0.5", "@types/mocha": "^10.0.6", "@types/node": "^20.14.2", "@types/node-fetch": "^2.6.11", @@ -6569,7 +6568,7 @@ "comment-json": "^4.2.3", "escape-string-regexp": "^2.0.0", "glob": "^7.2.3", - "minimatch": "^3.0.5", + "minimatch": "^4.2.0", "mkdirp": "^3.0.1", "node-fetch": "^2.7.0", "node-loader": "^2.0.0", diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index fdc7d8ec0..6dd00d741 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -2577,7 +2577,8 @@ export class DefaultClient implements Client { } let foundGlobMatch: boolean = false; for (const assoc in assocs) { - if (minimatch(filePath, assoc)) { + const matcher = new minimatch.Minimatch(assoc); + if (matcher.match(filePath)) { foundGlobMatch = true; break; // Assoc matched a glob pattern. } diff --git a/Extension/src/LanguageServer/editorConfig.ts b/Extension/src/LanguageServer/editorConfig.ts index 21a73673c..b5c8aa1db 100644 --- a/Extension/src/LanguageServer/editorConfig.ts +++ b/Extension/src/LanguageServer/editorConfig.ts @@ -5,7 +5,9 @@ 'use strict'; import * as fs from 'fs'; +import { Minimatch } from 'minimatch'; import * as path from 'path'; +import { isWindows } from '../constants'; export const cachedEditorConfigSettings: Map = new Map(); @@ -61,13 +63,25 @@ export function mapWrapToEditorConfig(value: string | undefined): string { return "never"; } -function matchesSection(filePath: string, section: string): boolean { - const fileName: string = path.basename(filePath); - // Escape all regex special characters except '*' and '?'. - // Convert wildcards '*' to '.*' and '?' to '.'. - const sectionPattern = section.replace(/[.+^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '.*').replace(/\?/g, '.'); - const regex: RegExp = new RegExp(`^${sectionPattern}$`); - return regex.test(fileName); +export function matchesSection(pathPrefix: string, filePath: string, section: string): boolean { + // The following code is copied from: https://github.com/editorconfig/editorconfig-core-js + const matchOptions = { matchBase: true, dot: true }; + pathPrefix = pathPrefix.replace(/[?*+@!()|[\]{}]/g, '\\$&'); + pathPrefix = pathPrefix.replace(/^#/, '\\#'); + switch (section.indexOf('/')) { + case -1: + section = `**/${section}`; + break; + case 0: + section = section.substring(1); + break; + default: + break; + } + section = section.replace(/\\\\/g, '\\\\\\\\'); + section = section.replace(/\*\*/g, '{*,**/**/**}'); + const matcher = new Minimatch(`${pathPrefix}/${section}`, matchOptions); + return matcher.match(filePath); } function parseEditorConfigContent(content: string): Record { @@ -95,9 +109,9 @@ function parseEditorConfigContent(content: string): Record { let value: any = values.join('=').trim(); // Convert boolean-like and numeric values. - if (value.toLowerCase() === 'true') { + if (value === 'true') { value = true; - } else if (value.toLowerCase() === 'false') { + } else if (value === 'false') { value = false; } else if (!isNaN(Number(value))) { value = Number(value); @@ -123,6 +137,10 @@ function getEditorConfig(filePath: string): any { let currentDir: string = path.dirname(filePath); const rootDir: string = path.parse(currentDir).root; + if (isWindows) { + filePath = filePath.replace(/\\/g, '/'); + } + // Traverse from the file's directory to the root directory. for (; ;) { const editorConfigPath: string = path.join(currentDir, '.editorconfig'); @@ -138,9 +156,14 @@ function getEditorConfig(filePath: string): any { }; } + let currentDirForwardSlashes: string = currentDir; + if (isWindows) { + currentDirForwardSlashes = currentDir.replace(/\\/g, '/'); + } + // Match sections and combine configurations. Object.keys(configData).forEach((section: string) => { - if (section !== '*' && matchesSection(filePath, section)) { + if (section !== '*' && matchesSection(currentDirForwardSlashes, filePath, section)) { combinedConfig = { ...combinedConfig, ...configData[section] diff --git a/Extension/yarn.lock b/Extension/yarn.lock index 7a59a937d..377974a1e 100644 --- a/Extension/yarn.lock +++ b/Extension/yarn.lock @@ -448,7 +448,7 @@ resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" integrity sha1-B1CLRXl8uB7D8nMBGwVM0HVe3co= -"@types/minimatch@^3.0.3", "@types/minimatch@^3.0.5": +"@types/minimatch@^3.0.3": version "3.0.5" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" integrity sha1-EAHMXmo3BLg8I2An538vWOoBD0A= @@ -3278,6 +3278,13 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" +minimatch@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.3.tgz#b4dcece1d674dee104bb0fb833ebb85a78cbbca6" + integrity sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng== + dependencies: + brace-expansion "^1.1.7" + minimatch@^5.0.1, minimatch@^5.1.0, minimatch@^5.1.6: version "5.1.6" resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" From 64e9106cb3e6400e1dc750b13a6a4605d87c9fb5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Nov 2024 10:46:12 -0800 Subject: [PATCH 30/78] Bump cross-spawn from 7.0.3 to 7.0.6 in /Extension (#12973) Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6. - [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md) - [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6) --- updated-dependencies: - dependency-name: cross-spawn dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Extension/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Extension/yarn.lock b/Extension/yarn.lock index 377974a1e..c4ee00c3d 100644 --- a/Extension/yarn.lock +++ b/Extension/yarn.lock @@ -1428,9 +1428,9 @@ create-require@^1.1.0: integrity sha1-wdfo8eX2z8n/ZfnNNS03NIdWwzM= cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha1-9zqFudXUHQRVUcF34ogtSshXKKY= + version "7.0.6" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha1-ilj+ePANzXDDcEUXWd+/rwPo7p8= dependencies: path-key "^3.1.0" shebang-command "^2.0.0" From bfa3c7544ef63e7e0b6d0bd6bf8a1363ed3c4deb Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Thu, 21 Nov 2024 13:02:20 -0800 Subject: [PATCH 31/78] Add a CODEOWNERS file for required PR reviews (#12987) --- CODEOWNERS | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 000000000..06faa970b --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,8 @@ +# Each line is a file pattern followed by one or more owners. + +# These owners will be the default owners for everything in +# the repo. Unless a later match takes precedence, +# @microsoft/cpptools-maintainers will be requested for +# review when someone opens a pull request. + +* @microsoft/cpptools-maintainers From 21a44d9be6aa3b8614684ae63f987e0f0094c571 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Mon, 2 Dec 2024 12:31:42 -0800 Subject: [PATCH 32/78] Add a string for multiple compile_commands.json (on native side) (#12964) --- Extension/src/nativeStrings.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Extension/src/nativeStrings.json b/Extension/src/nativeStrings.json index 50e9e0ab0..77ed4f4e0 100644 --- a/Extension/src/nativeStrings.json +++ b/Extension/src/nativeStrings.json @@ -478,5 +478,6 @@ "refactor_extract_reference_return_c_code": "The function would have to return a value by reference. C code cannot return references.", "refactor_extract_xborder_jump": "Jumps between the selected code and the surrounding code are present.", "refactor_extract_missing_return": "In the selected code, some control paths exit without setting the return value. This is supported only for scalar, numeric, and pointer return types.", - "expand_selection": "Expand selection (to enable 'Extract to function')" + "expand_selection": "Expand selection (to enable 'Extract to function')", + "file_not_found_in_path2": "\"{0}\" not found in compile_commands.json files. 'includePath' from c_cpp_properties.json in folder '{1}' will be used for this file instead." } From a6089eaa6c250b2cc5b197789f7988d8bfbeb049 Mon Sep 17 00:00:00 2001 From: Glen Chung <105310954+kuchungmsft@users.noreply.github.com> Date: Mon, 2 Dec 2024 14:38:50 -0800 Subject: [PATCH 33/78] Support A/B Compiler Arguments Traits (#12979) - Depends on cpptools' update to provide ProjectContextResult. - Send "standardVersion" trait in completion prompt by default. - Added the following new traits - intelliSenseDisclaimer: compiler information disclaimer. - intelliSenseDisclaimerBeginning: to note the beginning of IntelliSense information. - compilerArguments: a list of compiler command arguments that could affect Copilot generating completions. - directAsks: direct asking Copilot to do something instead of providing an argument. - intelliSenseDisclaimerEnd: to note the end of IntelliSense information. - A/B Experimental flags - copilotcppTraits: deprecated, no longer used. - copilotcppExcludeTraits:: deprecated, no longer used. - copilotcppIncludeTraits: string array to include individual trait, i.e., compilerArguments. - copilotcppMsvcCompilerArgumentFilter: map of regex string to absence prompt for MSVC. - copilotcppClangCompilerArgumentFilter: map of regex string to absence prompt for Clang. - copilotcppGccCompilerArgumentFilter: map of regex string to absence prompt for GCC. - copilotcppCompilerArgumentDirectAskMap: map of argument to prompt. --- Extension/src/LanguageServer/client.ts | 34 +- .../src/LanguageServer/copilotProviders.ts | 140 +++++-- Extension/src/LanguageServer/lmTool.ts | 159 ++++++- Extension/src/LanguageServer/utils.ts | 6 + Extension/src/telemetry.ts | 4 +- .../tests/copilotProviders.test.ts | 325 +++++++++++---- .../SingleRootProject/tests/lmTool.test.ts | 388 ++++++++++++++++++ 7 files changed, 916 insertions(+), 140 deletions(-) create mode 100644 Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 6dd00d741..82f50a690 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -541,6 +541,19 @@ export interface ChatContextResult { targetArchitecture: string; } +export interface FileContextResult { + compilerArguments: string[]; +} + +export interface ProjectContextResult { + language: string; + standardVersion: string; + compiler: string; + targetPlatform: string; + targetArchitecture: string; + fileContext: FileContextResult; +} + // Requests const PreInitializationRequest: RequestType = new RequestType('cpptools/preinitialize'); const InitializationRequest: RequestType = new RequestType('cpptools/initialize'); @@ -560,7 +573,8 @@ const GoToDirectiveInGroupRequest: RequestType = new RequestType('cpptools/generateDoxygenComment'); const ChangeCppPropertiesRequest: RequestType = new RequestType('cpptools/didChangeCppProperties'); const IncludesRequest: RequestType = new RequestType('cpptools/getIncludes'); -const CppContextRequest: RequestType = new RequestType('cpptools/getChatContext'); +const CppContextRequest: RequestType = new RequestType('cpptools/getChatContext'); +const ProjectContextRequest: RequestType = new RequestType('cpptools/getProjectContext'); // Notifications to the server const DidOpenNotification: NotificationType = new NotificationType('textDocument/didOpen'); @@ -791,7 +805,8 @@ export interface Client { setShowConfigureIntelliSenseButton(show: boolean): void; addTrustedCompiler(path: string): Promise; getIncludes(maxDepth: number, token: vscode.CancellationToken): Promise; - getChatContext(token: vscode.CancellationToken): Promise; + getChatContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise; + getProjectContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise; } export function createClient(workspaceFolder?: vscode.WorkspaceFolder): Client { @@ -2220,10 +2235,18 @@ export class DefaultClient implements Client { () => this.languageClient.sendRequest(IncludesRequest, params, token), token); } - public async getChatContext(token: vscode.CancellationToken): Promise { + public async getChatContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise { + const params: TextDocumentIdentifier = { uri: uri.toString() }; + await withCancellation(this.ready, token); + return DefaultClient.withLspCancellationHandling( + () => this.languageClient.sendRequest(CppContextRequest, params, token), token); + } + + public async getProjectContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise { + const params: TextDocumentIdentifier = { uri: uri.toString() }; await withCancellation(this.ready, token); return DefaultClient.withLspCancellationHandling( - () => this.languageClient.sendRequest(CppContextRequest, null, token), token); + () => this.languageClient.sendRequest(ProjectContextRequest, params, token), token); } /** @@ -4129,5 +4152,6 @@ class NullClient implements Client { setShowConfigureIntelliSenseButton(show: boolean): void { } addTrustedCompiler(path: string): Promise { return Promise.resolve(); } getIncludes(maxDepth: number, token: vscode.CancellationToken): Promise { return Promise.resolve({} as GetIncludesResult); } - getChatContext(token: vscode.CancellationToken): Promise { return Promise.resolve({} as ChatContextResult); } + getChatContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise { return Promise.resolve({} as ChatContextResult); } + getProjectContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise { return Promise.resolve({} as ProjectContextResult); } } diff --git a/Extension/src/LanguageServer/copilotProviders.ts b/Extension/src/LanguageServer/copilotProviders.ts index f23554f76..2433e1695 100644 --- a/Extension/src/LanguageServer/copilotProviders.ts +++ b/Extension/src/LanguageServer/copilotProviders.ts @@ -5,9 +5,13 @@ 'use strict'; import * as vscode from 'vscode'; +import { localize } from 'vscode-nls'; import * as util from '../common'; -import { ChatContextResult, GetIncludesResult } from './client'; +import * as logger from '../logger'; +import * as telemetry from '../telemetry'; +import { GetIncludesResult } from './client'; import { getActiveClient } from './extension'; +import { getCompilerArgumentFilterMap, getProjectContext } from './lmTool'; export interface CopilotTrait { name: string; @@ -34,35 +38,113 @@ export async function registerRelatedFilesProvider(): Promise { for (const languageId of ['c', 'cpp', 'cuda-cpp']) { api.registerRelatedFilesProvider( { extensionId: util.extensionContext.extension.id, languageId }, - async (_uri: vscode.Uri, context: { flags: Record }, token: vscode.CancellationToken) => { - - const getIncludesHandler = async () => (await getIncludesWithCancellation(1, token))?.includedFiles.map(file => vscode.Uri.file(file)) ?? []; - const getTraitsHandler = async () => { - const chatContext: ChatContextResult | undefined = await (getActiveClient().getChatContext(token) ?? undefined); - - if (!chatContext) { - return undefined; + async (uri: vscode.Uri, context: { flags: Record }, token: vscode.CancellationToken) => { + const start = performance.now(); + const telemetryProperties: Record = {}; + const telemetryMetrics: Record = {}; + try { + const getIncludesHandler = async () => (await getIncludesWithCancellation(1, token))?.includedFiles.map(file => vscode.Uri.file(file)) ?? []; + const getTraitsHandler = async () => { + const projectContext = await getProjectContext(uri, context, token); + + if (!projectContext) { + return undefined; + } + + let traits: CopilotTrait[] = [ + { name: "intelliSenseDisclaimer", value: '', includeInPrompt: true, promptTextOverride: `IntelliSense is currently configured with the following compiler information. It reflects the active configuration, and the project may have more configurations targeting different platforms.` }, + { name: "intelliSenseDisclaimerBeginning", value: '', includeInPrompt: true, promptTextOverride: `Beginning of IntelliSense information.` } + ]; + if (projectContext.language) { + traits.push({ name: "language", value: projectContext.language, includeInPrompt: true, promptTextOverride: `The language is ${projectContext.language}.` }); + } + if (projectContext.compiler) { + traits.push({ name: "compiler", value: projectContext.compiler, includeInPrompt: true, promptTextOverride: `This project compiles using ${projectContext.compiler}.` }); + } + if (projectContext.standardVersion) { + traits.push({ name: "standardVersion", value: projectContext.standardVersion, includeInPrompt: true, promptTextOverride: `This project uses the ${projectContext.standardVersion} language standard.` }); + } + if (projectContext.targetPlatform) { + traits.push({ name: "targetPlatform", value: projectContext.targetPlatform, includeInPrompt: true, promptTextOverride: `This build targets ${projectContext.targetPlatform}.` }); + } + if (projectContext.targetArchitecture) { + traits.push({ name: "targetArchitecture", value: projectContext.targetArchitecture, includeInPrompt: true, promptTextOverride: `This build targets ${projectContext.targetArchitecture}.` }); + } + + if (projectContext.compiler) { + // We will process compiler arguments based on copilotcppXXXCompilerArgumentFilters and copilotcppCompilerArgumentDirectAskMap feature flags. + // The copilotcppXXXCompilerArgumentFilters are maps. The keys are regex strings for filtering and the values, if not empty, + // are the prompt text to use when no arguments are found. + // copilotcppCompilerArgumentDirectAskMap map individual matched argument to a prompt text. + // For duplicate matches, the last one will be used. + const filterMap = getCompilerArgumentFilterMap(projectContext.compiler, context); + if (filterMap !== undefined) { + const directAskMap: Record = context.flags.copilotcppCompilerArgumentDirectAskMap ? JSON.parse(context.flags.copilotcppCompilerArgumentDirectAskMap as string) : {}; + let directAsks: string = ''; + const remainingArguments: string[] = []; + + for (const key in filterMap) { + if (!key) { + continue; + } + + const matchedArgument = projectContext.compilerArguments[key] as string; + if (matchedArgument?.length > 0) { + if (directAskMap[matchedArgument]) { + directAsks += `${directAskMap[matchedArgument]} `; + } else { + remainingArguments.push(matchedArgument); + } + } else if (filterMap[key]) { + // Use the prompt text in the absence of argument. + directAsks += `${filterMap[key]} `; + } + } + + if (remainingArguments.length > 0) { + const compilerArgumentsValue = remainingArguments.join(", "); + traits.push({ name: "compilerArguments", value: compilerArgumentsValue, includeInPrompt: true, promptTextOverride: `The compiler arguments include: ${compilerArgumentsValue}.` }); + } + + if (directAsks) { + traits.push({ name: "directAsks", value: directAsks, includeInPrompt: true, promptTextOverride: directAsks }); + } + } + } + + traits.push({ name: "intelliSenseDisclaimerEnd", value: '', includeInPrompt: true, promptTextOverride: `End of IntelliSense information.` }); + + const includeTraitsArray = context.flags.copilotcppIncludeTraits ? context.flags.copilotcppIncludeTraits as string[] : []; + const includeTraits = new Set(includeTraitsArray); + telemetryProperties["includeTraits"] = includeTraitsArray.join(','); + + // standardVersion trait is enabled by default. + traits = traits.filter(trait => includeTraits.has(trait.name) || trait.name === 'standardVersion'); + + telemetryProperties["traits"] = traits.map(trait => trait.name).join(','); + return traits.length > 0 ? traits : undefined; + }; + + // Call both handlers in parallel + const traitsPromise = getTraitsHandler(); + const includesPromise = getIncludesHandler(); + + return { entries: await includesPromise, traits: await traitsPromise }; + } + catch (exception) { + try { + const err: Error = exception as Error; + logger.getOutputChannelLogger().appendLine(localize("copilot.relatedfilesprovider.error", "Error while retrieving result. Reason: {0}", err.message)); } - - let traits: CopilotTrait[] = [ - { name: "language", value: chatContext.language, includeInPrompt: true, promptTextOverride: `The language is ${chatContext.language}.` }, - { name: "compiler", value: chatContext.compiler, includeInPrompt: true, promptTextOverride: `This project compiles using ${chatContext.compiler}.` }, - { name: "standardVersion", value: chatContext.standardVersion, includeInPrompt: true, promptTextOverride: `This project uses the ${chatContext.standardVersion} language standard.` }, - { name: "targetPlatform", value: chatContext.targetPlatform, includeInPrompt: true, promptTextOverride: `This build targets ${chatContext.targetPlatform}.` }, - { name: "targetArchitecture", value: chatContext.targetArchitecture, includeInPrompt: true, promptTextOverride: `This build targets ${chatContext.targetArchitecture}.` } - ]; - - const excludeTraits = context.flags.copilotcppExcludeTraits as string[] ?? []; - traits = traits.filter(trait => !excludeTraits.includes(trait.name)); - - return traits.length > 0 ? traits : undefined; - }; - - // Call both handlers in parallel - const traitsPromise = ((context.flags.copilotcppTraits as boolean) ?? false) ? getTraitsHandler() : Promise.resolve(undefined); - const includesPromise = getIncludesHandler(); - - return { entries: await includesPromise, traits: await traitsPromise }; + catch { + // Intentionally swallow any exception. + } + telemetryProperties["error"] = "true"; + throw exception; // Throw the exception for auto-retry. + } finally { + telemetryMetrics['duration'] = performance.now() - start; + telemetry.logCopilotEvent('RelatedFilesProvider', telemetryProperties, telemetryMetrics); + } } ); } diff --git a/Extension/src/LanguageServer/lmTool.ts b/Extension/src/LanguageServer/lmTool.ts index c3fad8b6e..746ff3829 100644 --- a/Extension/src/LanguageServer/lmTool.ts +++ b/Extension/src/LanguageServer/lmTool.ts @@ -9,9 +9,13 @@ import { localize } from 'vscode-nls'; import * as util from '../common'; import * as logger from '../logger'; import * as telemetry from '../telemetry'; -import { ChatContextResult } from './client'; +import { ChatContextResult, ProjectContextResult } from './client'; import { getClients } from './extension'; +import { checkDuration } from './utils'; +const MSVC: string = 'MSVC'; +const Clang: string = 'Clang'; +const GCC: string = 'GCC'; const knownValues: { [Property in keyof ChatContextResult]?: { [id: string]: string } } = { language: { 'c': 'C', @@ -19,9 +23,9 @@ const knownValues: { [Property in keyof ChatContextResult]?: { [id: string]: str 'cuda-cpp': 'CUDA C++' }, compiler: { - 'msvc': 'MSVC', - 'clang': 'Clang', - 'gcc': 'GCC' + 'msvc': MSVC, + 'clang': Clang, + 'gcc': GCC }, standardVersion: { 'c++98': 'C++98', @@ -44,6 +48,141 @@ const knownValues: { [Property in keyof ChatContextResult]?: { [id: string]: str } }; +function formatChatContext(context: ChatContextResult | ProjectContextResult): void { + type KnownKeys = 'language' | 'standardVersion' | 'compiler' | 'targetPlatform'; + for (const key in knownValues) { + const knownKey = key as KnownKeys; + if (knownValues[knownKey] && context[knownKey]) { + // Clear the value if it's not in the known values. + context[knownKey] = knownValues[knownKey][context[knownKey]] || ""; + } + } +} + +export interface ProjectContext { + language: string; + standardVersion: string; + compiler: string; + targetPlatform: string; + targetArchitecture: string; + compilerArguments: Record; +} + +export function getCompilerArgumentFilterMap(compiler: string, context: { flags: Record }): Record | undefined { + // The copilotcppXXXCompilerArgumentFilters are maps. + // The keys are regex strings and the values, if not empty, are the prompt text to use when no arguments are found. + let filterMap: Record | undefined; + try { + switch (compiler) { + case MSVC: + if (context.flags.copilotcppMsvcCompilerArgumentFilter !== undefined) { + filterMap = JSON.parse(context.flags.copilotcppMsvcCompilerArgumentFilter as string); + } + break; + case Clang: + if (context.flags.copilotcppClangCompilerArgumentFilter !== undefined) { + filterMap = JSON.parse(context.flags.copilotcppClangCompilerArgumentFilter as string); + } + break; + case GCC: + if (context.flags.copilotcppGccCompilerArgumentFilter !== undefined) { + filterMap = JSON.parse(context.flags.copilotcppGccCompilerArgumentFilter as string); + } + break; + } + } + catch { + // Intentionally swallow any exception. + } + return filterMap; +} + +function filterCompilerArguments(compiler: string, compilerArguments: string[], context: { flags: Record }, telemetryProperties: Record): Record { + const filterMap = getCompilerArgumentFilterMap(compiler, context); + if (filterMap === undefined) { + return {}; + } + + const combinedArguments = compilerArguments.join(' '); + const result: Record = {}; + const filteredCompilerArguments: string[] = []; + for (const key in filterMap) { + if (!key) { + continue; + } + const filter = new RegExp(key, 'g'); + const filtered = combinedArguments.match(filter); + if (filtered) { + filteredCompilerArguments.push(...filtered); + result[key] = filtered[filtered.length - 1]; + } + } + + if (filteredCompilerArguments.length > 0) { + // Telemetry to learn about the argument distribution. The filtered arguments are expected to be non-PII. + telemetryProperties["filteredCompilerArguments"] = filteredCompilerArguments.join(','); + telemetryProperties["filters"] = Object.keys(filterMap).filter(filter => !!filter).join(','); + } + + return result; +} + +export async function getProjectContext(uri: vscode.Uri, context: { flags: Record }, token: vscode.CancellationToken): Promise { + const telemetryProperties: Record = {}; + const telemetryMetrics: Record = {}; + try { + const projectContext = await checkDuration(async () => await getClients()?.ActiveClient?.getProjectContext(uri, token) ?? undefined); + telemetryMetrics["duration"] = projectContext.duration; + if (!projectContext.result) { + return undefined; + } + + formatChatContext(projectContext.result); + + const result: ProjectContext = { + language: projectContext.result.language, + standardVersion: projectContext.result.standardVersion, + compiler: projectContext.result.compiler, + targetPlatform: projectContext.result.targetPlatform, + targetArchitecture: projectContext.result.targetArchitecture, + compilerArguments: {} + }; + + if (projectContext.result.language) { + telemetryProperties["language"] = projectContext.result.language; + } + if (projectContext.result.compiler) { + telemetryProperties["compiler"] = projectContext.result.compiler; + } + if (projectContext.result.standardVersion) { + telemetryProperties["standardVersion"] = projectContext.result.standardVersion; + } + if (projectContext.result.targetPlatform) { + telemetryProperties["targetPlatform"] = projectContext.result.targetPlatform; + } + if (projectContext.result.targetArchitecture) { + telemetryProperties["targetArchitecture"] = projectContext.result.targetArchitecture; + } + telemetryMetrics["compilerArgumentCount"] = projectContext.result.fileContext.compilerArguments.length; + result.compilerArguments = filterCompilerArguments(projectContext.result.compiler, projectContext.result.fileContext.compilerArguments, context, telemetryProperties); + + return result; + } + catch (exception) { + try { + const err: Error = exception as Error; + logger.getOutputChannelLogger().appendLine(localize("copilot.projectcontext.error", "Error while retrieving the project context. Reason: {0}", err.message)); + } + catch { + // Intentionally swallow any exception. + } + telemetryProperties["error"] = "true"; + return undefined; + } finally { + telemetry.logCopilotEvent('ProjectContext', telemetryProperties, telemetryMetrics); + } +} + export class CppConfigurationLanguageModelTool implements vscode.LanguageModelTool { public async invoke(options: vscode.LanguageModelToolInvocationOptions, token: vscode.CancellationToken): Promise { return new vscode.LanguageModelToolResult([ @@ -58,18 +197,12 @@ export class CppConfigurationLanguageModelTool implements vscode.LanguageModelTo return 'The active document is not a C, C++, or CUDA file.'; } - const chatContext: ChatContextResult | undefined = await (getClients()?.ActiveClient?.getChatContext(token) ?? undefined); + const chatContext: ChatContextResult | undefined = await (getClients()?.ActiveClient?.getChatContext(currentDoc.uri, token) ?? undefined); if (!chatContext) { return 'No configuration information is available for the active document.'; } - for (const key in knownValues) { - const knownKey = key as keyof ChatContextResult; - if (knownValues[knownKey] && chatContext[knownKey]) { - // Clear the value if it's not in the known values. - chatContext[knownKey] = knownValues[knownKey][chatContext[knownKey]] || ""; - } - } + formatChatContext(chatContext); let contextString = ""; if (chatContext.language) { @@ -100,7 +233,7 @@ export class CppConfigurationLanguageModelTool implements vscode.LanguageModelTo telemetryProperties["error"] = "true"; return ""; } finally { - telemetry.logLanguageModelToolEvent('cpp', telemetryProperties); + telemetry.logCopilotEvent('Chat/Tool/cpp', telemetryProperties); } } diff --git a/Extension/src/LanguageServer/utils.ts b/Extension/src/LanguageServer/utils.ts index e8c8073ee..3a46a486a 100644 --- a/Extension/src/LanguageServer/utils.ts +++ b/Extension/src/LanguageServer/utils.ts @@ -112,3 +112,9 @@ export async function withCancellation(promise: Promise, token: vscode.Can }); }); } + +export async function checkDuration(fn: () => Promise): Promise<{ result: T; duration: number }> { + const start = performance.now(); + const result = await fn(); + return { result, duration: performance.now() - start }; +} diff --git a/Extension/src/telemetry.ts b/Extension/src/telemetry.ts index 600ffa4c4..7465de7df 100644 --- a/Extension/src/telemetry.ts +++ b/Extension/src/telemetry.ts @@ -123,10 +123,10 @@ export function logLanguageServerEvent(eventName: string, properties?: Record, metrics?: Record): void { +export function logCopilotEvent(eventName: string, properties?: Record, metrics?: Record): void { const sendTelemetry = () => { if (experimentationTelemetry) { - const eventNamePrefix: string = "C_Cpp/Copilot/Chat/Tool/"; + const eventNamePrefix: string = "C_Cpp/Copilot/"; experimentationTelemetry.sendTelemetryEvent(eventNamePrefix + eventName, properties, metrics); } }; diff --git a/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts b/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts index 54052e122..626ed287c 100644 --- a/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts +++ b/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts @@ -9,11 +9,14 @@ import * as proxyquire from 'proxyquire'; import * as sinon from 'sinon'; import * as vscode from 'vscode'; import * as util from '../../../../src/common'; -import { ChatContextResult, DefaultClient, GetIncludesResult } from '../../../../src/LanguageServer/client'; +import { DefaultClient, GetIncludesResult } from '../../../../src/LanguageServer/client'; import { CopilotApi, CopilotTrait } from '../../../../src/LanguageServer/copilotProviders'; import * as extension from '../../../../src/LanguageServer/extension'; +import * as lmTool from '../../../../src/LanguageServer/lmTool'; +import { ProjectContext } from '../../../../src/LanguageServer/lmTool'; +import * as telemetry from '../../../../src/telemetry'; -describe('registerRelatedFilesProvider', () => { +describe('copilotProviders Tests', () => { let moduleUnderTest: any; let mockCopilotApi: sinon.SinonStubbedInstance; let getActiveClientStub: sinon.SinonStub; @@ -21,6 +24,7 @@ describe('registerRelatedFilesProvider', () => { let vscodeGetExtensionsStub: sinon.SinonStub; let callbackPromise: Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] }> | undefined; let vscodeExtension: vscode.Extension; + let telemetryStub: sinon.SinonStub; const includedFiles = process.platform === 'win32' ? ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] : @@ -68,25 +72,28 @@ describe('registerRelatedFilesProvider', () => { activeClientStub = sinon.createStubInstance(DefaultClient); getActiveClientStub = sinon.stub(extension, 'getActiveClient').returns(activeClientStub); activeClientStub.getIncludes.resolves({ includedFiles: [] }); + telemetryStub = sinon.stub(telemetry, 'logCopilotEvent').returns(); }); afterEach(() => { sinon.restore(); }); - const arrange = ({ vscodeExtension, getIncludeFiles, chatContext, rootUri, flags }: - { vscodeExtension?: vscode.Extension; getIncludeFiles?: GetIncludesResult; chatContext?: ChatContextResult; rootUri?: vscode.Uri; flags?: Record } = - { vscodeExtension: undefined, getIncludeFiles: undefined, chatContext: undefined, rootUri: undefined, flags: {} } + const arrange = ({ vscodeExtension, getIncludeFiles, projectContext, rootUri, flags }: + { vscodeExtension?: vscode.Extension; getIncludeFiles?: GetIncludesResult; projectContext?: ProjectContext; rootUri?: vscode.Uri; flags?: Record } = + { vscodeExtension: undefined, getIncludeFiles: undefined, projectContext: undefined, rootUri: undefined, flags: {} } ) => { activeClientStub.getIncludes.resolves(getIncludeFiles); - activeClientStub.getChatContext.resolves(chatContext); + sinon.stub(lmTool, 'getProjectContext').resolves(projectContext); sinon.stub(activeClientStub, 'RootUri').get(() => rootUri); mockCopilotApi.registerRelatedFilesProvider.callsFake((_providerId: { extensionId: string; languageId: string }, callback: (uri: vscode.Uri, context: { flags: Record }, cancellationToken: vscode.CancellationToken) => Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] }>) => { - const tokenSource = new vscode.CancellationTokenSource(); - try { - callbackPromise = callback(vscode.Uri.parse('file:///test-extension-path'), { flags: flags ?? {} }, tokenSource.token); - } finally { - tokenSource.dispose(); + if (_providerId.languageId === 'cpp') { + const tokenSource = new vscode.CancellationTokenSource(); + try { + callbackPromise = callback(vscode.Uri.parse('file:///test-extension-path'), { flags: flags ?? {} }, tokenSource.token); + } finally { + tokenSource.dispose(); + } } return { @@ -97,7 +104,7 @@ describe('registerRelatedFilesProvider', () => { vscodeGetExtensionsStub = sinon.stub(vscode.extensions, 'getExtension').returns(vscodeExtension); }; - it('should register provider', async () => { + it('should register provider.', async () => { arrange( { vscodeExtension: vscodeExtension } ); @@ -108,13 +115,13 @@ describe('registerRelatedFilesProvider', () => { ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); }); - it('should not add #cpp traits when ChatContext isn\'t available.', async () => { + it('should not provide project context traits when project context isn\'t available.', async () => { arrange({ vscodeExtension: vscodeExtension, getIncludeFiles: { includedFiles }, - chatContext: undefined, + projectContext: undefined, rootUri, - flags: { copilotcppTraits: true } + flags: {} }); await moduleUnderTest.registerRelatedFilesProvider(); @@ -130,122 +137,258 @@ describe('registerRelatedFilesProvider', () => { ok(result.traits === undefined, 'result.traits should be undefined'); }); - it('should not add #cpp traits when copilotcppTraits flag is false.', async () => { + const projectContextNoArgs: ProjectContext = { + language: 'C++', + standardVersion: 'C++20', + compiler: 'MSVC', + targetPlatform: 'Windows', + targetArchitecture: 'x64', + compilerArguments: {} + }; + + it('provides standardVersion trait by default.', async () => { arrange({ vscodeExtension: vscodeExtension, getIncludeFiles: { includedFiles }, - chatContext: { - language: 'c++', - standardVersion: 'c++20', - compiler: 'msvc', - targetPlatform: 'windows', - targetArchitecture: 'x64' - }, + projectContext: projectContextNoArgs, rootUri, - flags: { copilotcppTraits: false } + flags: {} }); await moduleUnderTest.registerRelatedFilesProvider(); const result = await callbackPromise; - ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); - ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); - ok(getActiveClientStub.callCount !== 0, 'getActiveClient should be called'); - ok(callbackPromise, 'callbackPromise should be defined'); ok(result, 'result should be defined'); - ok(result.entries.length === 1, 'result.entries should have 1 included file'); - ok(result.entries[0].toString() === expectedInclude, `result.entries should have "${expectedInclude}"`); - ok(result.traits === undefined, 'result.traits should be undefined'); + ok(result.traits, 'result.traits should be defined'); + ok(result.traits.length === 1, 'result.traits should have 1 trait'); + ok(result.traits.find((trait) => trait.name === 'standardVersion'), 'result.traits should have a standardVersion trait'); + ok(result.traits.find((trait) => trait.name === 'standardVersion')?.value === 'C++20', 'result.traits should have a standardVersion trait with value "C++20"'); + ok(result.traits.find((trait) => trait.name === 'standardVersion')?.includeInPrompt, 'result.traits should have a standardVersion trait with includeInPrompt true'); + ok(result.traits.find((trait) => trait.name === 'standardVersion')?.promptTextOverride === 'This project uses the C++20 language standard.', 'result.traits should have a standardVersion trait with promptTextOverride'); }); - it('should add #cpp traits when copilotcppTraits flag is true.', async () => { + it('provides traits per copilotcppIncludeTraits.', async () => { arrange({ vscodeExtension: vscodeExtension, getIncludeFiles: { includedFiles }, - chatContext: { - language: 'c++', - standardVersion: 'c++20', - compiler: 'msvc', - targetPlatform: 'windows', - targetArchitecture: 'x64' - }, + projectContext: projectContextNoArgs, rootUri, - flags: { copilotcppTraits: true } + flags: { copilotcppIncludeTraits: ['intelliSenseDisclaimer', 'intelliSenseDisclaimerBeginning', 'language', 'compiler', 'targetPlatform', 'targetArchitecture', 'intelliSenseDisclaimerEnd'] } }); await moduleUnderTest.registerRelatedFilesProvider(); const result = await callbackPromise; + ok(result, 'result should be defined'); + ok(result.traits, 'result.traits should be defined'); + ok(result.traits.length === 8, 'result.traits should have 8 traits if none are excluded'); + ok(result.traits.find((trait) => trait.name === 'intelliSenseDisclaimer'), 'result.traits should have a intellisense trait'); + ok(result.traits.find((trait) => trait.name === 'intelliSenseDisclaimer')?.includeInPrompt, 'result.traits should have a intellisense trait with includeInPrompt true'); + ok(result.traits.find((trait) => trait.name === 'intelliSenseDisclaimer')?.promptTextOverride === 'IntelliSense is currently configured with the following compiler information. It reflects the active configuration, and the project may have more configurations targeting different platforms.', 'result.traits should have a intellisense trait with promptTextOverride'); + ok(result.traits.find((trait) => trait.name === 'intelliSenseDisclaimerBeginning'), 'result.traits should have a intellisenseBegin trait'); + ok(result.traits.find((trait) => trait.name === 'intelliSenseDisclaimerBeginning')?.includeInPrompt, 'result.traits should have a intellisenseBegin trait with includeInPrompt true'); + ok(result.traits.find((trait) => trait.name === 'intelliSenseDisclaimerBeginning')?.promptTextOverride === 'Beginning of IntelliSense information.', 'result.traits should have a intellisenseBegin trait with promptTextOverride'); + ok(result.traits.find((trait) => trait.name === 'language'), 'result.traits should have a language trait'); + ok(result.traits.find((trait) => trait.name === 'language')?.value === 'C++', 'result.traits should have a language trait with value "C++"'); + ok(result.traits.find((trait) => trait.name === 'language')?.includeInPrompt, 'result.traits should have a language trait with includeInPrompt true'); + ok(result.traits.find((trait) => trait.name === 'language')?.promptTextOverride === 'The language is C++.', 'result.traits should have a language trait with promptTextOverride'); + ok(result.traits.find((trait) => trait.name === 'compiler'), 'result.traits should have a compiler trait'); + ok(result.traits.find((trait) => trait.name === 'compiler')?.value === 'MSVC', 'result.traits should have a compiler trait with value "MSVC"'); + ok(result.traits.find((trait) => trait.name === 'compiler')?.includeInPrompt, 'result.traits should have a compiler trait with includeInPrompt true'); + ok(result.traits.find((trait) => trait.name === 'compiler')?.promptTextOverride === 'This project compiles using MSVC.', 'result.traits should have a compiler trait with promptTextOverride'); + ok(result.traits.find((trait) => trait.name === 'standardVersion'), 'result.traits should have a standardVersion trait'); + ok(result.traits.find((trait) => trait.name === 'standardVersion')?.value === 'C++20', 'result.traits should have a standardVersion trait with value "C++20"'); + ok(result.traits.find((trait) => trait.name === 'standardVersion')?.includeInPrompt, 'result.traits should have a standardVersion trait with includeInPrompt true'); + ok(result.traits.find((trait) => trait.name === 'standardVersion')?.promptTextOverride === 'This project uses the C++20 language standard.', 'result.traits should have a standardVersion trait with promptTextOverride'); + ok(result.traits.find((trait) => trait.name === 'targetPlatform'), 'result.traits should have a targetPlatform trait'); + ok(result.traits.find((trait) => trait.name === 'targetPlatform')?.value === 'Windows', 'result.traits should have a targetPlatform trait with value "Windows"'); + ok(result.traits.find((trait) => trait.name === 'targetPlatform')?.includeInPrompt, 'result.traits should have a targetPlatform trait with includeInPrompt true'); + ok(result.traits.find((trait) => trait.name === 'targetPlatform')?.promptTextOverride === 'This build targets Windows.', 'result.traits should have a targetPlatform trait with promptTextOverride'); + ok(result.traits.find((trait) => trait.name === 'targetArchitecture'), 'result.traits should have a targetArchitecture trait'); + ok(result.traits.find((trait) => trait.name === 'targetArchitecture')?.value === 'x64', 'result.traits should have a targetArchitecture trait with value "x64"'); + ok(result.traits.find((trait) => trait.name === 'targetArchitecture')?.includeInPrompt, 'result.traits should have a targetArchitecture trait with includeInPrompt true'); + ok(result.traits.find((trait) => trait.name === 'targetArchitecture')?.promptTextOverride === 'This build targets x64.', 'result.traits should have a targetArchitecture trait with promptTextOverride'); + ok(result.traits.find((trait) => trait.name === 'intelliSenseDisclaimerEnd'), 'result.traits should have a intellisenseEnd trait'); + ok(result.traits.find((trait) => trait.name === 'intelliSenseDisclaimerEnd')?.includeInPrompt, 'result.traits should have a intellisenseEnd trait with includeInPrompt true'); + ok(result.traits.find((trait) => trait.name === 'intelliSenseDisclaimerEnd')?.promptTextOverride === 'End of IntelliSense information.', 'result.traits should have a intellisenseEnd trait with promptTextOverride'); + }); + + it('handles errors during provider registration.', async () => { + arrange({}); + + await moduleUnderTest.registerRelatedFilesProvider(); + ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); - ok(mockCopilotApi.registerRelatedFilesProvider.calledThrice, 'registerRelatedFilesProvider should be called three times'); - ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); - ok(getActiveClientStub.callCount !== 0, 'getActiveClient should be called'); - ok(callbackPromise, 'callbackPromise should be defined'); + ok(mockCopilotApi.registerRelatedFilesProvider.notCalled, 'registerRelatedFilesProvider should not be called'); + }); + + const projectContext: ProjectContext = { + language: 'C++', + standardVersion: 'C++17', + compiler: 'MSVC', + targetPlatform: 'Windows', + targetArchitecture: 'x64', + compilerArguments: { "/std:c++\d+": '/std:c++17', "/GR-?": '/GR-', "/EH[ascr-]+": '/EHs-c-', "/await": '/await' } + }; + + it('provides compiler argument traits.', async () => { + arrange({ + vscodeExtension: vscodeExtension, + getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + projectContext: projectContext, + rootUri: vscode.Uri.file('C:\\src\\my_project'), + flags: { + copilotcppIncludeTraits: ['compilerArguments'], + copilotcppMsvcCompilerArgumentFilter: '{"/std:c++\d+": "", "/GR-?": "", "/EH[ascr-]+": "", "/await": ""}' + } + }); + await moduleUnderTest.registerRelatedFilesProvider(); + + const result = await callbackPromise; + ok(result, 'result should be defined'); - ok(result.entries.length === 1, 'result.entries should have 1 included file'); - ok(result.entries[0].toString() === expectedInclude, `result.entries should have "${expectedInclude}"`); ok(result.traits, 'result.traits should be defined'); - ok(result.traits.length === 5, 'result.traits should have 5 traits'); - ok(result.traits[0].name === 'language', 'result.traits[0].name should be "language"'); - ok(result.traits[0].value === 'c++', 'result.traits[0].value should be "c++"'); - ok(result.traits[0].includeInPrompt, 'result.traits[0].includeInPrompt should be true'); - ok(result.traits[0].promptTextOverride === 'The language is c++.', 'result.traits[0].promptTextOverride should be "The language is c++."'); - ok(result.traits[1].name === 'compiler', 'result.traits[1].name should be "compiler"'); - ok(result.traits[1].value === 'msvc', 'result.traits[1].value should be "msvc"'); - ok(result.traits[1].includeInPrompt, 'result.traits[1].includeInPrompt should be true'); - ok(result.traits[1].promptTextOverride === 'This project compiles using msvc.', 'result.traits[1].promptTextOverride should be "This project compiles using msvc."'); - ok(result.traits[2].name === 'standardVersion', 'result.traits[2].name should be "standardVersion"'); - ok(result.traits[2].value === 'c++20', 'result.traits[2].value should be "c++20"'); - ok(result.traits[2].includeInPrompt, 'result.traits[2].includeInPrompt should be true'); - ok(result.traits[2].promptTextOverride === 'This project uses the c++20 language standard.', 'result.traits[2].promptTextOverride should be "This project uses the c++20 language standard."'); - ok(result.traits[3].name === 'targetPlatform', 'result.traits[3].name should be "targetPlatform"'); - ok(result.traits[3].value === 'windows', 'result.traits[3].value should be "windows"'); - ok(result.traits[3].includeInPrompt, 'result.traits[3].includeInPrompt should be true'); - ok(result.traits[3].promptTextOverride === 'This build targets windows.', 'result.traits[3].promptTextOverride should be "This build targets windows."'); - ok(result.traits[4].name === 'targetArchitecture', 'result.traits[4].name should be "targetArchitecture"'); - ok(result.traits[4].value === 'x64', 'result.traits[4].value should be "x64"'); - ok(result.traits[4].includeInPrompt, 'result.traits[4].includeInPrompt should be true'); - ok(result.traits[4].promptTextOverride === 'This build targets x64.', 'result.traits[4].promptTextOverride should be "This build targets x64."'); + ok(result.traits.find((trait) => trait.name === 'compilerArguments'), 'result.traits should have a compiler arguments trait'); + ok(result.traits.find((trait) => trait.name === 'compilerArguments')?.value === '/std:c++17, /GR-, /EHs-c-, /await', 'result.traits should have a compiler arguments trait with value "/std:c++17, /GR-, /EHs-c-, /await"'); + ok(result.traits.find((trait) => trait.name === 'compilerArguments')?.includeInPrompt, 'result.traits should have a compiler arguments trait with includeInPrompt true'); + ok(result.traits.find((trait) => trait.name === 'compilerArguments')?.promptTextOverride === 'The compiler arguments include: /std:c++17, /GR-, /EHs-c-, /await.', 'result.traits should have a compiler arguments trait with promptTextOverride'); + ok(!result.traits.find((trait) => trait.name === 'directAsks'), 'result.traits should not have a direct asks trait'); }); - it('should exclude #cpp traits per copilotcppExcludeTraits.', async () => { - const excludeTraits = ['compiler', 'targetPlatform']; + it('provide direct ask traits of compiler arguments.', async () => { arrange({ vscodeExtension: vscodeExtension, - getIncludeFiles: { includedFiles }, - chatContext: { - language: 'c++', - standardVersion: 'c++20', - compiler: 'msvc', - targetPlatform: 'windows', - targetArchitecture: 'x64' + getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + projectContext: projectContext, + rootUri: vscode.Uri.file('C:\\src\\my_project'), + flags: { + copilotcppIncludeTraits: ['directAsks', 'compilerArguments'], + copilotcppMsvcCompilerArgumentFilter: '{"/std:c++\d+": "", "/await": "", "/GR-?": "", "/EH[ascr-]+": ""}', + copilotcppCompilerArgumentDirectAskMap: '{"/GR-": "Do not generate code using RTTI keywords.", "/EHs-c-": "Do not generate code using exception handling keywords."}' + } + }); + await moduleUnderTest.registerRelatedFilesProvider(); + + const result = await callbackPromise; + + ok(result, 'result should be defined'); + ok(result.traits, 'result.traits should be defined'); + ok(result.traits.find((trait) => trait.name === 'compilerArguments'), 'result.traits should have a compiler arguments trait'); + ok(result.traits.find((trait) => trait.name === 'compilerArguments')?.value === '/std:c++17, /await', 'result.traits should have a compiler arguments trait with value "/std:c++17, /await"'); + ok(result.traits.find((trait) => trait.name === 'compilerArguments')?.includeInPrompt, 'result.traits should have a compiler arguments trait with includeInPrompt true'); + ok(result.traits.find((trait) => trait.name === 'compilerArguments')?.promptTextOverride === 'The compiler arguments include: /std:c++17, /await.', 'result.traits should have a compiler arguments trait with promptTextOverride'); + ok(result.traits.find((trait) => trait.name === 'directAsks'), 'result.traits should have a direct asks trait'); + ok(result.traits.find((trait) => trait.name === 'directAsks')?.value === 'Do not generate code using RTTI keywords. Do not generate code using exception handling keywords. ', 'result.traits should have a direct asks value'); + ok(result.traits.find((trait) => trait.name === 'directAsks')?.includeInPrompt, 'result.traits should have a direct asks trait with includeInPrompt true'); + ok(result.traits.find((trait) => trait.name === 'directAsks')?.promptTextOverride === 'Do not generate code using RTTI keywords. Do not generate code using exception handling keywords. ', 'result.traits should have a direct ask trait with promptTextOverride'); + ok(telemetryStub.calledOnce, 'Telemetry should be called once'); + ok(telemetryStub.calledWithMatch('RelatedFilesProvider', sinon.match({ + "includeTraits": 'directAsks,compilerArguments', + 'traits': 'standardVersion,compilerArguments,directAsks' + }), sinon.match({ + 'duration': sinon.match.number + }))); + }); + + it('ignore compilerArguments trait if empty.', async () => { + arrange({ + vscodeExtension: vscodeExtension, + getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + projectContext: projectContext, + rootUri: vscode.Uri.file('C:\\src\\my_project'), + flags: { + copilotcppIncludeTraits: ['directAsks', 'compilerArguments'], + copilotcppMsvcCompilerArgumentFilter: '{"/std:c++\d+": "", "/await": "", "/GR-?": "", "/EH[ascr-]+": ""}', + copilotcppCompilerArgumentDirectAskMap: '{"/GR-": "abc.", "/EHs-c-": "def.", "/std:c++17": "ghi.", "/await": "jkl."}' + } + }); + await moduleUnderTest.registerRelatedFilesProvider(); + + const result = await callbackPromise; + + ok(result, 'result should be defined'); + ok(result.traits, 'result.traits should be defined'); + ok(result.traits.find((trait) => trait.name === 'compilerArguments') === undefined, 'result.traits should not have a compiler arguments trait'); + ok(result.traits.find((trait) => trait.name === 'directAsks'), 'result.traits should have a direct asks trait'); + ok(telemetryStub.calledOnce, 'Telemetry should be called once'); + ok(telemetryStub.calledWithMatch('RelatedFilesProvider', sinon.match({ + "includeTraits": 'directAsks,compilerArguments', + 'traits': 'standardVersion,directAsks' + }))); + }); + + it('uses only last argument from the duplicates.', async () => { + arrange({ + vscodeExtension: vscodeExtension, + getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + projectContext: { + language: 'C++', + standardVersion: 'C++20', + compiler: 'MSVC', + targetPlatform: 'Windows', + targetArchitecture: 'x64', + compilerArguments: { "/std:c++\d+": '/std:c++20', "/await": '/await' } }, - rootUri, - flags: { copilotcppTraits: true, copilotcppExcludeTraits: excludeTraits } + rootUri: vscode.Uri.file('C:\\src\\my_project'), + flags: { + copilotcppIncludeTraits: ['compilerArguments'], + copilotcppMsvcCompilerArgumentFilter: '{"/std:c++\d+": "", "/await": ""}' + } }); await moduleUnderTest.registerRelatedFilesProvider(); const result = await callbackPromise; - ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); - ok(mockCopilotApi.registerRelatedFilesProvider.calledThrice, 'registerRelatedFilesProvider should be called three times'); - ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); - ok(getActiveClientStub.callCount !== 0, 'getActiveClient should be called'); - ok(callbackPromise, 'callbackPromise should be defined'); ok(result, 'result should be defined'); - ok(result.entries.length === 1, 'result.entries should have 1 included file'); - ok(result.entries[0].toString() === expectedInclude, `result.entries should have "${expectedInclude}"`); ok(result.traits, 'result.traits should be defined'); - ok(result.traits.length === 3, 'result.traits should have 3 traits'); - ok(result.traits.filter(trait => excludeTraits.includes(trait.name)).length === 0, 'result.traits should not include excluded traits'); + ok(result.traits.find((trait) => trait.name === 'compilerArguments'), 'result.traits should have a compiler arguments trait'); + ok(result.traits.find((trait) => trait.name === 'compilerArguments')?.value === '/std:c++20, /await', 'result.traits should have a compiler arguments trait with value "/std:c++20, /await"'); + ok(result.traits.find((trait) => trait.name === 'compilerArguments')?.includeInPrompt, 'result.traits should have a compiler arguments trait with includeInPrompt true'); + ok(result.traits.find((trait) => trait.name === 'compilerArguments')?.promptTextOverride === 'The compiler arguments include: /std:c++20, /await.', 'result.traits should have a compiler arguments trait with promptTextOverride'); }); - it('should handle errors during provider registration', async () => { - arrange({}); + it('provides direct asks trait for absence of arguments.', async () => { + arrange({ + vscodeExtension: vscodeExtension, + getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + projectContext: projectContextNoArgs, + rootUri: vscode.Uri.file('C:\\src\\my_project'), + flags: { + copilotcppIncludeTraits: ['directAsks'], + copilotcppMsvcCompilerArgumentFilter: + '{"/FOO": "/FOO is not set.", "/BAR": "/BAR is not set."}' + } + }); + await moduleUnderTest.registerRelatedFilesProvider(); + + const result = await callbackPromise; + ok(result, 'result should be defined'); + ok(result.traits, 'result.traits should be defined'); + ok(result.traits.find((trait) => trait.name === 'directAsks'), 'result.traits should have a direct asks trait'); + ok(result.traits.find((trait) => trait.name === 'directAsks')?.value === '/FOO is not set. /BAR is not set. ', 'result.traits should have a direct asks value'); + ok(result.traits.find((trait) => trait.name === 'directAsks')?.includeInPrompt, 'result.traits should have a direct asks trait with includeInPrompt true'); + ok(result.traits.find((trait) => trait.name === 'directAsks')?.promptTextOverride === "/FOO is not set. /BAR is not set. ", 'result.traits should have a direct ask trait with promptTextOverride'); + }); + + it('does not accept empty regex.', async () => { + arrange({ + vscodeExtension: vscodeExtension, + getIncludeFiles: { includedFiles: ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] }, + projectContext: projectContextNoArgs, + rootUri: vscode.Uri.file('C:\\src\\my_project'), + flags: { + copilotcppIncludeTraits: ['directAsks'], + copilotcppMsvcCompilerArgumentFilter: + '{"": "Empty regex not allowed."}' + } + }); await moduleUnderTest.registerRelatedFilesProvider(); - ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); - ok(mockCopilotApi.registerRelatedFilesProvider.notCalled, 'registerRelatedFilesProvider should not be called'); + const result = await callbackPromise; + + ok(result, 'result should be defined'); + ok(result.traits, 'result.traits should be defined'); + ok(result.traits.find((trait) => trait.name === 'directAsks') === undefined, 'result.traits should not have a direct asks trait'); }); }); diff --git a/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts b/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts new file mode 100644 index 000000000..f11c048e1 --- /dev/null +++ b/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts @@ -0,0 +1,388 @@ +/* -------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All Rights Reserved. + * See 'LICENSE' in the project root for license information. + * ------------------------------------------------------------------------------------------ */ + +import { ok } from 'assert'; +import { afterEach, beforeEach, describe, it } from 'mocha'; +import * as sinon from 'sinon'; +import * as vscode from 'vscode'; +import * as util from '../../../../src/common'; +import { ChatContextResult, DefaultClient, ProjectContextResult } from '../../../../src/LanguageServer/client'; +import { ClientCollection } from '../../../../src/LanguageServer/clientCollection'; +import * as extension from '../../../../src/LanguageServer/extension'; +import { CppConfigurationLanguageModelTool, getProjectContext } from '../../../../src/LanguageServer/lmTool'; +import * as telemetry from '../../../../src/telemetry'; + +describe('CppConfigurationLanguageModelTool Tests', () => { + let mockLanguageModelToolInvocationOptions: sinon.SinonStubbedInstance>; + let activeClientStub: sinon.SinonStubbedInstance; + let mockTextEditorStub: MockTextEditor; + let mockTextDocumentStub: sinon.SinonStubbedInstance; + let telemetryStub: sinon.SinonStub; + + class MockLanguageModelToolInvocationOptions implements vscode.LanguageModelToolInvocationOptions { + tokenizationOptions?: vscode.LanguageModelToolTokenizationOptions | undefined; + toolInvocationToken: undefined; + input: undefined; + } + class MockTextEditor implements vscode.TextEditor { + constructor(selection: vscode.Selection, selections: readonly vscode.Selection[], visibleRanges: readonly vscode.Range[], options: vscode.TextEditorOptions, document: vscode.TextDocument, viewColumn?: vscode.ViewColumn) { + this.selection = selection; + this.selections = selections; + this.visibleRanges = visibleRanges; + this.options = options; + this.viewColumn = viewColumn; + this.document = document; + } + selection: vscode.Selection; + selections: readonly vscode.Selection[]; + visibleRanges: readonly vscode.Range[]; + options: vscode.TextEditorOptions; + viewColumn: vscode.ViewColumn | undefined; + edit(_callback: (editBuilder: vscode.TextEditorEdit) => void, _options?: { readonly undoStopBefore: boolean; readonly undoStopAfter: boolean }): Thenable { + throw new Error('Method not implemented.'); + } + insertSnippet(_snippet: vscode.SnippetString, _location?: vscode.Position | vscode.Range | readonly vscode.Position[] | readonly vscode.Range[], _options?: { readonly undoStopBefore: boolean; readonly undoStopAfter: boolean }): Thenable { + throw new Error('Method not implemented.'); + } + setDecorations(_decorationType: vscode.TextEditorDecorationType, _rangesOrOptions: readonly vscode.Range[] | readonly vscode.DecorationOptions[]): void { + throw new Error('Method not implemented.'); + } + revealRange(_range: vscode.Range, _revealType?: vscode.TextEditorRevealType): void { + throw new Error('Method not implemented.'); + } + show(_column?: vscode.ViewColumn): void { + throw new Error('Method not implemented.'); + } + hide(): void { + throw new Error('Method not implemented.'); + } + document: vscode.TextDocument; + } + class MockTextDocument implements vscode.TextDocument { + uri: vscode.Uri; + constructor(uri: vscode.Uri, fileName: string, isUntitled: boolean, languageId: string, version: number, isDirty: boolean, isClosed: boolean, eol: vscode.EndOfLine, lineCount: number) { + this.uri = uri; + this.fileName = fileName; + this.isUntitled = isUntitled; + this.languageId = languageId; + this.version = version; + this.isDirty = isDirty; + this.isClosed = isClosed; + this.eol = eol; + this.lineCount = lineCount; + } + fileName: string; + isUntitled: boolean; + languageId: string; + version: number; + isDirty: boolean; + isClosed: boolean; + save(): Thenable { + throw new Error('Method not implemented.'); + } + eol: vscode.EndOfLine; + lineCount: number; + + lineAt(line: number): vscode.TextLine; + // eslint-disable-next-line @typescript-eslint/unified-signatures + lineAt(position: vscode.Position): vscode.TextLine; + lineAt(_arg: number | vscode.Position): vscode.TextLine { + throw new Error('Method not implemented.'); + } + offsetAt(_position: vscode.Position): number { + throw new Error('Method not implemented.'); + } + positionAt(_offset: number): vscode.Position { + throw new Error('Method not implemented.'); + } + getText(_range?: vscode.Range): string { + throw new Error('Method not implemented.'); + } + getWordRangeAtPosition(_position: vscode.Position, _regex?: RegExp): vscode.Range | undefined { + throw new Error('Method not implemented.'); + } + validateRange(_range: vscode.Range): vscode.Range { + throw new Error('Method not implemented.'); + } + validatePosition(_position: vscode.Position): vscode.Position { + throw new Error('Method not implemented.'); + } + } + beforeEach(() => { + sinon.stub(util, 'extensionContext').value({ extension: { id: 'test-extension-id' } }); + + mockTextDocumentStub = sinon.createStubInstance(MockTextDocument); + mockTextEditorStub = new MockTextEditor(new vscode.Selection(0, 0, 0, 0), [], [], { tabSize: 4 }, mockTextDocumentStub); + mockLanguageModelToolInvocationOptions = new MockLanguageModelToolInvocationOptions(); + activeClientStub = sinon.createStubInstance(DefaultClient); + const clientsStub = sinon.createStubInstance(ClientCollection); + sinon.stub(extension, 'getClients').returns(clientsStub); + sinon.stub(clientsStub, 'ActiveClient').get(() => activeClientStub); + activeClientStub.getIncludes.resolves({ includedFiles: [] }); + sinon.stub(vscode.window, 'activeTextEditor').get(() => mockTextEditorStub); + telemetryStub = sinon.stub(telemetry, 'logCopilotEvent').returns(); + }); + + afterEach(() => { + sinon.restore(); + }); + + const arrangeChatContextFromCppTools = ({ chatContextFromCppTools, isCpp, isHeaderFile }: + { chatContextFromCppTools?: ChatContextResult; isCpp?: boolean; isHeaderFile?: boolean } = + { chatContextFromCppTools: undefined, isCpp: undefined, isHeaderFile: false } + ) => { + activeClientStub.getChatContext.resolves(chatContextFromCppTools); + sinon.stub(util, 'isCpp').returns(isCpp ?? true); + sinon.stub(util, 'isHeaderFile').returns(isHeaderFile ?? false); + }; + + const arrangeProjectContextFromCppTools = ({ projectContextFromCppTools, isCpp, isHeaderFile }: + { projectContextFromCppTools?: ProjectContextResult; isCpp?: boolean; isHeaderFile?: boolean } = + { projectContextFromCppTools: undefined, isCpp: undefined, isHeaderFile: false } + ) => { + activeClientStub.getProjectContext.resolves(projectContextFromCppTools); + sinon.stub(util, 'isCpp').returns(isCpp ?? true); + sinon.stub(util, 'isHeaderFile').returns(isHeaderFile ?? false); + }; + + it('should log telemetry and provide #cpp chat context.', async () => { + arrangeChatContextFromCppTools({ + chatContextFromCppTools: { + language: 'cpp', + standardVersion: 'c++20', + compiler: 'msvc', + targetPlatform: 'windows', + targetArchitecture: 'x64' + } + }); + + const result = await new CppConfigurationLanguageModelTool().invoke(mockLanguageModelToolInvocationOptions, new vscode.CancellationTokenSource().token); + + ok(telemetryStub.calledOnce, 'Telemetry should be called once'); + ok(telemetryStub.calledWithMatch('Chat/Tool/cpp', sinon.match({ + "language": 'C++', + "compiler": 'MSVC', + "standardVersion": 'C++20', + "targetPlatform": 'Windows', + "targetArchitecture": 'x64' + }))); + ok(result, 'result should not be undefined'); + const text = result.content[0] as vscode.LanguageModelTextPart; + ok(text, 'result should contain a text part'); + ok(text.value === 'The user is working on a C++ project. The project uses language version C++20. The project compiles using the MSVC compiler. The project targets the Windows platform. The project targets the x64 architecture. '); + }); + + const testGetProjectContext = async ({ + compiler, + expectedCompiler, + context, + compilerArguments: compilerArguments, + expectedCompilerArguments + }: { + compiler: string; + expectedCompiler: string; + context: { flags: Record }; + compilerArguments: string[]; + expectedCompilerArguments: Record; + }) => { + arrangeProjectContextFromCppTools({ + projectContextFromCppTools: { + language: 'cpp', + standardVersion: 'c++20', + compiler: compiler, + targetPlatform: 'windows', + targetArchitecture: 'x64', + fileContext: { + compilerArguments: compilerArguments + } + } + }); + + const result = await getProjectContext(mockTextDocumentStub.uri, context, new vscode.CancellationTokenSource().token); + + ok(result, 'result should not be undefined'); + ok(result.language === 'C++'); + ok(result.compiler === expectedCompiler); + ok(result.standardVersion === 'C++20'); + ok(result.targetPlatform === 'Windows'); + ok(result.targetArchitecture === 'x64'); + ok(JSON.stringify(result.compilerArguments) === JSON.stringify(expectedCompilerArguments)); + }; + + it('should provide compilerArguments based on copilotcppMsvcCompilerArgumentFilter.', async () => { + await testGetProjectContext({ + compiler: 'msvc', + expectedCompiler: 'MSVC', + context: { flags: { copilotcppMsvcCompilerArgumentFilter: '{"foo-?": ""}' } }, + compilerArguments: ['foo', 'bar', 'abc', 'foo-'], + expectedCompilerArguments: { 'foo-?': 'foo-' } + }); + }); + + it('should provide compilerArguments based on copilotcppClangCompilerArgumentFilter.', async () => { + await testGetProjectContext({ + compiler: 'clang', + expectedCompiler: 'Clang', + context: { flags: { copilotcppClangCompilerArgumentFilter: '{"foo": "", "bar": ""}' } }, + compilerArguments: ['foo', 'bar', 'abc'], + expectedCompilerArguments: { 'foo': 'foo', 'bar': 'bar' } + }); + }); + + it('should support spaces between argument and value.', async () => { + await testGetProjectContext({ + compiler: 'clang', + expectedCompiler: 'Clang', + context: { flags: { copilotcppClangCompilerArgumentFilter: '{"-std\\\\sc\\\\+\\\\+\\\\d+": ""}' } }, + compilerArguments: ['-std', 'c++17', '-std', 'foo', '-std', 'c++11', '-std', 'bar'], + expectedCompilerArguments: { '-std\\sc\\+\\+\\d+': '-std c++11' } + }); + }); + + it('should provide compilerArguments based on copilotcppGccCompilerArgumentFilter.', async () => { + await testGetProjectContext({ + compiler: 'gcc', + expectedCompiler: 'GCC', + context: { flags: { copilotcppGccCompilerArgumentFilter: '{"foo": "", "bar": ""}' } }, + compilerArguments: ['foo', 'bar', 'abc', 'bar', 'foo', 'bar'], + expectedCompilerArguments: { 'foo': 'foo', 'bar': 'bar' } + }); + }); + + it('should provide empty array for each regex if nothing matches.', async () => { + await testGetProjectContext({ + compiler: 'msvc', + expectedCompiler: 'MSVC', + context: { flags: { copilotcppMsvcCompilerArgumentFilter: '{"foo": "", "bar": ""}' } }, + compilerArguments: [], + expectedCompilerArguments: {} + }); + }); + + it('should filter out all compilerArguments by default.', async () => { + await testGetProjectContext({ + compiler: 'gcc', + expectedCompiler: 'GCC', + context: { flags: {} }, + compilerArguments: ['foo', 'bar'], + expectedCompilerArguments: {} + }); + }); + + it('should filter out all compilerArguments for empty regex.', async () => { + await testGetProjectContext({ + compiler: 'msvc', + expectedCompiler: 'MSVC', + context: { flags: { copilotcppMsvcCompilerArgumentFilter: '{"": ""}' } }, + compilerArguments: ['foo', 'bar'], + expectedCompilerArguments: {} + }); + }); + + it('should filter out all compilerArguments for empty copilotcppMsvcCompilerArgumentFilter.', async () => { + await testGetProjectContext({ + compiler: 'msvc', + expectedCompiler: 'MSVC', + context: { + flags: { + copilotcppMsvcCompilerArgumentFilter: '' + } + }, + compilerArguments: ['foo', 'bar'], + expectedCompilerArguments: {} + }); + }); + + it('should filter out all compilerArguments for invalid copilotcppMsvcCompilerArgumentFilter.', async () => { + await testGetProjectContext({ + compiler: 'msvc', + expectedCompiler: 'MSVC', + context: { + flags: { + copilotcppMsvcCompilerArgumentFilter: 'Not a map' + } + }, + compilerArguments: ['foo', 'bar'], + expectedCompilerArguments: {} + }); + }); + + it('should filter out all compilerArguments for unknown compilers.', async () => { + await testGetProjectContext({ + compiler: 'unknown', + expectedCompiler: '', + context: { + flags: { + copilotcppMsvcCompilerArgumentFilter: '{"(foo|bar)": ""}', + copilotcppClangCompilerArgumentFilter: '{"(foo|bar)": ""}', + copilotcppGccCompilerArgumentFilter: '{"(foo|bar)": ""}' + } + }, + compilerArguments: ['foo', 'bar'], + expectedCompilerArguments: {} + }); + }); + + it('should send telemetry.', async () => { + const input = { + compiler: 'msvc', + expectedCompiler: 'MSVC', + context: { flags: { copilotcppMsvcCompilerArgumentFilter: '{"foo-?": "", "": "", "bar": "", "xyz": ""}' } }, + compilerArguments: ['foo', 'bar', 'foo-', 'abc'], + expectedCompilerArguments: { 'foo-?': 'foo-', 'bar': 'bar' } + }; + await testGetProjectContext(input); + + ok(telemetryStub.calledOnce, 'Telemetry should be called once'); + ok(telemetryStub.calledWithMatch('ProjectContext', sinon.match({ + "language": 'C++', + "compiler": input.expectedCompiler, + "standardVersion": 'C++20', + "targetPlatform": 'Windows', + "targetArchitecture": 'x64', + "filteredCompilerArguments": "foo,foo-,bar", + "filters": "foo-?,bar,xyz" + }), sinon.match({ + "compilerArgumentCount": input.compilerArguments.length, + 'duration': sinon.match.number + }))); + }); + + it('should not send telemetry for unknown values', async () => { + arrangeProjectContextFromCppTools({ + projectContextFromCppTools: { + language: 'java', + standardVersion: 'gnu++17', + compiler: 'javac', + targetPlatform: 'arduino', + targetArchitecture: 'bar', + fileContext: { + compilerArguments: [] + } + } + }); + + const result = await getProjectContext(mockTextDocumentStub.uri, { flags: {} }, new vscode.CancellationTokenSource().token); + + ok(telemetryStub.calledOnce, 'Telemetry should be called once'); + ok(telemetryStub.calledWithMatch('ProjectContext', sinon.match({ + "targetArchitecture": 'bar' + }), sinon.match({ + "compilerArgumentCount": 0 + }))); + ok(telemetryStub.calledWithMatch('ProjectContext', sinon.match(property => + property['language'] === undefined && + property['compiler'] === undefined && + property['standardVersion'] === undefined && + property['targetPlatform'] === undefined))); + ok(result, 'result should not be undefined'); + ok(result.language === ''); + ok(result.compiler === ''); + ok(result.standardVersion === ''); + ok(result.targetPlatform === ''); + ok(result.targetArchitecture === 'bar'); + ok(Object.keys(result.compilerArguments).length === 0); + }); +}); From 9efde543c505a94122112d190239314f339e7598 Mon Sep 17 00:00:00 2001 From: adrianstephens Date: Mon, 2 Dec 2024 19:19:52 -0800 Subject: [PATCH 34/78] pass optional parameter to C_Cpp.ConfigurationSelect (#12993) --- Extension/src/LanguageServer/client.ts | 6 +++--- Extension/src/LanguageServer/extension.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 82f50a690..ba353a858 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -776,7 +776,7 @@ export interface Client { PauseCodeAnalysis(): void; ResumeCodeAnalysis(): void; CancelCodeAnalysis(): void; - handleConfigurationSelectCommand(): Promise; + handleConfigurationSelectCommand(config?: string): Promise; handleConfigurationProviderSelectCommand(): Promise; handleShowActiveCodeAnalysisCommands(): Promise; handleShowIdleCodeAnalysisCommands(): Promise; @@ -3271,11 +3271,11 @@ export class DefaultClient implements Client { /** * command handlers */ - public async handleConfigurationSelectCommand(): Promise { + public async handleConfigurationSelectCommand(config?: string): Promise { await this.ready; const configNames: string[] | undefined = this.configuration.ConfigurationNames; if (configNames) { - const index: number = await ui.showConfigurations(configNames); + const index: number = config ? configNames.indexOf(config) : await ui.showConfigurations(configNames); if (index < 0) { return; } diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index 02dd3e886..8bc64f82f 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -584,13 +584,13 @@ async function installCompiler(sender?: any): Promise { telemetry.logLanguageServerEvent('installCompiler', telemetryProperties); } -async function onSelectConfiguration(): Promise { +async function onSelectConfiguration(config?: string): Promise { if (!isFolderOpen()) { void vscode.window.showInformationMessage(localize("configuration.select.first", 'Open a folder first to select a configuration.')); } else { // This only applies to the active client. You cannot change the configuration for // a client that is not active since that client's UI will not be visible. - return clients.ActiveClient.handleConfigurationSelectCommand(); + return clients.ActiveClient.handleConfigurationSelectCommand(config); } } From 74d691f4313d75597f96ff0710973acb0dfcd4c7 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Tue, 3 Dec 2024 15:21:03 -0800 Subject: [PATCH 35/78] Update mac runner to macos-14 (#13013) --- .github/workflows/ci_mac.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_mac.yml b/.github/workflows/ci_mac.yml index 199629a7e..7dfe198dd 100644 --- a/.github/workflows/ci_mac.yml +++ b/.github/workflows/ci_mac.yml @@ -10,6 +10,6 @@ jobs: job: uses: ./.github/workflows/job-compile-and-test.yml with: - runner-env: macos-12 + runner-env: macos-14 platform: mac yarn-args: --network-timeout 100000 \ No newline at end of file From 052bcffe371b8cb361e3d3ed396958a371b0d2c2 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Wed, 4 Dec 2024 15:01:24 -0800 Subject: [PATCH 36/78] Fix an unnecessary cancel/re-request with GitHub Copilot requests (and fix some other bugs with Copilot exception handling) (#12988) * Fix an unnecessary cancel/re-request with GitHub Copilot requests. * A couple bug fixes from the previous PR. * Fix another loc case. --- Extension/src/LanguageServer/client.ts | 33 +++++++++++-------- .../src/LanguageServer/copilotProviders.ts | 15 +++++---- Extension/src/LanguageServer/lmTool.ts | 11 ++++--- .../SingleRootProject/tests/lmTool.test.ts | 4 +-- 4 files changed, 37 insertions(+), 26 deletions(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index ba353a858..d937cff04 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -804,9 +804,9 @@ export interface Client { getShowConfigureIntelliSenseButton(): boolean; setShowConfigureIntelliSenseButton(show: boolean): void; addTrustedCompiler(path: string): Promise; - getIncludes(maxDepth: number, token: vscode.CancellationToken): Promise; + getIncludes(maxDepth: number): Promise; getChatContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise; - getProjectContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise; + getProjectContext(uri: vscode.Uri): Promise; } export function createClient(workspaceFolder?: vscode.WorkspaceFolder): Client { @@ -2228,25 +2228,31 @@ export class DefaultClient implements Client { await this.languageClient.sendNotification(DidOpenNotification, params); } - public async getIncludes(maxDepth: number, token: vscode.CancellationToken): Promise { + /** + * Copilot completion-related requests (e.g. getIncludes and getProjectContext) will have their cancellation tokens cancelled + * if the current request times out (showing the user completion results without context info), + * but the results can still be used for future requests (due to caching) so it's better to return results instead of cancelling. + * This is different behavior from the getChatContext, which does handle cancel requests, since the request blocks + * the UI results and always re-requests (no caching). + */ + + public async getIncludes(maxDepth: number): Promise { const params: GetIncludesParams = { maxDepth: maxDepth }; await this.ready; - return DefaultClient.withLspCancellationHandling( - () => this.languageClient.sendRequest(IncludesRequest, params, token), token); + return this.languageClient.sendRequest(IncludesRequest, params); } - public async getChatContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise { + public async getProjectContext(uri: vscode.Uri): Promise { const params: TextDocumentIdentifier = { uri: uri.toString() }; - await withCancellation(this.ready, token); - return DefaultClient.withLspCancellationHandling( - () => this.languageClient.sendRequest(CppContextRequest, params, token), token); + await this.ready; + return this.languageClient.sendRequest(ProjectContextRequest, params); } - public async getProjectContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise { + public async getChatContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise { const params: TextDocumentIdentifier = { uri: uri.toString() }; await withCancellation(this.ready, token); return DefaultClient.withLspCancellationHandling( - () => this.languageClient.sendRequest(ProjectContextRequest, params, token), token); + () => this.languageClient.sendRequest(CppContextRequest, params, token), token); } /** @@ -2340,7 +2346,6 @@ export class DefaultClient implements Client { throw e; } } - if (token.isCancellationRequested) { throw new vscode.CancellationError(); } @@ -4151,7 +4156,7 @@ class NullClient implements Client { getShowConfigureIntelliSenseButton(): boolean { return false; } setShowConfigureIntelliSenseButton(show: boolean): void { } addTrustedCompiler(path: string): Promise { return Promise.resolve(); } - getIncludes(maxDepth: number, token: vscode.CancellationToken): Promise { return Promise.resolve({} as GetIncludesResult); } + getIncludes(maxDepth: number): Promise { return Promise.resolve({} as GetIncludesResult); } getChatContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise { return Promise.resolve({} as ChatContextResult); } - getProjectContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise { return Promise.resolve({} as ProjectContextResult); } + getProjectContext(uri: vscode.Uri): Promise { return Promise.resolve({} as ProjectContextResult); } } diff --git a/Extension/src/LanguageServer/copilotProviders.ts b/Extension/src/LanguageServer/copilotProviders.ts index 2433e1695..a78fdfa5b 100644 --- a/Extension/src/LanguageServer/copilotProviders.ts +++ b/Extension/src/LanguageServer/copilotProviders.ts @@ -5,7 +5,7 @@ 'use strict'; import * as vscode from 'vscode'; -import { localize } from 'vscode-nls'; +import * as nls from 'vscode-nls'; import * as util from '../common'; import * as logger from '../logger'; import * as telemetry from '../telemetry'; @@ -13,6 +13,9 @@ import { GetIncludesResult } from './client'; import { getActiveClient } from './extension'; import { getCompilerArgumentFilterMap, getProjectContext } from './lmTool'; +nls.config({ messageFormat: nls.MessageFormat.bundle, bundleFormat: nls.BundleFormat.standalone })(); +const localize: nls.LocalizeFunc = nls.loadMessageBundle(); + export interface CopilotTrait { name: string; value: string; @@ -38,14 +41,14 @@ export async function registerRelatedFilesProvider(): Promise { for (const languageId of ['c', 'cpp', 'cuda-cpp']) { api.registerRelatedFilesProvider( { extensionId: util.extensionContext.extension.id, languageId }, - async (uri: vscode.Uri, context: { flags: Record }, token: vscode.CancellationToken) => { + async (uri: vscode.Uri, context: { flags: Record }) => { const start = performance.now(); const telemetryProperties: Record = {}; const telemetryMetrics: Record = {}; try { - const getIncludesHandler = async () => (await getIncludesWithCancellation(1, token))?.includedFiles.map(file => vscode.Uri.file(file)) ?? []; + const getIncludesHandler = async () => (await getIncludes(1))?.includedFiles.map(file => vscode.Uri.file(file)) ?? []; const getTraitsHandler = async () => { - const projectContext = await getProjectContext(uri, context, token); + const projectContext = await getProjectContext(uri, context); if (!projectContext) { return undefined; @@ -154,9 +157,9 @@ export async function registerRelatedFilesProvider(): Promise { } } -async function getIncludesWithCancellation(maxDepth: number, token: vscode.CancellationToken): Promise { +async function getIncludes(maxDepth: number): Promise { const activeClient = getActiveClient(); - const includes = await activeClient.getIncludes(maxDepth, token); + const includes = await activeClient.getIncludes(maxDepth); const wksFolder = activeClient.RootUri?.toString(); if (!wksFolder) { diff --git a/Extension/src/LanguageServer/lmTool.ts b/Extension/src/LanguageServer/lmTool.ts index 746ff3829..50240fdd7 100644 --- a/Extension/src/LanguageServer/lmTool.ts +++ b/Extension/src/LanguageServer/lmTool.ts @@ -5,7 +5,7 @@ 'use strict'; import * as vscode from 'vscode'; -import { localize } from 'vscode-nls'; +import * as nls from 'vscode-nls'; import * as util from '../common'; import * as logger from '../logger'; import * as telemetry from '../telemetry'; @@ -13,6 +13,9 @@ import { ChatContextResult, ProjectContextResult } from './client'; import { getClients } from './extension'; import { checkDuration } from './utils'; +nls.config({ messageFormat: nls.MessageFormat.bundle, bundleFormat: nls.BundleFormat.standalone })(); +const localize: nls.LocalizeFunc = nls.loadMessageBundle(); + const MSVC: string = 'MSVC'; const Clang: string = 'Clang'; const GCC: string = 'GCC'; @@ -127,11 +130,11 @@ function filterCompilerArguments(compiler: string, compilerArguments: string[], return result; } -export async function getProjectContext(uri: vscode.Uri, context: { flags: Record }, token: vscode.CancellationToken): Promise { +export async function getProjectContext(uri: vscode.Uri, context: { flags: Record }): Promise { const telemetryProperties: Record = {}; const telemetryMetrics: Record = {}; try { - const projectContext = await checkDuration(async () => await getClients()?.ActiveClient?.getProjectContext(uri, token) ?? undefined); + const projectContext = await checkDuration(async () => await getClients()?.ActiveClient?.getProjectContext(uri) ?? undefined); telemetryMetrics["duration"] = projectContext.duration; if (!projectContext.result) { return undefined; @@ -177,7 +180,7 @@ export async function getProjectContext(uri: vscode.Uri, context: { flags: Recor // Intentionally swallow any exception. } telemetryProperties["error"] = "true"; - return undefined; + throw exception; // Throw the exception for auto-retry. } finally { telemetry.logCopilotEvent('ProjectContext', telemetryProperties, telemetryMetrics); } diff --git a/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts b/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts index f11c048e1..afcf90366 100644 --- a/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts +++ b/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts @@ -200,7 +200,7 @@ describe('CppConfigurationLanguageModelTool Tests', () => { } }); - const result = await getProjectContext(mockTextDocumentStub.uri, context, new vscode.CancellationTokenSource().token); + const result = await getProjectContext(mockTextDocumentStub.uri, context); ok(result, 'result should not be undefined'); ok(result.language === 'C++'); @@ -364,7 +364,7 @@ describe('CppConfigurationLanguageModelTool Tests', () => { } }); - const result = await getProjectContext(mockTextDocumentStub.uri, { flags: {} }, new vscode.CancellationTokenSource().token); + const result = await getProjectContext(mockTextDocumentStub.uri, { flags: {} }); ok(telemetryStub.calledOnce, 'Telemetry should be called once'); ok(telemetryStub.calledWithMatch('ProjectContext', sinon.match({ From 44b736e84a5cfa61ced454b445b860ceb895c867 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Wed, 4 Dec 2024 18:55:51 -0800 Subject: [PATCH 37/78] Update changelog for 1.23.2 (#13020) --- Extension/CHANGELOG.md | 22 ++++++++++++++++++++++ Extension/package.json | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index da554b2e1..641684adc 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,5 +1,27 @@ # C/C++ for Visual Studio Code Changelog +### Version 1.23.2: December 5, 2024 +### Enhancements +* Add handling of `-fno-char8_t` and `-fchar8_t` compiler arguments. [#12968](https://github.com/microsoft/vscode-cpptools/issues/12968) +* Add support for providing well-known compiler argument information to Copilot Completions. [PR #12979](https://github.com/microsoft/vscode-cpptools/pull/12979) +* Fixed unnecessary cancellation of Copilot context requests. [PR #12988](https://github.com/microsoft/vscode-cpptools/pull/12988) +* Add support for passing an additional parameter to `C_Cpp.ConfigurationSelect` command. [PR #12993](https://github.com/microsoft/vscode-cpptools/pull/12993) + * Thank you for the contribution. [@adrianstephens](https://github.com/adrianstephens) +* Update clang-format and clang-tidy from 19.1.2 to 19.1.5. +* Changes to how paths are internally canonicalized on Linux and macOS, avoiding file system access to improve performance and delay resolution of symbolic links. + +### Bug Fixes +* Increase clang-format timeout from 10 seconds to 30 seconds. [#10213](https://github.com/microsoft/vscode-cpptools/issues/10213) +* Fix casing of path in include completion tooltip on Windows. [#12895](https://github.com/microsoft/vscode-cpptools/issues/12895) +* Fix pattern matching of sections in `.editorConfig` files. [#12933](https://github.com/microsoft/vscode-cpptools/issues/12933) +* Fix handling of relative paths passed to cl.exe `/reference` argument. [#12944](https://github.com/microsoft/vscode-cpptools/issues/12944) +* Fix a leak of compile command file watchers. [#12946](https://github.com/microsoft/vscode-cpptools/issues/12946) + * Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12948](https://github.com/microsoft/vscode-cpptools/pull/12948) +* Fix a compile commands fallback logic issue. [#12947](https://github.com/microsoft/vscode-cpptools/issues/12947) + * Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12948](https://github.com/microsoft/vscode-cpptools/pull/12948) +* Fix an issue in which a `didOpen` event was processed before the language client was fully started. [#12954](https://github.com/microsoft/vscode-cpptools/issues/12954) +* Fix IntelliSense issues related to large header files (>32K) and encodings other than UTF-8. + ### Version 1.23.1: November 6, 2024 ### Bug Fixes * A potential fix for a crash during process shutdown (in `uv_run`). [#12668](https://github.com/microsoft/vscode-cpptools/issues/12668) diff --git a/Extension/package.json b/Extension/package.json index 4f1f849f9..f1f96ac3e 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -2,7 +2,7 @@ "name": "cpptools", "displayName": "C/C++", "description": "C/C++ IntelliSense, debugging, and code browsing.", - "version": "1.23.1-main", + "version": "1.23.2-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", From 05d43dc2f7a814d19489fff5e2db1719a85b69c5 Mon Sep 17 00:00:00 2001 From: "CSIGS@microsoft.com" Date: Thu, 5 Dec 2024 12:09:39 -0800 Subject: [PATCH 38/78] [Auto] Localization - Translated Strings (#12869) --- .../chs/src/Debugger/configurationProvider.i18n.json | 2 +- .../chs/src/LanguageServer/configurations.i18n.json | 1 - .../chs/src/LanguageServer/copilotProviders.i18n.json | 8 ++++++++ Extension/i18n/chs/src/LanguageServer/lmTool.i18n.json | 9 +++++++++ Extension/i18n/chs/src/nativeStrings.i18n.json | 3 ++- .../open-developer-command-prompt.md.i18n.json | 2 +- .../install-compiler-windows.md.i18n.json | 2 +- .../install-compiler-windows10.md.i18n.json | 2 +- .../install-compiler-windows11.md.i18n.json | 2 +- .../cht/src/LanguageServer/configurations.i18n.json | 1 - .../cht/src/LanguageServer/copilotProviders.i18n.json | 8 ++++++++ Extension/i18n/cht/src/LanguageServer/lmTool.i18n.json | 9 +++++++++ Extension/i18n/cht/src/nativeStrings.i18n.json | 3 ++- Extension/i18n/csy/package.i18n.json | 2 +- .../csy/src/LanguageServer/configurations.i18n.json | 1 - .../csy/src/LanguageServer/copilotProviders.i18n.json | 8 ++++++++ Extension/i18n/csy/src/LanguageServer/lmTool.i18n.json | 9 +++++++++ Extension/i18n/csy/src/nativeStrings.i18n.json | 3 ++- Extension/i18n/deu/package.i18n.json | 2 +- .../deu/src/LanguageServer/configurations.i18n.json | 1 - .../deu/src/LanguageServer/copilotProviders.i18n.json | 8 ++++++++ Extension/i18n/deu/src/LanguageServer/lmTool.i18n.json | 9 +++++++++ Extension/i18n/deu/src/nativeStrings.i18n.json | 3 ++- Extension/i18n/esn/package.i18n.json | 2 +- .../esn/src/LanguageServer/configurations.i18n.json | 1 - .../esn/src/LanguageServer/copilotProviders.i18n.json | 8 ++++++++ Extension/i18n/esn/src/LanguageServer/lmTool.i18n.json | 9 +++++++++ Extension/i18n/esn/src/nativeStrings.i18n.json | 3 ++- Extension/i18n/fra/package.i18n.json | 2 +- .../fra/src/LanguageServer/configurations.i18n.json | 1 - .../fra/src/LanguageServer/copilotProviders.i18n.json | 8 ++++++++ Extension/i18n/fra/src/LanguageServer/lmTool.i18n.json | 9 +++++++++ Extension/i18n/fra/src/nativeStrings.i18n.json | 3 ++- Extension/i18n/ita/package.i18n.json | 6 +++--- .../i18n/ita/src/LanguageServer/codeAnalysis.i18n.json | 4 ++-- .../ita/src/LanguageServer/configurations.i18n.json | 1 - .../ita/src/LanguageServer/copilotProviders.i18n.json | 8 ++++++++ .../i18n/ita/src/LanguageServer/extension.i18n.json | 2 +- Extension/i18n/ita/src/LanguageServer/lmTool.i18n.json | 9 +++++++++ Extension/i18n/ita/src/LanguageServer/ui.i18n.json | 2 +- Extension/i18n/ita/src/nativeStrings.i18n.json | 5 +++-- Extension/i18n/jpn/package.i18n.json | 4 ++-- .../jpn/src/LanguageServer/configurations.i18n.json | 1 - .../jpn/src/LanguageServer/copilotProviders.i18n.json | 8 ++++++++ Extension/i18n/jpn/src/LanguageServer/lmTool.i18n.json | 9 +++++++++ Extension/i18n/jpn/src/nativeStrings.i18n.json | 3 ++- Extension/i18n/kor/package.i18n.json | 4 ++-- .../kor/src/LanguageServer/configurations.i18n.json | 1 - .../kor/src/LanguageServer/copilotProviders.i18n.json | 8 ++++++++ Extension/i18n/kor/src/LanguageServer/lmTool.i18n.json | 9 +++++++++ Extension/i18n/kor/src/nativeStrings.i18n.json | 3 ++- Extension/i18n/plk/package.i18n.json | 4 ++-- .../plk/src/LanguageServer/configurations.i18n.json | 1 - .../plk/src/LanguageServer/copilotProviders.i18n.json | 8 ++++++++ Extension/i18n/plk/src/LanguageServer/lmTool.i18n.json | 9 +++++++++ Extension/i18n/plk/src/nativeStrings.i18n.json | 3 ++- Extension/i18n/ptb/package.i18n.json | 10 +++++----- .../ptb/src/LanguageServer/configurations.i18n.json | 1 - .../ptb/src/LanguageServer/copilotProviders.i18n.json | 8 ++++++++ Extension/i18n/ptb/src/LanguageServer/lmTool.i18n.json | 9 +++++++++ Extension/i18n/ptb/src/nativeStrings.i18n.json | 3 ++- Extension/i18n/rus/package.i18n.json | 2 +- .../rus/src/LanguageServer/configurations.i18n.json | 1 - .../rus/src/LanguageServer/copilotProviders.i18n.json | 8 ++++++++ Extension/i18n/rus/src/LanguageServer/lmTool.i18n.json | 9 +++++++++ Extension/i18n/rus/src/nativeStrings.i18n.json | 3 ++- Extension/i18n/trk/package.i18n.json | 6 +++--- .../trk/src/LanguageServer/configurations.i18n.json | 1 - .../trk/src/LanguageServer/copilotProviders.i18n.json | 8 ++++++++ Extension/i18n/trk/src/LanguageServer/lmTool.i18n.json | 9 +++++++++ Extension/i18n/trk/src/nativeStrings.i18n.json | 3 ++- 71 files changed, 279 insertions(+), 58 deletions(-) create mode 100644 Extension/i18n/chs/src/LanguageServer/copilotProviders.i18n.json create mode 100644 Extension/i18n/chs/src/LanguageServer/lmTool.i18n.json create mode 100644 Extension/i18n/cht/src/LanguageServer/copilotProviders.i18n.json create mode 100644 Extension/i18n/cht/src/LanguageServer/lmTool.i18n.json create mode 100644 Extension/i18n/csy/src/LanguageServer/copilotProviders.i18n.json create mode 100644 Extension/i18n/csy/src/LanguageServer/lmTool.i18n.json create mode 100644 Extension/i18n/deu/src/LanguageServer/copilotProviders.i18n.json create mode 100644 Extension/i18n/deu/src/LanguageServer/lmTool.i18n.json create mode 100644 Extension/i18n/esn/src/LanguageServer/copilotProviders.i18n.json create mode 100644 Extension/i18n/esn/src/LanguageServer/lmTool.i18n.json create mode 100644 Extension/i18n/fra/src/LanguageServer/copilotProviders.i18n.json create mode 100644 Extension/i18n/fra/src/LanguageServer/lmTool.i18n.json create mode 100644 Extension/i18n/ita/src/LanguageServer/copilotProviders.i18n.json create mode 100644 Extension/i18n/ita/src/LanguageServer/lmTool.i18n.json create mode 100644 Extension/i18n/jpn/src/LanguageServer/copilotProviders.i18n.json create mode 100644 Extension/i18n/jpn/src/LanguageServer/lmTool.i18n.json create mode 100644 Extension/i18n/kor/src/LanguageServer/copilotProviders.i18n.json create mode 100644 Extension/i18n/kor/src/LanguageServer/lmTool.i18n.json create mode 100644 Extension/i18n/plk/src/LanguageServer/copilotProviders.i18n.json create mode 100644 Extension/i18n/plk/src/LanguageServer/lmTool.i18n.json create mode 100644 Extension/i18n/ptb/src/LanguageServer/copilotProviders.i18n.json create mode 100644 Extension/i18n/ptb/src/LanguageServer/lmTool.i18n.json create mode 100644 Extension/i18n/rus/src/LanguageServer/copilotProviders.i18n.json create mode 100644 Extension/i18n/rus/src/LanguageServer/lmTool.i18n.json create mode 100644 Extension/i18n/trk/src/LanguageServer/copilotProviders.i18n.json create mode 100644 Extension/i18n/trk/src/LanguageServer/lmTool.i18n.json diff --git a/Extension/i18n/chs/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/chs/src/Debugger/configurationProvider.i18n.json index be02d66c9..0d36c0baf 100644 --- a/Extension/i18n/chs/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/chs/src/Debugger/configurationProvider.i18n.json @@ -16,7 +16,7 @@ "compiler.path.not.exists": "找不到 {0}。将忽略 {1} 任务。", "pre.Launch.Task": "preLaunchTask: {0}", "debugger.path.not.exists": "找不到 {0} 调试器。将忽略 {1} 的调试配置。", - "build.and.debug.active.file": "生成和调试活动文件", + "build.and.debug.active.file": "构建和调试活动文件", "cl.exe.not.available": "仅当从 VS 开发人员命令提示符处运行 VS Code 时,{0} 生成和调试才可用。", "lldb.find.failed": "缺少 lldb-mi 可执行文件的依赖项“{0}”。", "lldb.search.paths": "搜索范围:", diff --git a/Extension/i18n/chs/src/LanguageServer/configurations.i18n.json b/Extension/i18n/chs/src/LanguageServer/configurations.i18n.json index 11649d863..8b1c3f803 100644 --- a/Extension/i18n/chs/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/chs/src/LanguageServer/configurations.i18n.json @@ -16,7 +16,6 @@ "path.is.not.a.file": "路径不是文件: {0}", "path.is.not.a.directory": "路径不是目录: {0}", "duplicate.name": "{0} 重复。配置名称应是唯一的。", - "cannot.find2": "无法找到“{0}”。", "multiple.paths.not.allowed": "不允许使用多个路径。", "paths.are.not.directories": "路径不是目录: {0}" } \ No newline at end of file diff --git a/Extension/i18n/chs/src/LanguageServer/copilotProviders.i18n.json b/Extension/i18n/chs/src/LanguageServer/copilotProviders.i18n.json new file mode 100644 index 000000000..a0179ba56 --- /dev/null +++ b/Extension/i18n/chs/src/LanguageServer/copilotProviders.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.relatedfilesprovider.error": "Error while retrieving result. Reason: {0}" +} \ No newline at end of file diff --git a/Extension/i18n/chs/src/LanguageServer/lmTool.i18n.json b/Extension/i18n/chs/src/LanguageServer/lmTool.i18n.json new file mode 100644 index 000000000..91d03284d --- /dev/null +++ b/Extension/i18n/chs/src/LanguageServer/lmTool.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.projectcontext.error": "Error while retrieving the project context. Reason: {0}", + "copilot.cppcontext.error": "Error while retrieving the #cpp context." +} \ No newline at end of file diff --git a/Extension/i18n/chs/src/nativeStrings.i18n.json b/Extension/i18n/chs/src/nativeStrings.i18n.json index 22ae6e7d0..0cbb7cf89 100644 --- a/Extension/i18n/chs/src/nativeStrings.i18n.json +++ b/Extension/i18n/chs/src/nativeStrings.i18n.json @@ -315,5 +315,6 @@ "refactor_extract_reference_return_c_code": "函数必须通过引用返回一个值。C 代码不能返回引用。", "refactor_extract_xborder_jump": "所选代码和外层代码之间的存在跳跃。", "refactor_extract_missing_return": "在所选代码中,一些控制路径退出而没有设置返回值。这只受标量、数字、和指针返回类型支持。", - "expand_selection": "展开选择(以启用“提取到函数”)" + "expand_selection": "展开选择(以启用“提取到函数”)", + "file_not_found_in_path2": "在 compile_commands.json 文件中找不到 \"{0}\"。此文件将改用文件夹“{1}”中的 c_cpp_properties.json 中包含的 \"includePath\"。" } \ No newline at end of file diff --git a/Extension/i18n/chs/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json b/Extension/i18n/chs/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json index 4cafd4880..e2bccc71b 100644 --- a/Extension/i18n/chs/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json @@ -6,6 +6,6 @@ { "walkthrough.windows.title.open.dev.command.prompt": "使用开发人员命令提示符重新启动", "walkthrough.windows.background.dev.command.prompt": "正在使用带有 MSVC 编译器的 Windows 机器,因此需要从开发人员命令提示符中启动 VS Code,以便所有环境变量都能正确设置。要使用开发人员命令提示符重新启动:", - "walkthrough.open.command.prompt": "通过在 Windows 开始菜单中键入 \"developer\" 来打开 VS 的开发人员命令提示提示。选择 VS 的开发人员命令提示提示,它将自动导航到当前打开的文件夹。", + "walkthrough.open.command.prompt": "通过在 Windows 开始菜单中键入 \"developer\" 来打开 VS 的开发人员命令提示。选择 VS 的开发人员命令提示,它将自动导航到当前打开的文件夹。", "walkthrough.windows.press.f5": "在命令提示符中键入 \"code\",然后按 Enter。这应该重新启动 VS Code 并将你带回此演练。" } \ No newline at end of file diff --git a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index 84bd1257a..d7cae3b5b 100644 --- a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -20,6 +20,6 @@ "walkthrough.windows.command.prompt.name1": "VS 的 Developer 命令提示", "walkthrough.windows.check.install": "在 VS 的开发人员命令提示中键入 {0} 以检查 MSVC 安装。你应该会看到包含版本和基本使用说明的版权消息。", "walkthrough.windows.note2": "注意", - "walkthrough.windows.note2.text": "要从命令行或 VS Code 使用 MSVC,必须从 {0} 运行。普通 shell (例如 {1}、 {2})或 Windows 命令提示符未设置必要的路径环境变量。", + "walkthrough.windows.note2.text": "要从命令行或 VS Code 使用 MSVC,必须从 {0} 运行。普通 shell (例如 {1}、{2} 或 Windows 命令提示符)未设置必要的路径环境变量。", "walkthrough.windows.command.prompt.name2": "VS 的开发人员命令提示" } \ No newline at end of file diff --git a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index c0d79a4a4..c7823f4c0 100644 --- a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -14,7 +14,7 @@ "walkthrough.windows.command.prompt.name1": "VS 的 Developer 命令提示", "walkthrough.windows.check.install": "在 VS 的开发人员命令提示中键入 {0} 以检查 MSVC 安装。你应该会看到包含版本和基本使用说明的版权消息。", "walkthrough.windows.note2": "注意", - "walkthrough.windows.note2.text": "要从命令行或 VS Code 使用 MSVC,必须从 {0} 运行。普通 shell (例如 {1}、 {2})或 Windows 命令提示符未设置必要的路径环境变量。", + "walkthrough.windows.note2.text": "要从命令行或 VS Code 使用 MSVC,必须从 {0} 运行。普通 shell (例如 {1}、{2} 或 Windows 命令提示符)未设置必要的路径环境变量。", "walkthrough.windows.command.prompt.name2": "VS 的开发人员命令提示", "walkthrough.windows.other.compilers": "其他编译器选项", "walkthrough.windows.text3": "如果面向的是 Windows 中的 Linux,请查看{0}。或者,可{1}。", diff --git a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index c0d79a4a4..c7823f4c0 100644 --- a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -14,7 +14,7 @@ "walkthrough.windows.command.prompt.name1": "VS 的 Developer 命令提示", "walkthrough.windows.check.install": "在 VS 的开发人员命令提示中键入 {0} 以检查 MSVC 安装。你应该会看到包含版本和基本使用说明的版权消息。", "walkthrough.windows.note2": "注意", - "walkthrough.windows.note2.text": "要从命令行或 VS Code 使用 MSVC,必须从 {0} 运行。普通 shell (例如 {1}、 {2})或 Windows 命令提示符未设置必要的路径环境变量。", + "walkthrough.windows.note2.text": "要从命令行或 VS Code 使用 MSVC,必须从 {0} 运行。普通 shell (例如 {1}、{2} 或 Windows 命令提示符)未设置必要的路径环境变量。", "walkthrough.windows.command.prompt.name2": "VS 的开发人员命令提示", "walkthrough.windows.other.compilers": "其他编译器选项", "walkthrough.windows.text3": "如果面向的是 Windows 中的 Linux,请查看{0}。或者,可{1}。", diff --git a/Extension/i18n/cht/src/LanguageServer/configurations.i18n.json b/Extension/i18n/cht/src/LanguageServer/configurations.i18n.json index 6f5390391..69ae82a11 100644 --- a/Extension/i18n/cht/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/cht/src/LanguageServer/configurations.i18n.json @@ -16,7 +16,6 @@ "path.is.not.a.file": "路徑不是檔案: {0}", "path.is.not.a.directory": "路徑不是目錄: {0}", "duplicate.name": "{0} 重複。組態名稱應該是唯一的。", - "cannot.find2": "找不到 \"{0}\"。", "multiple.paths.not.allowed": "不允許使用多個路徑。", "paths.are.not.directories": "路徑不是目錄: {0}" } \ No newline at end of file diff --git a/Extension/i18n/cht/src/LanguageServer/copilotProviders.i18n.json b/Extension/i18n/cht/src/LanguageServer/copilotProviders.i18n.json new file mode 100644 index 000000000..a0179ba56 --- /dev/null +++ b/Extension/i18n/cht/src/LanguageServer/copilotProviders.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.relatedfilesprovider.error": "Error while retrieving result. Reason: {0}" +} \ No newline at end of file diff --git a/Extension/i18n/cht/src/LanguageServer/lmTool.i18n.json b/Extension/i18n/cht/src/LanguageServer/lmTool.i18n.json new file mode 100644 index 000000000..91d03284d --- /dev/null +++ b/Extension/i18n/cht/src/LanguageServer/lmTool.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.projectcontext.error": "Error while retrieving the project context. Reason: {0}", + "copilot.cppcontext.error": "Error while retrieving the #cpp context." +} \ No newline at end of file diff --git a/Extension/i18n/cht/src/nativeStrings.i18n.json b/Extension/i18n/cht/src/nativeStrings.i18n.json index ac0249714..80b389294 100644 --- a/Extension/i18n/cht/src/nativeStrings.i18n.json +++ b/Extension/i18n/cht/src/nativeStrings.i18n.json @@ -315,5 +315,6 @@ "refactor_extract_reference_return_c_code": "函式必須藉傳址傳回值。C 程式碼無法傳回參考。", "refactor_extract_xborder_jump": "所選程式碼與周圍的程式碼之間存在跳躍。", "refactor_extract_missing_return": "在選取的程式碼中,有一些控制項路徑未設定傳回值便結束。只有純量、數值與指標傳回類型支援此作法。", - "expand_selection": "展開選取範圍 (以啟用 [擷取至函式])" + "expand_selection": "展開選取範圍 (以啟用 [擷取至函式])", + "file_not_found_in_path2": "在 compile_commands.json 檔案中找不到 \"{0}\"。將對此檔案改用資料夾 '{1}' 中 c_cpp_properties.json 的 'includePath'。" } \ No newline at end of file diff --git a/Extension/i18n/csy/package.i18n.json b/Extension/i18n/csy/package.i18n.json index 1bb35f387..5c4fc0d0e 100644 --- a/Extension/i18n/csy/package.i18n.json +++ b/Extension/i18n/csy/package.i18n.json @@ -7,7 +7,7 @@ "c_cpp.subheaders.intelliSense.title": "IntelliSense", "c_cpp.subheaders.formatting.title": "Formátování", "c_cpp.subheaders.codeDocumentation.title": "Dokumentace ke kódu", - "c_cpp.subheaders.codeAnalysis.title": "Code Analysis", + "c_cpp.subheaders.codeAnalysis.title": "Analýza kódu", "c_cpp.subheaders.debugging.title": "Ladění", "c_cpp.subheaders.resourceManagement.title": "Správa prostředků", "c_cpp.subheaders.miscellaneous.title": "Různé", diff --git a/Extension/i18n/csy/src/LanguageServer/configurations.i18n.json b/Extension/i18n/csy/src/LanguageServer/configurations.i18n.json index 97877dc7a..86d212215 100644 --- a/Extension/i18n/csy/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/csy/src/LanguageServer/configurations.i18n.json @@ -16,7 +16,6 @@ "path.is.not.a.file": "Cesta není soubor: {0}", "path.is.not.a.directory": "Cesta není adresář: {0}", "duplicate.name": "{0} je duplicitní. Název konfigurace by měl být jedinečný.", - "cannot.find2": "Nejde najít {0}.", "multiple.paths.not.allowed": "Více cest není povoleno.", "paths.are.not.directories": "Cesty nejsou adresáře: {0}" } \ No newline at end of file diff --git a/Extension/i18n/csy/src/LanguageServer/copilotProviders.i18n.json b/Extension/i18n/csy/src/LanguageServer/copilotProviders.i18n.json new file mode 100644 index 000000000..a0179ba56 --- /dev/null +++ b/Extension/i18n/csy/src/LanguageServer/copilotProviders.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.relatedfilesprovider.error": "Error while retrieving result. Reason: {0}" +} \ No newline at end of file diff --git a/Extension/i18n/csy/src/LanguageServer/lmTool.i18n.json b/Extension/i18n/csy/src/LanguageServer/lmTool.i18n.json new file mode 100644 index 000000000..91d03284d --- /dev/null +++ b/Extension/i18n/csy/src/LanguageServer/lmTool.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.projectcontext.error": "Error while retrieving the project context. Reason: {0}", + "copilot.cppcontext.error": "Error while retrieving the #cpp context." +} \ No newline at end of file diff --git a/Extension/i18n/csy/src/nativeStrings.i18n.json b/Extension/i18n/csy/src/nativeStrings.i18n.json index 54cc7e5c7..1dc274958 100644 --- a/Extension/i18n/csy/src/nativeStrings.i18n.json +++ b/Extension/i18n/csy/src/nativeStrings.i18n.json @@ -315,5 +315,6 @@ "refactor_extract_reference_return_c_code": "Funkce by musela vracet hodnotu pomocí odkazu. Kód C nemůže vracet odkazy.", "refactor_extract_xborder_jump": "Přecházení mezi vybraným kódem a okolním kódem jsou k dispozici.", "refactor_extract_missing_return": "Ve vybraném kódu se některé cesty ovládacího prvku ukončují bez nastavení návratové hodnoty. To se podporuje jenom u skalárních, numerických a ukazovacích návratových typů.", - "expand_selection": "Rozbalit výběr (pro povolení možnosti Extrahovat do funkce)" + "expand_selection": "Rozbalit výběr (pro povolení možnosti Extrahovat do funkce)", + "file_not_found_in_path2": "\"{0}\" not found in compile_commands.json files. 'includePath' from c_cpp_properties.json in folder '{1}' will be used for this file instead." } \ No newline at end of file diff --git a/Extension/i18n/deu/package.i18n.json b/Extension/i18n/deu/package.i18n.json index b90b32354..48a34c625 100644 --- a/Extension/i18n/deu/package.i18n.json +++ b/Extension/i18n/deu/package.i18n.json @@ -39,7 +39,7 @@ "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Codeanalyse für aktive Dateien ausführen", "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Codeanalyse für geöffnete Dateien ausführen", "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Codeanalyse für alle Dateien ausführen", - "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Alle Code Analysis Probleme löschen", + "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Alle Codeanalyseprobleme löschen", "c_cpp.command.BuildAndDebugFile.title": "C/C++-Datei debuggen", "c_cpp.command.BuildAndRunFile.title": "C/C++-Datei ausführen", "c_cpp.command.AddDebugConfiguration.title": "Debugkonfiguration hinzufügen", diff --git a/Extension/i18n/deu/src/LanguageServer/configurations.i18n.json b/Extension/i18n/deu/src/LanguageServer/configurations.i18n.json index 8c278a9d0..5887699ce 100644 --- a/Extension/i18n/deu/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/deu/src/LanguageServer/configurations.i18n.json @@ -16,7 +16,6 @@ "path.is.not.a.file": "Der Pfad ist keine Datei: {0}", "path.is.not.a.directory": "Der Pfad ist kein Verzeichnis: {0}", "duplicate.name": "\"{0}\" ist ein Duplikat. Der Konfigurationsname muss eindeutig sein.", - "cannot.find2": "\"{0}\" wurde nicht gefunden.", "multiple.paths.not.allowed": "Mehrere Pfade sind nicht zulässig.", "paths.are.not.directories": "Pfade sind keine Verzeichnisse: {0}" } \ No newline at end of file diff --git a/Extension/i18n/deu/src/LanguageServer/copilotProviders.i18n.json b/Extension/i18n/deu/src/LanguageServer/copilotProviders.i18n.json new file mode 100644 index 000000000..a0179ba56 --- /dev/null +++ b/Extension/i18n/deu/src/LanguageServer/copilotProviders.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.relatedfilesprovider.error": "Error while retrieving result. Reason: {0}" +} \ No newline at end of file diff --git a/Extension/i18n/deu/src/LanguageServer/lmTool.i18n.json b/Extension/i18n/deu/src/LanguageServer/lmTool.i18n.json new file mode 100644 index 000000000..91d03284d --- /dev/null +++ b/Extension/i18n/deu/src/LanguageServer/lmTool.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.projectcontext.error": "Error while retrieving the project context. Reason: {0}", + "copilot.cppcontext.error": "Error while retrieving the #cpp context." +} \ No newline at end of file diff --git a/Extension/i18n/deu/src/nativeStrings.i18n.json b/Extension/i18n/deu/src/nativeStrings.i18n.json index 00418cfbf..059e84451 100644 --- a/Extension/i18n/deu/src/nativeStrings.i18n.json +++ b/Extension/i18n/deu/src/nativeStrings.i18n.json @@ -315,5 +315,6 @@ "refactor_extract_reference_return_c_code": "Die Funktion muss einen Wert durch Verweis zurückgeben. C-Code kann keine Verweise zurückgeben.", "refactor_extract_xborder_jump": "Es sind Sprünge zwischen dem ausgewählten und dem umgebenden Code vorhanden.", "refactor_extract_missing_return": "Im ausgewählten Code werden einige Steuerungspfade beendet, ohne den Rückgabewert festzulegen. Dies wird nur für skalare, numerische und Zeigerrückgabetypen unterstützt.", - "expand_selection": "Auswahl erweitern (um „In Funktion extrahieren“ zu aktivieren)" + "expand_selection": "Auswahl erweitern (um „In Funktion extrahieren“ zu aktivieren)", + "file_not_found_in_path2": "„{0}“ wurde in compile_commands.json-Dateien nicht gefunden. Stattdessen wird „includePath“ aus „c_cpp_properties.json“ im Ordner „{1}“ für diese Datei verwendet." } \ No newline at end of file diff --git a/Extension/i18n/esn/package.i18n.json b/Extension/i18n/esn/package.i18n.json index 8178647ef..8ba3441e3 100644 --- a/Extension/i18n/esn/package.i18n.json +++ b/Extension/i18n/esn/package.i18n.json @@ -39,7 +39,7 @@ "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Ejecutar análisis de código en el archivo activo", "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Ejecutar análisis de código en archivos abiertos", "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Ejecutar análisis de código en todos los archivos", - "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Borrar todos los problemas de Code Analysis", + "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Borrar todos los problemas de análisis de código", "c_cpp.command.BuildAndDebugFile.title": "Depurar archivo C/C++", "c_cpp.command.BuildAndRunFile.title": "Ejecutar archivo C/C++", "c_cpp.command.AddDebugConfiguration.title": "Agregar configuración de depuración", diff --git a/Extension/i18n/esn/src/LanguageServer/configurations.i18n.json b/Extension/i18n/esn/src/LanguageServer/configurations.i18n.json index f026c8508..2280d2d03 100644 --- a/Extension/i18n/esn/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/esn/src/LanguageServer/configurations.i18n.json @@ -16,7 +16,6 @@ "path.is.not.a.file": "La ruta de acceso no es un archivo: {0}", "path.is.not.a.directory": "La ruta de acceso no es un directorio: {0}", "duplicate.name": "{0} es un duplicado. El nombre de la configuración debe ser único.", - "cannot.find2": "No se encuentra \"{0}\".", "multiple.paths.not.allowed": "No se permiten varias rutas de acceso.", "paths.are.not.directories": "Las rutas de acceso no son directorios: {0}" } \ No newline at end of file diff --git a/Extension/i18n/esn/src/LanguageServer/copilotProviders.i18n.json b/Extension/i18n/esn/src/LanguageServer/copilotProviders.i18n.json new file mode 100644 index 000000000..a0179ba56 --- /dev/null +++ b/Extension/i18n/esn/src/LanguageServer/copilotProviders.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.relatedfilesprovider.error": "Error while retrieving result. Reason: {0}" +} \ No newline at end of file diff --git a/Extension/i18n/esn/src/LanguageServer/lmTool.i18n.json b/Extension/i18n/esn/src/LanguageServer/lmTool.i18n.json new file mode 100644 index 000000000..91d03284d --- /dev/null +++ b/Extension/i18n/esn/src/LanguageServer/lmTool.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.projectcontext.error": "Error while retrieving the project context. Reason: {0}", + "copilot.cppcontext.error": "Error while retrieving the #cpp context." +} \ No newline at end of file diff --git a/Extension/i18n/esn/src/nativeStrings.i18n.json b/Extension/i18n/esn/src/nativeStrings.i18n.json index 10bea9fa4..401ca5151 100644 --- a/Extension/i18n/esn/src/nativeStrings.i18n.json +++ b/Extension/i18n/esn/src/nativeStrings.i18n.json @@ -315,5 +315,6 @@ "refactor_extract_reference_return_c_code": "La función debería devolver un valor por referencia. El código C no puede devolver referencias.", "refactor_extract_xborder_jump": "Hay saltos entre el código seleccionado y el código que lo rodea.", "refactor_extract_missing_return": "En el código seleccionado, algunas rutas de control salen sin establecer el valor devuelto. Esto se admite solo para tipos de valor devuelto escalar, numérico y puntero.", - "expand_selection": "Expandir selección (para habilitar 'Extraer a función')" + "expand_selection": "Expandir selección (para habilitar 'Extraer a función')", + "file_not_found_in_path2": "\"{0}\" no se encuentra en compile_commands.json archivos. ''includePath'' de c_cpp_properties.json de la carpeta ''{1}'' se usará en su lugar para este archivo." } \ No newline at end of file diff --git a/Extension/i18n/fra/package.i18n.json b/Extension/i18n/fra/package.i18n.json index 64276fc9d..2e83f529c 100644 --- a/Extension/i18n/fra/package.i18n.json +++ b/Extension/i18n/fra/package.i18n.json @@ -7,7 +7,7 @@ "c_cpp.subheaders.intelliSense.title": "IntelliSense", "c_cpp.subheaders.formatting.title": "Mise en forme", "c_cpp.subheaders.codeDocumentation.title": "Documentation du code", - "c_cpp.subheaders.codeAnalysis.title": "Code Analysis", + "c_cpp.subheaders.codeAnalysis.title": "Analyse du code", "c_cpp.subheaders.debugging.title": "Débogage", "c_cpp.subheaders.resourceManagement.title": "Gestion des ressources", "c_cpp.subheaders.miscellaneous.title": "Divers", diff --git a/Extension/i18n/fra/src/LanguageServer/configurations.i18n.json b/Extension/i18n/fra/src/LanguageServer/configurations.i18n.json index ccb086d7b..8de3546cc 100644 --- a/Extension/i18n/fra/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/fra/src/LanguageServer/configurations.i18n.json @@ -16,7 +16,6 @@ "path.is.not.a.file": "Le chemin n'est pas un fichier : {0}", "path.is.not.a.directory": "Le chemin n'est pas un répertoire : {0}", "duplicate.name": "{0} est dupliqué. Le nom de configuration doit être unique.", - "cannot.find2": "\"{0}\" est introuvable.", "multiple.paths.not.allowed": "Il est interdit d’utiliser plusieurs chemin d’accès.", "paths.are.not.directories": "Les chemins d’accès ne sont pas des répertoires : {0}" } \ No newline at end of file diff --git a/Extension/i18n/fra/src/LanguageServer/copilotProviders.i18n.json b/Extension/i18n/fra/src/LanguageServer/copilotProviders.i18n.json new file mode 100644 index 000000000..a0179ba56 --- /dev/null +++ b/Extension/i18n/fra/src/LanguageServer/copilotProviders.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.relatedfilesprovider.error": "Error while retrieving result. Reason: {0}" +} \ No newline at end of file diff --git a/Extension/i18n/fra/src/LanguageServer/lmTool.i18n.json b/Extension/i18n/fra/src/LanguageServer/lmTool.i18n.json new file mode 100644 index 000000000..91d03284d --- /dev/null +++ b/Extension/i18n/fra/src/LanguageServer/lmTool.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.projectcontext.error": "Error while retrieving the project context. Reason: {0}", + "copilot.cppcontext.error": "Error while retrieving the #cpp context." +} \ No newline at end of file diff --git a/Extension/i18n/fra/src/nativeStrings.i18n.json b/Extension/i18n/fra/src/nativeStrings.i18n.json index 8589b8b3c..1ccfca5d6 100644 --- a/Extension/i18n/fra/src/nativeStrings.i18n.json +++ b/Extension/i18n/fra/src/nativeStrings.i18n.json @@ -315,5 +315,6 @@ "refactor_extract_reference_return_c_code": "La fonction doit renvoyer une valeur par référence. Le code C ne peut pas renvoyer de référence.", "refactor_extract_xborder_jump": "Des sauts entre le code sélectionné et le code environnant sont présents.", "refactor_extract_missing_return": "Dans le code sélectionné, certains chemins de contrôle s'arrêtent sans définir la valeur renvoyée. Cela n'est pris en charge que pour les types de retour scalaire, numérique et pointeur.", - "expand_selection": "Développer la sélection (pour activer ' Extraire vers la fonction')" + "expand_selection": "Développer la sélection (pour activer ' Extraire vers la fonction')", + "file_not_found_in_path2": "« {0} » n'a pas été trouvé dans les fichiers compile_commands.json. « includePath » from c_cpp_properties.json in folder « {1} » sera utilisé pour ce fichier à la place." } \ No newline at end of file diff --git a/Extension/i18n/ita/package.i18n.json b/Extension/i18n/ita/package.i18n.json index 147faa484..d9bf9b2cc 100644 --- a/Extension/i18n/ita/package.i18n.json +++ b/Extension/i18n/ita/package.i18n.json @@ -7,7 +7,7 @@ "c_cpp.subheaders.intelliSense.title": "IntelliSense", "c_cpp.subheaders.formatting.title": "Formattazione", "c_cpp.subheaders.codeDocumentation.title": "Documentazione del codice", - "c_cpp.subheaders.codeAnalysis.title": "Code Analysis", + "c_cpp.subheaders.codeAnalysis.title": "Analisi codice", "c_cpp.subheaders.debugging.title": "Debug", "c_cpp.subheaders.resourceManagement.title": "Gestione risorse", "c_cpp.subheaders.miscellaneous.title": "Varie", @@ -39,7 +39,7 @@ "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Esegui analisi del codice su File attivo", "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Esegui analisi del codice su Apri file", "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Esegui analisi del codice su Tutti i file", - "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Cancellare tutti i problemi Code Analysis", + "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Cancellare tutti i problemi di analisi codice", "c_cpp.command.BuildAndDebugFile.title": "Debug file C/C++", "c_cpp.command.BuildAndRunFile.title": "Esegui file C/C++", "c_cpp.command.AddDebugConfiguration.title": "Aggiungere configurazione di debug", @@ -70,7 +70,7 @@ "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "Se è `true`, analisi del codice verrà eseguito automaticamente su un file dopo l'apertura o il salvataggio.", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription": "Se è `true`, l'azione codice 'Disabilita' verrà visualizzata quando disponibile (all'analisi codice successiva). Quando si usa l'azione codice 'Disabilita', aggiunge il codice di avviso all'impostazione `C_Cpp.codeAnalysis.clangTidy.checks.disabled`.", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription": "Se è `true`, l'azione codice 'Mostra documentazione per' verrà visualizzata quando disponibile (all'analisi codice successiva).", - "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.description": "Controlla quali opzioni di azione codice per il problema Code Analysis 'Cancella' sono disponibili. La modifica dell'impostazione per visualizzare altre opzioni potrebbe richiedere la ripetizione dell'analisi codice.", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.description": "Controlla quali opzioni di azione codice per il problema di analisi codice 'Cancella' sono disponibili. La modifica dell'impostazione per visualizzare altre opzioni potrebbe richiedere la ripetizione dell'analisi codice.", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.None.description": "Non mostrare azioni codice 'Cancella'.", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "Mostrare solo l'azione codice 'Cancella tutto' (o 'Cancella tutti ' se è presente un solo tipo o 'Cancella questo' se è presente un solo problema).", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "Mostrare l'azione codice 'Cancella tutto' (se sono presenti più tipi di problema) e l'azione codice 'Cancella tutti ' (o 'Cancella questo' se è presente un solo problema per )", diff --git a/Extension/i18n/ita/src/LanguageServer/codeAnalysis.i18n.json b/Extension/i18n/ita/src/LanguageServer/codeAnalysis.i18n.json index f0c190f25..53164a092 100644 --- a/Extension/i18n/ita/src/LanguageServer/codeAnalysis.i18n.json +++ b/Extension/i18n/ita/src/LanguageServer/codeAnalysis.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "fix.all.code.analysis.problems": "Correggere tutti i problemi Code Analysis", - "clear.all.code.analysis.problems": "Cancellare tutti i problemi di Code Analysis", + "fix.all.code.analysis.problems": "Correggere tutti i problemi analisi codice", + "clear.all.code.analysis.problems": "Cancellare tutti i problemi di analisi codice", "fix.all.type.problems": "Correggere tutti i problemi {0}", "disable.all.type.problems": "Disabilitare tutti i problemi {0}", "clear.all.type.problems": "Cancellare tutti i problemi {0}", diff --git a/Extension/i18n/ita/src/LanguageServer/configurations.i18n.json b/Extension/i18n/ita/src/LanguageServer/configurations.i18n.json index cbdd8fdec..5cf805191 100644 --- a/Extension/i18n/ita/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/ita/src/LanguageServer/configurations.i18n.json @@ -16,7 +16,6 @@ "path.is.not.a.file": "Il percorso non è un file: {0}", "path.is.not.a.directory": "Il percorso non è una directory: {0}", "duplicate.name": "{0} è duplicato. Il nome della configurazione deve essere univoco.", - "cannot.find2": "Non è possibile trovare \"{0}\".", "multiple.paths.not.allowed": "Più percorsi non sono consentiti.", "paths.are.not.directories": "I percorsi non sono directory: {0}" } \ No newline at end of file diff --git a/Extension/i18n/ita/src/LanguageServer/copilotProviders.i18n.json b/Extension/i18n/ita/src/LanguageServer/copilotProviders.i18n.json new file mode 100644 index 000000000..a0179ba56 --- /dev/null +++ b/Extension/i18n/ita/src/LanguageServer/copilotProviders.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.relatedfilesprovider.error": "Error while retrieving result. Reason: {0}" +} \ No newline at end of file diff --git a/Extension/i18n/ita/src/LanguageServer/extension.i18n.json b/Extension/i18n/ita/src/LanguageServer/extension.i18n.json index bd3868892..9c0e14369 100644 --- a/Extension/i18n/ita/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/ita/src/LanguageServer/extension.i18n.json @@ -16,7 +16,7 @@ "configuration.select.first": "Apri prima una cartella per selezionare una configurazione.", "configuration.provider.select.first": "Apri prima una cartella per selezionare un provider di configurazione.", "edit.configurations.open.first": "Aprire prima una cartella per modificare le configurazioni", - "code.action.aborted": "Impossibile applicare la correzione di Code Analysis perché il documento è stato modificato.", + "code.action.aborted": "Impossibile applicare la correzione di analisi codice perché il documento è stato modificato.", "prerelease.message": "È disponibile una versione non definitiva dell'estensione C/C++. Passare a questa versione?", "yes.button": "Sì", "no.button": "No" diff --git a/Extension/i18n/ita/src/LanguageServer/lmTool.i18n.json b/Extension/i18n/ita/src/LanguageServer/lmTool.i18n.json new file mode 100644 index 000000000..91d03284d --- /dev/null +++ b/Extension/i18n/ita/src/LanguageServer/lmTool.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.projectcontext.error": "Error while retrieving the project context. Reason: {0}", + "copilot.cppcontext.error": "Error while retrieving the #cpp context." +} \ No newline at end of file diff --git a/Extension/i18n/ita/src/LanguageServer/ui.i18n.json b/Extension/i18n/ita/src/LanguageServer/ui.i18n.json index d33496cf2..94e16456e 100644 --- a/Extension/i18n/ita/src/LanguageServer/ui.i18n.json +++ b/Extension/i18n/ita/src/LanguageServer/ui.i18n.json @@ -33,7 +33,7 @@ "startup.codeanalysis.status": "Avvio...", "c.cpp.codeanalysis.statusbar.showRunNowOptions": "Esegui", "running.analysis.processed.tooltip": "In esecuzione: {0} / {1} ({2}%)", - "select.code.analysis.command": "Selezionare un comando di Code Analysis...", + "select.code.analysis.command": "Selezionare un comando di analisi codice...", "cancel.analysis": "Annulla", "resume.analysis": "Riprendi", "pause.analysis": "Sospendi", diff --git a/Extension/i18n/ita/src/nativeStrings.i18n.json b/Extension/i18n/ita/src/nativeStrings.i18n.json index db129d2a7..66f44f303 100644 --- a/Extension/i18n/ita/src/nativeStrings.i18n.json +++ b/Extension/i18n/ita/src/nativeStrings.i18n.json @@ -241,7 +241,7 @@ "inline_macro": "Macro inline", "unable_to_access_browse_database": "Impossibile accedere al database di esplorazione. ({0})", "default_compiler_path_modified_explicit_intellisense_mode": "IntelliSenseMode è stato modificato perché non corrisponde al compilatore rilevato. Provare a impostare \"compilerPath\". Impostare \"compilerPath\" su \"\" per disabilitare il rilevamento delle inclusioni e delle definizioni del sistema.", - "remove_all_code_analysis_problems": "Rimuovere tutti i problemi Code Analysis", + "remove_all_code_analysis_problems": "Rimuovere tutti i problemi analisi codice", "multiple_locations_note": "(Più località)", "folder_tag": "Cartella", "file_tag": "File", @@ -315,5 +315,6 @@ "refactor_extract_reference_return_c_code": "La funzione deve restituire un valore per riferimento. Il codice C non è in grado di restituire riferimenti.", "refactor_extract_xborder_jump": "Sono presenti collegamenti tra il codice selezionato e quello circostante.", "refactor_extract_missing_return": "Nel codice selezionato alcuni percorsi di controllo terminano senza impostare il valore restituito. Questo comportamento è supportato solo per tipi restituiti scalari, numerici e puntatore.", - "expand_selection": "Espandi selezione (per abilitare 'Estrai in funzione')" + "expand_selection": "Espandi selezione (per abilitare 'Estrai in funzione')", + "file_not_found_in_path2": "\"{0}\" non è stato trovato nei file compile_commands.json. In alternativa per questo file verrà usato ''includePath'' del file c_cpp_properties.json nella cartella ''{1}''." } \ No newline at end of file diff --git a/Extension/i18n/jpn/package.i18n.json b/Extension/i18n/jpn/package.i18n.json index d3ea6612e..0e889f90c 100644 --- a/Extension/i18n/jpn/package.i18n.json +++ b/Extension/i18n/jpn/package.i18n.json @@ -7,7 +7,7 @@ "c_cpp.subheaders.intelliSense.title": "IntelliSense", "c_cpp.subheaders.formatting.title": "書式設定", "c_cpp.subheaders.codeDocumentation.title": "コード ドキュメント", - "c_cpp.subheaders.codeAnalysis.title": "Code Analysis", + "c_cpp.subheaders.codeAnalysis.title": "コード分析", "c_cpp.subheaders.debugging.title": "デバッグ", "c_cpp.subheaders.resourceManagement.title": "リソース管理", "c_cpp.subheaders.miscellaneous.title": "その他", @@ -449,4 +449,4 @@ "c_cpp.configuration.refactoring.includeHeader.never.description": "ヘッダー ファイルを含めることはありません。", "c_cpp.languageModelTools.configuration.displayName": "C/C++ 構成", "c_cpp.languageModelTools.configuration.userDescription": "言語標準バージョンやターゲット プラットフォームなど、アクティブ C または C++ ファイルの構成。" -} \ No newline at end of file +} diff --git a/Extension/i18n/jpn/src/LanguageServer/configurations.i18n.json b/Extension/i18n/jpn/src/LanguageServer/configurations.i18n.json index c689d1f81..bbc6b0771 100644 --- a/Extension/i18n/jpn/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/jpn/src/LanguageServer/configurations.i18n.json @@ -16,7 +16,6 @@ "path.is.not.a.file": "パスがファイルではありません: {0}", "path.is.not.a.directory": "パスがディレクトリではありません: {0}", "duplicate.name": "{0} が重複しています。構成名は一意である必要があります。", - "cannot.find2": "\"{0}\" が見つかりません。", "multiple.paths.not.allowed": "複数のパスは使用できません。", "paths.are.not.directories": "パスはディレクトリではありません: {0}" } \ No newline at end of file diff --git a/Extension/i18n/jpn/src/LanguageServer/copilotProviders.i18n.json b/Extension/i18n/jpn/src/LanguageServer/copilotProviders.i18n.json new file mode 100644 index 000000000..a0179ba56 --- /dev/null +++ b/Extension/i18n/jpn/src/LanguageServer/copilotProviders.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.relatedfilesprovider.error": "Error while retrieving result. Reason: {0}" +} \ No newline at end of file diff --git a/Extension/i18n/jpn/src/LanguageServer/lmTool.i18n.json b/Extension/i18n/jpn/src/LanguageServer/lmTool.i18n.json new file mode 100644 index 000000000..91d03284d --- /dev/null +++ b/Extension/i18n/jpn/src/LanguageServer/lmTool.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.projectcontext.error": "Error while retrieving the project context. Reason: {0}", + "copilot.cppcontext.error": "Error while retrieving the #cpp context." +} \ No newline at end of file diff --git a/Extension/i18n/jpn/src/nativeStrings.i18n.json b/Extension/i18n/jpn/src/nativeStrings.i18n.json index 380378051..ad82921c5 100644 --- a/Extension/i18n/jpn/src/nativeStrings.i18n.json +++ b/Extension/i18n/jpn/src/nativeStrings.i18n.json @@ -315,5 +315,6 @@ "refactor_extract_reference_return_c_code": "関数は参照渡しで値を返す必要があります。C コードは参照を返すことができません。", "refactor_extract_xborder_jump": "選択したコードと周囲のコードの間にジャンプが存在します。", "refactor_extract_missing_return": "選択したコードでは、戻り値を設定せずに一部のコントロール パスが終了します。これは、スカラー型、数値型、およびポインター型の戻り値に対してのみサポートされます。", - "expand_selection": "選択範囲を展開する ([関数に抽出] を有効にする)" + "expand_selection": "選択範囲を展開する ([関数に抽出] を有効にする)", + "file_not_found_in_path2": "\"{0}\" が compile_commands.json ファイルに見つかりません。フォルダー '{1}' にある c_cpp_properties.json からの 'includePath' が、このファイルで代わりに使用されます。" } \ No newline at end of file diff --git a/Extension/i18n/kor/package.i18n.json b/Extension/i18n/kor/package.i18n.json index 4172646f1..3a092f7d5 100644 --- a/Extension/i18n/kor/package.i18n.json +++ b/Extension/i18n/kor/package.i18n.json @@ -7,7 +7,7 @@ "c_cpp.subheaders.intelliSense.title": "IntelliSense", "c_cpp.subheaders.formatting.title": "서식 지정", "c_cpp.subheaders.codeDocumentation.title": "코드 설명서", - "c_cpp.subheaders.codeAnalysis.title": "Code Analysis", + "c_cpp.subheaders.codeAnalysis.title": "코드 분석", "c_cpp.subheaders.debugging.title": "디버깅", "c_cpp.subheaders.resourceManagement.title": "리소스 관리", "c_cpp.subheaders.miscellaneous.title": "기타", @@ -39,7 +39,7 @@ "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "활성 파일에서 코드 분석 실행", "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "열린 파일에서 코드 분석 실행", "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "모든 파일에 대한 코드 분석 실행", - "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "모든 Code Analysis 문제 해결", + "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "모든 코드 분석 문제 해결", "c_cpp.command.BuildAndDebugFile.title": "C/C++ 파일 디버그", "c_cpp.command.BuildAndRunFile.title": "C/C++ 파일 실행", "c_cpp.command.AddDebugConfiguration.title": "디버그 구성 추가", diff --git a/Extension/i18n/kor/src/LanguageServer/configurations.i18n.json b/Extension/i18n/kor/src/LanguageServer/configurations.i18n.json index 79b57e053..bba8f04b9 100644 --- a/Extension/i18n/kor/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/kor/src/LanguageServer/configurations.i18n.json @@ -16,7 +16,6 @@ "path.is.not.a.file": "경로가 파일이 아닙니다. {0}", "path.is.not.a.directory": "경로가 디렉터리가 아닙니다. {0}", "duplicate.name": "{0}은(는) 중복됩니다. 구성 이름은 고유해야 합니다.", - "cannot.find2": "\"{0}\"을(를) 찾을 수 없습니다.", "multiple.paths.not.allowed": "여러 경로는 허용되지 않습니다.", "paths.are.not.directories": "경로는 디렉터리가 아닙니다. {0}" } \ No newline at end of file diff --git a/Extension/i18n/kor/src/LanguageServer/copilotProviders.i18n.json b/Extension/i18n/kor/src/LanguageServer/copilotProviders.i18n.json new file mode 100644 index 000000000..a0179ba56 --- /dev/null +++ b/Extension/i18n/kor/src/LanguageServer/copilotProviders.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.relatedfilesprovider.error": "Error while retrieving result. Reason: {0}" +} \ No newline at end of file diff --git a/Extension/i18n/kor/src/LanguageServer/lmTool.i18n.json b/Extension/i18n/kor/src/LanguageServer/lmTool.i18n.json new file mode 100644 index 000000000..91d03284d --- /dev/null +++ b/Extension/i18n/kor/src/LanguageServer/lmTool.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.projectcontext.error": "Error while retrieving the project context. Reason: {0}", + "copilot.cppcontext.error": "Error while retrieving the #cpp context." +} \ No newline at end of file diff --git a/Extension/i18n/kor/src/nativeStrings.i18n.json b/Extension/i18n/kor/src/nativeStrings.i18n.json index 6307a0846..9b6dc985e 100644 --- a/Extension/i18n/kor/src/nativeStrings.i18n.json +++ b/Extension/i18n/kor/src/nativeStrings.i18n.json @@ -315,5 +315,6 @@ "refactor_extract_reference_return_c_code": "이 함수는 값을 참조로 반환해야 합니다. C 코드는 참조를 반환할 수 없습니다.", "refactor_extract_xborder_jump": "선택된 코드와 주변 코드 사이에 점프가 있습니다.", "refactor_extract_missing_return": "선택된 코드에서 일부 제어 경로가 반환 값 설정 없이 종료됩니다. 이는 스칼라, 숫자 및 포인터 반환 형식에 대해서만 지원됩니다.", - "expand_selection": "선택 영역 확장('함수로 추출'을 사용하도록 설정)" + "expand_selection": "선택 영역 확장('함수로 추출'을 사용하도록 설정)", + "file_not_found_in_path2": "compile_commands.json 파일에서 \"{0}\"을(를) 찾을 수 없습니다. '{1}' 폴더의 c_cpp_properties.json 'includePath'가 대신 이 파일에 사용됩니다." } \ No newline at end of file diff --git a/Extension/i18n/plk/package.i18n.json b/Extension/i18n/plk/package.i18n.json index 8fb0a91bf..262e12efd 100644 --- a/Extension/i18n/plk/package.i18n.json +++ b/Extension/i18n/plk/package.i18n.json @@ -7,7 +7,7 @@ "c_cpp.subheaders.intelliSense.title": "IntelliSense", "c_cpp.subheaders.formatting.title": "Formatowanie", "c_cpp.subheaders.codeDocumentation.title": "Dokumentacja dotyczące kodu", - "c_cpp.subheaders.codeAnalysis.title": "Code Analysis", + "c_cpp.subheaders.codeAnalysis.title": "Analiza kodu", "c_cpp.subheaders.debugging.title": "Debugowanie", "c_cpp.subheaders.resourceManagement.title": "Zarządzanie zasobami", "c_cpp.subheaders.miscellaneous.title": "Różne", @@ -63,7 +63,7 @@ "c_cpp.configuration.references.maxMemory.markdownDescription": "Mniej procesów „Znajdź wszystkie odwołania” i „Zmień nazwę” będzie buforowanych i uruchamianych współbieżnie po przekroczeniu tego użycia pamięci (w MB). Wartość domyślna `null` (pusta) używa wartości dziedziczonej z elementu `#C_Cpp.maxMemory#`.", "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "Maksymalna liczba współbieżnych wątków do użycia na potrzeby analizy kodu. Wartość domyślna `null` (pusta) używa połowy wartości elementu `#C_Cpp.maxConcurrentThreads#`.", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "Mniej procesów analizy kodu będzie uruchamianych współbieżnie po przekroczeniu tego użycia pamięci (w MB). Wartość domyślna `null` (pusta) używa wartości dziedziczonej z elementu `#C_Cpp.maxMemory#`.", - "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "Steruje opóźnieniem w milisekundach zanim rozszerzenie Code Analysis rozpocznie przetwarzanie po wyzwoleniu zapisu z edycji, gdy właściwość `#files.autoSave#` ma wartość `afterDelay`, a właściwość `#C_Cpp.codeAnalysis.runAutomatically#` ma wartość `true`.", + "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "Steruje opóźnieniem w milisekundach, zanim analiza kodu rozpocznie przetwarzanie po wyzwoleniu zapisu z edycji, gdy właściwość `#files.autoSave#` ma wartość `afterDelay`, a właściwość `#C_Cpp.codeAnalysis.runAutomatically#` ma wartość `true`.", "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Skonfiguruj wzorce globalne dla wykluczania folderów i plików na potrzeby analizy kodu. Pliki, które nie znajdują się w folderze obszaru roboczego, są zawsze wykluczone. Dziedziczy wartości z elementów `#files.exclude#` i `#C_Cpp.files.exclude#`. Przeczytaj więcej o [wzorcach globalnych](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "Wzorzec globalny do dopasowywania ścieżek do plików. Aby włączyć lub wyłączyć wzorzec, ustaw na wartość `true` lub `false`.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "Dodatkowe sprawdzenie elementów równorzędnych pasującego pliku. Użyj ciągu `$(basename)` jako zmiennej dla nazwy pasującego pliku.", diff --git a/Extension/i18n/plk/src/LanguageServer/configurations.i18n.json b/Extension/i18n/plk/src/LanguageServer/configurations.i18n.json index 78643cd5c..190871a1c 100644 --- a/Extension/i18n/plk/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/plk/src/LanguageServer/configurations.i18n.json @@ -16,7 +16,6 @@ "path.is.not.a.file": "Ścieżka nie jest plikiem: {0}", "path.is.not.a.directory": "Ścieżka nie jest katalogiem: {0}", "duplicate.name": "Element {0} jest duplikatem. Nazwa konfiguracji musi być unikatowa.", - "cannot.find2": "Nie można znaleźć elementu „{0}”.", "multiple.paths.not.allowed": "Wiele ścieżek jest niedozwolonych.", "paths.are.not.directories": "Ścieżki nie są katalogami: {0}" } \ No newline at end of file diff --git a/Extension/i18n/plk/src/LanguageServer/copilotProviders.i18n.json b/Extension/i18n/plk/src/LanguageServer/copilotProviders.i18n.json new file mode 100644 index 000000000..a0179ba56 --- /dev/null +++ b/Extension/i18n/plk/src/LanguageServer/copilotProviders.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.relatedfilesprovider.error": "Error while retrieving result. Reason: {0}" +} \ No newline at end of file diff --git a/Extension/i18n/plk/src/LanguageServer/lmTool.i18n.json b/Extension/i18n/plk/src/LanguageServer/lmTool.i18n.json new file mode 100644 index 000000000..91d03284d --- /dev/null +++ b/Extension/i18n/plk/src/LanguageServer/lmTool.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.projectcontext.error": "Error while retrieving the project context. Reason: {0}", + "copilot.cppcontext.error": "Error while retrieving the #cpp context." +} \ No newline at end of file diff --git a/Extension/i18n/plk/src/nativeStrings.i18n.json b/Extension/i18n/plk/src/nativeStrings.i18n.json index 99d46898c..3587ff53a 100644 --- a/Extension/i18n/plk/src/nativeStrings.i18n.json +++ b/Extension/i18n/plk/src/nativeStrings.i18n.json @@ -315,5 +315,6 @@ "refactor_extract_reference_return_c_code": "Funkcja musiałaby zwracać wartość przez referencję. W kodzie języka C nie można zwracać referencji.", "refactor_extract_xborder_jump": "Występują skoki między zaznaczonym kodem a otaczającym kodem.", "refactor_extract_missing_return": "W zaznaczonym kodzie niektóre ścieżki kontroli kończą działanie bez ustawienia zwracanej wartości. Jest to obsługiwane tylko w przypadku zwracanych typów skalarnych, liczbowych i wskaźnikowych.", - "expand_selection": "Rozwiń wybór (aby włączyć opcję „Wyodrębnij do funkcji”)" + "expand_selection": "Rozwiń wybór (aby włączyć opcję „Wyodrębnij do funkcji”)", + "file_not_found_in_path2": "\"{0}\" not found in compile_commands.json files. 'includePath' from c_cpp_properties.json in folder '{1}' will be used for this file instead." } \ No newline at end of file diff --git a/Extension/i18n/ptb/package.i18n.json b/Extension/i18n/ptb/package.i18n.json index 1b4cbfd31..96de292e6 100644 --- a/Extension/i18n/ptb/package.i18n.json +++ b/Extension/i18n/ptb/package.i18n.json @@ -7,7 +7,7 @@ "c_cpp.subheaders.intelliSense.title": "IntelliSense", "c_cpp.subheaders.formatting.title": "Formatação", "c_cpp.subheaders.codeDocumentation.title": "Documentação do Código", - "c_cpp.subheaders.codeAnalysis.title": "Code Analysis", + "c_cpp.subheaders.codeAnalysis.title": "Análise de Código", "c_cpp.subheaders.debugging.title": "Depurando", "c_cpp.subheaders.resourceManagement.title": "Gerenciamento de Recursos", "c_cpp.subheaders.miscellaneous.title": "Diversos", @@ -39,7 +39,7 @@ "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Executar Análise de Código no Arquivo Ativo", "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Executar Análise de Código em Abrir Arquivos", "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Executar Análise de Código em Todos os Arquivos", - "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Limpar Todos os Problemas de Code Analysis", + "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Limpar Todos os Problemas de Análise de Código", "c_cpp.command.BuildAndDebugFile.title": "Depurar Arquivo C/C++", "c_cpp.command.BuildAndRunFile.title": "Executar Arquivo C/C++", "c_cpp.command.AddDebugConfiguration.title": "Adicionar a Configuração de Depuração", @@ -430,9 +430,9 @@ "c_cpp.walkthrough.command.prompt.title": "Iniciar no prompt de comando do desenvolvedor", "c_cpp.walkthrough.command.prompt.description": "Ao usar o compilador Microsoft Visual Studio C++, a extensão C++ exige que você inicie o VS Code no prompt de comando do desenvolvedor. Siga as instruções à direita para reiniciar.\n[Recarregar Janela](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "Executar e depurar o arquivo C++", - "c_cpp.walkthrough.run.debug.mac.description": "Abra seu arquivo C++ e clique no botão play no canto superior direito do editor ou pressione F5 quando estiver no arquivo. Selecione \"clang++ - Construir e depurar arquivo ativo\" para executar com o depurador.", - "c_cpp.walkthrough.run.debug.linux.description": "Abra seu arquivo C++ e clique no botão play no canto superior direito do editor ou pressione F5 quando estiver no arquivo. Selecione \"g++ - Construir e depurar arquivo ativo\" para executar com o depurador.", - "c_cpp.walkthrough.run.debug.windows.description": "Abra seu arquivo C++ e clique no botão play no canto superior direito do editor ou pressione F5 quando estiver no arquivo. Selecione \"cl.exe - Construir e depurar arquivo ativo\" para executar com o depurador.", + "c_cpp.walkthrough.run.debug.mac.description": "Abra seu arquivo C++ e clique no botão play no canto superior direito do editor ou pressione F5 quando estiver no arquivo. Selecione \"clang++ - Compilar e depurar arquivo ativo\" para executar com o depurador.", + "c_cpp.walkthrough.run.debug.linux.description": "Abra seu arquivo C++ e clique no botão play no canto superior direito do editor ou pressione F5 quando estiver no arquivo. Selecione \"g++ - Compilar e depurar arquivo ativo\" para executar com o depurador.", + "c_cpp.walkthrough.run.debug.windows.description": "Abra seu arquivo C++ e clique no botão play no canto superior direito do editor ou pressione F5 quando estiver no arquivo. Selecione \"cl.exe - Compilar e depurar arquivo ativo\" para executar com o depurador.", "c_cpp.walkthrough.run.debug.windows.altText": "Imagem mostrando um ponto de interrupção em um arquivo C++, o botão f5 e o símbolo de execução no canto superior direito", "c_cpp.walkthrough.customize.debugging.title": "Personalizar a depuração", "c_cpp.walkthrough.customize.debugging.mac.description": "Para personalizar a configuração de depuração, selecione o Explorer na barra de atividades e abra uma pasta que inclua o arquivo C++. Abra o arquivo C++ e selecione \"Adicionar Configuração de Depuração\" à direita do botão reproduzir. A nova configuração de depuração é salva no arquivo launch.json do projeto. \n[Saiba mais](https://code.visualstudio.com/docs/cpp/config-linux#_debug-helloworldcpp)", diff --git a/Extension/i18n/ptb/src/LanguageServer/configurations.i18n.json b/Extension/i18n/ptb/src/LanguageServer/configurations.i18n.json index 0ca57b0b9..0408803c4 100644 --- a/Extension/i18n/ptb/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/ptb/src/LanguageServer/configurations.i18n.json @@ -16,7 +16,6 @@ "path.is.not.a.file": "O caminho não é um arquivo: {0}", "path.is.not.a.directory": "O caminho não é um diretório: {0}", "duplicate.name": "{0} é uma duplicata. O nome da configuração deve ser exclusivo.", - "cannot.find2": "Não é possível localizar \"{0}\".", "multiple.paths.not.allowed": "Vários caminhos não são permitidos.", "paths.are.not.directories": "Os caminhos não são diretórios: {0}" } \ No newline at end of file diff --git a/Extension/i18n/ptb/src/LanguageServer/copilotProviders.i18n.json b/Extension/i18n/ptb/src/LanguageServer/copilotProviders.i18n.json new file mode 100644 index 000000000..a0179ba56 --- /dev/null +++ b/Extension/i18n/ptb/src/LanguageServer/copilotProviders.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.relatedfilesprovider.error": "Error while retrieving result. Reason: {0}" +} \ No newline at end of file diff --git a/Extension/i18n/ptb/src/LanguageServer/lmTool.i18n.json b/Extension/i18n/ptb/src/LanguageServer/lmTool.i18n.json new file mode 100644 index 000000000..91d03284d --- /dev/null +++ b/Extension/i18n/ptb/src/LanguageServer/lmTool.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.projectcontext.error": "Error while retrieving the project context. Reason: {0}", + "copilot.cppcontext.error": "Error while retrieving the #cpp context." +} \ No newline at end of file diff --git a/Extension/i18n/ptb/src/nativeStrings.i18n.json b/Extension/i18n/ptb/src/nativeStrings.i18n.json index 1201657f2..ac5a72e53 100644 --- a/Extension/i18n/ptb/src/nativeStrings.i18n.json +++ b/Extension/i18n/ptb/src/nativeStrings.i18n.json @@ -315,5 +315,6 @@ "refactor_extract_reference_return_c_code": "A função teria que retornar um valor por referência. O código C não pode retornar referências.", "refactor_extract_xborder_jump": "Saltos entre o código selecionado e o código ao redor estão presentes.", "refactor_extract_missing_return": "No código selecionado, alguns caminhos de controle são encerrados sem definir o valor retornado. Isso tem suporte apenas para os tipos de retorno escalar, numérico e de ponteiro.", - "expand_selection": "Expandir seleção (para habilitar \"Extrair para função\")" + "expand_selection": "Expandir seleção (para habilitar \"Extrair para função\")", + "file_not_found_in_path2": "\"{0}\" não encontrado nos arquivos compile_commands.json. \"includePath\" de c_cpp_properties.json na pasta \"{1}\" será usado para esse arquivo." } \ No newline at end of file diff --git a/Extension/i18n/rus/package.i18n.json b/Extension/i18n/rus/package.i18n.json index f36089737..80249d88b 100644 --- a/Extension/i18n/rus/package.i18n.json +++ b/Extension/i18n/rus/package.i18n.json @@ -7,7 +7,7 @@ "c_cpp.subheaders.intelliSense.title": "IntelliSense", "c_cpp.subheaders.formatting.title": "Форматирование", "c_cpp.subheaders.codeDocumentation.title": "Документирование кода", - "c_cpp.subheaders.codeAnalysis.title": "Code Analysis", + "c_cpp.subheaders.codeAnalysis.title": "Анализ кода", "c_cpp.subheaders.debugging.title": "Отладка", "c_cpp.subheaders.resourceManagement.title": "Управление ресурсами", "c_cpp.subheaders.miscellaneous.title": "Прочее", diff --git a/Extension/i18n/rus/src/LanguageServer/configurations.i18n.json b/Extension/i18n/rus/src/LanguageServer/configurations.i18n.json index 439b47ca7..a3bf9be06 100644 --- a/Extension/i18n/rus/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/rus/src/LanguageServer/configurations.i18n.json @@ -16,7 +16,6 @@ "path.is.not.a.file": "Путь не является файлом: {0}", "path.is.not.a.directory": "Путь не является каталогом: {0}", "duplicate.name": "{0} является дубликатом. Имя конфигурации должно быть уникальным.", - "cannot.find2": "Не удается найти \"{0}\".", "multiple.paths.not.allowed": "Запрещено использовать несколько путей.", "paths.are.not.directories": "Пути не являются каталогами: {0}" } \ No newline at end of file diff --git a/Extension/i18n/rus/src/LanguageServer/copilotProviders.i18n.json b/Extension/i18n/rus/src/LanguageServer/copilotProviders.i18n.json new file mode 100644 index 000000000..a0179ba56 --- /dev/null +++ b/Extension/i18n/rus/src/LanguageServer/copilotProviders.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.relatedfilesprovider.error": "Error while retrieving result. Reason: {0}" +} \ No newline at end of file diff --git a/Extension/i18n/rus/src/LanguageServer/lmTool.i18n.json b/Extension/i18n/rus/src/LanguageServer/lmTool.i18n.json new file mode 100644 index 000000000..91d03284d --- /dev/null +++ b/Extension/i18n/rus/src/LanguageServer/lmTool.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.projectcontext.error": "Error while retrieving the project context. Reason: {0}", + "copilot.cppcontext.error": "Error while retrieving the #cpp context." +} \ No newline at end of file diff --git a/Extension/i18n/rus/src/nativeStrings.i18n.json b/Extension/i18n/rus/src/nativeStrings.i18n.json index ad08527be..b9542f4e1 100644 --- a/Extension/i18n/rus/src/nativeStrings.i18n.json +++ b/Extension/i18n/rus/src/nativeStrings.i18n.json @@ -315,5 +315,6 @@ "refactor_extract_reference_return_c_code": "Функция предполагает возврат значения по ссылке. Код C не может возвращать ссылки.", "refactor_extract_xborder_jump": "Есть переходы между выбранным кодом и окружающим его кодом.", "refactor_extract_missing_return": "В выбранном коде некоторые контрольные пути завершаются без установки возвращаемого значения. Это поддерживается только для скалярных, числовых типов возвращаемого значения и типов возвращаемого значения-указателей.", - "expand_selection": "Развернуть выделенный фрагмент (чтобы включить функцию \"Извлечение в функцию\")" + "expand_selection": "Развернуть выделенный фрагмент (чтобы включить функцию \"Извлечение в функцию\")", + "file_not_found_in_path2": "\"{0}\" не найден в файлах compile_commands.json. Вместо него для этого файла будет использоваться \"includePath\" из файла c_cpp_properties.json в папке \"{1}\"." } \ No newline at end of file diff --git a/Extension/i18n/trk/package.i18n.json b/Extension/i18n/trk/package.i18n.json index dbfed7ef8..4c1534f15 100644 --- a/Extension/i18n/trk/package.i18n.json +++ b/Extension/i18n/trk/package.i18n.json @@ -430,9 +430,9 @@ "c_cpp.walkthrough.command.prompt.title": "Geliştirici komut istemini kullanarak yeniden başlat", "c_cpp.walkthrough.command.prompt.description": "Microsoft Visual Studio C++ derleyicisini kullanırken, C++ uzantısı, geliştirici komut isteminden VS Code'u başlatmanızı gerektirir. Yeniden başlatmak için sağdaki talimatları izleyin.\n[Yeniden Yükleme Penceresi](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "C++ dosyanızı çalıştırın ve hata ayıklayın", - "c_cpp.walkthrough.run.debug.mac.description": "C++ dosyanızı açın ve düzenleyicinin sağ üst köşesindeki oynat düğmesine tıklayın veya dosyadayken F5'e basın. Hata ayıklayıcı ile çalıştırmak için \"clang++ - Etkin dosya oluştur ve hata ayıkla\" seçeneğini seçin.", - "c_cpp.walkthrough.run.debug.linux.description": "C++ dosyanızı açın ve düzenleyicinin sağ üst köşesindeki oynat düğmesine tıklayın veya dosyadayken F5'e basın. Hata ayıklayıcı ile çalıştırmak için \"g++ - Aktif dosya oluştur ve hata ayıkla\"yı seçin.", - "c_cpp.walkthrough.run.debug.windows.description": "C++ dosyanızı açın ve düzenleyicinin sağ üst köşesindeki oynat düğmesine tıklayın veya dosyadayken F5'e basın. Hata ayıklayıcı ile çalıştırmak için \"cl.exe - Etkin dosya oluştur ve hata ayıkla\" seçeneğini seçin.", + "c_cpp.walkthrough.run.debug.mac.description": "C++ dosyanızı açın ve düzenleyicinin sağ üst köşesindeki oynat düğmesine tıklayın veya dosyadayken F5'e basın. Hata ayıklayıcı ile çalıştırmak için \"clang++ - Etkin dosya derle ve hata ayıkla\" seçeneğini seçin.", + "c_cpp.walkthrough.run.debug.linux.description": "C++ dosyanızı açın ve düzenleyicinin sağ üst köşesindeki oynat düğmesine tıklayın veya dosyadayken F5'e basın. Hata ayıklayıcı ile çalıştırmak için \"g++ - Aktif dosya derle ve hata ayıkla\"yı seçin.", + "c_cpp.walkthrough.run.debug.windows.description": "C++ dosyanızı açın ve düzenleyicinin sağ üst köşesindeki oynat düğmesine tıklayın veya dosyadayken F5'e basın. Hata ayıklayıcı ile çalıştırmak için \"cl.exe - Etkin dosya derle ve hata ayıkla\" seçeneğini seçin.", "c_cpp.walkthrough.run.debug.windows.altText": "C++ dosyasında bir kesme noktası, f5 düğmesi ve sağ üstte çalıştır simgesini gösteren resim", "c_cpp.walkthrough.customize.debugging.title": "Hata ayıklamayı özelleştir", "c_cpp.walkthrough.customize.debugging.mac.description": "Hata ayıklama yapılandırmanızı özelleştirmek için etkinlik çubuğunda Gezgin'i seçin ve C++ dosyanızı içeren bir klasörü açın. C++ dosyasını açın ve oynat düğmesinin sağındaki \"Hata Ayıklama Yapılandırması Ekle\" seçeneğini seçin. Yeni hata ayıklama yapılandırması projenizin launch.json dosyasına kaydedilir. \n[Learn More](https://code.visualstudio.com/docs/cpp/config-linux#_debug-helloworldcpp)", diff --git a/Extension/i18n/trk/src/LanguageServer/configurations.i18n.json b/Extension/i18n/trk/src/LanguageServer/configurations.i18n.json index fc6ec1772..b22acf525 100644 --- a/Extension/i18n/trk/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/trk/src/LanguageServer/configurations.i18n.json @@ -16,7 +16,6 @@ "path.is.not.a.file": "Yol bir dosya değil: {0}", "path.is.not.a.directory": "Yol bir dizin değil: {0}", "duplicate.name": "{0} yineleniyor. Yapılandırma adı benzersiz olmalıdır.", - "cannot.find2": "\"{0}\" bulunamıyor.", "multiple.paths.not.allowed": "Birden fazla yola izin verilmez.", "paths.are.not.directories": "Yollar dizin değil: {0}" } \ No newline at end of file diff --git a/Extension/i18n/trk/src/LanguageServer/copilotProviders.i18n.json b/Extension/i18n/trk/src/LanguageServer/copilotProviders.i18n.json new file mode 100644 index 000000000..a0179ba56 --- /dev/null +++ b/Extension/i18n/trk/src/LanguageServer/copilotProviders.i18n.json @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.relatedfilesprovider.error": "Error while retrieving result. Reason: {0}" +} \ No newline at end of file diff --git a/Extension/i18n/trk/src/LanguageServer/lmTool.i18n.json b/Extension/i18n/trk/src/LanguageServer/lmTool.i18n.json new file mode 100644 index 000000000..91d03284d --- /dev/null +++ b/Extension/i18n/trk/src/LanguageServer/lmTool.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "copilot.projectcontext.error": "Error while retrieving the project context. Reason: {0}", + "copilot.cppcontext.error": "Error while retrieving the #cpp context." +} \ No newline at end of file diff --git a/Extension/i18n/trk/src/nativeStrings.i18n.json b/Extension/i18n/trk/src/nativeStrings.i18n.json index fdabcb71a..7a51ffcd3 100644 --- a/Extension/i18n/trk/src/nativeStrings.i18n.json +++ b/Extension/i18n/trk/src/nativeStrings.i18n.json @@ -315,5 +315,6 @@ "refactor_extract_reference_return_c_code": "İşlevin başvuruya göre bir değer döndürmesi gerekiyor. C kodu başvuruları döndüremiyor.", "refactor_extract_xborder_jump": "Seçili kod ile çevreleyen kod arasında atlamalar var.", "refactor_extract_missing_return": "Seçili kodda bazı denetim yolları, dönüş değeri ayarlanmadan çıkış yapıyor. Bu durum yalnızca skaler, sayısal ve işaretçi dönüş türlerinde desteklenir.", - "expand_selection": "Seçimi genişlet (\"İşleve çıkar\" seçeneğini etkinleştirmek için)" + "expand_selection": "Seçimi genişlet (\"İşleve çıkar\" seçeneğini etkinleştirmek için)", + "file_not_found_in_path2": "\"{0}\" compile_commands.json dosyaları içinde bulunamadı. Bu dosya yerine '{1}' klasöründeki c_cpp_properties.json dosyasında bulunan 'includePath' kullanılacak." } \ No newline at end of file From ee71e1f82c8f175281cd44ba18b33625aa68e742 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Thu, 5 Dec 2024 12:39:02 -0800 Subject: [PATCH 39/78] Update changelog for 1.23.2 (2nd time) (#13024) --- Extension/CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 641684adc..4ac81cfed 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -2,13 +2,13 @@ ### Version 1.23.2: December 5, 2024 ### Enhancements +* Changes to how paths are internally canonicalized on Linux and macOS, avoiding file system access to improve performance and delay resolution of symbolic links. [#12924](https://github.com/microsoft/vscode-cpptools/issues/12924) * Add handling of `-fno-char8_t` and `-fchar8_t` compiler arguments. [#12968](https://github.com/microsoft/vscode-cpptools/issues/12968) * Add support for providing well-known compiler argument information to Copilot Completions. [PR #12979](https://github.com/microsoft/vscode-cpptools/pull/12979) * Fixed unnecessary cancellation of Copilot context requests. [PR #12988](https://github.com/microsoft/vscode-cpptools/pull/12988) * Add support for passing an additional parameter to `C_Cpp.ConfigurationSelect` command. [PR #12993](https://github.com/microsoft/vscode-cpptools/pull/12993) * Thank you for the contribution. [@adrianstephens](https://github.com/adrianstephens) * Update clang-format and clang-tidy from 19.1.2 to 19.1.5. -* Changes to how paths are internally canonicalized on Linux and macOS, avoiding file system access to improve performance and delay resolution of symbolic links. ### Bug Fixes * Increase clang-format timeout from 10 seconds to 30 seconds. [#10213](https://github.com/microsoft/vscode-cpptools/issues/10213) @@ -21,6 +21,7 @@ * Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12948](https://github.com/microsoft/vscode-cpptools/pull/12948) * Fix an issue in which a `didOpen` event was processed before the language client was fully started. [#12954](https://github.com/microsoft/vscode-cpptools/issues/12954) * Fix IntelliSense issues related to large header files (>32K) and encodings other than UTF-8. +* Fix a deadlock. ### Version 1.23.1: November 6, 2024 ### Bug Fixes From fa80d4477e93ae5102b78424f83a7abfe7605c87 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Mon, 9 Dec 2024 10:15:52 -0800 Subject: [PATCH 40/78] Support for copilot-generated summaries in quick info. (On-the-fly docs) (#12552) Off by default, can be explicitly disabled in the setting. Co-authored-by: Ben McMorran --------- Co-authored-by: Ben McMorran --- Extension/package.json | 10 ++ Extension/package.nls.json | 6 + .../Providers/CopilotHoverProvider.ts | 149 ++++++++++++++++++ .../LanguageServer/Providers/HoverProvider.ts | 19 +++ Extension/src/LanguageServer/client.ts | 45 +++++- Extension/src/LanguageServer/extension.ts | 136 ++++++++++++++++ Extension/src/LanguageServer/settings.ts | 12 ++ Extension/src/constants.ts | 3 + Extension/src/nativeStrings.json | 1 + Extension/src/telemetry.ts | 4 + 10 files changed, 383 insertions(+), 2 deletions(-) create mode 100644 Extension/src/LanguageServer/Providers/CopilotHoverProvider.ts diff --git a/Extension/package.json b/Extension/package.json index f1f96ac3e..cfdc2a73d 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -3313,6 +3313,16 @@ "default": false, "markdownDescription": "%c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription%", "scope": "application" + }, + "C_Cpp.copilotHover": { + "type": "string", + "enum": [ + "default", + "disabled" + ], + "default": "default", + "markdownDescription": "%c_cpp.configuration.copilotHover.markdownDescription%", + "scope": "window" } } } diff --git a/Extension/package.nls.json b/Extension/package.nls.json index 7f784f7c9..92908ad50 100644 --- a/Extension/package.nls.json +++ b/Extension/package.nls.json @@ -768,6 +768,12 @@ "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." ] }, + "c_cpp.configuration.copilotHover.markdownDescription": { + "message": "If `disabled`, no Copilot information will appear in Hover.", + "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." + ] + }, "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": { "message": "If `true`, 'Rename Symbol' will require a valid C/C++ identifier.", "comment": [ diff --git a/Extension/src/LanguageServer/Providers/CopilotHoverProvider.ts b/Extension/src/LanguageServer/Providers/CopilotHoverProvider.ts new file mode 100644 index 000000000..a6d052895 --- /dev/null +++ b/Extension/src/LanguageServer/Providers/CopilotHoverProvider.ts @@ -0,0 +1,149 @@ +/* -------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All Rights Reserved. + * See 'LICENSE' in the project root for license information. + * ------------------------------------------------------------------------------------------ */ +import * as vscode from 'vscode'; +import { Position, ResponseError } from 'vscode-languageclient'; +import * as nls from 'vscode-nls'; +import { DefaultClient, GetCopilotHoverInfoParams, GetCopilotHoverInfoRequest } from '../client'; +import { RequestCancelled, ServerCancelled } from '../protocolFilter'; +import { CppSettings } from '../settings'; + +nls.config({ messageFormat: nls.MessageFormat.bundle, bundleFormat: nls.BundleFormat.standalone })(); +const localize: nls.LocalizeFunc = nls.loadMessageBundle(); + +export class CopilotHoverProvider implements vscode.HoverProvider { + private client: DefaultClient; + private currentDocument: vscode.TextDocument | undefined; + private currentPosition: vscode.Position | undefined; + private currentCancellationToken: vscode.CancellationToken | undefined; + private waiting: boolean = false; + private ready: boolean = false; + private cancelled: boolean = false; + private cancelledDocument: vscode.TextDocument | undefined; + private cancelledPosition: vscode.Position | undefined; + private content: string | undefined; + constructor(client: DefaultClient) { + this.client = client; + } + + public async provideHover(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken): Promise { + await this.client.ready; + + const settings: CppSettings = new CppSettings(vscode.workspace.getWorkspaceFolder(document.uri)?.uri); + if (settings.hover === "disabled") { + return undefined; + } + + const newHover = this.isNewHover(document, position); + if (newHover) { + this.reset(); + } + + // Wait for the main hover provider to finish and confirm it has content. + const hoverProvider = this.client.getHoverProvider(); + if (!await hoverProvider?.contentReady) { + return undefined; + } + + if (token.isCancellationRequested) { + throw new vscode.CancellationError(); + } + this.currentCancellationToken = token; + + if (!newHover) { + if (this.ready) { + const contentMarkdown = new vscode.MarkdownString(`$(sparkle) Copilot\n\n${this.content}`, true); + return new vscode.Hover(contentMarkdown); + } + if (this.waiting) { + const loadingMarkdown = new vscode.MarkdownString("$(sparkle) $(loading~spin)", true); + return new vscode.Hover(loadingMarkdown); + } + } + + this.currentDocument = document; + this.currentPosition = position; + const commandString = "$(sparkle) [" + localize("generate.copilot.description", "Generate Copilot summary") + "](command:C_Cpp.ShowCopilotHover \"" + localize("copilot.disclaimer", "AI-generated content may be incorrect.") + "\")"; + const commandMarkdown = new vscode.MarkdownString(commandString); + commandMarkdown.supportThemeIcons = true; + commandMarkdown.isTrusted = { enabledCommands: ["C_Cpp.ShowCopilotHover"] }; + return new vscode.Hover(commandMarkdown); + } + + public showWaiting(): void { + this.waiting = true; + } + + public showContent(content: string): void { + this.ready = true; + this.content = content; + } + + public getCurrentHoverDocument(): vscode.TextDocument | undefined { + return this.currentDocument; + } + + public getCurrentHoverPosition(): vscode.Position | undefined { + return this.currentPosition; + } + + public getCurrentHoverCancellationToken(): vscode.CancellationToken | undefined { + return this.currentCancellationToken; + } + + public async getRequestInfo(document: vscode.TextDocument, position: vscode.Position): Promise { + let requestInfo = ""; + const params: GetCopilotHoverInfoParams = { + textDocument: { uri: document.uri.toString() }, + position: Position.create(position.line, position.character) + }; + + await this.client.ready; + if (this.currentCancellationToken?.isCancellationRequested) { + throw new vscode.CancellationError(); + } + + try { + const response = await this.client.languageClient.sendRequest(GetCopilotHoverInfoRequest, params, this.currentCancellationToken); + requestInfo = response.content; + } catch (e: any) { + if (e instanceof ResponseError && (e.code === RequestCancelled || e.code === ServerCancelled)) { + throw new vscode.CancellationError(); + } + throw e; + } + + return requestInfo; + } + + public isCancelled(document: vscode.TextDocument, position: vscode.Position): boolean { + if (this.cancelled && this.cancelledDocument === document && this.cancelledPosition === position) { + // Cancellation is being acknowledged. + this.cancelled = false; + this.cancelledDocument = undefined; + this.cancelledPosition = undefined; + return true; + } + return false; + } + + public reset(): void { + // If there was a previous call, cancel it. + if (this.waiting) { + this.cancelled = true; + this.cancelledDocument = this.currentDocument; + this.cancelledPosition = this.currentPosition; + } + this.waiting = false; + this.ready = false; + this.content = undefined; + this.currentDocument = undefined; + this.currentPosition = undefined; + this.currentCancellationToken = undefined; + } + + public isNewHover(document: vscode.TextDocument, position: vscode.Position): boolean { + return !(this.currentDocument === document && this.currentPosition?.line === position.line && (this.currentPosition?.character === position.character || this.currentPosition?.character === position.character - 1)); + } +} diff --git a/Extension/src/LanguageServer/Providers/HoverProvider.ts b/Extension/src/LanguageServer/Providers/HoverProvider.ts index 0a4cd6eab..4bc8bae19 100644 --- a/Extension/src/LanguageServer/Providers/HoverProvider.ts +++ b/Extension/src/LanguageServer/Providers/HoverProvider.ts @@ -4,17 +4,30 @@ * ------------------------------------------------------------------------------------------ */ import * as vscode from 'vscode'; import { Position, ResponseError, TextDocumentPositionParams } from 'vscode-languageclient'; +import { ManualSignal } from '../../Utility/Async/manualSignal'; import { DefaultClient, HoverRequest } from '../client'; import { RequestCancelled, ServerCancelled } from '../protocolFilter'; import { CppSettings } from '../settings'; export class HoverProvider implements vscode.HoverProvider { private client: DefaultClient; + private lastContent: vscode.MarkdownString[] | undefined; + private readonly hasContent = new ManualSignal(true); constructor(client: DefaultClient) { this.client = client; } public async provideHover(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken): Promise { + this.hasContent.reset(); + const copilotHoverProvider = this.client.getCopilotHoverProvider(); + if (copilotHoverProvider) { + // Check if this is a reinvocation from Copilot. + if (!copilotHoverProvider.isNewHover(document, position) && this.lastContent) { + this.hasContent.resolve(this.lastContent.length > 0); + return new vscode.Hover(this.lastContent); + } + } + const settings: CppSettings = new CppSettings(vscode.workspace.getWorkspaceFolder(document.uri)?.uri); if (settings.hover === "disabled") { return undefined; @@ -52,6 +65,12 @@ export class HoverProvider implements vscode.HoverProvider { hoverResult.range.end.line, hoverResult.range.end.character); } + this.hasContent.resolve(strings.length > 0); + this.lastContent = strings; return new vscode.Hover(strings, range); } + + get contentReady(): Promise { + return this.hasContent; + } } diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index d937cff04..8ee0e22f6 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -43,6 +43,7 @@ import { localizedStringCount, lookupString } from '../nativeStrings'; import { SessionState } from '../sessionState'; import * as telemetry from '../telemetry'; import { TestHook, getTestHook } from '../testHook'; +import { CopilotHoverProvider } from './Providers/CopilotHoverProvider'; import { HoverProvider } from './Providers/HoverProvider'; import { CodeAnalysisDiagnosticIdentifiersAndUri, @@ -533,6 +534,15 @@ export interface GetIncludesResult { includedFiles: string[]; } +export interface GetCopilotHoverInfoParams { + textDocument: TextDocumentIdentifier; + position: Position; +} + +interface GetCopilotHoverInfoResult { + content: string; +} + export interface ChatContextResult { language: string; standardVersion: string; @@ -567,6 +577,7 @@ export const FormatDocumentRequest: RequestType = new RequestType('cpptools/formatRange'); export const FormatOnTypeRequest: RequestType = new RequestType('cpptools/formatOnType'); export const HoverRequest: RequestType = new RequestType('cpptools/hover'); +export const GetCopilotHoverInfoRequest: RequestType = new RequestType('cpptools/getCopilotHoverInfo'); const CreateDeclarationOrDefinitionRequest: RequestType = new RequestType('cpptools/createDeclDef'); const ExtractToFunctionRequest: RequestType = new RequestType('cpptools/extractToFunction'); const GoToDirectiveInGroupRequest: RequestType = new RequestType('cpptools/goToDirectiveInGroup'); @@ -804,6 +815,7 @@ export interface Client { getShowConfigureIntelliSenseButton(): boolean; setShowConfigureIntelliSenseButton(show: boolean): void; addTrustedCompiler(path: string): Promise; + getCopilotHoverProvider(): CopilotHoverProvider | undefined; getIncludes(maxDepth: number): Promise; getChatContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise; getProjectContext(uri: vscode.Uri): Promise; @@ -839,11 +851,14 @@ export class DefaultClient implements Client { private settingsTracker: SettingsTracker; private loggingLevel: number = 1; private configurationProvider?: string; + private hoverProvider: HoverProvider | undefined; + private copilotHoverProvider: CopilotHoverProvider | undefined; public lastCustomBrowseConfiguration: PersistentFolderState | undefined; public lastCustomBrowseConfigurationProviderId: PersistentFolderState | undefined; public lastCustomBrowseConfigurationProviderVersion: PersistentFolderState | undefined; public currentCaseSensitiveFileSupport: PersistentWorkspaceState | undefined; + public currentCopilotHoverEnabled: PersistentWorkspaceState | undefined; private registeredProviders: PersistentFolderState | undefined; private configStateReceived: ConfigStateReceived = { compilers: false, compileCommands: false, configProviders: undefined, timeout: false }; @@ -1273,8 +1288,16 @@ export class DefaultClient implements Client { this.registerFileWatcher(); initializedClientCount = 0; this.inlayHintsProvider = new InlayHintsProvider(); + this.hoverProvider = new HoverProvider(this); - this.disposables.push(vscode.languages.registerHoverProvider(util.documentSelector, new HoverProvider(this))); + const settings: CppSettings = new CppSettings(); + this.currentCopilotHoverEnabled = new PersistentWorkspaceState("cpp.copilotHover", settings.copilotHover); + if (settings.copilotHover === "enabled" || + (settings.copilotHover === "default" && await telemetry.isFlightEnabled("CppCopilotHover"))) { + this.copilotHoverProvider = new CopilotHoverProvider(this); + this.disposables.push(vscode.languages.registerHoverProvider(util.documentSelector, this.copilotHoverProvider)); + } + this.disposables.push(vscode.languages.registerHoverProvider(util.documentSelector, this.hoverProvider)); this.disposables.push(vscode.languages.registerInlayHintsProvider(util.documentSelector, this.inlayHintsProvider)); this.disposables.push(vscode.languages.registerRenameProvider(util.documentSelector, new RenameProvider(this))); this.disposables.push(vscode.languages.registerReferenceProvider(util.documentSelector, new FindAllReferencesProvider(this))); @@ -1292,7 +1315,6 @@ export class DefaultClient implements Client { this.codeFoldingProvider = new FoldingRangeProvider(this); this.codeFoldingProviderDisposable = vscode.languages.registerFoldingRangeProvider(util.documentSelector, this.codeFoldingProvider); - const settings: CppSettings = new CppSettings(); if (settings.isEnhancedColorizationEnabled && semanticTokensLegend) { this.semanticTokensProvider = new SemanticTokensProvider(); this.semanticTokensProviderDisposable = vscode.languages.registerDocumentSemanticTokensProvider(util.documentSelector, this.semanticTokensProvider, semanticTokensLegend); @@ -1473,6 +1495,9 @@ export class DefaultClient implements Client { if (this.currentCaseSensitiveFileSupport && workspaceSettings.isCaseSensitiveFileSupportEnabled !== this.currentCaseSensitiveFileSupport.Value) { void util.promptForReloadWindowDueToSettingsChange(); } + if (this.currentCopilotHoverEnabled && workspaceSettings.copilotHover !== this.currentCopilotHoverEnabled.Value) { + void util.promptForReloadWindowDueToSettingsChange(); + } return { filesAssociations: workspaceOtherSettings.filesAssociations, workspaceFallbackEncoding: workspaceOtherSettings.filesEncoding, @@ -1495,6 +1520,7 @@ export class DefaultClient implements Client { codeAnalysisMaxConcurrentThreads: workspaceSettings.codeAnalysisMaxConcurrentThreads, codeAnalysisMaxMemory: workspaceSettings.codeAnalysisMaxMemory, codeAnalysisUpdateDelay: workspaceSettings.codeAnalysisUpdateDelay, + copilotHover: workspaceSettings.copilotHover, workspaceFolderSettings: workspaceFolderSettingsParams }; } @@ -1605,6 +1631,12 @@ export class DefaultClient implements Client { // We manually restart the language server so tell the LanguageClient not to do it automatically for us. return { action: CloseAction.DoNotRestart, message }; } + }, + markdown: { + isTrusted: true + // TODO: support for icons in markdown is not yet in the released version of vscode-languageclient. + // Based on PR (https://github.com/microsoft/vscode-languageserver-node/pull/1504) + //supportThemeIcons: true } // TODO: should I set the output channel? Does this sort output between servers? @@ -4045,6 +4077,14 @@ export class DefaultClient implements Client { compilerDefaults = await this.requestCompiler(path); DebugConfigurationProvider.ClearDetectedBuildTasks(); } + + public getHoverProvider(): HoverProvider | undefined { + return this.hoverProvider; + } + + public getCopilotHoverProvider(): CopilotHoverProvider | undefined { + return this.copilotHoverProvider; + } } function getLanguageServerFileName(): string { @@ -4156,6 +4196,7 @@ class NullClient implements Client { getShowConfigureIntelliSenseButton(): boolean { return false; } setShowConfigureIntelliSenseButton(show: boolean): void { } addTrustedCompiler(path: string): Promise { return Promise.resolve(); } + getCopilotHoverProvider(): CopilotHoverProvider | undefined { return undefined; } getIncludes(maxDepth: number): Promise { return Promise.resolve({} as GetIncludesResult); } getChatContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise { return Promise.resolve({} as ChatContextResult); } getProjectContext(uri: vscode.Uri): Promise { return Promise.resolve({} as ProjectContextResult); } diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index 8bc64f82f..642831c25 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -17,9 +17,11 @@ import { TargetPopulation } from 'vscode-tas-client'; import * as which from 'which'; import { logAndReturn } from '../Utility/Async/returns'; import * as util from '../common'; +import { modelSelector } from '../constants'; import { getCrashCallStacksChannel } from '../logger'; import { PlatformInformation } from '../platform'; import * as telemetry from '../telemetry'; +import { CopilotHoverProvider } from './Providers/CopilotHoverProvider'; import { Client, DefaultClient, DoxygenCodeActionCommandArguments, openFileVersions } from './client'; import { ClientCollection } from './clientCollection'; import { CodeActionDiagnosticInfo, CodeAnalysisDiagnosticIdentifiersAndUri, codeAnalysisAllFixes, codeAnalysisCodeToFixes, codeAnalysisFileToCodeActions } from './codeAnalysis'; @@ -28,6 +30,7 @@ import { CppBuildTaskProvider } from './cppBuildTaskProvider'; import { getCustomConfigProviders } from './customProviders'; import { getLanguageConfig } from './languageConfig'; import { CppConfigurationLanguageModelTool } from './lmTool'; +import { getLocaleId } from './localization'; import { PersistentState } from './persistentState'; import { NodeType, TreeNode } from './referencesModel'; import { CppSettings } from './settings'; @@ -423,6 +426,7 @@ export async function registerCommands(enabled: boolean): Promise { commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ExtractToFreeFunction', enabled ? () => onExtractToFunction(true, false) : onDisabledCommand)); commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ExtractToMemberFunction', enabled ? () => onExtractToFunction(false, true) : onDisabledCommand)); commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ExpandSelection', enabled ? (r: Range) => onExpandSelection(r) : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ShowCopilotHover', enabled ? () => onCopilotHover() : onDisabledCommand)); } function onDisabledCommand() { @@ -1387,3 +1391,135 @@ export async function preReleaseCheck(): Promise { } } } + +// This uses several workarounds for interacting with the hover feature. +// A proposal for dynamic hover content would help, such as the one here (https://github.com/microsoft/vscode/issues/195394) +async function onCopilotHover(): Promise { + telemetry.logLanguageServerEvent("CopilotHover"); + + // Check if the user has access to vscode language model. + const vscodelm = (vscode as any).lm; + if (!vscodelm) { + return; + } + + const copilotHoverProvider = clients.getDefaultClient().getCopilotHoverProvider(); + if (!copilotHoverProvider) { + return; + } + + const hoverDocument = copilotHoverProvider.getCurrentHoverDocument(); + const hoverPosition = copilotHoverProvider.getCurrentHoverPosition(); + if (!hoverDocument || !hoverPosition) { + return; + } + + // Prep hover with wait message. + copilotHoverProvider.showWaiting(); + + if (copilotHoverProvider.isCancelled(hoverDocument, hoverPosition)) { + return; + } + + // Move the cursor to the hover position, but don't focus the editor. + await vscode.window.showTextDocument(hoverDocument, { preserveFocus: true, selection: new vscode.Selection(hoverPosition, hoverPosition) }); + + if (!await showCopilotContent(copilotHoverProvider, hoverDocument, hoverPosition)) { + return; + } + + // Gather the content for the query from the client. + const requestInfo = await copilotHoverProvider.getRequestInfo(hoverDocument, hoverPosition); + if (requestInfo.length === 0) { + // Context is not available for this symbol. + telemetry.logLanguageServerEvent("CopilotHover", { "Message": "Copilot summary is not available for this symbol." }); + await showCopilotContent(copilotHoverProvider, hoverDocument, hoverPosition, localize("copilot.hover.unavailable", "Copilot summary is not available for this symbol.")); + return; + } + + const locale = getLocaleId(); + + const messages = [ + vscode.LanguageModelChatMessage + .User(requestInfo + locale)]; + + const [model] = await vscodelm.selectChatModels(modelSelector); + + let chatResponse: vscode.LanguageModelChatResponse | undefined; + try { + chatResponse = await model.sendRequest( + messages, + {}, + copilotHoverProvider.getCurrentHoverCancellationToken() + ); + } catch (err) { + if (err instanceof vscode.LanguageModelError) { + console.log(err.message, err.code, err.cause); + await reportCopilotFailure(copilotHoverProvider, hoverDocument, hoverPosition, err.message); + } else { + throw err; + } + return; + } + + // Ensure we have a valid response from Copilot. + if (!chatResponse) { + await reportCopilotFailure(copilotHoverProvider, hoverDocument, hoverPosition, "Invalid chat response from Copilot."); + return; + } + + let content: string = ''; + + try { + for await (const fragment of chatResponse.text) { + content += fragment; + } + } catch (err) { + if (err instanceof Error) { + console.log(err.message, err.cause); + await reportCopilotFailure(copilotHoverProvider, hoverDocument, hoverPosition, err.message); + } + return; + } + + if (content.length === 0) { + await reportCopilotFailure(copilotHoverProvider, hoverDocument, hoverPosition, "No content in response from Copilot."); + return; + } + + await showCopilotContent(copilotHoverProvider, hoverDocument, hoverPosition, content); +} + +async function reportCopilotFailure(copilotHoverProvider: CopilotHoverProvider, hoverDocument: vscode.TextDocument, hoverPosition: vscode.Position, errorMessage: string): Promise { + telemetry.logLanguageServerEvent("CopilotHoverError", { "ErrorMessage": errorMessage }); + // Display the localized default failure message in the hover. + await showCopilotContent(copilotHoverProvider, hoverDocument, hoverPosition, localize("copilot.hover.error", "An error occurred while generating Copilot summary.")); +} + +async function showCopilotContent(copilotHoverProvider: CopilotHoverProvider, hoverDocument: vscode.TextDocument, hoverPosition: vscode.Position, content?: string): Promise { + // Check if the cursor has been manually moved by the user. If so, exit. + const currentCursorPosition = vscode.window.activeTextEditor?.selection.active; + if (!currentCursorPosition?.isEqual(hoverPosition)) { + // Reset implies cancellation, but we need to ensure cancellation is acknowledged before returning. + copilotHoverProvider.reset(); + } + + if (copilotHoverProvider.isCancelled(hoverDocument, hoverPosition)) { + return false; + } + + await vscode.commands.executeCommand('cursorMove', { to: 'right' }); + await vscode.commands.executeCommand('editor.action.showHover', { focus: 'noAutoFocus' }); + + if (content) { + copilotHoverProvider.showContent(content); + } + + if (copilotHoverProvider.isCancelled(hoverDocument, hoverPosition)) { + return false; + } + await vscode.commands.executeCommand('cursorMove', { to: 'left' }); + await vscode.commands.executeCommand('editor.action.showHover', { focus: 'noAutoFocus' }); + + return true; +} diff --git a/Extension/src/LanguageServer/settings.ts b/Extension/src/LanguageServer/settings.ts index 8e8d6c065..a33a4b803 100644 --- a/Extension/src/LanguageServer/settings.ts +++ b/Extension/src/LanguageServer/settings.ts @@ -161,6 +161,7 @@ export interface SettingsParams { codeAnalysisMaxMemory: number | null; codeAnalysisUpdateDelay: number; workspaceFolderSettings: WorkspaceFolderSettingsParams[]; + copilotHover: string; } function getTarget(): vscode.ConfigurationTarget { @@ -454,6 +455,17 @@ export class CppSettings extends Settings { && this.intelliSenseEngine.toLowerCase() === "default" && vscode.workspace.getConfiguration("workbench").get("colorTheme") !== "Default High Contrast"; } + public get copilotHover(): string { + if (!(vscode as any).lm) { + return "disabled"; + } + const val = super.Section.get("copilotHover"); + if (val === undefined) { + return "default"; + } + return val as string; + } + public get formattingEngine(): string { return this.getAsString("formatting"); } public get vcFormatIndentBraces(): boolean { return this.getAsBoolean("vcFormat.indent.braces"); } public get vcFormatIndentMultiLineRelativeTo(): string { return this.getAsString("vcFormat.indent.multiLineRelativeTo"); } diff --git a/Extension/src/constants.ts b/Extension/src/constants.ts index e38b513df..059bac203 100644 --- a/Extension/src/constants.ts +++ b/Extension/src/constants.ts @@ -13,3 +13,6 @@ export const isLinux = OperatingSystem === 'linux'; // if you want to see the output of verbose logging, set this to true. export const verboseEnabled = false; + +// Model selector for Copilot features +export const modelSelector = { vendor: 'copilot', family: 'gpt-4' }; diff --git a/Extension/src/nativeStrings.json b/Extension/src/nativeStrings.json index 77ed4f4e0..0bd219f73 100644 --- a/Extension/src/nativeStrings.json +++ b/Extension/src/nativeStrings.json @@ -479,5 +479,6 @@ "refactor_extract_xborder_jump": "Jumps between the selected code and the surrounding code are present.", "refactor_extract_missing_return": "In the selected code, some control paths exit without setting the return value. This is supported only for scalar, numeric, and pointer return types.", "expand_selection": "Expand selection (to enable 'Extract to function')", + "copilot_hover_link": "Generate Copilot summary", "file_not_found_in_path2": "\"{0}\" not found in compile_commands.json files. 'includePath' from c_cpp_properties.json in folder '{1}' will be used for this file instead." } diff --git a/Extension/src/telemetry.ts b/Extension/src/telemetry.ts index 7465de7df..7c8a00375 100644 --- a/Extension/src/telemetry.ts +++ b/Extension/src/telemetry.ts @@ -83,6 +83,10 @@ export async function isExperimentEnabled(experimentName: string): Promise { const experimentationService: IExperimentationService | undefined = await getExperimentationService(); const isEnabled: boolean | undefined = experimentationService?.getTreatmentVariable("vscode", experimentName); return isEnabled ?? false; From d04d53e9a6326415e602e8b04b5bc4910a646e5b Mon Sep 17 00:00:00 2001 From: Yiftah Waisman <63462505+yiftahw@users.noreply.github.com> Date: Thu, 12 Dec 2024 01:35:00 +0200 Subject: [PATCH 41/78] Detect compile_commands.json after containing folder deleted and recreated on Windows (#13032) * fix issue #7030 * check for the undefined case (on first load) --- Extension/src/LanguageServer/configurations.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Extension/src/LanguageServer/configurations.ts b/Extension/src/LanguageServer/configurations.ts index 6f23eb347..028cc7235 100644 --- a/Extension/src/LanguageServer/configurations.ts +++ b/Extension/src/LanguageServer/configurations.ts @@ -2340,7 +2340,9 @@ export class CppProperties { } } else { const compileCommandsLastChanged: Date | undefined = this.compileCommandsFileWatcherFallbackTime.get(compileCommandsFile); - if (compileCommandsLastChanged !== undefined && stats.mtime > compileCommandsLastChanged) { + if ((this.compileCommandsFile === undefined) || + (this.compileCommandsFile === null) || + (compileCommandsLastChanged !== undefined && stats.mtime > compileCommandsLastChanged)) { this.compileCommandsFileWatcherFallbackTime.set(compileCommandsFile, new Date()); this.onCompileCommandsChanged(compileCommandsFile); this.compileCommandsFile = vscode.Uri.file(compileCommandsFile); // File created. From cd5aaaa489a09c6d23dab423ca97a90b4017bf99 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Thu, 12 Dec 2024 10:27:21 -0800 Subject: [PATCH 42/78] Fix native strings. (#13046) --- Extension/src/nativeStrings.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Extension/src/nativeStrings.json b/Extension/src/nativeStrings.json index 0bd219f73..2cbed668c 100644 --- a/Extension/src/nativeStrings.json +++ b/Extension/src/nativeStrings.json @@ -157,8 +157,8 @@ "fallback_to_64_bit_mode2": "Failed to query compiler. Falling back to 64-bit intelliSenseMode.", "fallback_to_no_bitness": "Failed to query compiler. Falling back to no bitness.", "intellisense_client_creation_aborted": "IntelliSense client creation aborted: {0}", - "include_errors_config_provider_intellisense_disabled ": "#include errors detected based on information provided by the configurationProvider setting. IntelliSense features for this translation unit ({0}) will be provided by the Tag Parser.", - "include_errors_config_provider_squiggles_disabled ": "#include errors detected based on information provided by the configurationProvider setting. Squiggles are disabled for this translation unit ({0}).", + "include_errors_config_provider_intellisense_disabled": "#include errors detected based on information provided by the configurationProvider setting. IntelliSense features for this translation unit ({0}) will be provided by the Tag Parser.", + "include_errors_config_provider_squiggles_disabled": "#include errors detected based on information provided by the configurationProvider setting. Squiggles are disabled for this translation unit ({0}).", "preprocessor_keyword": { "text": "preprocessor keyword", "hint": "Refers to C/C++ processor keywords" @@ -479,6 +479,6 @@ "refactor_extract_xborder_jump": "Jumps between the selected code and the surrounding code are present.", "refactor_extract_missing_return": "In the selected code, some control paths exit without setting the return value. This is supported only for scalar, numeric, and pointer return types.", "expand_selection": "Expand selection (to enable 'Extract to function')", - "copilot_hover_link": "Generate Copilot summary", - "file_not_found_in_path2": "\"{0}\" not found in compile_commands.json files. 'includePath' from c_cpp_properties.json in folder '{1}' will be used for this file instead." + "file_not_found_in_path2": "\"{0}\" not found in compile_commands.json files. 'includePath' from c_cpp_properties.json in folder '{1}' will be used for this file instead.", + "copilot_hover_link": "Generate Copilot summary" } From ab7bebfd7caca28b9902e4a86eca74b03795b03c Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Fri, 13 Dec 2024 17:41:18 -0800 Subject: [PATCH 43/78] Fix space around binary operator translation. (#13057) * Fix space around binary operator translation. --- Extension/i18n/chs/package.i18n.json | 4 ++-- Extension/package.nls.json | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Extension/i18n/chs/package.i18n.json b/Extension/i18n/chs/package.i18n.json index c1c7f42e8..48b573e65 100644 --- a/Extension/i18n/chs/package.i18n.json +++ b/Extension/i18n/chs/package.i18n.json @@ -160,7 +160,7 @@ "c_cpp.configuration.vcFormat.space.removeBeforeSemicolon.description": "将移除每个分号前的空格。", "c_cpp.configuration.vcFormat.space.insertAfterSemicolon.description": "在每个分号后面插入一个空格。", "c_cpp.configuration.vcFormat.space.removeAroundUnaryOperator.description": "移除一元运算符和操作数之间的空格。", - "c_cpp.configuration.vcFormat.space.aroundBinaryOperator.description": "二进制运算符周围的空格。", + "c_cpp.configuration.vcFormat.space.aroundBinaryOperator.description": "二元运算符周围的空格。", "c_cpp.configuration.vcFormat.space.aroundAssignmentOperator.description": "赋值运算符周围的空格。", "c_cpp.configuration.vcFormat.space.pointerReferenceAlignment.description": "指针和引用运算符周围的空格。", "c_cpp.configuration.vcFormat.space.pointerReferenceAlignment.left.description": "指针和引用运算符左对齐。", @@ -449,4 +449,4 @@ "c_cpp.configuration.refactoring.includeHeader.never.description": "从不包含头文件。", "c_cpp.languageModelTools.configuration.displayName": "C/C++ 配置", "c_cpp.languageModelTools.configuration.userDescription": "活动 C 或 C++ 文件的配置,例如语言标准版本和目标平台。" -} \ No newline at end of file +} diff --git a/Extension/package.nls.json b/Extension/package.nls.json index 92908ad50..f59f98134 100644 --- a/Extension/package.nls.json +++ b/Extension/package.nls.json @@ -410,7 +410,12 @@ "c_cpp.configuration.vcFormat.space.removeBeforeSemicolon.description": "Spaces are removed before every semicolon.", "c_cpp.configuration.vcFormat.space.insertAfterSemicolon.description": "A space is inserted after every semicolon.", "c_cpp.configuration.vcFormat.space.removeAroundUnaryOperator.description": "Spaces between unary operators and operands are removed.", - "c_cpp.configuration.vcFormat.space.aroundBinaryOperator.description": "Spaces around binary operators.", + "c_cpp.configuration.vcFormat.space.aroundBinaryOperator.description": { + "message": "Spaces around binary operators.", + "comment": [ + "The term \"binary operators\" refers to operators that takes two operands and not operators on binary numbers." + ] + }, "c_cpp.configuration.vcFormat.space.aroundAssignmentOperator.description": "Spaces around assignment operators.", "c_cpp.configuration.vcFormat.space.pointerReferenceAlignment.description": "Spaces around pointer and reference operators.", "c_cpp.configuration.vcFormat.space.pointerReferenceAlignment.left.description": "Pointer and reference operators are aligned to the left.", From d7ee24158f548b249fd3a9e0fa1897b2b238de41 Mon Sep 17 00:00:00 2001 From: Emmanuel Ferdman Date: Sat, 14 Dec 2024 04:25:29 +0200 Subject: [PATCH 44/78] Update `extension.test.ts` reference (#13040) --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 92d7a6944..8acc52bac 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ * [Build and debug the extension](Documentation/Building%20the%20Extension.md). * File an [issue](https://github.com/Microsoft/vscode-cpptools/issues) and a [pull request](https://github.com/Microsoft/vscode-cpptools/pulls) with the change and we will review it. * If the change affects functionality, add a line describing the change to [**CHANGELOG.md**](Extension/CHANGELOG.md). -* Try and add a test in [**test/extension.test.ts**](Extension/test/unitTests/extension.test.ts). +* Try and add a test in [**test/extension.test.ts**](Extension/test/scenarios/SingleRootProject/tests/extension.test.ts). * Run tests via opening the [**Extension**](https://github.com/Microsoft/vscode-cpptools/tree/main/Extension) folder in Visual Studio Code, selecting the "Launch Tests" configuration in the Debug pane, and choosing "Start Debugging". ## About the Code From fbf81359df67eb3d88607a779e3d087399e2a5b6 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Mon, 16 Dec 2024 14:46:09 -0800 Subject: [PATCH 45/78] Trigger reparsing when `files.encoding` setting changes (#13047) --- Extension/src/LanguageServer/client.ts | 51 +++++++++++++++++++++--- Extension/src/LanguageServer/settings.ts | 2 + 2 files changed, 47 insertions(+), 6 deletions(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 8ee0e22f6..d1f0cb8c9 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -58,7 +58,7 @@ import { DataBinding } from './dataBinding'; import { cachedEditorConfigSettings, getEditorConfigSettings } from './editorConfig'; import { CppSourceStr, clients, configPrefix, updateLanguageConfigurations, usesCrashHandler, watchForCrashes } from './extension'; import { LocalizeStringParams, getLocaleId, getLocalizedString } from './localization'; -import { PersistentFolderState, PersistentWorkspaceState } from './persistentState'; +import { PersistentFolderState, PersistentState, PersistentWorkspaceState } from './persistentState'; import { RequestCancelled, ServerCancelled, createProtocolFilter } from './protocolFilter'; import * as refs from './references'; import { CppSettings, OtherSettings, SettingsParams, WorkspaceFolderSettingsParams } from './settings'; @@ -564,6 +564,16 @@ export interface ProjectContextResult { fileContext: FileContextResult; } +interface FolderFilesEncodingChanged { + uri: string; + filesEncoding: string; +} + +interface FilesEncodingChanged { + workspaceFallbackEncoding?: string; + foldersFilesEncoding: FolderFilesEncodingChanged[]; +} + // Requests const PreInitializationRequest: RequestType = new RequestType('cpptools/preinitialize'); const InitializationRequest: RequestType = new RequestType('cpptools/initialize'); @@ -642,6 +652,7 @@ const ReportCodeAnalysisTotalNotification: NotificationType = new Notifi const DoxygenCommentGeneratedNotification: NotificationType = new NotificationType('cpptools/insertDoxygenComment'); const CanceledReferencesNotification: NotificationType = new NotificationType('cpptools/canceledReferences'); const IntelliSenseResultNotification: NotificationType = new NotificationType('cpptools/intelliSenseResult'); +const FilesEncodingChangedNotification: NotificationType = new NotificationType('cpptools/filesEncodingChanged'); let failureMessageShown: boolean = false; @@ -819,6 +830,7 @@ export interface Client { getIncludes(maxDepth: number): Promise; getChatContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise; getProjectContext(uri: vscode.Uri): Promise; + filesEncodingChanged(filesEncodingChanged: FilesEncodingChanged): void; } export function createClient(workspaceFolder?: vscode.WorkspaceFolder): Client { @@ -1367,7 +1379,13 @@ export class DefaultClient implements Client { DefaultClient.isStarted.resolve(); } - private getWorkspaceFolderSettings(workspaceFolderUri: vscode.Uri | undefined, settings: CppSettings, otherSettings: OtherSettings): WorkspaceFolderSettingsParams { + private getWorkspaceFolderSettings(workspaceFolderUri: vscode.Uri | undefined, workspaceFolder: vscode.WorkspaceFolder | undefined, settings: CppSettings, otherSettings: OtherSettings): WorkspaceFolderSettingsParams { + const filesEncoding: string = otherSettings.filesEncoding; + let filesEncodingChanged: boolean = false; + if (workspaceFolder) { + const lastFilesEncoding: PersistentFolderState = new PersistentFolderState("CPP.lastFilesEncoding", "", workspaceFolder); + filesEncodingChanged = lastFilesEncoding.Value !== filesEncoding; + } const result: WorkspaceFolderSettingsParams = { uri: workspaceFolderUri?.toString(), intelliSenseEngine: settings.intelliSenseEngine, @@ -1464,7 +1482,8 @@ export class DefaultClient implements Client { doxygenSectionTags: settings.doxygenSectionTags, filesExclude: otherSettings.filesExclude, filesAutoSaveAfterDelay: otherSettings.filesAutoSaveAfterDelay, - filesEncoding: otherSettings.filesEncoding, + filesEncoding: filesEncoding, + filesEncodingChanged: filesEncodingChanged, searchExclude: otherSettings.searchExclude, editorAutoClosingBrackets: otherSettings.editorAutoClosingBrackets, editorInlayHintsEnabled: otherSettings.editorInlayHintsEnabled, @@ -1480,10 +1499,10 @@ export class DefaultClient implements Client { const workspaceFolderSettingsParams: WorkspaceFolderSettingsParams[] = []; if (vscode.workspace.workspaceFolders && vscode.workspace.workspaceFolders.length > 0) { for (const workspaceFolder of vscode.workspace.workspaceFolders) { - workspaceFolderSettingsParams.push(this.getWorkspaceFolderSettings(workspaceFolder.uri, new CppSettings(workspaceFolder.uri), new OtherSettings(workspaceFolder.uri))); + workspaceFolderSettingsParams.push(this.getWorkspaceFolderSettings(workspaceFolder.uri, workspaceFolder, new CppSettings(workspaceFolder.uri), new OtherSettings(workspaceFolder.uri))); } } else { - workspaceFolderSettingsParams.push(this.getWorkspaceFolderSettings(this.RootUri, workspaceSettings, workspaceOtherSettings)); + workspaceFolderSettingsParams.push(this.getWorkspaceFolderSettings(this.RootUri, undefined, workspaceSettings, workspaceOtherSettings)); } return workspaceFolderSettingsParams; } @@ -1498,9 +1517,13 @@ export class DefaultClient implements Client { if (this.currentCopilotHoverEnabled && workspaceSettings.copilotHover !== this.currentCopilotHoverEnabled.Value) { void util.promptForReloadWindowDueToSettingsChange(); } + const workspaceFallbackEncoding: string = workspaceOtherSettings.filesEncoding; + const lastWorkspaceFallbackEncoding: PersistentState = new PersistentState("CPP.lastWorkspaceFallbackEncoding", ""); + const workspaceFallbackEncodingChanged = lastWorkspaceFallbackEncoding.Value !== workspaceFallbackEncoding; return { filesAssociations: workspaceOtherSettings.filesAssociations, - workspaceFallbackEncoding: workspaceOtherSettings.filesEncoding, + workspaceFallbackEncoding: workspaceFallbackEncoding, + workspaceFallbackEncodingChanged: workspaceFallbackEncodingChanged, maxConcurrentThreads: workspaceSettings.maxConcurrentThreads, maxCachedProcesses: workspaceSettings.maxCachedProcesses, maxMemory: workspaceSettings.maxMemory, @@ -2438,6 +2461,7 @@ export class DefaultClient implements Client { this.languageClient.onNotification(ReportCodeAnalysisTotalNotification, (e) => this.updateCodeAnalysisTotal(e)); this.languageClient.onNotification(DoxygenCommentGeneratedNotification, (e) => void this.insertDoxygenComment(e)); this.languageClient.onNotification(CanceledReferencesNotification, this.serverCanceledReferences); + this.languageClient.onNotification(FilesEncodingChangedNotification, (e) => this.filesEncodingChanged(e)); } private handleIntelliSenseResult(intelliSenseResult: IntelliSenseResult): void { @@ -4085,6 +4109,20 @@ export class DefaultClient implements Client { public getCopilotHoverProvider(): CopilotHoverProvider | undefined { return this.copilotHoverProvider; } + + public filesEncodingChanged(filesEncodingChanged: FilesEncodingChanged): void { + if (filesEncodingChanged.workspaceFallbackEncoding !== undefined) { + const lastWorkspaceFallbackEncoding: PersistentState = new PersistentState("CPP.lastWorkspaceFallbackEncoding", ""); + lastWorkspaceFallbackEncoding.Value = filesEncodingChanged.workspaceFallbackEncoding; + } + for (const folderFilesEncoding of filesEncodingChanged.foldersFilesEncoding) { + const workspaceFolder: vscode.WorkspaceFolder | undefined = vscode.workspace.getWorkspaceFolder(vscode.Uri.parse(folderFilesEncoding.uri)); + if (workspaceFolder !== undefined) { + const lastFilesEncoding: PersistentFolderState = new PersistentFolderState("CPP.lastFilesEncoding", "", workspaceFolder); + lastFilesEncoding.Value = folderFilesEncoding.filesEncoding; + } + } + } } function getLanguageServerFileName(): string { @@ -4200,4 +4238,5 @@ class NullClient implements Client { getIncludes(maxDepth: number): Promise { return Promise.resolve({} as GetIncludesResult); } getChatContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise { return Promise.resolve({} as ChatContextResult); } getProjectContext(uri: vscode.Uri): Promise { return Promise.resolve({} as ProjectContextResult); } + filesEncodingChanged(filesEncodingChanged: FilesEncodingChanged): void { } } diff --git a/Extension/src/LanguageServer/settings.ts b/Extension/src/LanguageServer/settings.ts index a33a4b803..fb96b2afa 100644 --- a/Extension/src/LanguageServer/settings.ts +++ b/Extension/src/LanguageServer/settings.ts @@ -131,6 +131,7 @@ export interface WorkspaceFolderSettingsParams { filesExclude: Excludes; filesAutoSaveAfterDelay: boolean; filesEncoding: string; + filesEncodingChanged: boolean; searchExclude: Excludes; editorAutoClosingBrackets: string; editorInlayHintsEnabled: boolean; @@ -141,6 +142,7 @@ export interface WorkspaceFolderSettingsParams { export interface SettingsParams { filesAssociations: Associations; workspaceFallbackEncoding: string; + workspaceFallbackEncodingChanged: boolean; maxConcurrentThreads: number | null; maxCachedProcesses: number | null; maxMemory: number | null; From afb208dabbe747706b1c9b95b9f21a0aa39f5f00 Mon Sep 17 00:00:00 2001 From: Luca <681992+lukka@users.noreply.github.com> Date: Tue, 17 Dec 2024 14:30:51 -0800 Subject: [PATCH 46/78] get isense client by uri (#13059) --- Extension/src/LanguageServer/client.ts | 9 +++++---- Extension/src/LanguageServer/copilotProviders.ts | 12 ++++++------ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index d1f0cb8c9..47e5d2821 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -527,6 +527,7 @@ interface DidChangeActiveEditorParams { } interface GetIncludesParams { + fileUri: string; maxDepth: number; } @@ -827,7 +828,7 @@ export interface Client { setShowConfigureIntelliSenseButton(show: boolean): void; addTrustedCompiler(path: string): Promise; getCopilotHoverProvider(): CopilotHoverProvider | undefined; - getIncludes(maxDepth: number): Promise; + getIncludes(uri: vscode.Uri, maxDepth: number): Promise; getChatContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise; getProjectContext(uri: vscode.Uri): Promise; filesEncodingChanged(filesEncodingChanged: FilesEncodingChanged): void; @@ -2291,8 +2292,8 @@ export class DefaultClient implements Client { * the UI results and always re-requests (no caching). */ - public async getIncludes(maxDepth: number): Promise { - const params: GetIncludesParams = { maxDepth: maxDepth }; + public async getIncludes(uri: vscode.Uri, maxDepth: number): Promise { + const params: GetIncludesParams = { fileUri: uri.toString(), maxDepth }; await this.ready; return this.languageClient.sendRequest(IncludesRequest, params); } @@ -4235,7 +4236,7 @@ class NullClient implements Client { setShowConfigureIntelliSenseButton(show: boolean): void { } addTrustedCompiler(path: string): Promise { return Promise.resolve(); } getCopilotHoverProvider(): CopilotHoverProvider | undefined { return undefined; } - getIncludes(maxDepth: number): Promise { return Promise.resolve({} as GetIncludesResult); } + getIncludes(uri: vscode.Uri, maxDepth: number): Promise { return Promise.resolve({} as GetIncludesResult); } getChatContext(uri: vscode.Uri, token: vscode.CancellationToken): Promise { return Promise.resolve({} as ChatContextResult); } getProjectContext(uri: vscode.Uri): Promise { return Promise.resolve({} as ProjectContextResult); } filesEncodingChanged(filesEncodingChanged: FilesEncodingChanged): void { } diff --git a/Extension/src/LanguageServer/copilotProviders.ts b/Extension/src/LanguageServer/copilotProviders.ts index a78fdfa5b..ce232865f 100644 --- a/Extension/src/LanguageServer/copilotProviders.ts +++ b/Extension/src/LanguageServer/copilotProviders.ts @@ -10,7 +10,7 @@ import * as util from '../common'; import * as logger from '../logger'; import * as telemetry from '../telemetry'; import { GetIncludesResult } from './client'; -import { getActiveClient } from './extension'; +import { getClients } from './extension'; import { getCompilerArgumentFilterMap, getProjectContext } from './lmTool'; nls.config({ messageFormat: nls.MessageFormat.bundle, bundleFormat: nls.BundleFormat.standalone })(); @@ -46,7 +46,7 @@ export async function registerRelatedFilesProvider(): Promise { const telemetryProperties: Record = {}; const telemetryMetrics: Record = {}; try { - const getIncludesHandler = async () => (await getIncludes(1))?.includedFiles.map(file => vscode.Uri.file(file)) ?? []; + const getIncludesHandler = async () => (await getIncludes(uri, 1))?.includedFiles.map(file => vscode.Uri.file(file)) ?? []; const getTraitsHandler = async () => { const projectContext = await getProjectContext(uri, context); @@ -157,10 +157,10 @@ export async function registerRelatedFilesProvider(): Promise { } } -async function getIncludes(maxDepth: number): Promise { - const activeClient = getActiveClient(); - const includes = await activeClient.getIncludes(maxDepth); - const wksFolder = activeClient.RootUri?.toString(); +async function getIncludes(uri: vscode.Uri, maxDepth: number): Promise { + const client = getClients().getClientFor(uri); + const includes = await client.getIncludes(uri, maxDepth); + const wksFolder = client.RootUri?.toString(); if (!wksFolder) { return includes; From 84b92dcae5fcbae38d1bd3e3e96523c807da6e4f Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Wed, 18 Dec 2024 12:14:19 -0800 Subject: [PATCH 47/78] Don't show the output window for "references may be missing" when the loggingLevel is less than Warning (#13068) --- Extension/src/LanguageServer/references.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Extension/src/LanguageServer/references.ts b/Extension/src/LanguageServer/references.ts index 0fc3d2fbb..e8e3567b7 100644 --- a/Extension/src/LanguageServer/references.ts +++ b/Extension/src/LanguageServer/references.ts @@ -13,6 +13,7 @@ import * as telemetry from '../telemetry'; import { DefaultClient } from './client'; import { PersistentState } from './persistentState'; import { FindAllRefsView } from './referencesView'; +import { CppSettings } from './settings'; nls.config({ messageFormat: nls.MessageFormat.bundle, bundleFormat: nls.BundleFormat.standalone })(); const localize: nls.LocalizeFunc = nls.loadMessageBundle(); @@ -469,19 +470,24 @@ export class ReferencesManager { } if (this.referencesStartedWhileTagParsing) { + const showLog: boolean = util.getNumericLoggingLevel(new CppSettings().loggingLevel) >= 3; const msg: string = localize("some.references.may.be.missing", "[Warning] Some references may be missing, because workspace parsing was incomplete when {0} was started.", referencesCommandModeToString(this.client.ReferencesCommandMode)); if (this.client.ReferencesCommandMode === ReferencesCommandMode.Peek) { if (this.referencesChannel) { this.referencesChannel.appendLine(msg); this.referencesChannel.appendLine(""); - this.referencesChannel.show(true); + if (showLog) { + this.referencesChannel.show(true); + } } } else if (this.client.ReferencesCommandMode === ReferencesCommandMode.Find) { const logChannel: vscode.OutputChannel = logger.getOutputChannel(); logChannel.appendLine(msg); logChannel.appendLine(""); - logChannel.show(true); + if (showLog) { + logChannel.show(true); + } } } From b11f390d4a30e27eb80a95d194c20da094de3543 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 13:34:05 -0800 Subject: [PATCH 48/78] Bump nanoid from 3.3.7 to 3.3.8 in /Extension (#13060) Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8. - [Release notes](https://github.com/ai/nanoid/releases) - [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md) - [Commits](https://github.com/ai/nanoid/compare/3.3.7...3.3.8) --- updated-dependencies: - dependency-name: nanoid dependency-type: indirect ... --- Extension/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Extension/yarn.lock b/Extension/yarn.lock index c4ee00c3d..3c5fdaa19 100644 --- a/Extension/yarn.lock +++ b/Extension/yarn.lock @@ -3355,9 +3355,9 @@ mute-stdout@^2.0.0: integrity sha1-xqm0thhdO39w0//Lc0y/yLDzh2E= nanoid@^3.3.7: - version "3.3.7" - resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha1-0MMBppG8jVTvoKIibM8/4v1la9g= + version "3.3.8" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" + integrity sha1-sb4wML7jaq/xi6yzdeXM5SFoS68= natural-compare@^1.4.0: version "1.4.0" From 73f4442d27ba948e0dfcb3c964fc2d9a3cd6726b Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Thu, 19 Dec 2024 12:18:04 -0800 Subject: [PATCH 49/78] Update the descriptions of clang path settings (#13071) --- Extension/package.nls.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Extension/package.nls.json b/Extension/package.nls.json index f59f98134..116ec2a1f 100644 --- a/Extension/package.nls.json +++ b/Extension/package.nls.json @@ -173,7 +173,7 @@ ] }, "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": { - "message": "The full path of the `clang-tidy` executable. If not specified, and `clang-tidy` is available in the environment path, that is used. If not found in the environment path, the `clang-tidy` bundled with the extension will be used.", + "message": "The full path of the `clang-tidy` executable. If not specified, and `clang-tidy` is available in the environment path, that is used unless the version bundled with the extension is newer. If not found in the environment path, the `clang-tidy` bundled with the extension will be used.", "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." ] @@ -446,7 +446,7 @@ ] }, "c_cpp.configuration.clang_format_path.markdownDescription": { - "message": "The full path of the `clang-format` executable. If not specified, and `clang-format` is available in the environment path, that is used. If not found in the environment path, the `clang-format` bundled with the extension will be used.", + "message": "The full path of the `clang-format` executable. If not specified, and `clang-format` is available in the environment path, that is used unless the version bundled with the extension is newer. If not found in the environment path, the `clang-format` bundled with the extension will be used.", "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." ] From b96d82a1a786d89c6eda88be8cc68239d4dba5ee Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Thu, 19 Dec 2024 15:07:54 -0800 Subject: [PATCH 50/78] Add appName telemetry (#13072) --- Extension/src/main.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/Extension/src/main.ts b/Extension/src/main.ts index e15389dda..f8d5bcd33 100644 --- a/Extension/src/main.ts +++ b/Extension/src/main.ts @@ -221,6 +221,7 @@ function sendTelemetry(info: PlatformInformation): void { default: break; } + telemetryProperties['appName'] = vscode.env.appName; Telemetry.logDebuggerEvent("acquisition", telemetryProperties); logMachineIdMappings().catch(logAndReturn.undefined); } From 5c684a87d05dd11dad0506d998279cbaf0a5d5b4 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Thu, 19 Dec 2024 15:19:29 -0800 Subject: [PATCH 51/78] Don't reset everyones databases (#13073) --- Extension/src/LanguageServer/client.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 47e5d2821..ed807275a 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -1384,7 +1384,7 @@ export class DefaultClient implements Client { const filesEncoding: string = otherSettings.filesEncoding; let filesEncodingChanged: boolean = false; if (workspaceFolder) { - const lastFilesEncoding: PersistentFolderState = new PersistentFolderState("CPP.lastFilesEncoding", "", workspaceFolder); + const lastFilesEncoding: PersistentFolderState = new PersistentFolderState("CPP.lastFilesEncoding", filesEncoding, workspaceFolder); filesEncodingChanged = lastFilesEncoding.Value !== filesEncoding; } const result: WorkspaceFolderSettingsParams = { @@ -1519,7 +1519,7 @@ export class DefaultClient implements Client { void util.promptForReloadWindowDueToSettingsChange(); } const workspaceFallbackEncoding: string = workspaceOtherSettings.filesEncoding; - const lastWorkspaceFallbackEncoding: PersistentState = new PersistentState("CPP.lastWorkspaceFallbackEncoding", ""); + const lastWorkspaceFallbackEncoding: PersistentState = new PersistentState("CPP.lastWorkspaceFallbackEncoding", workspaceFallbackEncoding); const workspaceFallbackEncodingChanged = lastWorkspaceFallbackEncoding.Value !== workspaceFallbackEncoding; return { filesAssociations: workspaceOtherSettings.filesAssociations, From a172a425ad2ab3c0e76f23a3ed76090ead170607 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Thu, 19 Dec 2024 15:55:42 -0800 Subject: [PATCH 52/78] Ensure default persistent values get persisted (#13074) --- Extension/src/LanguageServer/persistentState.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Extension/src/LanguageServer/persistentState.ts b/Extension/src/LanguageServer/persistentState.ts index e96be7a0e..7eb96ab5f 100644 --- a/Extension/src/LanguageServer/persistentState.ts +++ b/Extension/src/LanguageServer/persistentState.ts @@ -19,6 +19,11 @@ class PersistentStateBase { this.defaultvalue = defaultValue; this.state = state; this.curvalue = defaultValue; + + // Ensure the default is written to the state store. + if (this.state && this.state.get(this.key) === undefined) { + void this.state.update(this.key, this.defaultvalue); + } } public get Value(): T { From 0aaae1fabf39c33af18da626694d18dfdd129c73 Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Fri, 20 Dec 2024 12:24:15 -0800 Subject: [PATCH 53/78] Support sending telemetry during cpptools initialization (#13077) --- Extension/src/LanguageServer/client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index ed807275a..4355acdf9 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -1670,6 +1670,7 @@ export class DefaultClient implements Client { languageClient = new LanguageClient(`cpptools`, serverOptions, clientOptions); languageClient.onNotification(DebugProtocolNotification, logDebugProtocol); languageClient.onNotification(DebugLogNotification, logLocalized); + languageClient.onNotification(LogTelemetryNotification, (e) => this.logTelemetry(e)); languageClient.registerProposedFeatures(); await languageClient.start(); @@ -2443,7 +2444,6 @@ export class DefaultClient implements Client { this.languageClient.onNotification(ReloadWindowNotification, () => void util.promptForReloadWindowDueToSettingsChange()); this.languageClient.onNotification(UpdateTrustedCompilersNotification, (e) => void this.addTrustedCompiler(e.compilerPath)); - this.languageClient.onNotification(LogTelemetryNotification, (e) => this.logTelemetry(e)); this.languageClient.onNotification(ReportStatusNotification, (e) => void this.updateStatus(e)); this.languageClient.onNotification(ReportTagParseStatusNotification, (e) => this.updateTagParseStatus(e)); this.languageClient.onNotification(CompileCommandsPathsNotification, (e) => void this.promptCompileCommands(e)); From 2bff033a27c9e6bd1ebefcf9b1ca531e68b6238e Mon Sep 17 00:00:00 2001 From: Yiftah Waisman <63462505+yiftahw@users.noreply.github.com> Date: Mon, 30 Dec 2024 20:31:13 +0200 Subject: [PATCH 54/78] Handle multiple compile commands on client side (needs native server side support) (#12960) --- Extension/c_cpp_properties.schema.json | 18 ++- Extension/package.json | 18 ++- .../src/LanguageServer/configurations.ts | 141 ++++++++++++------ Extension/src/LanguageServer/settings.ts | 14 +- Extension/src/LanguageServer/settingsPanel.ts | 2 +- .../src/LanguageServer/settingsTracker.ts | 7 +- Extension/ui/settings.html | 7 +- Extension/ui/settings.ts | 2 +- 8 files changed, 150 insertions(+), 59 deletions(-) diff --git a/Extension/c_cpp_properties.schema.json b/Extension/c_cpp_properties.schema.json index a07d242f0..cd7e174d9 100644 --- a/Extension/c_cpp_properties.schema.json +++ b/Extension/c_cpp_properties.schema.json @@ -70,9 +70,20 @@ ] }, "compileCommands": { - "markdownDescription": "Full path to `compile_commands.json` file for the workspace.", - "descriptionHint": "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.", - "type": "string" + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + } + ], + "markdownDescription": "Full path or a list of full paths to `compile_commands.json` files for the workspace.", + "descriptionHint": "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." }, "includePath": { "markdownDescription": "A list of paths for the IntelliSense engine to use while searching for included headers. Searching on these paths is not recursive. Specify `**` to indicate recursive search. For example, `${workspaceFolder}/**` will search through all subdirectories while `${workspaceFolder}` will not. Usually, this should not include system includes; instead, set `C_Cpp.default.compilerPath`.", @@ -239,7 +250,6 @@ }, "enableConfigurationSquiggles": { "type": "boolean", - "default": true, "markdownDescription": "Controls whether the extension will report errors detected in `c_cpp_properties.json`.", "descriptionHint": "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." } diff --git a/Extension/package.json b/Extension/package.json index cfdc2a73d..2d36fdf32 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -693,7 +693,23 @@ "scope": "machine-overridable" }, "C_Cpp.default.compileCommands": { - "type": "string", + "oneOf": [ + { + "type": "string", + "default": "" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true, + "default": [] + } + ], + "default": [ + "" + ], "markdownDescription": "%c_cpp.configuration.default.compileCommands.markdownDescription%", "scope": "machine-overridable" }, diff --git a/Extension/src/LanguageServer/configurations.ts b/Extension/src/LanguageServer/configurations.ts index 028cc7235..62718852a 100644 --- a/Extension/src/LanguageServer/configurations.ts +++ b/Extension/src/LanguageServer/configurations.ts @@ -78,8 +78,8 @@ export interface Configuration { defines?: string[]; intelliSenseMode?: string; intelliSenseModeIsExplicit?: boolean; - compileCommandsInCppPropertiesJson?: string; - compileCommands?: string; + compileCommandsInCppPropertiesJson?: string[]; + compileCommands?: string[]; forcedInclude?: string[]; configurationProviderInCppPropertiesJson?: string; configurationProvider?: string; @@ -136,7 +136,7 @@ export class CppProperties { private currentConfigurationIndex: PersistentFolderState | undefined; private configFileWatcher: vscode.FileSystemWatcher | null = null; private configFileWatcherFallbackTime: Date = new Date(); // Used when file watching fails. - private compileCommandsFile: vscode.Uri | undefined | null = undefined; + private compileCommandsFiles: Set = new Set(); private compileCommandsFileWatchers: fs.FSWatcher[] = []; private compileCommandsFileWatcherFallbackTime: Map = new Map(); // Used when file watching fails. private defaultCompilerPath: string | null = null; @@ -389,7 +389,8 @@ export class CppProperties { configuration.windowsSdkVersion = this.defaultWindowsSdkVersion; } if (isUnset(settings.defaultCompilerPath) && this.defaultCompilerPath && - (isUnset(settings.defaultCompileCommands) || settings.defaultCompileCommands === "") && !configuration.compileCommands) { + (isUnset(settings.defaultCompileCommands) || settings.defaultCompileCommands?.length === 0) && + (isUnset(configuration.compileCommands) || configuration.compileCommands?.length === 0)) { // compile_commands.json already specifies a compiler. compilerPath overrides the compile_commands.json compiler so // don't set a default when compileCommands is in use. @@ -684,7 +685,7 @@ export class CppProperties { this.parsePropertiesFile(); // Clear out any modifications we may have made internally. const config: Configuration | undefined = this.CurrentConfiguration; if (config) { - config.compileCommands = path; + config.compileCommands = [path]; this.writeToJson(); } // Any time parsePropertiesFile is called, configurationJson gets @@ -938,7 +939,7 @@ export class CppProperties { configuration.macFrameworkPath = this.updateConfigurationStringArray(configuration.macFrameworkPath, settings.defaultMacFrameworkPath, env); configuration.windowsSdkVersion = this.updateConfigurationString(configuration.windowsSdkVersion, settings.defaultWindowsSdkVersion, env); configuration.forcedInclude = this.updateConfigurationPathsArray(configuration.forcedInclude, settings.defaultForcedInclude, env, false); - configuration.compileCommands = this.updateConfigurationString(configuration.compileCommands, settings.defaultCompileCommands, env); + configuration.compileCommands = this.updateConfigurationStringArray(configuration.compileCommands, settings.defaultCompileCommands, env); configuration.compilerArgs = this.updateConfigurationStringArray(configuration.compilerArgs, settings.defaultCompilerArgs, env); configuration.cStandard = this.updateConfigurationString(configuration.cStandard, settings.defaultCStandard, env); configuration.cppStandard = this.updateConfigurationString(configuration.cppStandard, settings.defaultCppStandard, env); @@ -1092,11 +1093,13 @@ export class CppProperties { } if (configuration.compileCommands) { - configuration.compileCommands = this.resolvePath(configuration.compileCommands); - if (!this.compileCommandsFileWatcherFallbackTime.has(configuration.compileCommands)) { - // Start tracking the fallback time for a new path. - this.compileCommandsFileWatcherFallbackTime.set(configuration.compileCommands, new Date()); - } + configuration.compileCommands = configuration.compileCommands.map((path: string) => this.resolvePath(path)); + configuration.compileCommands.forEach((path: string) => { + if (!this.compileCommandsFileWatcherFallbackTime.has(path)) { + // Start tracking the fallback time for a new path. + this.compileCommandsFileWatcherFallbackTime.set(path, new Date()); + } + }); } if (configuration.forcedInclude) { @@ -1120,10 +1123,12 @@ export class CppProperties { // Instead, we clear entries that are no longer relevant. const trackedCompileCommandsPaths: Set = new Set(); this.configurationJson?.configurations.forEach((config: Configuration) => { - const path = this.resolvePath(config.compileCommands); - if (path.length > 0) { - trackedCompileCommandsPaths.add(path); - } + config.compileCommands?.forEach((path: string) => { + const compileCommandsFile = this.resolvePath(path); + if (compileCommandsFile.length > 0) { + trackedCompileCommandsPaths.add(compileCommandsFile); + } + }); }); for (const path of this.compileCommandsFileWatcherFallbackTime.keys()) { @@ -1144,12 +1149,12 @@ export class CppProperties { this.compileCommandsFileWatchers = []; // reset it const filePaths: Set = new Set(); this.configurationJson.configurations.forEach(c => { - if (c.compileCommands) { - const fileSystemCompileCommandsPath: string = this.resolvePath(c.compileCommands); - if (fs.existsSync(fileSystemCompileCommandsPath)) { - filePaths.add(fileSystemCompileCommandsPath); + c.compileCommands?.forEach((path: string) => { + const compileCommandsFile: string = this.resolvePath(path); + if (fs.existsSync(compileCommandsFile)) { + filePaths.add(compileCommandsFile); } - } + }); }); try { filePaths.forEach((path: string) => { @@ -1412,6 +1417,18 @@ export class CppProperties { return; } + private forceCompileCommandsAsArray(compileCommandsInCppPropertiesJson: any): string[] | undefined { + if (util.isString(compileCommandsInCppPropertiesJson) && compileCommandsInCppPropertiesJson.length > 0) { + return [compileCommandsInCppPropertiesJson]; + } else if (util.isArrayOfString(compileCommandsInCppPropertiesJson)) { + const filteredArray: string[] = compileCommandsInCppPropertiesJson.filter(value => value.length > 0); + if (filteredArray.length > 0) { + return filteredArray; + } + } + return undefined; + } + private parsePropertiesFile(): boolean { if (!this.propertiesFile) { this.configurationJson = undefined; @@ -1441,6 +1458,13 @@ export class CppProperties { } } } + + // Configuration.compileCommands is allowed to be defined as a string in the schema, but we send an array to the language server. + // For having a predictable behavior, we convert it here to an array of strings. + for (let i: number = 0; i < newJson.configurations.length; i++) { + newJson.configurations[i].compileCommands = this.forceCompileCommandsAsArray(newJson.configurations[i].compileCommands); + } + this.configurationJson = newJson; if (this.CurrentConfigurationIndex < 0 || this.CurrentConfigurationIndex >= newJson.configurations.length) { const index: number | undefined = this.getConfigIndexForPlatform(newJson); @@ -1790,6 +1814,11 @@ export class CppProperties { const configurations: ConfigurationJson = jsonc.parse(configurationsText, undefined, true) as any; const currentConfiguration: Configuration = configurations.configurations[this.CurrentConfigurationIndex]; + // Configuration.compileCommands is allowed to be defined as a string in the schema, but we send an array to the language server. + // For having a predictable behavior, we convert it here to an array of strings. + // Squiggles are still handled for both cases. + currentConfiguration.compileCommands = this.forceCompileCommandsAsArray(currentConfiguration.compileCommands); + let curTextStartOffset: number = 0; if (!currentConfiguration.name) { return; @@ -1869,9 +1898,9 @@ export class CppProperties { curText = curText.substring(0, nextNameStart2); } if (this.prevSquiggleMetrics.get(currentConfiguration.name) === undefined) { - this.prevSquiggleMetrics.set(currentConfiguration.name, { PathNonExistent: 0, PathNotAFile: 0, PathNotADirectory: 0, CompilerPathMissingQuotes: 0, CompilerModeMismatch: 0, MultiplePathsNotAllowed: 0 }); + this.prevSquiggleMetrics.set(currentConfiguration.name, { PathNonExistent: 0, PathNotAFile: 0, PathNotADirectory: 0, CompilerPathMissingQuotes: 0, CompilerModeMismatch: 0, MultiplePathsNotAllowed: 0, MultiplePathsShouldBeSeparated: 0 }); } - const newSquiggleMetrics: { [key: string]: number } = { PathNonExistent: 0, PathNotAFile: 0, PathNotADirectory: 0, CompilerPathMissingQuotes: 0, CompilerModeMismatch: 0, MultiplePathsNotAllowed: 0 }; + const newSquiggleMetrics: { [key: string]: number } = { PathNonExistent: 0, PathNotAFile: 0, PathNotADirectory: 0, CompilerPathMissingQuotes: 0, CompilerModeMismatch: 0, MultiplePathsNotAllowed: 0, MultiplePathsShouldBeSeparated: 0 }; const isWindows: boolean = os.platform() === 'win32'; // TODO: Add other squiggles. @@ -1916,9 +1945,10 @@ export class CppProperties { } } } - if (currentConfiguration.compileCommands) { - paths.push(`${currentConfiguration.compileCommands}`); - } + + currentConfiguration.compileCommands?.forEach((file: string) => { + paths.push(`${file}`); + }); if (currentConfiguration.compilerPath) { // Unlike other cases, compilerPath may not start or end with " due to trimming of whitespace and the possibility of compiler args. @@ -1932,6 +1962,8 @@ export class CppProperties { const forcedeIncludeEnd: number = forcedIncludeStart === -1 ? -1 : curText.indexOf("]", forcedIncludeStart); const compileCommandsStart: number = curText.search(/\s*\"compileCommands\"\s*:\s*\"/); const compileCommandsEnd: number = compileCommandsStart === -1 ? -1 : curText.indexOf('"', curText.indexOf('"', curText.indexOf(":", compileCommandsStart)) + 1); + const compileCommandsArrayStart: number = curText.search(/\s*\"compileCommands\"\s*:\s*\[/); + const compileCommandsArrayEnd: number = compileCommandsArrayStart === -1 ? -1 : curText.indexOf("]", curText.indexOf("[", curText.indexOf(":", compileCommandsArrayStart)) + 1); const compilerPathStart: number = curText.search(/\s*\"compilerPath\"\s*:\s*\"/); const compilerPathValueStart: number = curText.indexOf('"', curText.indexOf(":", compilerPathStart)); const compilerPathEnd: number = compilerPathStart === -1 ? -1 : curText.indexOf('"', compilerPathValueStart + 1) + 1; @@ -2110,8 +2142,7 @@ export class CppProperties { newSquiggleMetrics.PathNonExistent++; } else { // Check for file versus path mismatches. - if ((curOffset >= forcedIncludeStart && curOffset <= forcedeIncludeEnd) || - (curOffset >= compileCommandsStart && curOffset <= compileCommandsEnd)) { + if (curOffset >= forcedIncludeStart && curOffset <= forcedeIncludeEnd) { if (expandedPaths.length > 1) { message = localize("multiple.paths.not.allowed", "Multiple paths are not allowed."); newSquiggleMetrics.MultiplePathsNotAllowed++; @@ -2121,6 +2152,20 @@ export class CppProperties { continue; } + message = localize("path.is.not.a.file", "Path is not a file: {0}", expandedPaths[0]); + newSquiggleMetrics.PathNotAFile++; + } + } else if ((curOffset >= compileCommandsStart && curOffset <= compileCommandsEnd) || + (curOffset >= compileCommandsArrayStart && curOffset <= compileCommandsArrayEnd)) { + if (expandedPaths.length > 1) { + message = localize("multiple.paths.should.be.separate.entries", "Multiple paths should be separate entries in an array."); + newSquiggleMetrics.MultiplePathsShouldBeSeparated++; + } else { + const resolvedPath = this.resolvePath(expandedPaths[0]); + if (util.checkFileExistsSync(resolvedPath)) { + continue; + } + message = localize("path.is.not.a.file", "Path is not a file: {0}", expandedPaths[0]); newSquiggleMetrics.PathNotAFile++; } @@ -2203,6 +2248,9 @@ export class CppProperties { if (newSquiggleMetrics.MultiplePathsNotAllowed !== this.prevSquiggleMetrics.get(currentConfiguration.name)?.MultiplePathsNotAllowed) { changedSquiggleMetrics.MultiplePathsNotAllowed = newSquiggleMetrics.MultiplePathsNotAllowed; } + if (newSquiggleMetrics.MultiplePathsShouldBeSeparated !== this.prevSquiggleMetrics.get(currentConfiguration.name)?.MultiplePathsShouldBeSeparated) { + changedSquiggleMetrics.MultiplePathsShouldBeSeparated = newSquiggleMetrics.MultiplePathsShouldBeSeparated; + } if (Object.keys(changedSquiggleMetrics).length > 0) { telemetry.logLanguageServerEvent("ConfigSquiggles", undefined, changedSquiggleMetrics); } @@ -2325,29 +2373,30 @@ export class CppProperties { public checkCompileCommands(): void { // Check for changes in case of file watcher failure. - const compileCommands: string | undefined = this.CurrentConfiguration?.compileCommands; + const compileCommands: string[] | undefined = this.CurrentConfiguration?.compileCommands; if (!compileCommands) { return; } - const compileCommandsFile: string | undefined = this.resolvePath(compileCommands); - fs.stat(compileCommandsFile, (err, stats) => { - if (err) { - if (err.code === "ENOENT" && this.compileCommandsFile) { - this.compileCommandsFileWatchers.forEach((watcher: fs.FSWatcher) => watcher.close()); - this.compileCommandsFileWatchers = []; // reset file watchers - this.onCompileCommandsChanged(compileCommandsFile); - this.compileCommandsFile = null; // File deleted - } - } else { - const compileCommandsLastChanged: Date | undefined = this.compileCommandsFileWatcherFallbackTime.get(compileCommandsFile); - if ((this.compileCommandsFile === undefined) || - (this.compileCommandsFile === null) || - (compileCommandsLastChanged !== undefined && stats.mtime > compileCommandsLastChanged)) { - this.compileCommandsFileWatcherFallbackTime.set(compileCommandsFile, new Date()); - this.onCompileCommandsChanged(compileCommandsFile); - this.compileCommandsFile = vscode.Uri.file(compileCommandsFile); // File created. + compileCommands.forEach((path: string) => { + const compileCommandsFile: string | undefined = this.resolvePath(path); + fs.stat(compileCommandsFile, (err, stats) => { + if (err) { + if (err.code === "ENOENT" && this.compileCommandsFiles.has(compileCommandsFile)) { + this.compileCommandsFileWatchers.forEach((watcher: fs.FSWatcher) => watcher.close()); + this.compileCommandsFileWatchers = []; // reset file watchers + this.onCompileCommandsChanged(compileCommandsFile); + this.compileCommandsFiles.delete(compileCommandsFile); // File deleted + } + } else { + const compileCommandsLastChanged: Date | undefined = this.compileCommandsFileWatcherFallbackTime.get(compileCommandsFile); + if (!this.compileCommandsFiles.has(compileCommandsFile) || + (compileCommandsLastChanged !== undefined && stats.mtime > compileCommandsLastChanged)) { + this.compileCommandsFileWatcherFallbackTime.set(compileCommandsFile, new Date()); + this.onCompileCommandsChanged(compileCommandsFile); + this.compileCommandsFiles.add(compileCommandsFile); // File created. + } } - } + }); }); } diff --git a/Extension/src/LanguageServer/settings.ts b/Extension/src/LanguageServer/settings.ts index fb96b2afa..8b682f483 100644 --- a/Extension/src/LanguageServer/settings.ts +++ b/Extension/src/LanguageServer/settings.ts @@ -402,7 +402,17 @@ export class CppSettings extends Settings { public get defaultDotconfig(): string | undefined { return changeBlankStringToUndefined(this.getAsStringOrUndefined("default.dotConfig")); } public get defaultMacFrameworkPath(): string[] | undefined { return this.getArrayOfStringsWithUndefinedDefault("default.macFrameworkPath"); } public get defaultWindowsSdkVersion(): string | undefined { return changeBlankStringToUndefined(this.getAsStringOrUndefined("default.windowsSdkVersion")); } - public get defaultCompileCommands(): string | undefined { return changeBlankStringToUndefined(this.getAsStringOrUndefined("default.compileCommands")); } + public get defaultCompileCommands(): string[] | undefined { + const value: any = super.Section.get("default.compileCommands"); + if (isString(value)) { + return value.length > 0 ? [value] : undefined; + } + if (isArrayOfString(value)) { + const result = value.filter(x => x.length > 0); + return result.length > 0 ? result : undefined; + } + return undefined; + } public get defaultForcedInclude(): string[] | undefined { return this.getArrayOfStringsWithUndefinedDefault("default.forcedInclude"); } public get defaultIntelliSenseMode(): string | undefined { return this.getAsStringOrUndefined("default.intelliSenseMode"); } public get defaultCompilerPath(): string | null { return this.getAsString("default.compilerPath", true); } @@ -652,7 +662,7 @@ export class CppSettings extends Settings { } if (isArrayOfString(value)) { - if (setting.items.enum && !allowUndefinedEnums) { + if (setting.items?.enum !== undefined && !allowUndefinedEnums) { if (!value.every(x => this.isValidEnum(setting.items.enum, x))) { return setting.default; } diff --git a/Extension/src/LanguageServer/settingsPanel.ts b/Extension/src/LanguageServer/settingsPanel.ts index 4522091d0..a13ef8109 100644 --- a/Extension/src/LanguageServer/settingsPanel.ts +++ b/Extension/src/LanguageServer/settingsPanel.ts @@ -337,7 +337,7 @@ export class SettingsPanel { this.configValues.macFrameworkPath = splitEntries(message.value); break; case elementId.compileCommands: - this.configValues.compileCommands = message.value || undefined; + this.configValues.compileCommands = splitEntries(message.value); break; case elementId.dotConfig: this.configValues.dotConfig = message.value || undefined; diff --git a/Extension/src/LanguageServer/settingsTracker.ts b/Extension/src/LanguageServer/settingsTracker.ts index 9cad273f5..fef9ae2fe 100644 --- a/Extension/src/LanguageServer/settingsTracker.ts +++ b/Extension/src/LanguageServer/settingsTracker.ts @@ -108,6 +108,11 @@ export class SettingsTracker { return ""; } return val; + } else if (curSetting["oneOf"]) { + // Currently only C_Cpp.default.compileCommands uses this case. + if (curSetting["oneOf"].some((x: any) => this.typeMatch(val, x.type))) { + return val; + } } else if (val === curSetting["default"]) { // C_Cpp.default.browse.path is a special case where the default value is null and doesn't match the type definition. return val; @@ -206,7 +211,7 @@ export class SettingsTracker { if (value && value.length > maxSettingLengthForTelemetry) { value = value.substring(0, maxSettingLengthForTelemetry) + "..."; } - return {key: key, value: value}; + return { key: key, value: value }; } return undefined; } diff --git a/Extension/ui/settings.html b/Extension/ui/settings.html index 01ea0d9e8..8abe8ef48 100644 --- a/Extension/ui/settings.html +++ b/Extension/ui/settings.html @@ -672,11 +672,12 @@
Compile commands
- The full path to the compile_commands.json file for the workspace. The include paths and defines discovered in this file will be used instead of the values set for includePath and defines settings. If the compile commands database does not contain an entry for the translation unit that corresponds to the file you opened in the editor, then a warning message will appear and the extension will use the includePath and defines settings instead. + A list of paths to compile_commands.json files for the workspace. The include paths and defines discovered in these files will be used instead of the values set for includePath and defines settings. If the compile commands database does not contain an entry for the translation unit that corresponds to the file you opened in the editor, then a warning message will appear and the extension will use the includePath and defines settings instead.
- -
+
One compile commands path per line.
+ +
diff --git a/Extension/ui/settings.ts b/Extension/ui/settings.ts index e70516b27..fc75f4cbd 100644 --- a/Extension/ui/settings.ts +++ b/Extension/ui/settings.ts @@ -295,7 +295,7 @@ class SettingsApp { // Advanced settings (document.getElementById(elementId.windowsSdkVersion)).value = config.windowsSdkVersion ? config.windowsSdkVersion : ""; (document.getElementById(elementId.macFrameworkPath)).value = joinEntries(config.macFrameworkPath); - (document.getElementById(elementId.compileCommands)).value = config.compileCommands ? config.compileCommands : ""; + (document.getElementById(elementId.compileCommands)).value = joinEntries(config.compileCommands); (document.getElementById(elementId.mergeConfigurations)).checked = config.mergeConfigurations; (document.getElementById(elementId.configurationProvider)).value = config.configurationProvider ? config.configurationProvider : ""; (document.getElementById(elementId.forcedInclude)).value = joinEntries(config.forcedInclude); From 42c6d99012dc3a8d02d6c05e6e598f7f2150e5a5 Mon Sep 17 00:00:00 2001 From: browntarik <111317156+browntarik@users.noreply.github.com> Date: Mon, 30 Dec 2024 16:37:34 -0800 Subject: [PATCH 55/78] Updated Description for Preferred Path Separator Setting and Refactor Its Usage (#13082) * Updated description for preferred path separator setting. * Change wording. * Refactor configuration quickpick to correctly reflect preferred path separator. --- Extension/package.nls.json | 2 +- Extension/src/LanguageServer/client.ts | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Extension/package.nls.json b/Extension/package.nls.json index 116ec2a1f..11573c0e5 100644 --- a/Extension/package.nls.json +++ b/Extension/package.nls.json @@ -566,7 +566,7 @@ "c_cpp.configuration.exclusionPolicy.checkFolders.description": "The exclusion filters will only be evaluated once per folder (individual files are not checked).", "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "The exclusion filters will be evaluated against every file and folder encountered.", "c_cpp.configuration.preferredPathSeparator.markdownDescription": { - "message": "The character used as a path separator for `#include` auto-completion results.", + "message": "The character used as a path separator for generated user paths.", "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." ] diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 4355acdf9..ac7a53bac 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -984,7 +984,8 @@ export class DefaultClient implements Client { private static readonly compileCommandsLabel: string = "compile_commands.json"; private static readonly compilersLabel: string = "compilers"; - public async showSelectIntelliSenseConfiguration(paths: string[], compilersOnly?: boolean): Promise { + public async showSelectIntelliSenseConfiguration(paths: string[], preferredPathSeparator: string, compilersOnly?: boolean): Promise { + paths = paths.map(p => p.replace(/[\\/]/g, preferredPathSeparator)); const options: vscode.QuickPickOptions = {}; options.placeHolder = compilersOnly || !vscode.workspace.workspaceFolders || !this.RootFolder ? localize("select.compiler", "Select a compiler to configure for IntelliSense") : @@ -1077,7 +1078,13 @@ export class DefaultClient implements Client { installShown = false; } paths.push(localize("noConfig.string", "Do not configure with a compiler (not recommended)")); - const index: number = await this.showSelectIntelliSenseConfiguration(paths, showCompilersOnly); + let preferredPathSeparator: string = settings.preferredPathSeparator; + if (preferredPathSeparator === "Forward Slash") { + preferredPathSeparator = "/"; + } else if (preferredPathSeparator === "Backslash") { + preferredPathSeparator = "\\"; + } + const index: number = await this.showSelectIntelliSenseConfiguration(paths, preferredPathSeparator, showCompilersOnly); let action: string = ""; let configurationSelected: boolean = false; const fromStatusBarButton: boolean = !showCompilersOnly; @@ -1128,7 +1135,9 @@ export class DefaultClient implements Client { } else { action = "select compiler"; const newCompiler: string = util.isCl(paths[index]) ? "cl.exe" : paths[index]; + settings.defaultCompilerPath = newCompiler; + settings.defaultCompilerPath = settings.defaultCompilerPath.replace(/[\\/]/g, preferredPathSeparator); await this.configuration.updateCompilerPathIfSet(newCompiler); void SessionState.trustedCompilerFound.set(true); } From d2626e0ad820b1dbed2e1cfa6c1930be54ee29a7 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Mon, 30 Dec 2024 17:09:43 -0800 Subject: [PATCH 56/78] Re-enable the SingleRootProject tests with check-in tests and fix the getIncludes test failure (#13084) * Fix getIncludes call with E2E test. * Add a --skipCheckBinaries arg. --- .github/workflows/job-compile-and-test.yml | 8 ++++++++ Extension/.scripts/common.ts | 3 +++ .../tests/copilotProviders.test.ts | 18 +++++++++++------- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/.github/workflows/job-compile-and-test.yml b/.github/workflows/job-compile-and-test.yml index 2b3998d49..1756d2986 100644 --- a/.github/workflows/job-compile-and-test.yml +++ b/.github/workflows/job-compile-and-test.yml @@ -42,6 +42,14 @@ jobs: run: yarn test working-directory: Extension + # These tests don't require the binary. + # On Linux, it is failing (before the tests actually run) with: Test run terminated with signal SIGSEGV. + # But it works on Linux during the E2E test. + - name: Run SingleRootProject tests + if: ${{ inputs.platform != 'linux' }} + run: yarn test --scenario=SingleRootProject --skipCheckBinaries + working-directory: Extension + # NOTE : We can't run the test that require the native binary files # yet -- there will be an update soon that allows the tester to # acquire them on-the-fly diff --git a/Extension/.scripts/common.ts b/Extension/.scripts/common.ts index 490d464c2..598ff97e8 100644 --- a/Extension/.scripts/common.ts +++ b/Extension/.scripts/common.ts @@ -334,6 +334,9 @@ export async function checkDTS() { } export async function checkBinaries() { + if ($switches.includes('--skipCheckBinaries')) { + return false; + } let failing = false; failing = !await assertAnyFile(['bin/cpptools.exe', 'bin/cpptools']) && (quiet || warn(`The native binary files are not present. You should either build or install the native binaries\n\n.`)) || failing; diff --git a/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts b/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts index 626ed287c..31b7615a4 100644 --- a/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts +++ b/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts @@ -10,6 +10,7 @@ import * as sinon from 'sinon'; import * as vscode from 'vscode'; import * as util from '../../../../src/common'; import { DefaultClient, GetIncludesResult } from '../../../../src/LanguageServer/client'; +import { ClientCollection } from '../../../../src/LanguageServer/clientCollection'; import { CopilotApi, CopilotTrait } from '../../../../src/LanguageServer/copilotProviders'; import * as extension from '../../../../src/LanguageServer/extension'; import * as lmTool from '../../../../src/LanguageServer/lmTool'; @@ -19,18 +20,19 @@ import * as telemetry from '../../../../src/telemetry'; describe('copilotProviders Tests', () => { let moduleUnderTest: any; let mockCopilotApi: sinon.SinonStubbedInstance; - let getActiveClientStub: sinon.SinonStub; + let getClientsStub: sinon.SinonStub; let activeClientStub: sinon.SinonStubbedInstance; let vscodeGetExtensionsStub: sinon.SinonStub; let callbackPromise: Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] }> | undefined; let vscodeExtension: vscode.Extension; let telemetryStub: sinon.SinonStub; - const includedFiles = process.platform === 'win32' ? + const includedFiles: string[] = process.platform === 'win32' ? ['c:\\system\\include\\vector', 'c:\\system\\include\\string', 'C:\\src\\my_project\\foo.h'] : ['/system/include/vector', '/system/include/string', '/home/src/my_project/foo.h']; - const rootUri = vscode.Uri.file(process.platform === 'win32' ? 'C:\\src\\my_project' : '/home/src/my_project'); - const expectedInclude = process.platform === 'win32' ? 'file:///c%3A/src/my_project/foo.h' : 'file:///home/src/my_project/foo.h'; + const rootUri: vscode.Uri = vscode.Uri.file(process.platform === 'win32' ? 'C:\\src\\my_project' : '/home/src/my_project'); + const expectedInclude: string = process.platform === 'win32' ? 'file:///c%3A/src/my_project/foo.h' : 'file:///home/src/my_project/foo.h'; + const sourceFileUri: vscode.Uri = vscode.Uri.file(process.platform === 'win32' ? 'file:///c%3A/src/my_project/foo.cpp' : 'file:///home/src/my_project/foo.cpp'); beforeEach(() => { proxyquire.noPreserveCache(); // Tells proxyquire to not fetch the module from cache @@ -70,7 +72,9 @@ describe('copilotProviders Tests', () => { }; activeClientStub = sinon.createStubInstance(DefaultClient); - getActiveClientStub = sinon.stub(extension, 'getActiveClient').returns(activeClientStub); + const clientsStub = sinon.createStubInstance(ClientCollection); + getClientsStub = sinon.stub(extension, 'getClients').returns(clientsStub); + clientsStub.getClientFor.returns(activeClientStub); activeClientStub.getIncludes.resolves({ includedFiles: [] }); telemetryStub = sinon.stub(telemetry, 'logCopilotEvent').returns(); }); @@ -90,7 +94,7 @@ describe('copilotProviders Tests', () => { if (_providerId.languageId === 'cpp') { const tokenSource = new vscode.CancellationTokenSource(); try { - callbackPromise = callback(vscode.Uri.parse('file:///test-extension-path'), { flags: flags ?? {} }, tokenSource.token); + callbackPromise = callback(sourceFileUri, { flags: flags ?? {} }, tokenSource.token); } finally { tokenSource.dispose(); } @@ -129,7 +133,7 @@ describe('copilotProviders Tests', () => { ok(vscodeGetExtensionsStub.calledOnce, 'vscode.extensions.getExtension should be called once'); ok(mockCopilotApi.registerRelatedFilesProvider.calledWithMatch(sinon.match({ extensionId: 'test-extension-id', languageId: sinon.match.in(['c', 'cpp', 'cuda-cpp']) })), 'registerRelatedFilesProvider should be called with the correct providerId and languageId'); - ok(getActiveClientStub.callCount !== 0, 'getActiveClient should be called'); + ok(getClientsStub.callCount !== 0, 'getClients should be called'); ok(callbackPromise, 'callbackPromise should be defined'); ok(result, 'result should be defined'); ok(result.entries.length === 1, 'result.entries should have 1 included file'); From fa0e1c037676b9c34da72d565ce7b64a64822524 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 31 Dec 2024 14:20:42 -0800 Subject: [PATCH 57/78] Fix cl.exe.not.available loc. (#13091) * Fix cl.exe.not.available loc. * Disabling eslint indent linting. --- Extension/.eslintrc.js | 11 ----------- Extension/src/Debugger/configurationProvider.ts | 5 ++++- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/Extension/.eslintrc.js b/Extension/.eslintrc.js index 43ce2e76c..4cd07eb8b 100644 --- a/Extension/.eslintrc.js +++ b/Extension/.eslintrc.js @@ -24,17 +24,6 @@ module.exports = { "eslint-plugin-header" ], "rules": { - "indent": [ - "warn", - 4, - { - "SwitchCase": 1, - "ObjectExpression": "first" - } - ], - "@typescript-eslint/indent": [ - "error", 4 - ], "@typescript-eslint/adjacent-overload-signatures": "error", "@typescript-eslint/array-type": "error", "@typescript-eslint/await-thenable": "error", diff --git a/Extension/src/Debugger/configurationProvider.ts b/Extension/src/Debugger/configurationProvider.ts index 067983fea..f4f874501 100644 --- a/Extension/src/Debugger/configurationProvider.ts +++ b/Extension/src/Debugger/configurationProvider.ts @@ -584,7 +584,10 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv private showErrorIfClNotAvailable(_configurationLabel: string): boolean { if (!process.env.DevEnvDir || process.env.DevEnvDir.length === 0) { - void vscode.window.showErrorMessage(localize("cl.exe.not.available", "{0} build and debug is only usable when VS Code is run from the Developer Command Prompt for VS.", "cl.exe")); + void vscode.window.showErrorMessage(localize({ + key: "cl.exe.not.available", + comment: ["{0} is a command option in a menu. {1} is the product name \"Developer Command Prompt for VS\"."] + }, "{0} is only usable when VS Code is run from the {1}.", `cl.exe ${this.buildAndDebugActiveFileStr()}`, "Developer Command Prompt for VS")); return true; } return false; From d70d0636987fbc65336767d6d0f07bc06866d810 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Thu, 2 Jan 2025 11:55:02 -0800 Subject: [PATCH 58/78] =?UTF-8?q?Fix=20other=20developer=20command=20promp?= =?UTF-8?q?t=20cases,=20and=20"developer"=20and=20"code"=20=E2=80=A6=20(#1?= =?UTF-8?q?3093)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix other developer command prompt cases, and "developer" and "code" references. --- Extension/package.nls.json | 14 ++++++++++++-- .../open-developer-command-prompt.md | 8 ++++---- .../installcompiler/install-compiler-windows.md | 6 +++--- .../installcompiler/install-compiler-windows10.md | 6 +++--- .../installcompiler/install-compiler-windows11.md | 6 +++--- 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/Extension/package.nls.json b/Extension/package.nls.json index 11573c0e5..67a3bcb3d 100644 --- a/Extension/package.nls.json +++ b/Extension/package.nls.json @@ -998,8 +998,18 @@ "c_cpp.walkthrough.create.cpp.file.title": "Create a C++ file", "c_cpp.walkthrough.create.cpp.file.description": "[Open](command:toSide:workbench.action.files.openFile) or [create](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) a C++ file. Be sure to save it with the \".cpp\" extension, such as \"helloworld.cpp\". \n[Create a C++ File](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", "c_cpp.walkthrough.create.cpp.file.altText": "Open a C++ file or a folder with a C++ project.", - "c_cpp.walkthrough.command.prompt.title": "Launch from the developer command prompt", - "c_cpp.walkthrough.command.prompt.description": "When using the Microsoft Visual Studio C++ compiler, the C++ extension requires you to launch VS Code from the developer command prompt. Follow the instructions on the right to relaunch.\n[Reload Window](command:workbench.action.reloadWindow)", + "c_cpp.walkthrough.command.prompt.title": { + "message": "Launch from the Developer Command Prompt for VS", + "comment": [ + "Don't translate the product name \"Developer Command Prompt for VS\"." + ] + }, + "c_cpp.walkthrough.command.prompt.description": { + "message": "When using the Microsoft Visual Studio C++ compiler, the C++ extension requires you to launch VS Code from the Developer Command Prompt for VS. Follow the instructions on the right to relaunch.\n[Reload Window](command:workbench.action.reloadWindow)", + "comment": [ + "Don't translate the product name \"Developer Command Prompt for VS\"." + ] + }, "c_cpp.walkthrough.run.debug.title": "Run and debug your C++ file", "c_cpp.walkthrough.run.debug.mac.description": "Open your C++ file and click on the play button in the top right corner of the editor, or press F5 when on the file. Select \"clang++ - Build and debug active file\" to run with the debugger.", "c_cpp.walkthrough.run.debug.linux.description": "Open your C++ file and click on the play button in the top right corner of the editor, or press F5 when on the file. Select \"g++ - Build and debug active file\" to run with the debugger.", diff --git a/Extension/walkthrough/devcommandprompt/open-developer-command-prompt.md b/Extension/walkthrough/devcommandprompt/open-developer-command-prompt.md index 38bc6fd20..8c79c8320 100644 --- a/Extension/walkthrough/devcommandprompt/open-developer-command-prompt.md +++ b/Extension/walkthrough/devcommandprompt/open-developer-command-prompt.md @@ -1,7 +1,7 @@ -

Relaunch using the developer command prompt

-

You are using a windows machine with the MSVC compiler, so you need to start VS Code from the developer command prompt for all environment variables to be set correctly. To relaunch using the developer command prompt:

+

Relaunch using the Developer Command Prompt for VS

+

You are using a windows machine with the MSVC compiler, so you need to start VS Code from the Developer Command Prompt for VS for all environment variables to be set correctly. To relaunch using the Developer Command Prompt for VS:

    -
  1. Open the Developer Command Prompt for VS by typing "developer" in the Windows Start menu. Select the Developer Command Prompt for VS, which will automatically navigate to your current open folder.

    +
  2. Open the Developer Command Prompt for VS by typing "developer" in the Windows Start menu. Select the Developer Command Prompt for VS, which will automatically navigate to your current open folder.

  3. -
  4. Type "code" into the command prompt and hit enter. This should relaunch VS Code and take you back to this walkthrough.

    +
  5. Type "code" into the command prompt and hit enter. This should relaunch VS Code and take you back to this walkthrough.

  6. diff --git a/Extension/walkthrough/installcompiler/install-compiler-windows.md b/Extension/walkthrough/installcompiler/install-compiler-windows.md index 7abf671dd..81cdda541 100644 --- a/Extension/walkthrough/installcompiler/install-compiler-windows.md +++ b/Extension/walkthrough/installcompiler/install-compiler-windows.md @@ -8,11 +8,11 @@

    Note: You can use the C++ toolset from Visual Studio Build Tools along with Visual Studio Code to compile, build, and verify any C++ codebase as long as you also have a valid Visual Studio license (either Community, Pro, or Enterprise) that you are actively using to develop that C++ codebase.

    -
  7. Open the Developer Command Prompt for VS by typing 'developer' in the Windows Start menu.

    +
  8. Open the Developer Command Prompt for VS by typing 'developer' in the Windows Start menu.

  9. -
  10. Check your MSVC installation by typing cl into the Developer Command Prompt for VS. You should see a copyright message with the version and basic usage description.

    +
  11. Check your MSVC installation by typing cl into the Developer Command Prompt for VS. You should see a copyright message with the version and basic usage description.

    -

    Note: To use MSVC from the command line or VS Code, you must run from a Developer Command Prompt for VS. An ordinary shell such as PowerShell, Bash, or the Windows command prompt does not have the necessary path environment variables set.

    +

    Note: To use MSVC from the command line or VS Code, you must run from a Developer Command Prompt for VS. An ordinary shell such as PowerShell, Bash, or the Windows command prompt does not have the necessary path environment variables set.

\ No newline at end of file diff --git a/Extension/walkthrough/installcompiler/install-compiler-windows10.md b/Extension/walkthrough/installcompiler/install-compiler-windows10.md index 999b9ed46..1bcae2d9a 100644 --- a/Extension/walkthrough/installcompiler/install-compiler-windows10.md +++ b/Extension/walkthrough/installcompiler/install-compiler-windows10.md @@ -11,11 +11,11 @@

Verifying the compiler installation

    -
  1. Open the Developer Command Prompt for VS by typing 'developer' in the Windows Start menu.

    +
  2. Open the Developer Command Prompt for VS by typing 'developer' in the Windows Start menu.

  3. -
  4. Check your MSVC installation by typing cl into the Developer Command Prompt for VS. You should see a copyright message with the version and basic usage description.

    +
  5. Check your MSVC installation by typing cl into the Developer Command Prompt for VS. You should see a copyright message with the version and basic usage description.

    -

    Note: To use MSVC from the command line or VS Code, you must run from a Developer Command Prompt for VS. An ordinary shell such as PowerShell, Bash, or the Windows command prompt does not have the necessary path environment variables set.

    +

    Note: To use MSVC from the command line or VS Code, you must run from a Developer Command Prompt for VS. An ordinary shell such as PowerShell, Bash, or the Windows command prompt does not have the necessary path environment variables set.

diff --git a/Extension/walkthrough/installcompiler/install-compiler-windows11.md b/Extension/walkthrough/installcompiler/install-compiler-windows11.md index 1d21f4596..d711b8d9e 100644 --- a/Extension/walkthrough/installcompiler/install-compiler-windows11.md +++ b/Extension/walkthrough/installcompiler/install-compiler-windows11.md @@ -11,11 +11,11 @@

Verifying the compiler installation

    -
  1. Open the Developer Command Prompt for VS by typing 'developer' in the Windows Start menu.

    +
  2. Open the Developer Command Prompt for VS by typing 'developer' in the Windows Start menu.

  3. -
  4. Check your MSVC installation by typing cl into the Developer Command Prompt for VS. You should see a copyright message with the version and basic usage description.

    +
  5. Check your MSVC installation by typing cl into the Developer Command Prompt for VS. You should see a copyright message with the version and basic usage description.

    -

    Note: To use MSVC from the command line or VS Code, you must run from a Developer Command Prompt for VS. An ordinary shell such as PowerShell, Bash, or the Windows command prompt does not have the necessary path environment variables set.

    +

    Note: To use MSVC from the command line or VS Code, you must run from a Developer Command Prompt for VS. An ordinary shell such as PowerShell, Bash, or the Windows command prompt does not have the necessary path environment variables set.

From 6e3e0748e099718c0e0e55847ad4f897f175cbb0 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Thu, 2 Jan 2025 16:17:18 -0800 Subject: [PATCH 59/78] Update msvc versions. (#13097) --- Extension/bin/windows.msvc.arm.json | 6 +++--- Extension/bin/windows.msvc.arm64.json | 6 +++--- Extension/bin/windows.msvc.x64.json | 6 +++--- Extension/bin/windows.msvc.x86.json | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Extension/bin/windows.msvc.arm.json b/Extension/bin/windows.msvc.arm.json index 2012577e0..7bf4b102b 100644 --- a/Extension/bin/windows.msvc.arm.json +++ b/Extension/bin/windows.msvc.arm.json @@ -4,11 +4,11 @@ "--microsoft", "--microsoft_bugs", "--microsoft_version", - "1941", + "1943", "--pack_alignment", "8", - "-D_MSC_VER=1941", - "-D_MSC_FULL_VER=194134120", + "-D_MSC_VER=1943", + "-D_MSC_FULL_VER=194334604", "-D_MSC_BUILD=0", "-D_M_ARM=7" ], diff --git a/Extension/bin/windows.msvc.arm64.json b/Extension/bin/windows.msvc.arm64.json index 1758319b5..a61ed0c00 100644 --- a/Extension/bin/windows.msvc.arm64.json +++ b/Extension/bin/windows.msvc.arm64.json @@ -4,12 +4,12 @@ "--microsoft", "--microsoft_bugs", "--microsoft_version", - "1941", + "1943", "--pack_alignment", "8", "-D_CPPUNWIND=1", - "-D_MSC_VER=1941", - "-D_MSC_FULL_VER=194134120", + "-D_MSC_VER=1943", + "-D_MSC_FULL_VER=194334604", "-D_MSC_BUILD=0", "-D_M_ARM64=1" ], diff --git a/Extension/bin/windows.msvc.x64.json b/Extension/bin/windows.msvc.x64.json index 580f51924..52aaa3a0e 100644 --- a/Extension/bin/windows.msvc.x64.json +++ b/Extension/bin/windows.msvc.x64.json @@ -4,12 +4,12 @@ "--microsoft", "--microsoft_bugs", "--microsoft_version", - "1941", + "1943", "--pack_alignment", "8", "-D_CPPUNWIND=1", - "-D_MSC_VER=1941", - "-D_MSC_FULL_VER=194134120", + "-D_MSC_VER=1943", + "-D_MSC_FULL_VER=194334604", "-D_MSC_BUILD=0", "-D_M_X64=100", "-D_M_AMD64=100" diff --git a/Extension/bin/windows.msvc.x86.json b/Extension/bin/windows.msvc.x86.json index d8fbe6325..36d6a55aa 100644 --- a/Extension/bin/windows.msvc.x86.json +++ b/Extension/bin/windows.msvc.x86.json @@ -4,11 +4,11 @@ "--microsoft", "--microsoft_bugs", "--microsoft_version", - "1941", + "1943", "--pack_alignment", "8", - "-D_MSC_VER=1941", - "-D_MSC_FULL_VER=194134120", + "-D_MSC_VER=1943", + "-D_MSC_FULL_VER=194334604", "-D_MSC_BUILD=0", "-D_M_IX86=600", "-D_M_IX86_FP=2" From 4c6f31930410d95d437f37f430f37dcce1a3fb48 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Fri, 3 Jan 2025 12:19:00 -0800 Subject: [PATCH 60/78] Update IntelliSense loc strings. (#13098) --- Extension/bin/messages/cs/messages.json | 30 +++++++++++++++++++++- Extension/bin/messages/de/messages.json | 30 +++++++++++++++++++++- Extension/bin/messages/es/messages.json | 30 +++++++++++++++++++++- Extension/bin/messages/fr/messages.json | 30 +++++++++++++++++++++- Extension/bin/messages/it/messages.json | 30 +++++++++++++++++++++- Extension/bin/messages/ja/messages.json | 30 +++++++++++++++++++++- Extension/bin/messages/ko/messages.json | 30 +++++++++++++++++++++- Extension/bin/messages/pl/messages.json | 30 +++++++++++++++++++++- Extension/bin/messages/pt-br/messages.json | 30 +++++++++++++++++++++- Extension/bin/messages/ru/messages.json | 30 +++++++++++++++++++++- Extension/bin/messages/tr/messages.json | 30 +++++++++++++++++++++- Extension/bin/messages/zh-cn/messages.json | 30 +++++++++++++++++++++- Extension/bin/messages/zh-tw/messages.json | 30 +++++++++++++++++++++- 13 files changed, 377 insertions(+), 13 deletions(-) diff --git a/Extension/bin/messages/cs/messages.json b/Extension/bin/messages/cs/messages.json index f66e374c6..c9e8d11f3 100644 --- a/Extension/bin/messages/cs/messages.json +++ b/Extension/bin/messages/cs/messages.json @@ -3601,5 +3601,33 @@ "pro aktuální jednotku překladu se nepovedlo vytvořit jednotku hlavičky", "aktuální jednotka překladu používá jednu nebo více funkcí, které se v tuto chvíli nedají zapsat do jednotky hlavičky", "explicit(bool) je funkcí C++20", - "musí být zadán název modulu pro mapování souboru modulu odkazující na soubor %sq" + "musí být zadán název modulu pro mapování souboru modulu odkazující na soubor %sq", + "Byla přijata hodnota indexu null, kde byl očekáván uzel v oddílu IFC %sq", + "%nd nemůže mít typ %t.", + "Kvalifikátor odkazu je v tomto režimu nestandardní.", + "příkaz for založený na rozsahu není v tomto režimu standardní", + "Auto, protože specifikátor typu je v tomto režimu nestandardní", + "soubor modulu nelze importovat %sq z důvodu poškození souboru.", + "IFC", + "Nadbytečné tokeny vložené po deklaraci člena", + "chybný obor vkládání (%r)", + "Očekávala se hodnota typu std::string_view, ale získala se %t", + "nadbytečné tokeny vložené po příkazu", + "Nadbytečné tokeny vložené po deklaraci", + "přetečení hodnoty indexu řazené kolekce členů (%d)", + ">> výstup z std::meta::__report_tokens", + ">> koncový výstup z std::meta::__report_tokens", + "není v kontextu s proměnnými parametrů", + "Řídicí sekvence s oddělovači musí mít aspoň jeden znak.", + "neukončená řídicí sekvence s oddělovači", + "Konstanta obsahuje adresu místní proměnné.", + "strukturovanou vazbu nejde deklarovat jako consteval", + "%no je v konfliktu s importovanou deklarací %nd", + "Znak nelze v zadaném typu znaku reprezentovat.", + "Poznámka se nemůže vyskytovat v kontextu předpony atributu using.", + "typ %t poznámky není literálový typ.", + "Atribut ext_vector_type se vztahuje pouze na logické hodnoty (bool), celočíselné typy (integer) nebo typy s plovoucí desetinnou čárkou (floating-point).", + "Více specifikátorů do stejného sjednocení se nepovoluje.", + "testovací zpráva", + "Aby se dalo použít --ms_c++23, musí být verze Microsoftu, která se emuluje, aspoň 1943." ] diff --git a/Extension/bin/messages/de/messages.json b/Extension/bin/messages/de/messages.json index ac1cb6f09..5c05d13cd 100644 --- a/Extension/bin/messages/de/messages.json +++ b/Extension/bin/messages/de/messages.json @@ -3601,5 +3601,33 @@ "für die aktuelle Übersetzungseinheit konnte keine Headereinheit erstellt werden", "Die aktuelle Übersetzungseinheit verwendet mindestens ein Feature, das derzeit nicht in eine Headereinheit geschrieben werden kann", "\"explicit(bool)\" ist ein C++20-Feature", - "Für die Moduldateizuordnung, die auf die Datei \"%sq\" verweist, muss ein Modulname angegeben werden." + "Für die Moduldateizuordnung, die auf die Datei \"%sq\" verweist, muss ein Modulname angegeben werden.", + "Ein Nullindexwert wurde empfangen, obwohl ein Knoten in der IFC-Partition %sq erwartet wurde.", + "%nd darf nicht den Typ \"%t\" aufweisen", + "Ein ref-Qualifizierer entspricht in diesem Modus nicht dem Standard.", + "Eine bereichsbasierte \"for-Anweisung\" entspricht in diesem Modus nicht dem Standard", + "\"auto\" als Typspezifizierer entspricht in diesem Modus nicht dem Standard.", + "Die Moduldatei konnte aufgrund einer Beschädigung der Datei nicht %sq importiert werden.", + "IFC", + "Nach der Memberdeklaration eingefügte zusätzliche Token", + "Ungültiger Einschleusungsbereich (%r)", + "Es wurde ein Wert vom Typ \"std::string_view\" erwartet, der jedoch %t wurde.", + "Zusätzliche Token, die nach der Anweisung eingefügt wurden", + "Zusätzliche Token, die nach der Deklaration eingefügt wurden", + "Tupelindexwertüberlauf (%d)", + ">> Ausgabe von std::meta::__report_tokens", + ">> Endausgabe von std::meta::__report_tokens", + "nicht in einem Kontext mit Parametervariablen", + "Eine durch Trennzeichen getrennte Escapesequenz muss mindestens ein Zeichen enthalten.", + "nicht abgeschlossene, durch Trennzeichen getrennte Escapesequenz", + "Die Konstante enthält die Adresse einer lokalen Variablen.", + "eine strukturierte Bindung kann nicht als \"consteval\" deklariert werden", + "%no steht in Konflikt mit der importierten %nd", + "Zeichen kann im angegebenen Zeichentyp nicht dargestellt werden.", + "Eine Anmerkung kann nicht im Kontext eines using-Attributpräfixes angezeigt werden.", + "Der Typ %t der Anmerkung ist kein Literaltyp.", + "Das Attribut \"ext_vector_type\" gilt nur für boolesche, ganzzahlige oder Gleitkommatypen", + "Mehrere Kennzeichner in derselben Union sind nicht zulässig.", + "Testnachricht", + "Die zu emulierende Microsoft-Version muss mindestens 1943 sein, damit \"--ms_c++23\" verwendet werden kann." ] diff --git a/Extension/bin/messages/es/messages.json b/Extension/bin/messages/es/messages.json index c77eb7264..926681c81 100644 --- a/Extension/bin/messages/es/messages.json +++ b/Extension/bin/messages/es/messages.json @@ -3601,5 +3601,33 @@ "no se pudo crear una unidad de encabezado para la unidad de traducción actual", "la unidad de traducción actual usa una o varias características que no se pueden escribir actualmente en una unidad de encabezado", "'explicit(bool)' es una característica de C++20", - "se debe especificar un nombre de módulo para la asignación de archivos de módulo que hace referencia al archivo %sq" + "se debe especificar un nombre de módulo para la asignación de archivos de módulo que hace referencia al archivo %sq", + "se recibió un valor de índice nulo donde se esperaba un nodo en la partición IFC %sq", + "%nd no puede tener el tipo %t", + "un calificador ref no es estándar en este modo", + "una instrucción \"for\" basada en intervalos no es estándar en este modo", + "'auto' como especificador de tipo no es estándar en este modo", + "no se pudo importar el %sq de archivo de módulo debido a que el archivo está dañado", + "IFC", + "tokens extraños insertados después de la declaración de miembro", + "ámbito de inserción incorrecto (%r)", + "se esperaba un valor de tipo std::string_view pero se obtuvo %t", + "tokens extraños insertados después de la instrucción", + "tokens extraños insertados después de la declaración", + "desbordamiento del valor de índice de tupla (%d)", + ">> salida de std::meta::__report_tokens", + ">> salida final de std::meta::__report_tokens", + "no está en un contexto con variables de parámetro", + "una secuencia de escape delimitada debe tener al menos un carácter", + "secuencia de escape delimitada sin terminar", + "la constante contiene la dirección de una variable local", + "un enlace estructurado no se puede declarar como \"consteval\"", + "%no entra en conflicto con la declaración importada %nd", + "el carácter no se puede representar en el tipo de carácter especificado", + "una anotación no puede aparecer en el contexto de un prefijo de atributo 'using'", + "el tipo %t de la anotación no es un tipo literal", + "el atributo \"ext_vector_type\" solo se aplica a tipos booleanos, enteros o de punto flotante", + "no se permiten varios designadores en la misma unión", + "mensaje de prueba", + "la versión de Microsoft que se emula debe ser al menos 1943 para usar \"--ms_c++23\"" ] diff --git a/Extension/bin/messages/fr/messages.json b/Extension/bin/messages/fr/messages.json index 62b13147e..6d2f9b052 100644 --- a/Extension/bin/messages/fr/messages.json +++ b/Extension/bin/messages/fr/messages.json @@ -3601,5 +3601,33 @@ "impossible de créer une unité d’en-tête pour l’unité de traduction actuelle", "l’unité de traduction actuelle utilise une ou plusieurs fonctionnalités qui ne peuvent actuellement pas être écrites dans une unité d’en-tête", "'explicit(bool)' est une fonctionnalité C++20", - "un nom de module doit être spécifié pour la carte de fichiers de module référençant le fichier %sq" + "un nom de module doit être spécifié pour la carte de fichiers de module référençant le fichier %sq", + "une valeur d’index null a été reçue alors qu’un nœud de la partition IFC %sq était attendu", + "%nd ne peut pas avoir le type %t", + "qualificateur ref non standard dans ce mode", + "une instruction 'for' basée sur une plage n’est pas standard dans ce mode", + "'auto' en tant que spécificateur de type n’est pas standard dans ce mode", + "impossible d’importer le fichier de module %sq en raison d’un fichier endommagé", + "IFC", + "jetons superflus injectés après la déclaration de membre", + "étendue d’injection incorrecte (%r)", + "valeur de type std ::string_view attendue, mais %t obtenu", + "jetons superflus injectés après l’instruction", + "jetons superflus injectés après la déclaration", + "dépassement de capacité de la valeur d’index de tuple (%d)", + ">> sortie de std::meta::__report_tokens", + ">> sortie de fin de std::meta::__report_tokens", + "pas dans un contexte avec des variables de paramètre", + "une séquence d’échappement délimitée doit comporter au moins un caractère", + "séquence d’échappement délimitée non inachevée", + "constante contient l’adresse d’une variable locale", + "une liaison structurée ne peut pas être déclarée 'consteval'", + "%no est en conflit avec la déclaration importée %nd", + "caractère ne peut pas être représenté dans le type de caractère spécifié", + "une annotation ne peut pas apparaître dans le contexte d’un préfixe d’attribut 'using'", + "le type %t de l’annotation n’est pas un type littéral", + "l'attribut 'ext_vector_type' s'applique uniquement aux types booléens, entiers ou à virgule flottante", + "plusieurs désignateurs dans la même union ne sont pas autorisés", + "message de test", + "la version émulée Microsoft doit être au moins la version 1943 pour permettre l'utilisation de « --ms_c++23 »" ] diff --git a/Extension/bin/messages/it/messages.json b/Extension/bin/messages/it/messages.json index a5363ac34..4920fe2bb 100644 --- a/Extension/bin/messages/it/messages.json +++ b/Extension/bin/messages/it/messages.json @@ -3601,5 +3601,33 @@ "Non è possibile creare un'unità di intestazione per l'unità di conversione corrente", "l'unità di conversione corrente utilizza una o più funzionalità che attualmente non possono essere scritte in un'unità di intestazione", "'explicit(bool)' è una funzionalità di C++20", - "è necessario specificare un nome modulo per la mappa dei file del modulo che fa riferimento al file %sq" + "è necessario specificare un nome modulo per la mappa dei file del modulo che fa riferimento al file %sq", + "è stato ricevuto un valore di indice Null in cui era previsto un nodo nella partizione IFC %sq", + "%nd non può avere il tipo %t", + "qualificatore di riferimento non conforme allo standard in questa modalità", + "un'istruzione 'for' basata su intervallo non è standard in questa modalità", + "'auto' come identificatore di tipo non è conforme allo standard in questa modalità", + "non è stato possibile importare il file del modulo %sq a causa di un danneggiamento del file", + "IFC", + "token estranei inseriti dopo la dichiarazione del membro", + "ambito di inserimento non valido (%r)", + "previsto un valore di tipo std::string_view ma ottenuto %t", + "token estranei inseriti dopo l'istruzione", + "token estranei inseriti dopo la dichiarazione", + "overflow del valore dell'indice di tupla (%d)", + ">> output di std::meta::__report_tokens", + ">> output finale di std::meta::__report_tokens", + "non in un contesto con variabili di parametro", + "una sequenza di escape delimitata deve contenere almeno un carattere", + "sequenza di escape delimitata senza terminazione", + "la costante contiene l'indirizzo di una variabile locale", + "un'associazione strutturata non può essere dichiarata 'consteval'", + "%no è in conflitto con la dichiarazione importata %nd", + "impossibile rappresentare il carattere nel tipo di carattere specificato", + "un'annotazione non può essere presente nel contesto di un prefisso di attributo 'using'", + "il tipo %t dell'annotazione non è un tipo letterale", + "l'attributo 'ext_vector_type' si applica solo ai tipi bool, integer o a virgola mobile", + "non sono consentiti più indicatori nella stessa unione", + "messaggio di test", + "la versione di Microsoft da emulare deve essere almeno 1943 per usare '--ms_c++23'" ] diff --git a/Extension/bin/messages/ja/messages.json b/Extension/bin/messages/ja/messages.json index ed0f35076..076f95c69 100644 --- a/Extension/bin/messages/ja/messages.json +++ b/Extension/bin/messages/ja/messages.json @@ -3601,5 +3601,33 @@ "現在の翻訳単位のヘッダー ユニットを作成できませんでした", "現在の翻訳単位は、現在ヘッダー ユニットに書き込むことができない 1 つ以上の機能を使用します", "'explicit(bool)' は C++20 機能です", - "ファイル %sq を参照するモジュール ファイル マップにモジュール名を指定する必要があります" + "ファイル %sq を参照するモジュール ファイル マップにモジュール名を指定する必要があります", + "IFC パーティション %sq のノードが必要な場所で null インデックス値を受け取りました", + "%nd に型 %t を指定することはできません", + "ref 修飾子はこのモードでは非標準です", + "範囲ベースの 'for' ステートメントは、このモードでは標準ではありません", + "型指定子としての 'auto' は、このモードでは非標準です", + "ファイルが破損しているため、モジュール ファイル %sq をインポートできませんでした", + "IFC", + "メンバー宣言の後に無関係なトークンが挿入されました", + "不適切な挿入スコープ (%r)", + "std::string_view 型の値が必要ですが、%t されました", + "ステートメントの後に挿入された無関係なトークン", + "宣言の後に挿入された無関係なトークン", + "タプル インデックス値 (%d) オーバーフロー", + ">> std::meta::__report_tokens からの出力", + ">> std::meta::__report_tokens からの出力を終了", + "パラメーター変数を持つコンテキスト内にありません", + "区切られたエスケープ シーケンスには少なくとも 1 文字が必要です", + "区切られたエスケープ シーケンスが終了しません", + "定数にローカル変数のアドレスが含まれています", + "構造化バインディングを 'consteval' と宣言することはできません", + "%no がインポートされた宣言 %nd と競合しています", + "指定された文字の種類では文字を表すことができません", + "注釈を 'using' 属性プレフィックスのコンテキストに含めることはできません", + "注釈の型 %t はリテラル型ではありません", + "'ext_vector_type' 属性は、整数型または浮動小数点型にのみ適用できます", + "複数の指定子を同じ共用体にすることはできません", + "テスト メッセージ", + "'--ms_c++23' を使用するには、エミュレートされている Microsoft のバージョンが 1943 以上である必要があります" ] diff --git a/Extension/bin/messages/ko/messages.json b/Extension/bin/messages/ko/messages.json index 594a08532..5f8895cb1 100644 --- a/Extension/bin/messages/ko/messages.json +++ b/Extension/bin/messages/ko/messages.json @@ -3601,5 +3601,33 @@ "현재 변환 단위에 대한 헤더 단위를 만들 수 없습니다.", "현재 변환 단위는 헤더 단위에 현재 쓸 수 없는 하나 이상의 기능을 사용합니다.", "'explicit(bool)'는 C++20 기능입니다.", - "%sq 파일을 참조하는 모듈 파일 맵에 대한 모듈 이름을 지정해야 합니다." + "%sq 파일을 참조하는 모듈 파일 맵에 대한 모듈 이름을 지정해야 합니다.", + "IFC 파티션 %sq 노드가 필요한 곳에 null 인덱스 값을 받았습니다.", + "%nd은(는) %t 형식을 가질 수 없습니다", + "ref-qualifier는 이 모드에서 표준이 아니므로", + "범위 기반 'for' 문은 이 모드에서 표준이 아닙니다", + "형식 지정자의 'auto'는 이 모드에서 표준이 아닙니다.", + "파일이 손상되었기 때문에 모듈 파일 %sq 가져올 수 없습니다.", + "IFC", + "멤버 선언 뒤에 삽입된 불필요한 토큰", + "잘못된 주입 scope(%r)", + "std::string_view 형식의 값이 필요한데 %t", + "문 뒤에 불필요한 토큰이 삽입되었습니다.", + "선언 후에 삽입된 불필요한 토큰", + "튜플 인덱스 값(%d) 오버플로", + ">> std::meta::__report_tokens의 출력", + ">> std::meta::__report_tokens의 출력 종료", + "매개 변수 변수가 있는 컨텍스트에 없음", + "구분된 이스케이프 시퀀스에는 문자가 하나 이상 있어야 합니다.", + "종결되지 않은 구분된 이스케이프 시퀀스", + "상수에 지역 변수의 주소가 포함되어 있습니다.", + "구조적 바인딩에서는 'consteval'을 선언할 수 없습니다", + "%no 가져온 선언 %nd 충돌합니다.", + "지정한 문자 형식으로 문자를 나타낼 수 없습니다.", + "주석은 'using' 특성 접두사 컨텍스트에 나타날 수 없습니다.", + "주석의 형식 %t 리터럴 형식이 아닙니다.", + "'ext_vector_type' 특성은 부울, 정수 또는 부동 소수점 형식에만 적용됩니다", + "동일한 공용 구조체에 여러 지정자를 사용할 수 없습니다.", + "테스트 메시지", + "에뮬레이트되는 Microsoft 버전이 1943 이상이어야 '--ms_c++23'을 사용할 수 있습니다." ] diff --git a/Extension/bin/messages/pl/messages.json b/Extension/bin/messages/pl/messages.json index 9f88ee2bd..c5e42b82b 100644 --- a/Extension/bin/messages/pl/messages.json +++ b/Extension/bin/messages/pl/messages.json @@ -3601,5 +3601,33 @@ "nie można utworzyć jednostki nagłówka dla bieżącej jednostki translacji", "bieżąca jednostka translacji używa co najmniej jednej funkcji, których obecnie nie można zapisać w jednostce nagłówka", "„explicit(bool)” jest funkcją języka C++20", - "nazwa modułu musi być określona dla mapy pliku modułu odwołującej się do pliku %sq" + "nazwa modułu musi być określona dla mapy pliku modułu odwołującej się do pliku %sq", + "odebrano wartość indeksu o wartości null, w której oczekiwano węzła w partycji IFC %sq", + "%nd nie może mieć typu %t", + "kwalifikator ref jest niestandardowy w tym trybie", + "instrukcja \"for\" oparta na zakresie jest niestandardowa w tym trybie", + "element \"auto\" jako specyfikator typu jest niestandardowy w tym trybie", + "nie można zaimportować %sq pliku modułu z powodu uszkodzenia pliku", + "IFC", + "nadmiarowe tokeny wstrzyknięte po deklaracji składowej", + "zły zakres iniekcji (%r)", + "oczekiwano wartości typu std::string_view, ale otrzymano %t", + "nadmiarowe tokeny wstrzyknięte po instrukcji", + "nadmiarowe tokeny wstrzyknięte po deklaracji", + "przepełnienie wartości indeksu krotki (%d)", + ">> dane wyjściowe z elementu std::meta::__report_tokens", + ">> końcowe dane wyjściowe z elementu std::meta::__report_tokens", + "nie jest w kontekście ze zmiennymi parametrów", + "rozdzielana sekwencja ucieczki musi zawierać co najmniej jeden znak", + "niezakończona rozdzielana sekwencja ucieczki", + "stała zawiera adres zmiennej lokalnej", + "powiązanie ze strukturą nie może być deklarowane jako „constexpr”", + "%no powoduje konflikt z zaimportowanym %nd deklaracji", + "znak nie może być reprezentowany w określonym typie znaku", + "adnotacja nie może występować w kontekście prefiksu atrybutu \"using\"", + "typ %t adnotacji nie jest typem literału", + "atrybut „ext_vector_type” ma zastosowanie tylko do typów będących wartością logiczną, liczbą całkowitą lub liczbą zmiennoprzecinkową", + "wielokrotne desygnatory znajdujące się w tej samej unii są niedozwolone", + "wiadomość testowa", + "emulowaną wersją Microsoft musi być co najmniej 1943, aby użyć polecenia „--ms_c++23”" ] diff --git a/Extension/bin/messages/pt-br/messages.json b/Extension/bin/messages/pt-br/messages.json index 2f1a4447f..bfc788f38 100644 --- a/Extension/bin/messages/pt-br/messages.json +++ b/Extension/bin/messages/pt-br/messages.json @@ -3601,5 +3601,33 @@ "não foi possível criar uma unidade de cabeçalho para a unidade de tradução atual", "a unidade de tradução atual usa um ou mais recursos que não podem ser gravados atualmente em uma unidade de cabeçalho", "'explicit(bool)' é um recurso do C++20", - "um nome de módulo deve ser especificado para o mapa do arquivo de módulo que faz referência ao arquivo %sq" + "um nome de módulo deve ser especificado para o mapa do arquivo de módulo que faz referência ao arquivo %sq", + "um valor de índice nulo foi recebido onde um nó na partição IFC %sq esperado", + "%nd não pode ter o tipo %t", + "um qualificador ref não é padrão neste modo", + "uma instrução 'for' baseada em intervalo não é padrão nesse modo", + "'auto' como um especificador de tipo não é padrão neste modo", + "não foi possível importar o arquivo de %sq devido à corrupção do arquivo", + "IFC", + "tokens incorretos injetados após declaração de membro", + "escopo de injeção incorreto (%r)", + "esperava-se um valor do tipo std::string_view mas foi %t", + "tokens incorretos injetados após a instrução", + "tokens incorretos injetados após a declaração", + "estouro de valor de índice de tupla (%d)", + ">> saída de std::meta::__report_tokens", + ">> fim da saída de std::meta::__report_tokens", + "não está em um contexto com variáveis de parâmetro", + "uma sequência de escape delimitada deve ter pelo menos um caractere", + "sequência de escape delimitada não finalizada", + "constante contém o endereço de uma variável local", + "uma associação estruturada não pode ser declarada 'consteval'", + "%no conflito com a declaração importada %nd", + "caractere não pode ser representado no tipo de caractere especificado", + "uma anotação não pode aparecer no contexto de um prefixo de atributo 'using'", + "tipo %t da anotação não é um tipo literal", + "o atributo 'ext_vector_type' se aplica somente a booleano, inteiro ou ponto flutuante", + "vários designadores na mesma união não são permitidos", + "mensagem de teste", + "a versão da Microsoft que está sendo emulada deve ser pelo menos 1943 para usar '--ms_c++23'" ] diff --git a/Extension/bin/messages/ru/messages.json b/Extension/bin/messages/ru/messages.json index 263a85452..d6ad8182f 100644 --- a/Extension/bin/messages/ru/messages.json +++ b/Extension/bin/messages/ru/messages.json @@ -3601,5 +3601,33 @@ "не удалось создать единицу заголовка для текущей единицы трансляции", "текущая единица трансляции использует одну или несколько функций, которые в данный момент невозможно записать в единицу заголовка", "\"explicit(bool)\" — это функция C++20", - "необходимо указать имя модуля для сопоставления файла модуля, ссылающегося на файл %sq" + "необходимо указать имя модуля для сопоставления файла модуля, ссылающегося на файл %sq", + "было получено значение NULL индекса, в котором ожидался узел в секции IFC%sq", + "%nd не может иметь тип %t", + "квалификатор ref не является нестандартным в этом режиме", + "утверждение \"for\" на основе диапазона является нестандартным в этом режиме", + "\"auto\" в качестве опечатщика типа является нестандартным в этом режиме", + "не удалось импортировать файл %sq из-за повреждения файла", + "IFC", + "лишние токены, внедренные после объявления члена", + "неправильное область (%r)", + "требуется значение типа std::string_view, но %t", + "лишние токены, внедренные после оператора", + "лишние токены, внедренные после объявления", + "переполнение значения индекса кортежа (%d)", + ">> выходных данных из std::meta::__report_tokens", + ">> конец выходных данных из std::meta::__report_tokens", + "не в контексте с переменными параметров", + "escape-последовательность с разделителями должна содержать по крайней мере один символ", + "незавершенная escape-последовательность с разделителями", + "константа содержит адрес локальной переменной", + "структурированная привязка не может быть объявлена как \"consteval\"", + "%no конфликтует с импортируемым объявлением %nd", + "символ не может быть представлен в указанном типе символов", + "заметка не может присутствовать в контексте префикса атрибута using", + "тип %t заметки не является типом литерала", + "атрибут ext_vector_type применяется только к типам bool, integer или float point", + "использование нескольких указателей в одном объединении не допускается", + "тестовое сообщение", + "для использования \"--ms_c++23\" эмулируемая версия Майкрософт должна быть не ниже 1943" ] diff --git a/Extension/bin/messages/tr/messages.json b/Extension/bin/messages/tr/messages.json index 8fd0f7a7f..b82139ea9 100644 --- a/Extension/bin/messages/tr/messages.json +++ b/Extension/bin/messages/tr/messages.json @@ -3601,5 +3601,33 @@ "geçerli çeviri birimi için bir başlık birimi oluşturulamadı", "mevcut çeviri birimi şu anda bir başlık birimine yazılamayan bir veya daha fazla özellik kullanıyorsa", "'explicit(bool)' bir C++20 özelliğidir", - "%sq dosyasına başvuran modül dosyası eşlemesi için bir modül adı belirtilmelidir" + "%sq dosyasına başvuran modül dosyası eşlemesi için bir modül adı belirtilmelidir", + "IFC bölümündeki bir düğümün beklenen %sq null dizin değeri alındı", + "%nd, %t türüne sahip olamaz", + "ref niteleyicisi bu modda standart dışı", + "Bu modda, aralık tabanlı 'for' deyimi standart dışıdır", + "tür belirticisi olarak 'auto' bu modda standart dışı", + "dosya bozulması nedeniyle modül %sq dosyası içeri aktarılamadı", + "IFC", + "üye bildiriminden sonra eklenen gereksiz belirteçler", + "hatalı ekleme kapsamı (%r)", + "std::string_view türünde bir değer bekleniyordu ancak %t", + "deyimden sonra eklenen gereksiz belirteçler", + "bildirimden sonra eklenen gereksiz belirteçler", + "demet dizin değeri (%d) taşması", + ">> output from std::meta::__report_tokens", + ">> end output from std::meta::__report_tokens", + "parametre değişkenleri olan bir bağlamda değil", + "sınırlandırılmış bir kaçış dizisi en az bir karakter içermelidir", + "sonlandırılmamış sınırlandırılmış kaçış dizisi", + "sabit, yerel bir değişkenin adresini içerir", + "yapılandırılmış bir bağlama, 'consteval' olarak bildirilemez", + "%no içeri aktarılan bildirimle çakışıyor %nd", + "karakter belirtilen karakter türünde gösterilemez", + "ek açıklama bir 'using' öznitelik öneki bağlamında bulunamaz", + "ek %t türü bir sabit değer türü değil", + "'ext_vector_type' özniteliği yalnızca bool, tamsayı veya kayan nokta türleri için geçerlidir", + "aynı birleşimde birden çok belirleyiciye izin verilmez", + "test iletisi", + "'--ms_c++23' kullanabilmek için öykünülen Microsoft sürümü en az 1943 olmalıdır" ] diff --git a/Extension/bin/messages/zh-cn/messages.json b/Extension/bin/messages/zh-cn/messages.json index b527f4e9f..ae52d271c 100644 --- a/Extension/bin/messages/zh-cn/messages.json +++ b/Extension/bin/messages/zh-cn/messages.json @@ -3601,5 +3601,33 @@ "无法为当前翻译单元创建标头单元", "当前翻译单元使用当前无法写入标头单元的一个或多个功能", "“explicit(bool)” 是 C++20 功能", - "必须为引用文件 %sq 的模块文件映射指定模块名称" + "必须为引用文件 %sq 的模块文件映射指定模块名称", + "收到 null 索引值,但应为 IFC 分区 %sq 中的节点", + "%nd 不能具有类型 %t", + "ref 限定符在此模式下是非标准的", + "在此模式下,基于范围的 \"for\" 语句是非标准语句", + "在此模式下,“auto” 作为类型说明符是非标准的", + "由于文件损坏,无法导入模块文件 %sq", + "IFC", + "在成员声明后注入的外来令牌", + "错误的注入作用域 (%r)", + "应为 std::string_view 类型的值,但获得 %t", + "在语句后注入的外来令牌", + "声明后注入的外来标记", + "元组索引值 (%d) 溢出", + ">> 来自 std::meta::__report_tokens 的输出", + ">> 结束来自 std::meta::__report_tokens 的输出", + "不在包含参数变量的上下文中", + "分隔转义序列必须至少有一个字符", + "未终止的分隔转义序列", + "常量包含局部变量的地址", + "结构化绑定无法声明为 \"consteval\"", + "%no 与导入的声明 %nd 冲突", + "字符不能在指定的字符类型中表示", + "批注不能出现在 “using” 属性前缀的上下文中", + "批注的类型 %t 不是文本类型", + "\"ext_vector_type\" 属性仅适用于布尔值、整数或浮点类型", + "不允许将多个指示符加入同一联合", + "测试消息", + "正在模拟的 Microsoft 版本必须至少为 1943 才能使用“--ms_c++23”" ] diff --git a/Extension/bin/messages/zh-tw/messages.json b/Extension/bin/messages/zh-tw/messages.json index aefdf6b3a..20f1012bd 100644 --- a/Extension/bin/messages/zh-tw/messages.json +++ b/Extension/bin/messages/zh-tw/messages.json @@ -3601,5 +3601,33 @@ "無法為目前的編譯單位建立標頭單位", "目前的編譯單位使用一或多個目前無法寫入標頭單位的功能", "'explicit(bool)' 是 C++20 功能", - "必須為參照檔案的模組檔案對應指定模組名稱 %sq" + "必須為參照檔案的模組檔案對應指定模組名稱 %sq", + "收到 Null 索引值,其中預期 IFC 分割區 %sq 中的節點", + "%nd 不能有類型 %t", + "ref-qualifier 在此模式中不是標準的", + "範圍架構 'for' 陳述式在此模式中不是標準用法", + "在此模式中,'auto' 作為型別規範不是標準的", + "無法匯入模組檔案 %sq,因為檔案損毀", + "IFC", + "在成員宣告後插入了無關的 Token", + "錯誤的插入範圍 (%r)", + "必須是 std::string_view 類型的值,但 %t", + "語句后插入了無關的 Token", + "宣告後插入了無關的 Token", + "元組索引值 (%d) 溢位", + ">> 輸出來自 std::meta::__report_tokens", + ">> 結束輸出自 std::meta::__report_tokens", + "不在具有參數變數的內容中", + "分隔的逸出序列必須至少有一個字元", + "未結束分隔的逸出序列", + "常數包含局部變數的位址", + "無法將結構化繫結宣告為 'consteval'", + "%no 與匯入的宣告 %nd 衝突", + "字元不能以指定的字元類型表示", + "註釋不能出現在 『using』 屬性前綴的內容中", + "批注的類型 %t 不是常值類型", + "'ext_vector_type' 屬性只適用於布林值、整數或浮點數類型", + "不允許多個指示者進入相同的聯集", + "測試訊息", + "模擬的 Microsoft 版本至少須為 1943,才能使用 '--ms_c++23'" ] From 200f0934bf28c54e02d137970f36a4f41c8b32d6 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Tue, 7 Jan 2025 14:25:10 -0800 Subject: [PATCH 61/78] Add 3rd party notice for libiconv (#13056) --- Extension/ThirdPartyNotices.txt | 234 ++++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) diff --git a/Extension/ThirdPartyNotices.txt b/Extension/ThirdPartyNotices.txt index 3dc5f2feb..dd667cc20 100644 --- a/Extension/ThirdPartyNotices.txt +++ b/Extension/ThirdPartyNotices.txt @@ -2434,6 +2434,8 @@ The notices below are from non-npm sources. - Guidelines Support Library (https://github.com/Microsoft/GSL) - libc++ (https://libcxx.llvm.org/index.html) - libexecinfo (https://github.com/ronchaine/libexecinfo) +- libiconv (https://www.gnu.org/software/libiconv/) +- libiconv Win32 modifications (https://www.codeproject.com/Articles/302012/How-to-Build-libiconv-with-Microsoft-Visual-Studio) - libuv (https://github.com/libuv/libuv) - LLDB (https://lldb.llvm.org/) - LLVM (http://llvm.org/) @@ -3335,6 +3337,238 @@ SUCH DAMAGE. ========================================= END OF libexecinfo NOTICES AND INFORMATION +%% libiconv NOTICES AND INFORMATION BEGIN HERE +========================================= +GNU LESSER GENERAL PUBLIC LICENSE +Version 2.1, February 1999 + +Copyright (C) 1991, 1999 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] +Preamble +The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. + +This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. + +When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. + +To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. + +For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. + +We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. + +To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. + +Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. + +Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. + +When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. + +We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. + +For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. + +In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. + +Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. + +The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION +0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". + +A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. + +The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) + +"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. + +Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. + +1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. + +You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: + +a) The modified work must itself be a software library. +b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. +c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. +d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. +(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. + +3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. + +Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. + +This option is useful when you wish to copy part of the code of the Library into a program that is not a library. + +4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. + +If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. + +5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. + +However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. + +When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. + +If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) + +Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. + +6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. + +You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: + +a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) +b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. +c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. +d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. +e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. +For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. + +It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. + +7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: + +a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. +b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. +8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. + +9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. + +10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. + +11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. + +This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. + +12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. + +13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. + +14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. + +NO WARRANTY + +15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS +How to Apply These Terms to Your New Libraries +If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). + +To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. + +one line to give the library's name and an idea of what it does. +Copyright (C) year name of author + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, see +. + +========================================= +END OF libiconv NOTICES AND INFORMATION + +%% libiconv Win32 Modifications NOTICES AND INFORMATION BEGIN HERE +========================================= +GNU LESSER GENERAL PUBLIC LICENSE +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + +This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. + +0. Additional Definitions. + +As used herein, “this License” refers to version 3 of the GNU Lesser General Public License, and the “GNU GPL” refers to version 3 of the GNU General Public License. + +“The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. + +An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. + +A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”. + +The “Minimal Corresponding Source” for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. + +The “Corresponding Application Code” for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. + +1. Exception to Section 3 of the GNU GPL. + +You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. + +2. Conveying Modified Versions. + +If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: + +a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or +b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. +3. Object Code Incorporating Material from Library Header Files. + +The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: + +a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. +b) Accompany the object code with a copy of the GNU GPL and this license document. +4. Combined Works. + +You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: + +a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. +b) Accompany the Combined Work with a copy of the GNU GPL and this license document. +c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. +d) Do one of the following: +0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. +1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user’s computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. +e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) +5. Combined Libraries. + +You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: + +a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. +b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. +6. Revised Versions of the GNU Lesser General Public License. + +The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. + +If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy’s public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. +========================================= +END OF libiconv Win32 Modifications NOTICES AND INFORMATION + %% libuv NOTICES AND INFORMATION BEGIN HERE ========================================= libuv is licensed for use as follows: From 8e5bbf1320df9b7c4ecd760d0038af1e4c53634c Mon Sep 17 00:00:00 2001 From: Glen Chung <105310954+kuchungmsft@users.noreply.github.com> Date: Wed, 8 Jan 2025 10:24:58 -0800 Subject: [PATCH 62/78] Support C89 in Completion Prompts (#13132) - Also send unrecognized ones in telementry for further ananlysis. --- Extension/src/LanguageServer/lmTool.ts | 9 ++++++++- .../scenarios/SingleRootProject/tests/lmTool.test.ts | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Extension/src/LanguageServer/lmTool.ts b/Extension/src/LanguageServer/lmTool.ts index 50240fdd7..be03ca46e 100644 --- a/Extension/src/LanguageServer/lmTool.ts +++ b/Extension/src/LanguageServer/lmTool.ts @@ -38,7 +38,7 @@ const knownValues: { [Property in keyof ChatContextResult]?: { [id: string]: str 'c++17': 'C++17', 'c++20': 'C++20', 'c++23': 'C++23', - 'c90': "C90", + 'c89': "C89", 'c99': "C99", 'c11': "C11", 'c17': "C17", @@ -140,6 +140,8 @@ export async function getProjectContext(uri: vscode.Uri, context: { flags: Recor return undefined; } + const originalStandardVersion = projectContext.result.standardVersion; + formatChatContext(projectContext.result); const result: ProjectContext = { @@ -160,6 +162,11 @@ export async function getProjectContext(uri: vscode.Uri, context: { flags: Recor if (projectContext.result.standardVersion) { telemetryProperties["standardVersion"] = projectContext.result.standardVersion; } + else { + if (originalStandardVersion) { + telemetryProperties["originalStandardVersion"] = originalStandardVersion; + } + } if (projectContext.result.targetPlatform) { telemetryProperties["targetPlatform"] = projectContext.result.targetPlatform; } diff --git a/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts b/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts index afcf90366..a5cc0825f 100644 --- a/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts +++ b/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts @@ -376,6 +376,7 @@ describe('CppConfigurationLanguageModelTool Tests', () => { property['language'] === undefined && property['compiler'] === undefined && property['standardVersion'] === undefined && + property['originalStandardVersion'] === 'gnu++17' && property['targetPlatform'] === undefined))); ok(result, 'result should not be undefined'); ok(result.language === ''); From 205ae065f5cd0006a1e22a61c6fd9483dbd4ca6d Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Wed, 8 Jan 2025 12:30:39 -0800 Subject: [PATCH 63/78] Update changelog and version for 1.23.3. (#13127) * Update changelog and version for 1.23.3. --- Extension/CHANGELOG.md | 29 +++++++++++++++++++++++++++++ Extension/package.json | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 4ac81cfed..dbf651f47 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,5 +1,33 @@ # C/C++ for Visual Studio Code Changelog +## Version 1.23.3: January 9, 2025 +### New Feature +* Enable setting multiple compile commands. [#7029](https://github.com/microsoft/vscode-cpptools/issues/7029) + * Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12960](https://github.com/microsoft/vscode-cpptools/pull/12960) + +### Enhancements +* Modifications to the snippet completions to more closely match the snippets provided by TypeScript. [#4482](https://github.com/microsoft/vscode-cpptools/issues/4482) +* Update clang path setting descriptions. [PR #13071](https://github.com/microsoft/vscode-cpptools/pull/13071) +* Update clang-format and clang-tidy from 19.1.5 to 19.1.6. +* IntelliSense parser updates. + +### Bug Fixes +* Fix `compile_commands.json` no longer being used if the containing folder is deleted and recreated. [#7030](https://github.com/microsoft/vscode-cpptools/issues/7030) + * Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #13032](https://github.com/microsoft/vscode-cpptools/pull/13032) +* Fix `C_Cpp.enhancedColorization` not taking effect after it's changed. [#10565](https://github.com/microsoft/vscode-cpptools/issues/10565) +* Fix changes to `files.encoding` not triggering a database reset. [#10892](https://github.com/microsoft/vscode-cpptools/issues/10892) +* Fix parameter hints interpreting `*` in a comment as markdown. [#11082](https://github.com/microsoft/vscode-cpptools/issues/11082) +* Fix an incorrect IntelliSense error when using `std::unique_ptr`. [#11979](https://github.com/microsoft/vscode-cpptools/issues/11979) +* Fix an incorrect IntelliSense error with designated initializers. [#12239](https://github.com/microsoft/vscode-cpptools/issues/12239) +* Fix handling of `koi8ru` and `koi8t` file encodings on Windows. [#12272](https://github.com/microsoft/vscode-cpptools/issues/12272) +* Fix description of `C_Cpp.preferredPathSeparator`. [#12597](https://github.com/microsoft/vscode-cpptools/issues/12597) +* Fix the IntelliSense process launching when it's disabled and the Copilot extension is used. [#12750](https://github.com/microsoft/vscode-cpptools/issues/12750), [#13058](https://github.com/microsoft/vscode-cpptools/issues/13058) +* Fix the IntelliSense mode being `macos` instead of `windows` when `_WIN32` is defined on macOS. [#13016](https://github.com/Microsoft/vscode-cpptools/issues/13016) +* Fix IntelliSense bugs when using non-UTF8 file encodings. [#13028](https://github.com/microsoft/vscode-cpptools/issues/13028), [#13044](https://github.com/microsoft/vscode-cpptools/issues/13044) +* Fix an incorrect translation for "binary operator". [#13048](https://github.com/microsoft/vscode-cpptools/issues/13048) +* Fix the "references may be missing" logging pane being shown when the `C_Cpp.loggingLevel` is `Error` or `None`. [#13066](https://github.com/microsoft/vscode-cpptools/issues/13066) +* Fix `C_Cpp.default.compilerPath` not using the `C_Cpp.preferredPathSeparator` setting when generated from the 'Select IntelliSense Configuration' command. [#13083](https://github.com/microsoft/vscode-cpptools/issues/13083) + ### Version 1.23.2: December 5, 2024 ### Enhancements * Changes to how paths are internally canonicalized on Linux and macOS, avoiding file system access to improve performance and delay resolution of symbolic links. [#12924](https://github.com/microsoft/vscode-cpptools/issues/12924) @@ -11,6 +39,7 @@ * Update clang-format and clang-tidy from 19.1.2 to 19.1.5. ### Bug Fixes +* Fix a perf regression in hover operation by using cached lexer line states. [#3126](https://github.com/microsoft/vscode-cpptools/issues/3126) * Increase clang-format timeout from 10 seconds to 30 seconds. [#10213](https://github.com/microsoft/vscode-cpptools/issues/10213) * Fix casing of path in include completion tooltip on Windows. [#12895](https://github.com/microsoft/vscode-cpptools/issues/12895) * Fix pattern matching of sections in `.editorConfig` files. [#12933](https://github.com/microsoft/vscode-cpptools/issues/12933) diff --git a/Extension/package.json b/Extension/package.json index 2d36fdf32..03facfe22 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -2,7 +2,7 @@ "name": "cpptools", "displayName": "C/C++", "description": "C/C++ IntelliSense, debugging, and code browsing.", - "version": "1.23.2-main", + "version": "1.23.3-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", From 941aa608f42fdec75ed9adcba5ebe5f7011ece46 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Wed, 8 Jan 2025 12:41:29 -0800 Subject: [PATCH 64/78] Minor TPN updates. (#13135) --- Extension/ThirdPartyNotices.txt | 166 ++++++++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) diff --git a/Extension/ThirdPartyNotices.txt b/Extension/ThirdPartyNotices.txt index dd667cc20..c933515dd 100644 --- a/Extension/ThirdPartyNotices.txt +++ b/Extension/ThirdPartyNotices.txt @@ -601,6 +601,32 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +--------------------------------------------------------- + +--------------------------------------------------------- + +minimatch 4.2.3 - ISC +https://github.com/isaacs/minimatch#readme + +Copyright (c) 2011-2022 Isaac Z. Schlueter and Contributors + +The ISC License + +Copyright (c) 2011-2022 Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + --------------------------------------------------------- --------------------------------------------------------- @@ -732,6 +758,77 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +--------------------------------------------------------- + +--------------------------------------------------------- + +@microsoft/1ds-core-js 4.3.3 - MIT +https://github.com/microsoft/ApplicationInsights-JS#readme + +copyright Microsoft 2018 +Copyright (c) Microsoft Corporation +Copyright (c) Microsoft and contributors +Copyright (c) NevWare21 Solutions LLC and contributors + +The MIT License (MIT) + +Copyright (c) Microsoft Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--------------------------------------------------------- + +--------------------------------------------------------- + +@microsoft/1ds-post-js 4.3.3 - MIT +https://github.com/microsoft/ApplicationInsights-JS#readme + +copyright Microsoft 2018 +copyright Microsoft 2020 +copyright Microsoft 2018-2020 +copyright Microsoft 2022 Simple +Copyright (c) Microsoft Corporation +Copyright (c) Microsoft and contributors +Copyright (c) NevWare21 Solutions LLC and contributors + +The MIT License (MIT) + +Copyright (c) Microsoft Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + --------------------------------------------------------- --------------------------------------------------------- @@ -867,6 +964,40 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +--------------------------------------------------------- + +--------------------------------------------------------- + +@microsoft/applicationinsights-web-basic 3.3.3 - MIT +https://github.com/microsoft/ApplicationInsights-JS#readme + +Copyright (c) Microsoft Corporation +Copyright (c) Microsoft and contributors +Copyright (c) NevWare21 Solutions LLC and contributors + +The MIT License (MIT) + +Copyright (c) Microsoft Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + --------------------------------------------------------- --------------------------------------------------------- @@ -936,6 +1067,41 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +--------------------------------------------------------- + +--------------------------------------------------------- + +@nevware21/ts-utils 0.11.4 - MIT +https://github.com/nevware21/ts-utils + +Copyright (c) 2022 NevWare21 Solutions LLC +Copyright (c) 2023 NevWare21 Solutions LLC +Copyright (c) 2024 NevWare21 Solutions LLC +Copyright (c) NevWare21 Solutions LLC and contributors + +MIT License + +Copyright (c) 2022 NevWare21 Solutions LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + --------------------------------------------------------- --------------------------------------------------------- From fed7a82d36ff37bbb0970eae3e9a5360bcafe2aa Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Fri, 10 Jan 2025 15:48:14 -0800 Subject: [PATCH 65/78] Fix .editorConfig setting precedence (#13140) --- Extension/src/LanguageServer/client.ts | 2 ++ Extension/src/LanguageServer/editorConfig.ts | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index ac7a53bac..46e2b71ca 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -1285,6 +1285,8 @@ export class DefaultClient implements Client { void vscode.window.showErrorMessage(localize("unable.to.start", "Unable to start the C/C++ language server. IntelliSense features will be disabled. Error: {0}", additionalInfo)); } } + + this.updateActiveDocumentTextOptions(); } private async init(rootUri: vscode.Uri | undefined, isFirstClient: boolean) { diff --git a/Extension/src/LanguageServer/editorConfig.ts b/Extension/src/LanguageServer/editorConfig.ts index b5c8aa1db..4f330073a 100644 --- a/Extension/src/LanguageServer/editorConfig.ts +++ b/Extension/src/LanguageServer/editorConfig.ts @@ -165,8 +165,8 @@ function getEditorConfig(filePath: string): any { Object.keys(configData).forEach((section: string) => { if (section !== '*' && matchesSection(currentDirForwardSlashes, filePath, section)) { combinedConfig = { - ...combinedConfig, - ...configData[section] + ...configData[section], + ...combinedConfig }; } }); From 6f9ddbf52acf8b45262b4c179034b1f40afdd0b5 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 14 Jan 2025 10:39:45 -0800 Subject: [PATCH 66/78] Fix casing of Windows. (#13149) --- .../devcommandprompt/open-developer-command-prompt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extension/walkthrough/devcommandprompt/open-developer-command-prompt.md b/Extension/walkthrough/devcommandprompt/open-developer-command-prompt.md index 8c79c8320..e8af0926f 100644 --- a/Extension/walkthrough/devcommandprompt/open-developer-command-prompt.md +++ b/Extension/walkthrough/devcommandprompt/open-developer-command-prompt.md @@ -1,5 +1,5 @@

Relaunch using the Developer Command Prompt for VS

-

You are using a windows machine with the MSVC compiler, so you need to start VS Code from the Developer Command Prompt for VS for all environment variables to be set correctly. To relaunch using the Developer Command Prompt for VS:

+

You are using a Windows machine with the MSVC compiler, so you need to start VS Code from the Developer Command Prompt for VS for all environment variables to be set correctly. To relaunch using the Developer Command Prompt for VS:

  1. Open the Developer Command Prompt for VS by typing "developer" in the Windows Start menu. Select the Developer Command Prompt for VS, which will automatically navigate to your current open folder.

  2. From c4d9f113864e2dedc1c8ce3edc1ff6f21cf7b607 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Wed, 15 Jan 2025 15:30:36 -0800 Subject: [PATCH 67/78] Update changelog and version for 1.23.4. (#13155) * Update changelog and version for 1.23.4. --- Extension/CHANGELOG.md | 13 +++++++++---- Extension/package.json | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index dbf651f47..c2a941a2e 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,12 +1,17 @@ # C/C++ for Visual Studio Code Changelog -## Version 1.23.3: January 9, 2025 -### New Feature -* Enable setting multiple compile commands. [#7029](https://github.com/microsoft/vscode-cpptools/issues/7029) - * Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12960](https://github.com/microsoft/vscode-cpptools/pull/12960) +## Version 1.23.4: January 16, 2025 +### Bug Fixes +* Fix a couple bugs with `.editorConfig` handling. [PR #13140](https://github.com/microsoft/vscode-cpptools/pull/13140) +* Fix a bug when processing a file with invalid multi-byte sequences. [#13150](https://github.com/microsoft/vscode-cpptools/issues/13150) +* Fix a crash when Copilot hover is used on code with no definition file (e.g. literals). +* Fix `libiconv.dll` not being signed on Windows. +## Version 1.23.3: January 9, 2025 ### Enhancements * Modifications to the snippet completions to more closely match the snippets provided by TypeScript. [#4482](https://github.com/microsoft/vscode-cpptools/issues/4482) +* Enable setting multiple compile commands. [#7029](https://github.com/microsoft/vscode-cpptools/issues/7029) + * Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12960](https://github.com/microsoft/vscode-cpptools/pull/12960) * Update clang path setting descriptions. [PR #13071](https://github.com/microsoft/vscode-cpptools/pull/13071) * Update clang-format and clang-tidy from 19.1.5 to 19.1.6. * IntelliSense parser updates. diff --git a/Extension/package.json b/Extension/package.json index 03facfe22..db1fb79e1 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -2,7 +2,7 @@ "name": "cpptools", "displayName": "C/C++", "description": "C/C++ IntelliSense, debugging, and code browsing.", - "version": "1.23.3-main", + "version": "1.23.4-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", From e4091ab3b5dda9f39daecdc57db6c545bdf98c71 Mon Sep 17 00:00:00 2001 From: Glen Chung <105310954+kuchungmsft@users.noreply.github.com> Date: Wed, 15 Jan 2025 17:35:10 -0800 Subject: [PATCH 68/78] Combine ProjectContext and RelatedFilesProvider Telemetry in One Event (#13157) - This allows calculating the time spent on the extension side vs the language server side. - Also send filter telemetry if available. --- .../src/LanguageServer/copilotProviders.ts | 2 +- Extension/src/LanguageServer/lmTool.ts | 16 +-- .../SingleRootProject/tests/lmTool.test.ts | 127 ++++++++++++------ 3 files changed, 97 insertions(+), 48 deletions(-) diff --git a/Extension/src/LanguageServer/copilotProviders.ts b/Extension/src/LanguageServer/copilotProviders.ts index ce232865f..d955356c8 100644 --- a/Extension/src/LanguageServer/copilotProviders.ts +++ b/Extension/src/LanguageServer/copilotProviders.ts @@ -48,7 +48,7 @@ export async function registerRelatedFilesProvider(): Promise { try { const getIncludesHandler = async () => (await getIncludes(uri, 1))?.includedFiles.map(file => vscode.Uri.file(file)) ?? []; const getTraitsHandler = async () => { - const projectContext = await getProjectContext(uri, context); + const projectContext = await getProjectContext(uri, context, telemetryProperties, telemetryMetrics); if (!projectContext) { return undefined; diff --git a/Extension/src/LanguageServer/lmTool.ts b/Extension/src/LanguageServer/lmTool.ts index be03ca46e..1ede1d026 100644 --- a/Extension/src/LanguageServer/lmTool.ts +++ b/Extension/src/LanguageServer/lmTool.ts @@ -124,18 +124,20 @@ function filterCompilerArguments(compiler: string, compilerArguments: string[], if (filteredCompilerArguments.length > 0) { // Telemetry to learn about the argument distribution. The filtered arguments are expected to be non-PII. telemetryProperties["filteredCompilerArguments"] = filteredCompilerArguments.join(','); - telemetryProperties["filters"] = Object.keys(filterMap).filter(filter => !!filter).join(','); + } + + const filters = Object.keys(filterMap).filter(filter => !!filter).join(','); + if (filters) { + telemetryProperties["filters"] = filters; } return result; } -export async function getProjectContext(uri: vscode.Uri, context: { flags: Record }): Promise { - const telemetryProperties: Record = {}; - const telemetryMetrics: Record = {}; +export async function getProjectContext(uri: vscode.Uri, context: { flags: Record }, telemetryProperties: Record, telemetryMetrics: Record): Promise { try { const projectContext = await checkDuration(async () => await getClients()?.ActiveClient?.getProjectContext(uri) ?? undefined); - telemetryMetrics["duration"] = projectContext.duration; + telemetryMetrics["projectContextDuration"] = projectContext.duration; if (!projectContext.result) { return undefined; } @@ -186,10 +188,8 @@ export async function getProjectContext(uri: vscode.Uri, context: { flags: Recor catch { // Intentionally swallow any exception. } - telemetryProperties["error"] = "true"; + telemetryProperties["projectContextError"] = "true"; throw exception; // Throw the exception for auto-retry. - } finally { - telemetry.logCopilotEvent('ProjectContext', telemetryProperties, telemetryMetrics); } } diff --git a/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts b/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts index a5cc0825f..01f55c98b 100644 --- a/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts +++ b/Extension/test/scenarios/SingleRootProject/tests/lmTool.test.ts @@ -179,13 +179,17 @@ describe('CppConfigurationLanguageModelTool Tests', () => { expectedCompiler, context, compilerArguments: compilerArguments, - expectedCompilerArguments + expectedCompilerArguments, + telemetryProperties, + telemetryMetrics }: { compiler: string; expectedCompiler: string; context: { flags: Record }; compilerArguments: string[]; expectedCompilerArguments: Record; + telemetryProperties: Record; + telemetryMetrics: Record; }) => { arrangeProjectContextFromCppTools({ projectContextFromCppTools: { @@ -200,7 +204,7 @@ describe('CppConfigurationLanguageModelTool Tests', () => { } }); - const result = await getProjectContext(mockTextDocumentStub.uri, context); + const result = await getProjectContext(mockTextDocumentStub.uri, context, telemetryProperties, telemetryMetrics); ok(result, 'result should not be undefined'); ok(result.language === 'C++'); @@ -217,7 +221,9 @@ describe('CppConfigurationLanguageModelTool Tests', () => { expectedCompiler: 'MSVC', context: { flags: { copilotcppMsvcCompilerArgumentFilter: '{"foo-?": ""}' } }, compilerArguments: ['foo', 'bar', 'abc', 'foo-'], - expectedCompilerArguments: { 'foo-?': 'foo-' } + expectedCompilerArguments: { 'foo-?': 'foo-' }, + telemetryProperties: {}, + telemetryMetrics: {} }); }); @@ -227,7 +233,9 @@ describe('CppConfigurationLanguageModelTool Tests', () => { expectedCompiler: 'Clang', context: { flags: { copilotcppClangCompilerArgumentFilter: '{"foo": "", "bar": ""}' } }, compilerArguments: ['foo', 'bar', 'abc'], - expectedCompilerArguments: { 'foo': 'foo', 'bar': 'bar' } + expectedCompilerArguments: { 'foo': 'foo', 'bar': 'bar' }, + telemetryProperties: {}, + telemetryMetrics: {} }); }); @@ -237,7 +245,9 @@ describe('CppConfigurationLanguageModelTool Tests', () => { expectedCompiler: 'Clang', context: { flags: { copilotcppClangCompilerArgumentFilter: '{"-std\\\\sc\\\\+\\\\+\\\\d+": ""}' } }, compilerArguments: ['-std', 'c++17', '-std', 'foo', '-std', 'c++11', '-std', 'bar'], - expectedCompilerArguments: { '-std\\sc\\+\\+\\d+': '-std c++11' } + expectedCompilerArguments: { '-std\\sc\\+\\+\\d+': '-std c++11' }, + telemetryProperties: {}, + telemetryMetrics: {} }); }); @@ -247,7 +257,9 @@ describe('CppConfigurationLanguageModelTool Tests', () => { expectedCompiler: 'GCC', context: { flags: { copilotcppGccCompilerArgumentFilter: '{"foo": "", "bar": ""}' } }, compilerArguments: ['foo', 'bar', 'abc', 'bar', 'foo', 'bar'], - expectedCompilerArguments: { 'foo': 'foo', 'bar': 'bar' } + expectedCompilerArguments: { 'foo': 'foo', 'bar': 'bar' }, + telemetryProperties: {}, + telemetryMetrics: {} }); }); @@ -257,7 +269,9 @@ describe('CppConfigurationLanguageModelTool Tests', () => { expectedCompiler: 'MSVC', context: { flags: { copilotcppMsvcCompilerArgumentFilter: '{"foo": "", "bar": ""}' } }, compilerArguments: [], - expectedCompilerArguments: {} + expectedCompilerArguments: {}, + telemetryProperties: {}, + telemetryMetrics: {} }); }); @@ -267,7 +281,9 @@ describe('CppConfigurationLanguageModelTool Tests', () => { expectedCompiler: 'GCC', context: { flags: {} }, compilerArguments: ['foo', 'bar'], - expectedCompilerArguments: {} + expectedCompilerArguments: {}, + telemetryProperties: {}, + telemetryMetrics: {} }); }); @@ -277,7 +293,9 @@ describe('CppConfigurationLanguageModelTool Tests', () => { expectedCompiler: 'MSVC', context: { flags: { copilotcppMsvcCompilerArgumentFilter: '{"": ""}' } }, compilerArguments: ['foo', 'bar'], - expectedCompilerArguments: {} + expectedCompilerArguments: {}, + telemetryProperties: {}, + telemetryMetrics: {} }); }); @@ -291,7 +309,9 @@ describe('CppConfigurationLanguageModelTool Tests', () => { } }, compilerArguments: ['foo', 'bar'], - expectedCompilerArguments: {} + expectedCompilerArguments: {}, + telemetryProperties: {}, + telemetryMetrics: {} }); }); @@ -305,7 +325,9 @@ describe('CppConfigurationLanguageModelTool Tests', () => { } }, compilerArguments: ['foo', 'bar'], - expectedCompilerArguments: {} + expectedCompilerArguments: {}, + telemetryProperties: {}, + telemetryMetrics: {} }); }); @@ -321,33 +343,60 @@ describe('CppConfigurationLanguageModelTool Tests', () => { } }, compilerArguments: ['foo', 'bar'], - expectedCompilerArguments: {} + expectedCompilerArguments: {}, + telemetryProperties: {}, + telemetryMetrics: {} }); }); it('should send telemetry.', async () => { + const telemetryProperties: Record = {}; + const telemetryMetrics: Record = {}; const input = { compiler: 'msvc', expectedCompiler: 'MSVC', context: { flags: { copilotcppMsvcCompilerArgumentFilter: '{"foo-?": "", "": "", "bar": "", "xyz": ""}' } }, compilerArguments: ['foo', 'bar', 'foo-', 'abc'], - expectedCompilerArguments: { 'foo-?': 'foo-', 'bar': 'bar' } + expectedCompilerArguments: { 'foo-?': 'foo-', 'bar': 'bar' }, + telemetryProperties, + telemetryMetrics }; await testGetProjectContext(input); - ok(telemetryStub.calledOnce, 'Telemetry should be called once'); - ok(telemetryStub.calledWithMatch('ProjectContext', sinon.match({ - "language": 'C++', - "compiler": input.expectedCompiler, - "standardVersion": 'C++20', - "targetPlatform": 'Windows', - "targetArchitecture": 'x64', - "filteredCompilerArguments": "foo,foo-,bar", - "filters": "foo-?,bar,xyz" - }), sinon.match({ - "compilerArgumentCount": input.compilerArguments.length, - 'duration': sinon.match.number - }))); + ok(telemetryProperties['language'] === 'C++'); + ok(telemetryProperties['compiler'] === input.expectedCompiler); + ok(telemetryProperties['standardVersion'] === 'C++20'); + ok(telemetryProperties['targetPlatform'] === 'Windows'); + ok(telemetryProperties['targetArchitecture'] === 'x64'); + ok(telemetryProperties['filteredCompilerArguments'] === 'foo,foo-,bar'); + ok(telemetryProperties['filters'] === 'foo-?,bar,xyz'); + ok(telemetryMetrics['compilerArgumentCount'] === input.compilerArguments.length); + ok(telemetryMetrics['projectContextDuration'] !== undefined); + }); + + it('should send filter telemetry if available.', async () => { + const telemetryProperties: Record = {}; + const telemetryMetrics: Record = {}; + const input = { + compiler: 'msvc', + expectedCompiler: 'MSVC', + context: { flags: { copilotcppMsvcCompilerArgumentFilter: '{"foo-?": "", "": "", "bar": "", "xyz": ""}' } }, + compilerArguments: ['abc'], + expectedCompilerArguments: {}, + telemetryProperties, + telemetryMetrics + }; + await testGetProjectContext(input); + + ok(telemetryProperties['language'] === 'C++'); + ok(telemetryProperties['compiler'] === input.expectedCompiler); + ok(telemetryProperties['standardVersion'] === 'C++20'); + ok(telemetryProperties['targetPlatform'] === 'Windows'); + ok(telemetryProperties['targetArchitecture'] === 'x64'); + ok(telemetryProperties['filteredCompilerArguments'] === undefined); + ok(telemetryProperties['filters'] === 'foo-?,bar,xyz'); + ok(telemetryMetrics['compilerArgumentCount'] === input.compilerArguments.length); + ok(telemetryMetrics['projectContextDuration'] !== undefined); }); it('should not send telemetry for unknown values', async () => { @@ -363,21 +412,21 @@ describe('CppConfigurationLanguageModelTool Tests', () => { } } }); + const telemetryProperties: Record = {}; + const telemetryMetrics: Record = {}; - const result = await getProjectContext(mockTextDocumentStub.uri, { flags: {} }); + const result = await getProjectContext(mockTextDocumentStub.uri, { + flags: { copilotcppMsvcCompilerArgumentFilter: '{"foo-?": "", "": "", "bar": "", "xyz": ""}' } + }, telemetryProperties, telemetryMetrics); - ok(telemetryStub.calledOnce, 'Telemetry should be called once'); - ok(telemetryStub.calledWithMatch('ProjectContext', sinon.match({ - "targetArchitecture": 'bar' - }), sinon.match({ - "compilerArgumentCount": 0 - }))); - ok(telemetryStub.calledWithMatch('ProjectContext', sinon.match(property => - property['language'] === undefined && - property['compiler'] === undefined && - property['standardVersion'] === undefined && - property['originalStandardVersion'] === 'gnu++17' && - property['targetPlatform'] === undefined))); + ok(telemetryProperties["targetArchitecture"] === 'bar'); + ok(telemetryProperties["filters"] === undefined); + ok(telemetryProperties["language"] === undefined); + ok(telemetryProperties["compiler"] === undefined); + ok(telemetryProperties["standardVersion"] === undefined); + ok(telemetryProperties["originalStandardVersion"] === 'gnu++17'); + ok(telemetryProperties["targetPlatform"] === undefined); + ok(telemetryMetrics["compilerArgumentCount"] === 0); ok(result, 'result should not be undefined'); ok(result.language === ''); ok(result.compiler === ''); From 31969c8df2941980c552311cdd300eab88cb4b6b Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Thu, 16 Jan 2025 07:36:51 -0800 Subject: [PATCH 69/78] Stop sending err.message in telemetry (#13158) * Stop sending err.message. --- Extension/src/LanguageServer/extension.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index 642831c25..5cd0e2af1 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -1455,7 +1455,7 @@ async function onCopilotHover(): Promise { } catch (err) { if (err instanceof vscode.LanguageModelError) { console.log(err.message, err.code, err.cause); - await reportCopilotFailure(copilotHoverProvider, hoverDocument, hoverPosition, err.message); + await reportCopilotFailure(copilotHoverProvider, hoverDocument, hoverPosition, err.code); } else { throw err; } @@ -1475,9 +1475,12 @@ async function onCopilotHover(): Promise { content += fragment; } } catch (err) { - if (err instanceof Error) { + if (err instanceof vscode.LanguageModelError) { + console.log(err.message, err.code, err.cause); + await reportCopilotFailure(copilotHoverProvider, hoverDocument, hoverPosition, err.code); + } else if (err instanceof Error) { console.log(err.message, err.cause); - await reportCopilotFailure(copilotHoverProvider, hoverDocument, hoverPosition, err.message); + await reportCopilotFailure(copilotHoverProvider, hoverDocument, hoverPosition, err.name); } return; } From 9e96d6383c805bd512921a53a8621aa1c621ce51 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Thu, 16 Jan 2025 10:31:22 -0800 Subject: [PATCH 70/78] Update changelog (2nd time). (#13159) --- Extension/CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index c2a941a2e..592f74f9e 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -4,7 +4,10 @@ ### Bug Fixes * Fix a couple bugs with `.editorConfig` handling. [PR #13140](https://github.com/microsoft/vscode-cpptools/pull/13140) * Fix a bug when processing a file with invalid multi-byte sequences. [#13150](https://github.com/microsoft/vscode-cpptools/issues/13150) +* Fix a potential telemetry issue with Copilot hover. [PR #13158](https://github.com/microsoft/vscode-cpptools/pull/13158) * Fix a crash when Copilot hover is used on code with no definition file (e.g. literals). +* Update clang-format and clang-tidy from 19.1.6 to 19.1.7. +* Update vsdbg from 17.12.10729.1 to 17.13.20115.1. * Fix `libiconv.dll` not being signed on Windows. ## Version 1.23.3: January 9, 2025 From 0c2862c3794fc0b0dbbbf2df1febd6d70e5b3ea6 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Fri, 17 Jan 2025 18:11:16 -0800 Subject: [PATCH 71/78] Update changelog for 1.23.4 (3rd time) (#13164) * Update changelog (3rd time). * Minor TPN changes. --- Extension/CHANGELOG.md | 3 ++- Extension/ThirdPartyNotices.txt | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 592f74f9e..2fd83d0a2 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,6 +1,6 @@ # C/C++ for Visual Studio Code Changelog -## Version 1.23.4: January 16, 2025 +## Version 1.23.4: January 21, 2025 ### Bug Fixes * Fix a couple bugs with `.editorConfig` handling. [PR #13140](https://github.com/microsoft/vscode-cpptools/pull/13140) * Fix a bug when processing a file with invalid multi-byte sequences. [#13150](https://github.com/microsoft/vscode-cpptools/issues/13150) @@ -9,6 +9,7 @@ * Update clang-format and clang-tidy from 19.1.6 to 19.1.7. * Update vsdbg from 17.12.10729.1 to 17.13.20115.1. * Fix `libiconv.dll` not being signed on Windows. +* Fix incorrect GB2312 decoding on Linux. ## Version 1.23.3: January 9, 2025 ### Enhancements diff --git a/Extension/ThirdPartyNotices.txt b/Extension/ThirdPartyNotices.txt index c933515dd..03b140532 100644 --- a/Extension/ThirdPartyNotices.txt +++ b/Extension/ThirdPartyNotices.txt @@ -762,10 +762,9 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------------------------------------------------- -@microsoft/1ds-core-js 4.3.3 - MIT +@microsoft/applicationinsights-channel-js 3.3.3 - LGPL-2.1-or-later AND LicenseRef-scancode-generic-cla AND MIT https://github.com/microsoft/ApplicationInsights-JS#readme -copyright Microsoft 2018 Copyright (c) Microsoft Corporation Copyright (c) Microsoft and contributors Copyright (c) NevWare21 Solutions LLC and contributors @@ -792,17 +791,14 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + --------------------------------------------------------- --------------------------------------------------------- -@microsoft/1ds-post-js 4.3.3 - MIT +@microsoft/applicationinsights-common 3.3.3 - LGPL-2.1-or-later AND LicenseRef-scancode-generic-cla AND MIT https://github.com/microsoft/ApplicationInsights-JS#readme -copyright Microsoft 2018 -copyright Microsoft 2020 -copyright Microsoft 2018-2020 -copyright Microsoft 2022 Simple Copyright (c) Microsoft Corporation Copyright (c) Microsoft and contributors Copyright (c) NevWare21 Solutions LLC and contributors @@ -829,11 +825,12 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + --------------------------------------------------------- --------------------------------------------------------- -@microsoft/applicationinsights-channel-js 3.3.3 - MIT +@microsoft/applicationinsights-core-js 3.3.3 - LGPL-2.1-or-later AND LicenseRef-scancode-generic-cla AND MIT https://github.com/microsoft/ApplicationInsights-JS#readme Copyright (c) Microsoft Corporation @@ -867,9 +864,10 @@ SOFTWARE. --------------------------------------------------------- -@microsoft/applicationinsights-common 3.3.3 - MIT +@microsoft/1ds-core-js 4.3.3 - MIT https://github.com/microsoft/ApplicationInsights-JS#readme +copyright Microsoft 2018 Copyright (c) Microsoft Corporation Copyright (c) Microsoft and contributors Copyright (c) NevWare21 Solutions LLC and contributors @@ -896,14 +894,17 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - --------------------------------------------------------- --------------------------------------------------------- -@microsoft/applicationinsights-core-js 3.3.3 - MIT +@microsoft/1ds-post-js 4.3.3 - MIT https://github.com/microsoft/ApplicationInsights-JS#readme +copyright Microsoft 2018 +copyright Microsoft 2020 +copyright Microsoft 2018-2020 +copyright Microsoft 2022 Simple Copyright (c) Microsoft Corporation Copyright (c) Microsoft and contributors Copyright (c) NevWare21 Solutions LLC and contributors @@ -930,7 +931,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - --------------------------------------------------------- --------------------------------------------------------- From 71cf89ce7048386c85c2eb9ddf9d5ff9eb84b993 Mon Sep 17 00:00:00 2001 From: "CSIGS@microsoft.com" Date: Tue, 21 Jan 2025 16:08:54 -0800 Subject: [PATCH 72/78] [Auto] Localization - Translated Strings (#13027) --- .../c_cpp_properties.schema.json.i18n.json | 2 +- Extension/i18n/chs/package.i18n.json | 13 ++-- .../Debugger/configurationProvider.i18n.json | 2 +- .../Providers/CopilotHoverProvider.i18n.json | 9 +++ .../src/LanguageServer/codeAnalysis.i18n.json | 4 +- .../LanguageServer/configurations.i18n.json | 1 + .../src/LanguageServer/extension.i18n.json | 6 +- .../chs/src/SSH/sshCommandRunner.i18n.json | 4 +- .../i18n/chs/src/nativeStrings.i18n.json | 7 +- Extension/i18n/chs/ui/settings.html.i18n.json | 3 +- .../run-and-debug-project-linux.md.i18n.json | 4 +- .../run-and-debug-project-mac.md.i18n.json | 4 +- ...run-and-debug-project-windows.md.i18n.json | 4 +- ...open-developer-command-prompt.md.i18n.json | 8 +-- .../install-compiler-windows.md.i18n.json | 8 +-- .../install-compiler-windows10.md.i18n.json | 10 ++- .../install-compiler-windows11.md.i18n.json | 10 ++- .../c_cpp_properties.schema.json.i18n.json | 2 +- Extension/i18n/cht/package.i18n.json | 11 ++-- .../Debugger/configurationProvider.i18n.json | 2 +- .../Providers/CopilotHoverProvider.i18n.json | 9 +++ .../LanguageServer/configurations.i18n.json | 1 + .../src/LanguageServer/extension.i18n.json | 6 +- .../i18n/cht/src/nativeStrings.i18n.json | 7 +- Extension/i18n/cht/ui/settings.html.i18n.json | 3 +- ...open-developer-command-prompt.md.i18n.json | 8 +-- .../install-compiler-windows.md.i18n.json | 12 ++-- .../install-compiler-windows10.md.i18n.json | 6 +- .../install-compiler-windows11.md.i18n.json | 6 +- .../c_cpp_properties.schema.json.i18n.json | 2 +- Extension/i18n/csy/package.i18n.json | 11 ++-- .../Debugger/configurationProvider.i18n.json | 6 +- .../Providers/CopilotHoverProvider.i18n.json | 9 +++ .../LanguageServer/configurations.i18n.json | 1 + .../src/LanguageServer/extension.i18n.json | 6 +- .../csy/src/SSH/sshCommandRunner.i18n.json | 6 +- .../i18n/csy/src/nativeStrings.i18n.json | 7 +- Extension/i18n/csy/ui/settings.html.i18n.json | 3 +- ...open-developer-command-prompt.md.i18n.json | 8 +-- .../install-compiler-windows.md.i18n.json | 10 ++- .../install-compiler-windows10.md.i18n.json | 8 +-- .../install-compiler-windows11.md.i18n.json | 8 +-- .../c_cpp_properties.schema.json.i18n.json | 2 +- Extension/i18n/deu/package.i18n.json | 11 ++-- .../Debugger/configurationProvider.i18n.json | 2 +- .../Providers/CopilotHoverProvider.i18n.json | 9 +++ .../LanguageServer/configurations.i18n.json | 1 + .../src/LanguageServer/extension.i18n.json | 6 +- .../i18n/deu/src/nativeStrings.i18n.json | 7 +- Extension/i18n/deu/ui/settings.html.i18n.json | 3 +- ...open-developer-command-prompt.md.i18n.json | 8 +-- .../install-compiler-windows.md.i18n.json | 8 +-- .../install-compiler-windows10.md.i18n.json | 6 +- .../install-compiler-windows11.md.i18n.json | 6 +- .../c_cpp_properties.schema.json.i18n.json | 2 +- Extension/i18n/esn/package.i18n.json | 11 ++-- .../Debugger/configurationProvider.i18n.json | 2 +- .../Providers/CopilotHoverProvider.i18n.json | 9 +++ .../LanguageServer/configurations.i18n.json | 1 + .../src/LanguageServer/extension.i18n.json | 6 +- Extension/i18n/esn/src/common.i18n.json | 4 +- .../i18n/esn/src/nativeStrings.i18n.json | 7 +- Extension/i18n/esn/ui/settings.html.i18n.json | 3 +- ...open-developer-command-prompt.md.i18n.json | 8 +-- .../install-compiler-windows.md.i18n.json | 8 +-- .../install-compiler-windows10.md.i18n.json | 6 +- .../install-compiler-windows11.md.i18n.json | 6 +- .../c_cpp_properties.schema.json.i18n.json | 2 +- Extension/i18n/fra/package.i18n.json | 13 ++-- .../Debugger/configurationProvider.i18n.json | 2 +- .../Providers/CopilotHoverProvider.i18n.json | 9 +++ .../LanguageServer/configurations.i18n.json | 1 + .../src/LanguageServer/extension.i18n.json | 6 +- .../i18n/fra/src/nativeStrings.i18n.json | 7 +- Extension/i18n/fra/ui/settings.html.i18n.json | 3 +- ...open-developer-command-prompt.md.i18n.json | 8 +-- .../install-compiler-windows.md.i18n.json | 8 +-- .../install-compiler-windows10.md.i18n.json | 6 +- .../install-compiler-windows11.md.i18n.json | 6 +- .../c_cpp_properties.schema.json.i18n.json | 2 +- Extension/i18n/ita/package.i18n.json | 11 ++-- .../Debugger/configurationProvider.i18n.json | 2 +- .../Providers/CopilotHoverProvider.i18n.json | 9 +++ .../LanguageServer/configurations.i18n.json | 1 + .../src/LanguageServer/extension.i18n.json | 6 +- Extension/i18n/ita/src/expand.i18n.json | 4 +- .../i18n/ita/src/nativeStrings.i18n.json | 7 +- Extension/i18n/ita/ui/settings.html.i18n.json | 3 +- ...open-developer-command-prompt.md.i18n.json | 8 +-- .../install-compiler-windows.md.i18n.json | 8 +-- .../install-compiler-windows10.md.i18n.json | 6 +- .../install-compiler-windows11.md.i18n.json | 6 +- .../c_cpp_properties.schema.json.i18n.json | 2 +- Extension/i18n/jpn/package.i18n.json | 13 ++-- .../src/Debugger/attachToProcess.i18n.json | 4 +- .../Debugger/configurationProvider.i18n.json | 2 +- .../Providers/CopilotHoverProvider.i18n.json | 9 +++ .../jpn/src/LanguageServer/client.i18n.json | 8 +-- .../LanguageServer/configurations.i18n.json | 1 + .../src/LanguageServer/extension.i18n.json | 6 +- .../i18n/jpn/src/nativeStrings.i18n.json | 7 +- Extension/i18n/jpn/ui/settings.html.i18n.json | 3 +- ...open-developer-command-prompt.md.i18n.json | 8 +-- .../install-compiler-windows.md.i18n.json | 8 +-- .../install-compiler-windows10.md.i18n.json | 6 +- .../install-compiler-windows11.md.i18n.json | 6 +- .../Reinstalling the Extension.md.i18n.json | 4 +- .../c_cpp_properties.schema.json.i18n.json | 2 +- Extension/i18n/kor/package.i18n.json | 11 ++-- .../Debugger/ParsedEnvironmentFile.i18n.json | 4 +- .../src/Debugger/attachToProcess.i18n.json | 6 +- .../Debugger/configurationProvider.i18n.json | 16 ++--- .../kor/src/Debugger/configurations.i18n.json | 14 ++-- .../kor/src/Debugger/nativeAttach.i18n.json | 4 +- .../Providers/CopilotHoverProvider.i18n.json | 9 +++ .../kor/src/LanguageServer/client.i18n.json | 10 +-- .../src/LanguageServer/codeAnalysis.i18n.json | 4 +- .../LanguageServer/configurations.i18n.json | 9 +-- .../src/LanguageServer/extension.i18n.json | 6 +- .../src/LanguageServer/references.i18n.json | 8 +-- .../kor/src/SSH/commandInteractors.i18n.json | 4 +- Extension/i18n/kor/src/SSH/sshHosts.i18n.json | 6 +- Extension/i18n/kor/src/common.i18n.json | 8 +-- Extension/i18n/kor/src/expand.i18n.json | 6 +- Extension/i18n/kor/src/main.i18n.json | 4 +- .../i18n/kor/src/nativeStrings.i18n.json | 65 ++++++++++--------- Extension/i18n/kor/src/platform.i18n.json | 4 +- Extension/i18n/kor/ui/settings.html.i18n.json | 19 +++--- .../run-and-debug-project-linux.md.i18n.json | 10 +-- .../run-and-debug-project-mac.md.i18n.json | 10 +-- ...run-and-debug-project-windows.md.i18n.json | 10 +-- ...open-developer-command-prompt.md.i18n.json | 10 +-- .../install-compiler-windows.md.i18n.json | 16 ++--- .../install-compiler-windows10.md.i18n.json | 12 ++-- .../install-compiler-windows11.md.i18n.json | 12 ++-- .../Reinstalling the Extension.md.i18n.json | 4 +- .../c_cpp_properties.schema.json.i18n.json | 2 +- Extension/i18n/plk/package.i18n.json | 13 ++-- .../Debugger/configurationProvider.i18n.json | 2 +- .../Providers/CopilotHoverProvider.i18n.json | 9 +++ .../LanguageServer/configurations.i18n.json | 1 + .../src/LanguageServer/extension.i18n.json | 6 +- .../i18n/plk/src/nativeStrings.i18n.json | 7 +- Extension/i18n/plk/ui/settings.html.i18n.json | 3 +- .../run-and-debug-project-linux.md.i18n.json | 4 +- .../run-and-debug-project-mac.md.i18n.json | 4 +- ...run-and-debug-project-windows.md.i18n.json | 4 +- ...open-developer-command-prompt.md.i18n.json | 8 +-- .../install-compiler-windows.md.i18n.json | 8 +-- .../install-compiler-windows10.md.i18n.json | 6 +- .../install-compiler-windows11.md.i18n.json | 6 +- .../c_cpp_properties.schema.json.i18n.json | 2 +- Extension/i18n/ptb/package.i18n.json | 15 +++-- .../Debugger/configurationProvider.i18n.json | 2 +- .../Providers/CopilotHoverProvider.i18n.json | 9 +++ .../LanguageServer/configurations.i18n.json | 1 + .../src/LanguageServer/extension.i18n.json | 6 +- .../i18n/ptb/src/nativeStrings.i18n.json | 7 +- Extension/i18n/ptb/ui/settings.html.i18n.json | 3 +- ...open-developer-command-prompt.md.i18n.json | 8 +-- .../install-compiler-windows.md.i18n.json | 8 +-- .../install-compiler-windows10.md.i18n.json | 6 +- .../install-compiler-windows11.md.i18n.json | 6 +- .../c_cpp_properties.schema.json.i18n.json | 2 +- Extension/i18n/rus/package.i18n.json | 11 ++-- .../Debugger/configurationProvider.i18n.json | 2 +- .../Providers/CopilotHoverProvider.i18n.json | 9 +++ .../LanguageServer/configurations.i18n.json | 1 + .../src/LanguageServer/extension.i18n.json | 6 +- .../i18n/rus/src/nativeStrings.i18n.json | 7 +- Extension/i18n/rus/ui/settings.html.i18n.json | 3 +- ...open-developer-command-prompt.md.i18n.json | 8 +-- .../install-compiler-windows.md.i18n.json | 8 +-- .../install-compiler-windows10.md.i18n.json | 6 +- .../install-compiler-windows11.md.i18n.json | 6 +- .../c_cpp_properties.schema.json.i18n.json | 2 +- Extension/i18n/trk/package.i18n.json | 11 ++-- .../Debugger/configurationProvider.i18n.json | 2 +- .../Providers/CopilotHoverProvider.i18n.json | 9 +++ .../LanguageServer/configurations.i18n.json | 1 + .../src/LanguageServer/extension.i18n.json | 6 +- .../i18n/trk/src/nativeStrings.i18n.json | 7 +- Extension/i18n/trk/ui/settings.html.i18n.json | 3 +- ...open-developer-command-prompt.md.i18n.json | 8 +-- .../install-compiler-windows.md.i18n.json | 8 +-- .../install-compiler-windows10.md.i18n.json | 8 +-- .../install-compiler-windows11.md.i18n.json | 8 +-- 187 files changed, 687 insertions(+), 544 deletions(-) create mode 100644 Extension/i18n/chs/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json create mode 100644 Extension/i18n/cht/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json create mode 100644 Extension/i18n/csy/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json create mode 100644 Extension/i18n/deu/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json create mode 100644 Extension/i18n/esn/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json create mode 100644 Extension/i18n/fra/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json create mode 100644 Extension/i18n/ita/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json create mode 100644 Extension/i18n/jpn/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json create mode 100644 Extension/i18n/kor/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json create mode 100644 Extension/i18n/plk/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json create mode 100644 Extension/i18n/ptb/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json create mode 100644 Extension/i18n/rus/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json create mode 100644 Extension/i18n/trk/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json diff --git a/Extension/i18n/chs/c_cpp_properties.schema.json.i18n.json b/Extension/i18n/chs/c_cpp_properties.schema.json.i18n.json index 7ef2fa8ab..9925b1d4f 100644 --- a/Extension/i18n/chs/c_cpp_properties.schema.json.i18n.json +++ b/Extension/i18n/chs/c_cpp_properties.schema.json.i18n.json @@ -9,7 +9,7 @@ "c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "用于修改所使用的包含或定义的编译器参数,例如 `-nostdinc++`、`-m32` 等。采用其他空格分隔参数的参数应在数组中作为单独的参数输入,例如,对于 `--sysroot ` 使用 `\"--sysroot\", \"\"`。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cStandard": "用于 IntelliSense 的 C 语言标准的版本。注意: GNU 标准仅用于查询设置编译器以获取 GNU 定义,并且 IntelliSense 将模拟等效的 C 标准版本。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cppStandard": "用于 IntelliSense 的 C++ 语言标准的版本。注意: GNU 标准仅用于查询设置用来获取 GNU 定义的编译器,并且 IntelliSense 将模拟等效的 C++ 标准版本。", - "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "工作区的 `compile_commands.json` 文件的完整路径。", + "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "工作区的 `compile_commands.json` 文件的完整路径或完整路径列表。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.includePath": "搜索包含的标头时,IntelliSense 引擎要使用的路径列表。在这些路径上进行搜索为非递归搜索。指定 `**` 以指示递归搜索。例如,`${workspaceFolder}/**` 将搜索所有子目录,而 `${workspaceFolder}` 则不会。通常,此操作不应包含系统包含项;请改为设置 `C_Cpp.default.compilerPath`。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "IntelliSense 引擎在 Mac 框架中搜索包含的标头时要使用的路径的列表。仅在 Mac 配置中受支持。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.windowsSdkVersion": "要在 Windows 上使用的 Windows SDK 包含路径的版本,例如 `10.0.17134.0`。", diff --git a/Extension/i18n/chs/package.i18n.json b/Extension/i18n/chs/package.i18n.json index 48b573e65..0b658d108 100644 --- a/Extension/i18n/chs/package.i18n.json +++ b/Extension/i18n/chs/package.i18n.json @@ -77,7 +77,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "如果有多个问题类型,显示“全部清除”,如果有多个 问题,显示“清除所有 ”以及显示“清除此项”代码操作", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "如果为 `true`,则在“修复”代码操作更改的行上运行格式设置。", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "如果为 `true`,则在 `#C_Cpp.codeAnalysis.runAutomatically#` 为 `true` (默认值)时,将启用使用 `clang-tidy` 的代码分析,并在文件打开或保存后运行它。", - "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` 可执行文件的完整路径。如果未指定,并且 `clang-tidy` 在环境路径中可用,则使用该路径。如果在环境路径中找不到,则将使用与扩展捆绑的 `clang-tidy`。", + "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` 可执行文件的完整路径。如果未指定,并且 `clang-tidy` 在环境路径中可用,则除非与扩展捆绑的版本更新,否则将使用该项。如果在环境路径中找不到,则将使用与扩展捆绑的 `clang-tidy`。", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "指定 YAML/JSON 格式的 `clang-tidy` 配置: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{键: x, 值: y}]}`。当值为空时,`clang-tidy` 将尝试为其父目录中的每个源文件查找名为 `.clang-tidy` 的文件。", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "指定 YAML/JSON 格式的 `clang-tidy` 配置,以在未设置 `#C_Cpp.codeAnalysis.clangTidy.config#`,并且未找到 `.clang-tidy` 文件: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{键: x, 值: y}]}` 时将其用作回退。", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "与要从中输出诊断的标头名称匹配的 POSIX 扩展正则表达式 (ERE)。始终显示来自每个翻译单元的主文件的诊断。支持 `${workspaceFolder}` 变量(如果不存在 `.clang-tidy` 文件,则该变量将用作默认回退值)。如果此选项不是 `null` (空),则将替代 `.clang-tidy` 文件中的 `HeaderFilterRegex` 选项(如果有)。", @@ -175,7 +175,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.oneLiners.markdownDescription": "在一行中输入的完整代码块会保留在一行上,不考虑`C_Cpp.vcFormat.newLine.*` 设置的值。", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription": "任何在一行中输入左大括号和右大括号的代码都会保留在一行上,不考虑任何 `C_Cpp.vcFormat.newLine.*` 设置的值。", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "代码块始终基于 `C_Cpp.vcFormat.newLine.*` 设置的值进行格式化。", - "c_cpp.configuration.clang_format_path.markdownDescription": "`clang-format` 可执行文件的完整路径。如果未指定,则 `clang-format` 在使用的环境路径中可用。如果在环境路径中找不到,则将使用与扩展捆绑的 `clang-format`。", + "c_cpp.configuration.clang_format_path.markdownDescription": "`clang-format` 可执行文件的完整路径。如果未指定,并且 `clang-format` 在环境路径中可用,则除非与扩展捆绑的版本更新,否则将使用该项。如果在环境路径中找不到,则将使用与扩展捆绑的 `clang-format`。", "c_cpp.configuration.clang_format_style.markdownDescription": "编码样式目前支持: `Visual Studio`、`LLVM`、 `Google`、`Chromium`、`Mozilla`、`WebKit`、 `Microsoft`、`GNU`。使用 `file` 从当前目录或父目录中的 `.clang-format` 文件加载样式,或使用 `file:<路径>/.clang-format` 引用特定路径。使用 `{键: 值, ...}` 设置特定参数。例如,`Visual Studio` 样式类似于: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`。", "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "用作回退的预定义样式的名称,以防使用样式 `file` 调用 `clang-format` 但找不到 `.clang-format` 文件。可能的值为 `Visual Studio`、`LLVM`、 `Google`、`Chromium`、`Mozilla`、`WebKit`、 `Microsoft`、`GNU`、`none`,或使用 `{键: 值, ...}` 以设置特定参数。例如,`Visual Studio` 样式类似于: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`。", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "如果设置,则替换由 `SortIncludes` 参数确定的包含排序行为。", @@ -205,7 +205,7 @@ "c_cpp.configuration.exclusionPolicy.markdownDescription": "当扩展在确定哪些文件应添加到代码导航数据库,并遍历 `browse.path` 数组中的路径时,指示其使用 `#files.exclude#` (和 `#C_Cpp.files.exclude#`)设置的时间。如果 `#files.exclude#` 设置仅包含文件夹,则 `checkFolders` 为最佳选择,且将提高扩展可以初始化代码导航数据库的速度。", "c_cpp.configuration.exclusionPolicy.checkFolders.description": "排除筛选器将仅对每个文件夹进行一次评估(不检查单个文件)。", "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "将针对每个遇到的文件和文件夹评估排除筛选器。", - "c_cpp.configuration.preferredPathSeparator.markdownDescription": "用作 `#include` 自动完成结果的路径分隔符的字符。", + "c_cpp.configuration.preferredPathSeparator.markdownDescription": "用作生成的用户路径的路径分隔符的字符。", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "如果为 `true`,则悬停和自动完成的工具提示将仅显示结构化注释的某些标签。否则,将显示所有注释。", "c_cpp.configuration.doxygen.generateOnType.description": "控制在键入所选注释样式后是否自动插入 Doxygen 注释。", "c_cpp.configuration.doxygen.generatedStyle.description": "用作 Doxygen 注释起始行的字符串。", @@ -253,6 +253,7 @@ "c_cpp.configuration.hover.description": "如果禁用,则语言服务器不再提供悬停详细信息。", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "为 [vcpkg 依存关系管理器](https://aka.ms/vcpkg/) 启用集成服务。", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "当来自 `nan` 和 `node-addon-api` 的包含路径为依赖项时,请将其添加。", + "c_cpp.configuration.copilotHover.markdownDescription": "如果 `disabled`,则悬停时不会显示任何 Copilot 信息。", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "如果为 `true`,则“重命名符号”将需要有效的 C/C++ 标识符。", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "如果为 `true`,则自动完成将在函数调用后自动添加 `(` ,在这种情况下,也可以添加 `)` ,具体取决于 `#editor.autoClosingBrackets#` 设置的值。", "c_cpp.configuration.filesExclude.markdownDescription": "为排除文件夹(以及文件 - 如果更改了 `#C_Cpp.exclusionPolicy#`)配置 glob 模式。这些特定于 C/C++ 扩展,并且是 `#files.exclude#` 的补充,但与 `#files.exclude#` 不同,它们也适用于当前工作区文件夹之外的路径,并且不会从资源管理器视图中删除。详细了解 [glob 模式](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)。", @@ -427,8 +428,8 @@ "c_cpp.walkthrough.create.cpp.file.title": "创建 C++ 文件", "c_cpp.walkthrough.create.cpp.file.description": "[打开](command:toSide:workbench.action.files.openFile)或[创建](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)一个 C++ 文件。请确保将其保存为 \".cpp\" 扩展名,例如 \"helloworld.cpp\"。\n[创建 C++ 文件](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", "c_cpp.walkthrough.create.cpp.file.altText": "使用 C++ 项目打开 C++ 文件或文件夹。", - "c_cpp.walkthrough.command.prompt.title": "从开发人员命令提示启动", - "c_cpp.walkthrough.command.prompt.description": "使用 Microsoft Visual Studio C++ 编译器时,C++ 扩展需要从开发人员命令提示符中启动 VS Code。请按照右侧的说明重新启动。\n[重新加载窗口](command:workbench.action.reloadWindow)", + "c_cpp.walkthrough.command.prompt.title": "从 VS 的开发人员命令提示启动", + "c_cpp.walkthrough.command.prompt.description": "使用 Microsoft Visual Studio C++ 编译器时,C++ 扩展需要你从 VS 的开发人员命令提示符中启动 VS Code。请按照右侧的说明重新启动。\n[重新加载窗口](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "运行并调试 C++ 文件", "c_cpp.walkthrough.run.debug.mac.description": "打开你的 C++ 文件,在编辑器右上角点击播放按钮,或者在文件上按 F5。选择“clang++ - 构建和调试活动文件”以使用调试器运行。", "c_cpp.walkthrough.run.debug.linux.description": "打开 C++ 文件,在编辑器右上角点击播放按钮,或者在文件上按 F5。选择“g++ - 构建和调试活动文件”以使用调试器运行。", @@ -449,4 +450,4 @@ "c_cpp.configuration.refactoring.includeHeader.never.description": "从不包含头文件。", "c_cpp.languageModelTools.configuration.displayName": "C/C++ 配置", "c_cpp.languageModelTools.configuration.userDescription": "活动 C 或 C++ 文件的配置,例如语言标准版本和目标平台。" -} +} \ No newline at end of file diff --git a/Extension/i18n/chs/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/chs/src/Debugger/configurationProvider.i18n.json index 0d36c0baf..99d010d5f 100644 --- a/Extension/i18n/chs/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/chs/src/Debugger/configurationProvider.i18n.json @@ -17,7 +17,7 @@ "pre.Launch.Task": "preLaunchTask: {0}", "debugger.path.not.exists": "找不到 {0} 调试器。将忽略 {1} 的调试配置。", "build.and.debug.active.file": "构建和调试活动文件", - "cl.exe.not.available": "仅当从 VS 开发人员命令提示符处运行 VS Code 时,{0} 生成和调试才可用。", + "cl.exe.not.available": "{0} 仅在 VS Code 从 {1} 中运行时才可用。", "lldb.find.failed": "缺少 lldb-mi 可执行文件的依赖项“{0}”。", "lldb.search.paths": "搜索范围:", "lldb.install.help": "要解决此问题,请通过 Apple App Store 安装 XCode,或通过在终端窗口运行“{0}”来安装 XCode 命令行工具。", diff --git a/Extension/i18n/chs/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json b/Extension/i18n/chs/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json new file mode 100644 index 000000000..0ba598f8d --- /dev/null +++ b/Extension/i18n/chs/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "generate.copilot.description": "生成 Copilot 摘要", + "copilot.disclaimer": "AI 生成的内容可能不正确。" +} \ No newline at end of file diff --git a/Extension/i18n/chs/src/LanguageServer/codeAnalysis.i18n.json b/Extension/i18n/chs/src/LanguageServer/codeAnalysis.i18n.json index b9d1b538b..77d895b86 100644 --- a/Extension/i18n/chs/src/LanguageServer/codeAnalysis.i18n.json +++ b/Extension/i18n/chs/src/LanguageServer/codeAnalysis.i18n.json @@ -8,8 +8,8 @@ "clear.all.code.analysis.problems": "清除所有代码分析问题", "fix.all.type.problems": "修复所有 {0} 问题", "disable.all.type.problems": "禁用所有 {0} 问题", - "clear.all.type.problems": "清除所有{0}问题", + "clear.all.type.problems": "清除所有 {0} 问题", "clear.this.problem": "清除此 {0} 问题", "fix.this.problem": "修复此 {0} 问题", "show.documentation.for": "显示 {0} 文档" -} \ No newline at end of file +} diff --git a/Extension/i18n/chs/src/LanguageServer/configurations.i18n.json b/Extension/i18n/chs/src/LanguageServer/configurations.i18n.json index 8b1c3f803..e619310f5 100644 --- a/Extension/i18n/chs/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/chs/src/LanguageServer/configurations.i18n.json @@ -17,5 +17,6 @@ "path.is.not.a.directory": "路径不是目录: {0}", "duplicate.name": "{0} 重复。配置名称应是唯一的。", "multiple.paths.not.allowed": "不允许使用多个路径。", + "multiple.paths.should.be.separate.entries": "多个路径应是数组中的单独条目。", "paths.are.not.directories": "路径不是目录: {0}" } \ No newline at end of file diff --git a/Extension/i18n/chs/src/LanguageServer/extension.i18n.json b/Extension/i18n/chs/src/LanguageServer/extension.i18n.json index d79ff61c1..ff227bece 100644 --- a/Extension/i18n/chs/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/chs/src/LanguageServer/extension.i18n.json @@ -19,5 +19,9 @@ "code.action.aborted": "无法应用代码分析修复程序,因为文档已更改。", "prerelease.message": "C/C++ 扩展的预发行版本可用。是否要切换到它?", "yes.button": "是", - "no.button": "否" + "no.button": "否", + "copilot.hover.unavailable": "Copilot 摘要不可用。", + "copilot.hover.excluded": "包含此符号的定义或声明的文件已排除在 Copilot 的使用范围之外。", + "copilot.hover.unavailable.symbol": "Copilot 摘要不可用于此符号。", + "copilot.hover.error": "生成 Copilot 摘要时出错。" } \ No newline at end of file diff --git a/Extension/i18n/chs/src/SSH/sshCommandRunner.i18n.json b/Extension/i18n/chs/src/SSH/sshCommandRunner.i18n.json index af78ab067..5265b2d40 100644 --- a/Extension/i18n/chs/src/SSH/sshCommandRunner.i18n.json +++ b/Extension/i18n/chs/src/SSH/sshCommandRunner.i18n.json @@ -5,7 +5,7 @@ // Do not edit this file. It is machine generated. { "ssh.canceled": "已取消 SSH 命令", - "ssh.passphrase.input.box": "输入 ssh 密钥的密码{0}", + "ssh.passphrase.input.box": "输入 ssh 密钥的密码 {0}", "ssh.enter.password.for.user": "输入用户 \"{0}\" 的密码", "ssh.message.enter.password": "输入密码", "ssh.continue.confirmation.placeholder": "您确定要继续吗?", @@ -17,4 +17,4 @@ "ssh.continuing.command.canceled": "已取消任务 \"{0}\",但基础命令可能不会终止。请手动进行检查。", "ssh.process.failed": "\"{0}\" 进程失败: {1}", "ssh.wrote.data.to.terminal": "\"{0}\" 已将数据写入终端: \"{1}\"。" -} \ No newline at end of file +} diff --git a/Extension/i18n/chs/src/nativeStrings.i18n.json b/Extension/i18n/chs/src/nativeStrings.i18n.json index 0cbb7cf89..9788d40ca 100644 --- a/Extension/i18n/chs/src/nativeStrings.i18n.json +++ b/Extension/i18n/chs/src/nativeStrings.i18n.json @@ -159,8 +159,8 @@ "fallback_to_64_bit_mode2": "未能查询编译器。正在回退到 64 位 intelliSenseMode。", "fallback_to_no_bitness": "未能查询编译器。正在回退到无位数。", "intellisense_client_creation_aborted": "已中止创建 IntelliSense 客户端: {0}", - "include_errors_config_provider_intellisense_disabled ": "基于 configurationProvider 设置提供的信息检测到 #include 错误。此翻译单元({0})的 IntelliSense 功能将由标记分析器提供。", - "include_errors_config_provider_squiggles_disabled ": "基于 configurationProvider 设置提供的信息检测到 #include 错误。已针对此翻译单元({0})禁用波形曲线。", + "include_errors_config_provider_intellisense_disabled": "基于 configurationProvider 设置提供的信息检测到 #include 错误。此翻译单元({0})的 IntelliSense 功能将由标记分析器提供。", + "include_errors_config_provider_squiggles_disabled": "基于 configurationProvider 设置提供的信息检测到 #include 错误。已针对此翻译单元({0})禁用波形曲线。", "preprocessor_keyword": "预处理器关键字", "c_keyword": "C 关键字", "cpp_keyword": "C++ 关键字", @@ -316,5 +316,6 @@ "refactor_extract_xborder_jump": "所选代码和外层代码之间的存在跳跃。", "refactor_extract_missing_return": "在所选代码中,一些控制路径退出而没有设置返回值。这只受标量、数字、和指针返回类型支持。", "expand_selection": "展开选择(以启用“提取到函数”)", - "file_not_found_in_path2": "在 compile_commands.json 文件中找不到 \"{0}\"。此文件将改用文件夹“{1}”中的 c_cpp_properties.json 中包含的 \"includePath\"。" + "file_not_found_in_path2": "在 compile_commands.json 文件中找不到 \"{0}\"。此文件将改用文件夹“{1}”中的 c_cpp_properties.json 中包含的 \"includePath\"。", + "copilot_hover_link": "生成 Copilot 摘要" } \ No newline at end of file diff --git a/Extension/i18n/chs/ui/settings.html.i18n.json b/Extension/i18n/chs/ui/settings.html.i18n.json index 43036eea0..0c8a7c83b 100644 --- a/Extension/i18n/chs/ui/settings.html.i18n.json +++ b/Extension/i18n/chs/ui/settings.html.i18n.json @@ -55,7 +55,8 @@ "dot.config": "点配置", "dot.config.description": "Kconfig 系统创建的 .config 文件的路径。Kconfig 系统生成包含所有定义的文件以生成项目。使用 Kconfig 系统的项目示例包括 Linux 内核和 NuttX RTOS。", "compile.commands": "编译命令", - "compile.commands.description": "工作区的 {0} 文件的完整路径。将使用在此文件中所发现的包含路径和定义,而不是为 {1} 和 {2} 设置设定的值。如果编译命令数据库不包含与你在编辑器中打开的文件对应的翻译单元条目,则将显示一条警告消息,并且扩展将改用 {3} 和 {4} 设置。", + "compile.commands.description": "工作区的 {0} 文件的路径列表。将使用在这些文件中发现的包含路径和定义,而不是为 {1} 和 {2} 设置设定的值。如果编译命令数据库不包含与你在编辑器中打开的文件对应的翻译单元条目,则将显示一条警告消息,并且扩展将转而使用 {3} 和 {4} 设置。", + "one.compile.commands.path.per.line": "每行一个编译命令路径。", "merge.configurations": "合并配置", "merge.configurations.description": "如果为 {0} (或已选中),则将包含路径、定义和强制包含与来自配置提供程序包含路径、定义和强制包含合并。", "browse.path": "浏览: 路径", diff --git a/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json b/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json index 8ad0b82e2..0f6263c0f 100644 --- a/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json @@ -14,5 +14,5 @@ "walkthrough.linux.choose.build.active.file": "选择 {0}。", "walkthrough.linux.build.and.debug.active.file": "构建和调试活动文件", "walkthrough.linux.after.running": "首次运行和调试 C++ 文件后,你将注意到项目 {0} 的文件夹内有两个新文件: {1} 和 {2}。", - "walkthrough.linux.for.more.complex": "对于更复杂的生成和调试场景,可以在 {0} 和 {1} 中自定义生成任务和调试配置。例如,如果在从命令行生成时通常会将参数传递给编译器,则可以使用 {3} 属性以在 {2} 中指定这些参数。同样,可以定义要传递给程序的参数,以在 {4}中进行调试。" -} \ No newline at end of file + "walkthrough.linux.for.more.complex": "对于更复杂的生成和调试场景,可以在 {0} 和 {1} 中自定义生成任务和调试配置。例如,如果在从命令行生成时通常会将参数传递给编译器,则可以使用 {3} 属性以在 {2} 中指定这些参数。同样,可以定义要传递给程序的参数,以在 {4} 中进行调试。" +} diff --git a/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json b/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json index 81f2b5eb0..ae554b4a8 100644 --- a/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json @@ -14,5 +14,5 @@ "walkthrough.mac.choose.build.active.file": "选择 {0}。", "walkthrough.mac.build.and.debug.active.file": "构建和调试活动文件", "walkthrough.mac.after.running": "首次运行和调试 C++ 文件后,你将注意到项目 {0} 的文件夹内有两个新文件: {1} 和 {2}。", - "walkthrough.mac.for.more.complex": "对于更复杂的生成和调试场景,可以在 {0} 和 {1} 中自定义生成任务和调试配置。例如,如果在从命令行生成时通常会将参数传递给编译器,则可以使用 {3} 属性以在 {2} 中指定这些参数。同样,可以定义要传递给程序的参数,以在 {4}中进行调试。" -} \ No newline at end of file + "walkthrough.mac.for.more.complex": "对于更复杂的生成和调试场景,可以在 {0} 和 {1} 中自定义生成任务和调试配置。例如,如果在从命令行生成时通常会将参数传递给编译器,则可以使用 {3} 属性以在 {2} 中指定这些参数。同样,可以定义要传递给程序的参数,以在 {4} 中进行调试。" +} diff --git a/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json b/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json index d396b16e4..0eec67db4 100644 --- a/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json @@ -14,5 +14,5 @@ "walkthrough.windows.choose.build.active.file": "选择 {0}。", "walkthrough.windows.build.and.debug.active.file": "构建和调试活动文件", "walkthrough.windows.after.running": "首次运行和调试 C++ 文件后,你将注意到项目 {0} 的文件夹内有两个新文件: {1} 和 {2}。", - "walkthrough.windows.for.more.complex": "对于更复杂的生成和调试场景,可以在 {0} 和 {1} 中自定义生成任务和调试配置。例如,如果在从命令行生成时通常会将参数传递给编译器,则可以使用 {3} 属性以在 {2} 中指定这些参数。同样,可以定义要传递给程序的参数,以在 {4}中进行调试。" -} \ No newline at end of file + "walkthrough.windows.for.more.complex": "对于更复杂的生成和调试场景,可以在 {0} 和 {1} 中自定义生成任务和调试配置。例如,如果在从命令行生成时通常会将参数传递给编译器,则可以使用 {3} 属性以在 {2} 中指定这些参数。同样,可以定义要传递给程序的参数,以在 {4} 中进行调试。" +} diff --git a/Extension/i18n/chs/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json b/Extension/i18n/chs/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json index e2bccc71b..50da12c2c 100644 --- a/Extension/i18n/chs/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "walkthrough.windows.title.open.dev.command.prompt": "使用开发人员命令提示符重新启动", - "walkthrough.windows.background.dev.command.prompt": "正在使用带有 MSVC 编译器的 Windows 机器,因此需要从开发人员命令提示符中启动 VS Code,以便所有环境变量都能正确设置。要使用开发人员命令提示符重新启动:", - "walkthrough.open.command.prompt": "通过在 Windows 开始菜单中键入 \"developer\" 来打开 VS 的开发人员命令提示。选择 VS 的开发人员命令提示,它将自动导航到当前打开的文件夹。", - "walkthrough.windows.press.f5": "在命令提示符中键入 \"code\",然后按 Enter。这应该重新启动 VS Code 并将你带回此演练。" + "walkthrough.windows.title.open.dev.command.prompt": "使用 {0} 重新启动", + "walkthrough.windows.background.dev.command.prompt": " 你使用的是具有 MSVC 编译器的 Windows 计算机,因此需要从 {0} 启动 VS Code,以正确设置所有环境变量。要使用 {1} 重新启动,请:", + "walkthrough.open.command.prompt": "通过在 Windows“开始”菜单中键入“{1}”打开 {0}。选择 {2} 将自动导航到当前打开的文件夹。", + "walkthrough.windows.press.f5": "在命令提示符中键入“{0}”,然后按 Enter。此操作应会重新启动 VS Code 并将你带回此演练。" } \ No newline at end of file diff --git a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index d7cae3b5b..55cf76156 100644 --- a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -16,10 +16,8 @@ "walkthrough.windows.link.install": "安装", "walkthrough.windows.note1": "注意", "walkthrough.windows.note1.text": "可以使用 Visual Studio 生成工具中的 C++ 工具集以及 Visual Studio Code 以编译、生成并验证任何 C++ 代码库,前提是同时具有有效的 Visual Studio 许可证(社区版、专业版或企业版),且正积极将其用于开发该 C++ 代码库。", - "walkthrough.windows.open.command.prompt": "在 Windows“开始”菜单中键入‘开发人员’以打开 {0}。", - "walkthrough.windows.command.prompt.name1": "VS 的 Developer 命令提示", - "walkthrough.windows.check.install": "在 VS 的开发人员命令提示中键入 {0} 以检查 MSVC 安装。你应该会看到包含版本和基本使用说明的版权消息。", + "walkthrough.windows.open.command.prompt": "通过在 Windows “开始”菜单中键入“{1}”打开 {0}。", + "walkthrough.windows.check.install": "通过在 {1} 中键入 {0} 来检查 MSVC 安装。你应该会看到包含版本和基本使用说明的版权消息。", "walkthrough.windows.note2": "注意", - "walkthrough.windows.note2.text": "要从命令行或 VS Code 使用 MSVC,必须从 {0} 运行。普通 shell (例如 {1}、{2} 或 Windows 命令提示符)未设置必要的路径环境变量。", - "walkthrough.windows.command.prompt.name2": "VS 的开发人员命令提示" + "walkthrough.windows.note2.text": "要从命令行或 VS Code 使用 MSVC,必须从 {0} 运行。普通 shell (例如 {1}、{2} 或 Windows 命令提示符)未设置必要的路径环境变量。" } \ No newline at end of file diff --git a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index c7823f4c0..991894c4c 100644 --- a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -10,14 +10,12 @@ "walkthrough.windows.note1": "注意", "walkthrough.windows.note1.text": "可以使用 Visual Studio 生成工具中的 C++ 工具集以及 Visual Studio Code 以编译、生成并验证任何 C++ 代码库,前提是同时具有有效的 Visual Studio 许可证(社区版、专业版或企业版),且正积极将其用于开发该 C++ 代码库。", "walkthrough.windows.verify.compiler": "验证编译器安装", - "walkthrough.windows.open.command.prompt": "在 Windows“开始”菜单中键入‘开发人员’以打开 {0}。", - "walkthrough.windows.command.prompt.name1": "VS 的 Developer 命令提示", - "walkthrough.windows.check.install": "在 VS 的开发人员命令提示中键入 {0} 以检查 MSVC 安装。你应该会看到包含版本和基本使用说明的版权消息。", + "walkthrough.windows.open.command.prompt": "通过在 Windows “开始”菜单中键入“{1}”打开 {0}。", + "walkthrough.windows.check.install": "通过在 {1} 中键入 {0} 来检查 MSVC 安装。你应该会看到包含版本和基本使用说明的版权消息。", "walkthrough.windows.note2": "注意", "walkthrough.windows.note2.text": "要从命令行或 VS Code 使用 MSVC,必须从 {0} 运行。普通 shell (例如 {1}、{2} 或 Windows 命令提示符)未设置必要的路径环境变量。", - "walkthrough.windows.command.prompt.name2": "VS 的开发人员命令提示", "walkthrough.windows.other.compilers": "其他编译器选项", - "walkthrough.windows.text3": "如果面向的是 Windows 中的 Linux,请查看{0}。或者,可{1}。", + "walkthrough.windows.text3": "如果面向的是 Windows 中的 Linux,请查看 {0}。或者,可 {1}。", "walkthrough.windows.link.title1": "在 VS Code 中使用 C++ 和 适用于 Linux 的 Windows 子系统(WSL)", "walkthrough.windows.link.title2": "在带 MinGW 的 Windows 上安装 GCC" -} \ No newline at end of file +} diff --git a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index c7823f4c0..991894c4c 100644 --- a/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/chs/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -10,14 +10,12 @@ "walkthrough.windows.note1": "注意", "walkthrough.windows.note1.text": "可以使用 Visual Studio 生成工具中的 C++ 工具集以及 Visual Studio Code 以编译、生成并验证任何 C++ 代码库,前提是同时具有有效的 Visual Studio 许可证(社区版、专业版或企业版),且正积极将其用于开发该 C++ 代码库。", "walkthrough.windows.verify.compiler": "验证编译器安装", - "walkthrough.windows.open.command.prompt": "在 Windows“开始”菜单中键入‘开发人员’以打开 {0}。", - "walkthrough.windows.command.prompt.name1": "VS 的 Developer 命令提示", - "walkthrough.windows.check.install": "在 VS 的开发人员命令提示中键入 {0} 以检查 MSVC 安装。你应该会看到包含版本和基本使用说明的版权消息。", + "walkthrough.windows.open.command.prompt": "通过在 Windows “开始”菜单中键入“{1}”打开 {0}。", + "walkthrough.windows.check.install": "通过在 {1} 中键入 {0} 来检查 MSVC 安装。你应该会看到包含版本和基本使用说明的版权消息。", "walkthrough.windows.note2": "注意", "walkthrough.windows.note2.text": "要从命令行或 VS Code 使用 MSVC,必须从 {0} 运行。普通 shell (例如 {1}、{2} 或 Windows 命令提示符)未设置必要的路径环境变量。", - "walkthrough.windows.command.prompt.name2": "VS 的开发人员命令提示", "walkthrough.windows.other.compilers": "其他编译器选项", - "walkthrough.windows.text3": "如果面向的是 Windows 中的 Linux,请查看{0}。或者,可{1}。", + "walkthrough.windows.text3": "如果面向的是 Windows 中的 Linux,请查看 {0}。或者,可 {1}。", "walkthrough.windows.link.title1": "在 VS Code 中使用 C++ 和 适用于 Linux 的 Windows 子系统(WSL)", "walkthrough.windows.link.title2": "在带 MinGW 的 Windows 上安装 GCC" -} \ No newline at end of file +} diff --git a/Extension/i18n/cht/c_cpp_properties.schema.json.i18n.json b/Extension/i18n/cht/c_cpp_properties.schema.json.i18n.json index 02a9e7b4f..6490920b9 100644 --- a/Extension/i18n/cht/c_cpp_properties.schema.json.i18n.json +++ b/Extension/i18n/cht/c_cpp_properties.schema.json.i18n.json @@ -9,7 +9,7 @@ "c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "用來修改所用 include 或 define 的編譯器引數,例如 `-nostdinc++`、`-m32` 等。採用其他空格分隔引數的引數應在陣列中輸入為個別的引數,例如,針對 `--sysroot ` 使用 `\"--sysroot\", \"\"`。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cStandard": "用於 IntelliSense 的 C 語言標準版本。注意: GNU 標準僅會用於查詢設定編譯器以取得 GNU 定義,而 IntelliSense 將會模擬相同的 C 標準版本。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cppStandard": "用於 IntelliSense 的 C++ 語言標準版本。注意: GNU 標準僅會用於查詢設定編譯器以取得 GNU 定義,而 IntelliSense 將會模擬相同的 C++ 標準版本。", - "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "工作區 `compile_commands.json` 檔案的完整路徑。", + "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "工作區 `compile_commands.json` 檔案的完整路徑或完整路徑清單。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.includePath": "IntelliSense 引擎在搜尋包含的標頭時使用的路徑清單。在這些路徑上的搜尋不會遞迴。請指定 `**` 以表示遞迴搜尋。例如 `${workspaceFolder}/**` 會搜尋所有子目錄,而 `${workspaceFolder}` 不會。此路徑通常不應包含系統 include; 請改為設定 `C_Cpp.default.compilerPath`。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "供 IntelliSense 引擎在 Mac 架構中搜尋包含的標頭時使用的路徑清單。僅支援 Mac 設定。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.windowsSdkVersion": "要在 Windows 上使用的 Windows SDK 包含路徑版本,例如 `10.0.17134.0`。", diff --git a/Extension/i18n/cht/package.i18n.json b/Extension/i18n/cht/package.i18n.json index 32f54e389..970894baf 100644 --- a/Extension/i18n/cht/package.i18n.json +++ b/Extension/i18n/cht/package.i18n.json @@ -77,7 +77,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "顯示 '清除所有' (如果有多個問題類型)、'清除所有 ' (如果 有多個問題) 和 '清除此' 程式碼動作", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "如果為 `true`,格式就會在由「修正」程式碼動作變更的行上執行。", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "若為 `true`,會啟用使用 `clang-tidy` 的程式碼分析,並會在 `#C_Cpp.codeAnalysis.runAutomatically#` 為 `true` (預設) 時,在開啟或儲存檔案後執行。", - "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` 可執行檔的完整路徑。若未指定可執行檔,且可在環境路徑中使用 `clang-tidy`,則會加以使用。若在環境路徑中找不到可執行檔,則會使用與延伸模組搭配的 `clang-tidy`。", + "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` 可執行檔的完整路徑。如果未指定,且在環境路徑中有可用的 `clang-tidy`,則會使用該版本,除非延伸模組搭配的版本較新。若在環境路徑中找不到可執行檔,則會使用與延伸模組搭配的 `clang-tidy`。", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "以 YAML/JSON 格式指定 `clang-tidy` 組態: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{索引鍵: x, 值: y}]}`。當值為空白時,`clang-tidy` 將會嘗試為其父目錄中的每個來源檔案尋找名為 `.clang-tidy` 的檔案。", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "當 `#C_Cpp.codeAnalysis.clangTidy.config#` 未設定且找不到 `.clang-tidy` 檔案時,指定 YAML/JSON 格式的 `clang-tidy` 組態用作遞補: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{索引鍵: x, 值: y}]}`。", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "符合輸出診斷來源之標頭名稱的 POSIX 擴充規則運算式 (ERE)。來自每個編譯單位之主要檔案的診斷將一律顯示。支援 `${workspaceFolder}` 變數 (如果沒有 `.clang-tidy` 檔案,則作為預設後援值)。若此選項並非 `null` (空白),則會覆寫 `.clang-tidy` 檔案中的 `HeaderFilterRegex` 選項 (如果有的話)。", @@ -175,7 +175,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.oneLiners.markdownDescription": "在一行中所輸入的完整程式碼區塊都保留在同一行,而不考慮任何 `C_Cpp.vcFormat.newLine.*` 設定。", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription": "在一行中所輸入由左大括號和右大括號括住的任何程式碼,都保留在同一行,而不考慮任何 `C_Cpp.vcFormat.newLine.*` 設定。", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "程式碼區塊一律根據 `C_Cpp.vcFormat.newLine.*` 設定的值來格式化。", - "c_cpp.configuration.clang_format_path.markdownDescription": "此為 `clang-format` 可執行檔的完整路徑。如果未指定,且在環境路徑中可用 `clang-format`,即會使用該格式。如果在環境路徑中找不到,則會使用延伸模組所配備的 `clang-format`。", + "c_cpp.configuration.clang_format_path.markdownDescription": "可執行檔 `clang-format` 的完整路徑。如果未指定,且在環境路徑中有可用的 `clang-format`,則會使用該版本 (除非延伸模組所搭配的版本較新)。如果在環境路徑中找不到,則會使用延伸模組所搭配的 `clang-format`。", "c_cpp.configuration.clang_format_style.markdownDescription": "編碼樣式,目前支援: `Visual Studio`、`LLVM`、`Google`、`Chromium`、`Mozilla`、`WebKit`、`Microsoft`、`GNU`。使用 `file` 可從目前目錄或父目錄的 `.clang-format` 檔案載入樣式,或使用 `file:<路徑>/.clang-format` 參照特定路徑。使用 `{索引鍵: 值, ...}` 可設定特定參數。例如,`Visual Studio` 樣式類似於: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`。", "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "當已使用樣式 `file` 叫用 `clang-format`,但找不到 `.clang-format` 檔案時,用作後援的預先定義樣式名稱。可能的值包括 `Visual Studio`、`LLVM`、`Google`、`Chromium`、`Mozilla`、`WebKit`、`Microsoft`、`GNU`、`none` 或使用 `{索引鍵: 值, ...}` 來設定特定參數。例如,`Visual Studio` 樣式類似於: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`。", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "若設定,會覆寫 `SortIncludes` 參數所決定的包含排序行為。", @@ -205,7 +205,7 @@ "c_cpp.configuration.exclusionPolicy.markdownDescription": "在流覽 `browse.path` 陣列中的路徑並決定哪些檔案應新增至程式碼瀏覽資料庫時,指示延伸模組何時使用 `#files.exclude#` (和 `#C_Cpp.files.exclude#`) 設定。如果您的 `#files.exclude#` 設定只包含資料夾,則 `checkFolders` 是最佳選擇,而且會加快延伸模組初始化程式碼瀏覽資料庫的速度。", "c_cpp.configuration.exclusionPolicy.checkFolders.description": "排除篩選每個資料夾只會評估一次 (不會檢查個別檔案)。", "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "將會針對每個遇到的檔案和資料夾評估排除篩選。", - "c_cpp.configuration.preferredPathSeparator.markdownDescription": "用作 `#include` 自動完成結果路徑分隔符號的字元。", + "c_cpp.configuration.preferredPathSeparator.markdownDescription": "作為所產生使用者路徑之路徑分隔符的字元。", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "若為 `true`,暫留與自動完成的工具提示只會顯示特定結構化註解標籤,否則將會顯示所有註解。", "c_cpp.configuration.doxygen.generateOnType.description": "控制是否在輸入選擇的註解樣式後自動插入 Doxygen 註解。", "c_cpp.configuration.doxygen.generatedStyle.description": "作為 Doxygen 註解起始行的字元字串。", @@ -253,6 +253,7 @@ "c_cpp.configuration.hover.description": "如果停用,語言伺服器將不再提供暫留詳細資料。", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "啟用 [vcpkg 相依性管理員](https://aka.ms/vcpkg/) 的整合服務。", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "當 `nan` 和 `node-addon-api` 為相依性時,從中新增 include 路徑。", + "c_cpp.configuration.copilotHover.markdownDescription": "如果`disabled`,則暫留中將不會顯示 Copilot 資訊。", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "若為 `true`,則「重新命名符號」需要有效的 C/C++ 識別碼。", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "若為 `true`,自動完成將會在函式呼叫之後自動新增 `(`,在這種情況下也可能會新增 `)`,取決於 `editor.autoClosingBrackets` 設定的值。", "c_cpp.configuration.filesExclude.markdownDescription": "設定 Glob 模式以排除資料夾 (若變更 `#C_Cpp.exclusionPolicy#`,則也會排除檔案)。這些模式為 C/C++ 延伸模組所特有,且是對 `#files.exclude#` 的外加,但與 `#files.exclude#` 不同的是,它們也適用於目前工作區資料夾以外的路徑,並且不會將其從總管檢視中移除。深入了解 [Glob 模式](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)。", @@ -427,8 +428,8 @@ "c_cpp.walkthrough.create.cpp.file.title": "建立 C++ 檔案", "c_cpp.walkthrough.create.cpp.file.description": "[開啟](command:toSide:workbench.action.files.openFile) 或 [建立](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) C++ 檔案。務必使用 \".cpp\" 副檔名來儲存它,例如 \"helloworld.cpp\"。\n[建立 C++ 檔案](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", "c_cpp.walkthrough.create.cpp.file.altText": "使用 C++ 專案開啟 C++ 檔案或資料夾。", - "c_cpp.walkthrough.command.prompt.title": "從開發人員命令提示字元啟動", - "c_cpp.walkthrough.command.prompt.description": "使用 Microsoft Visual Studio C++ 編譯器時,C++ 延伸模組會要求您從開發人員命令提示字元啟動 VS Code。請遵循右側的指示來重新啟動。\n[重新載入視窗](command:workbench.action.reloadWindow)", + "c_cpp.walkthrough.command.prompt.title": "從 VS 的開發人員命令提示字元啟動", + "c_cpp.walkthrough.command.prompt.description": "使用 Microsoft Visual Studio C++ 編譯器時,C++ 延伸模組會要求您從 VS 的開發人員命令提示字元啟動 VS Code。請遵循右側的指示來重新啟動。\n[重新載入視窗](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "執行和偵錯您的 C++ 檔案", "c_cpp.walkthrough.run.debug.mac.description": "開啟您的 C++ 檔案,然後按一下編輯器右上角的執行按鈕,或在開啟檔案上時按 F5。選取 [clang++ - 建置及偵錯使用中的檔案] 以使用偵錯工具執行。", "c_cpp.walkthrough.run.debug.linux.description": "開啟您的 C++ 檔案,然後按一下編輯器右上角的執行按鈕,或在開啟檔案上時按 F5。選取 [g++ - 建置及偵錯使用中的檔案] 以使用偵錯工具執行。", diff --git a/Extension/i18n/cht/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/cht/src/Debugger/configurationProvider.i18n.json index 68d097829..680195241 100644 --- a/Extension/i18n/cht/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/cht/src/Debugger/configurationProvider.i18n.json @@ -17,7 +17,7 @@ "pre.Launch.Task": "preLaunchTask: {0}", "debugger.path.not.exists": "找不到 {0} 偵錯工具。已略過 {1} 的偵錯組態。", "build.and.debug.active.file": "建置及偵錯使用中的檔案", - "cl.exe.not.available": "只有從 VS 的開發人員命令提示字元執行 VS Code 時,才可使用 {0} 組建和偵錯。", + "cl.exe.not.available": "{0} 僅限於從 {1} 執行 VS Code 時使用。", "lldb.find.failed": "缺少 lldb-mi 可執行檔的相依性 '{0}'。", "lldb.search.paths": "已在下列位置中搜尋:", "lldb.install.help": "若要解決此問題,請透過 Apple App Store 安裝 XCode,或在終端機視窗中執行 '{0}' 以安裝 XCode 命令列工具。", diff --git a/Extension/i18n/cht/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json b/Extension/i18n/cht/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json new file mode 100644 index 000000000..7a44aea55 --- /dev/null +++ b/Extension/i18n/cht/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "generate.copilot.description": "產生 Copilot 摘要", + "copilot.disclaimer": "AI 產生的內容可能不正確。" +} \ No newline at end of file diff --git a/Extension/i18n/cht/src/LanguageServer/configurations.i18n.json b/Extension/i18n/cht/src/LanguageServer/configurations.i18n.json index 69ae82a11..f34fb3277 100644 --- a/Extension/i18n/cht/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/cht/src/LanguageServer/configurations.i18n.json @@ -17,5 +17,6 @@ "path.is.not.a.directory": "路徑不是目錄: {0}", "duplicate.name": "{0} 重複。組態名稱應該是唯一的。", "multiple.paths.not.allowed": "不允許使用多個路徑。", + "multiple.paths.should.be.separate.entries": "數位列中的多個路徑應為個別專案。", "paths.are.not.directories": "路徑不是目錄: {0}" } \ No newline at end of file diff --git a/Extension/i18n/cht/src/LanguageServer/extension.i18n.json b/Extension/i18n/cht/src/LanguageServer/extension.i18n.json index 57de2833f..9bc0c4495 100644 --- a/Extension/i18n/cht/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/cht/src/LanguageServer/extension.i18n.json @@ -19,5 +19,9 @@ "code.action.aborted": "無法套用程式碼分析修正,因為文件已變更。", "prerelease.message": "已可使用 C/C++ 延伸模組的發行前版本。您要切換到此版本嗎?", "yes.button": "是", - "no.button": "否" + "no.button": "否", + "copilot.hover.unavailable": "Copilot 摘要無法使用。", + "copilot.hover.excluded": "包含此符號定義或宣告的檔案已排除,無法搭配 Copilot 使用。", + "copilot.hover.unavailable.symbol": "此符號無法使用 Copilot 摘要。", + "copilot.hover.error": "產生 Copilot 摘要時發生錯誤。" } \ No newline at end of file diff --git a/Extension/i18n/cht/src/nativeStrings.i18n.json b/Extension/i18n/cht/src/nativeStrings.i18n.json index 80b389294..56a529c92 100644 --- a/Extension/i18n/cht/src/nativeStrings.i18n.json +++ b/Extension/i18n/cht/src/nativeStrings.i18n.json @@ -159,8 +159,8 @@ "fallback_to_64_bit_mode2": "無法查詢編譯器。請回復成 64 位元 intelliSenseMode。", "fallback_to_no_bitness": "無法查詢編譯器。請回復成沒有位元。", "intellisense_client_creation_aborted": "已中止建立 IntelliSense 用戶端: {0}", - "include_errors_config_provider_intellisense_disabled ": "根據 configurationProvider 設定提供的資訊,偵測到 #include 錯誤。此編譯單位 ({0}) 的 IntelliSense 功能將由標籤剖析器提供。", - "include_errors_config_provider_squiggles_disabled ": "根據 configurationProvider 設定提供的資訊,偵測到 #include 錯誤。已停用此編譯單位 ({0}) 的波浪線。", + "include_errors_config_provider_intellisense_disabled": "根據 configurationProvider 設定提供的資訊,偵測到 #include 錯誤。此編譯單位 ({0}) 的 IntelliSense 功能將由標籤剖析器提供。", + "include_errors_config_provider_squiggles_disabled": "根據 configurationProvider 設定提供的資訊,偵測到 #include 錯誤。已停用此編譯單位 ({0}) 的波浪線。", "preprocessor_keyword": "前置處理器關鍵字", "c_keyword": "C 關鍵字", "cpp_keyword": "C++ 關鍵字", @@ -316,5 +316,6 @@ "refactor_extract_xborder_jump": "所選程式碼與周圍的程式碼之間存在跳躍。", "refactor_extract_missing_return": "在選取的程式碼中,有一些控制項路徑未設定傳回值便結束。只有純量、數值與指標傳回類型支援此作法。", "expand_selection": "展開選取範圍 (以啟用 [擷取至函式])", - "file_not_found_in_path2": "在 compile_commands.json 檔案中找不到 \"{0}\"。將對此檔案改用資料夾 '{1}' 中 c_cpp_properties.json 的 'includePath'。" + "file_not_found_in_path2": "在 compile_commands.json 檔案中找不到 \"{0}\"。將對此檔案改用資料夾 '{1}' 中 c_cpp_properties.json 的 'includePath'。", + "copilot_hover_link": "產生 Copilot 摘要" } \ No newline at end of file diff --git a/Extension/i18n/cht/ui/settings.html.i18n.json b/Extension/i18n/cht/ui/settings.html.i18n.json index 5cea0f81d..d99561bfb 100644 --- a/Extension/i18n/cht/ui/settings.html.i18n.json +++ b/Extension/i18n/cht/ui/settings.html.i18n.json @@ -55,7 +55,8 @@ "dot.config": "點設定", "dot.config.description": "Kconfig 系統所建立之 .config 檔案的路徑。Kconfig 系統會產生具有建置專案之所有定義的檔案。使用 Kconfig 系統的專案範例為 Linux 核心與 NuttX RTOS。", "compile.commands": "編譯命令", - "compile.commands.description": "工作區 {0} 檔案的完整路徑。系統會使用在這個檔案中找到的 include 路徑和 define,而不是為 {1} 與 {2} 設定所指定的值。如果在編譯命令資料庫中,對應到您在編輯器中開啟之檔案的編譯單位,沒有任何項目,就會出現警告訊息,而延伸模組會改為使用 {3} 和 {4} 設定。", + "compile.commands.description": "工作區的 {0} 檔案的路徑清單。系統會使用在這些檔案中探索到的包含路徑和定義,而不是為 {1} 與 {2} 設定所設定的值。如果編譯命令資料庫不包含與您在編輯器中開啟之檔案相的對應翻譯單位項目,就會出現警告訊息,而延伸模組會改為使用 {3} 和 {4} 設定。", + "one.compile.commands.path.per.line": "每行一個編譯命令路徑。", "merge.configurations": "合併設定", "merge.configurations.description": "當為 {0} (或核取) 時,合併包含路徑、定義和強制包含來自設定提供者的路徑。", "browse.path": "瀏覽: 路徑", diff --git a/Extension/i18n/cht/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json b/Extension/i18n/cht/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json index 65e7c2798..b23a8e0f0 100644 --- a/Extension/i18n/cht/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json +++ b/Extension/i18n/cht/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "walkthrough.windows.title.open.dev.command.prompt": "使用開發人員命令提示字元重新啟動", - "walkthrough.windows.background.dev.command.prompt": "您正使用 Windows 電腦搭配 MSVC 編譯器,因此您必須從開發人員命令提示字元啟動 VS Code,以便正確設定所有環境變數。若要使用開發人員命令提示字元重新啟動:", - "walkthrough.open.command.prompt": "在 Windows 開始功能表中輸入「開發人員」,開啟 [VS 的開發人員命令提示字元]。選取 [VS 的開發人員命令提示字元],這會自動瀏覽至您目前開啟的資料夾。", - "walkthrough.windows.press.f5": "在命令提示字元中輸入 \"code\",然後按 Enter。這應該會重新啟動 VS Code,並帶您回到此逐步解說。" + "walkthrough.windows.title.open.dev.command.prompt": "使用 {0} 重新啟動", + "walkthrough.windows.background.dev.command.prompt": " 您正使用 Windows 電腦搭配 MSVC 編譯器,因此您必須從 {0} 啟動 VS Code,以便正確設定所有環境變數。若要使用 {1} 以下重新啟動:", + "walkthrough.open.command.prompt": "在 Windows [開始] 功能表中輸入 \"{1}\",以開啟 {0}。選取 {2},這會自動瀏覽至您目前開啟的資料夾。", + "walkthrough.windows.press.f5": "在命令提示字元中輸入 \"{0}\",然後按 Enter。這應該會重新啟動 VS Code,並帶您回到此逐步解說。" } \ No newline at end of file diff --git a/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index 851509f3a..b387fe163 100644 --- a/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -8,7 +8,7 @@ "walkthrough.windows.text1": "如果您正在執行 Windows 的 C++ 開發,建議您安裝 Microsoft Visual C++ (MSVC) 編譯器工具組。如果您是以 Windows 的 Linux 為目標,請查看 {0}。或者,您也可以 {1}。", "walkthrough.windows.link.title1": "在 VS Code 中使用 C++ 與 Windows 子系統 Linux 版 (WSL) ", "walkthrough.windows.link.title2": "使用 MinGW 在 Windows 安裝 GCC", - "walkthrough.windows.text2": "若要安裝 MSVC,請 {0}從 Visual Studio{1} 頁面下載。", + "walkthrough.windows.text2": "若要安裝 MSVC,請 {0} 從 Visual Studio {1} 頁面下載。", "walkthrough.windows.build.tools1": "Build Tools for Visual Studio 2022", "walkthrough.windows.link.downloads": "下載", "walkthrough.windows.text3": "在 Visual Studio 安裝程式中,檢查 {0} 工作負載,然後選取 {1}。", @@ -16,10 +16,8 @@ "walkthrough.windows.link.install": "安裝", "walkthrough.windows.note1": "備註", "walkthrough.windows.note1.text": "您可以使用 Visual Studio Build Tools 中的 C++ 工具組以及 Visual Studio Code 來編譯、組建及驗證任何 C++ 程式碼基底,只要您也擁有有效的 Visual Studio 授權 (社群版、專業版或企業版),且您正積極開發該 C++ 程式碼基底。", - "walkthrough.windows.open.command.prompt": "在 Windows 開始頁面功能表中鍵入「開發人員」,以開啟 {0}。", - "walkthrough.windows.command.prompt.name1": "VS 的開發人員命令提示字元", - "walkthrough.windows.check.install": "在 VS 的開發人員命令提示字元中輸入 {0},即可檢查 MSVC 安裝。畫面會顯示版本的著作權訊息以及基本的使用說明。", + "walkthrough.windows.open.command.prompt": "在 Windows [開始] 功能表中輸入 '{1}',以開啟 {0}。", + "walkthrough.windows.check.install": "將 {0} 輸入 {1},以檢查您的 Microsoft Visual C++ 安裝。畫面會顯示版本的著作權訊息以及基本的使用說明。", "walkthrough.windows.note2": "備註", - "walkthrough.windows.note2.text": "若要從命令列或 VS Code 使用 MSVC,您必須從 {0} 執行。一般殼層,例如 {1}、{2} 或 Windows 命令提示字元,沒有設定必要的路徑環境變數集。", - "walkthrough.windows.command.prompt.name2": "VS 的開發人員命令提示" -} \ No newline at end of file + "walkthrough.windows.note2.text": "若要從命令列或 VS Code 使用 MSVC,您必須從 {0} 執行。一般殼層,例如 {1}、{2} 或 Windows 命令提示字元,沒有設定必要的路徑環境變數集。" +} diff --git a/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index 17bc7b24d..6465ba0ee 100644 --- a/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "備註", "walkthrough.windows.note1.text": "您可以使用 Visual Studio Build Tools 中的 C++ 工具組以及 Visual Studio Code 來編譯、組建及驗證任何 C++ 程式碼基底,只要您也擁有有效的 Visual Studio 授權 (社群版、專業版或企業版),且您正積極開發該 C++ 程式碼基底。", "walkthrough.windows.verify.compiler": "驗證編譯器安裝", - "walkthrough.windows.open.command.prompt": "在 Windows 開始頁面功能表中鍵入「開發人員」,以開啟 {0}。", - "walkthrough.windows.command.prompt.name1": "VS 的開發人員命令提示字元", - "walkthrough.windows.check.install": "在 VS 的開發人員命令提示字元中輸入 {0},即可檢查 MSVC 安裝。畫面會顯示版本的著作權訊息以及基本的使用說明。", + "walkthrough.windows.open.command.prompt": "在 Windows [開始] 功能表中輸入 '{1}',以開啟 {0}。", + "walkthrough.windows.check.install": "將 {0} 輸入 {1},以檢查您的 Microsoft Visual C++ 安裝。畫面會顯示版本的著作權訊息以及基本的使用說明。", "walkthrough.windows.note2": "備註", "walkthrough.windows.note2.text": "若要從命令列或 VS Code 使用 MSVC,您必須從 {0} 執行。一般殼層,例如 {1}、{2} 或 Windows 命令提示字元,沒有設定必要的路徑環境變數集。", - "walkthrough.windows.command.prompt.name2": "VS 的開發人員命令提示", "walkthrough.windows.other.compilers": "其他編譯器選項", "walkthrough.windows.text3": "如果您是以 Windows 的 Linux 為目標,請查看 {0}。或者,您也可以 {1}。", "walkthrough.windows.link.title1": "在 VS Code 中使用 C++ 與 Windows 子系統 Linux 版 (WSL) ", diff --git a/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index 17bc7b24d..6465ba0ee 100644 --- a/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/cht/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "備註", "walkthrough.windows.note1.text": "您可以使用 Visual Studio Build Tools 中的 C++ 工具組以及 Visual Studio Code 來編譯、組建及驗證任何 C++ 程式碼基底,只要您也擁有有效的 Visual Studio 授權 (社群版、專業版或企業版),且您正積極開發該 C++ 程式碼基底。", "walkthrough.windows.verify.compiler": "驗證編譯器安裝", - "walkthrough.windows.open.command.prompt": "在 Windows 開始頁面功能表中鍵入「開發人員」,以開啟 {0}。", - "walkthrough.windows.command.prompt.name1": "VS 的開發人員命令提示字元", - "walkthrough.windows.check.install": "在 VS 的開發人員命令提示字元中輸入 {0},即可檢查 MSVC 安裝。畫面會顯示版本的著作權訊息以及基本的使用說明。", + "walkthrough.windows.open.command.prompt": "在 Windows [開始] 功能表中輸入 '{1}',以開啟 {0}。", + "walkthrough.windows.check.install": "將 {0} 輸入 {1},以檢查您的 Microsoft Visual C++ 安裝。畫面會顯示版本的著作權訊息以及基本的使用說明。", "walkthrough.windows.note2": "備註", "walkthrough.windows.note2.text": "若要從命令列或 VS Code 使用 MSVC,您必須從 {0} 執行。一般殼層,例如 {1}、{2} 或 Windows 命令提示字元,沒有設定必要的路徑環境變數集。", - "walkthrough.windows.command.prompt.name2": "VS 的開發人員命令提示", "walkthrough.windows.other.compilers": "其他編譯器選項", "walkthrough.windows.text3": "如果您是以 Windows 的 Linux 為目標,請查看 {0}。或者,您也可以 {1}。", "walkthrough.windows.link.title1": "在 VS Code 中使用 C++ 與 Windows 子系統 Linux 版 (WSL) ", diff --git a/Extension/i18n/csy/c_cpp_properties.schema.json.i18n.json b/Extension/i18n/csy/c_cpp_properties.schema.json.i18n.json index 0ef15f8f1..c541a29b8 100644 --- a/Extension/i18n/csy/c_cpp_properties.schema.json.i18n.json +++ b/Extension/i18n/csy/c_cpp_properties.schema.json.i18n.json @@ -9,7 +9,7 @@ "c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "Argumenty kompilátoru pro úpravu použitých zahrnutí nebo definic, například `-nostdinc++`, `-m32` atd. Argumenty, které přijímají další argumenty oddělené mezerou, by se měly zadat jako samostatné argumenty v poli, například pro `--sysroot ` použijte `\"--sysroot\", \"\"`.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cStandard": "Verze standardu jazyka C, která se použije pro IntelliSense. Poznámka: Standardy GNU se používají jen k odeslání dotazu nastavenému kompilátoru, aby se získaly definice GNU. IntelliSense bude emulovat ekvivalentní verzi standardu C.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cppStandard": "Verze standardu jazyka C++, která se použije pro IntelliSense. Poznámka: Standardy GNU se používají jen k odeslání dotazu nastavenému kompilátoru, aby se získaly definice GNU. IntelliSense bude emulovat ekvivalentní verzi standardu C++.", - "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Úplná cesta k souboru `compile_commands.json` pro pracovní prostor.", + "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Úplná cesta nebo seznam úplných cest k souborům `compile_commands.json` pracovního prostoru", "c_cpp_properties.schema.json.definitions.configurations.items.properties.includePath": "Seznam cest, které modul IntelliSense použije při hledání zahrnutých hlaviček. Hledání v těchto cestách není rekurzivní. Pokud chcete zapnout rekurzivní hledání, zadejte `**`. Například při zadání `${workspaceFolder}/**` se bude hledat ve všech podadresářích, zatímco při zadání `${workspaceFolder}` nebude. Obvykle by se neměly zahrnovat systémové vložené soubory. Místo toho nastavte `C_Cpp.default.compilerPath`.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "Seznam cest pro modul IntelliSense, který se použije při hledání zahrnutých hlaviček z architektur Mac. Podporuje se jen pro konfiguraci pro Mac.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.windowsSdkVersion": "Verze cesty pro vložené soubory sady Windows SDK, která se má použít ve Windows, např. `10.0.17134.0`.", diff --git a/Extension/i18n/csy/package.i18n.json b/Extension/i18n/csy/package.i18n.json index 5c4fc0d0e..41d26e7e4 100644 --- a/Extension/i18n/csy/package.i18n.json +++ b/Extension/i18n/csy/package.i18n.json @@ -77,7 +77,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Zobrazení možnosti Vymazat vše (pokud existuje více typů problémů), Vymazat všechny (pokud existuje více problémů pro ) a Vymazat tento kód", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "Pokud je hodnota `true`, formátování se spustí na řádcích změněných akcemi kódu 'Opravit'.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "Pokud je hodnota `true`, analýza kódu s `clang-tidy` se povolí a spustí po otevření nebo uložení souboru, pokud je `#C_Cpp.codeAnalysis.runAutomatically#` nastaveno na `true` (výchozí).", - "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Úplná cesta ke spustitelnému souboru `clang-tidy`. Pokud se nespecifikuje a `clang-tidy` je k dispozici na cestě prostředí, použije se. Pokud se na cestě prostředí nenajde, použije se kopie `clang-tidy`, která se dodává spolu s rozšířením.", + "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Úplná cesta ke spustitelnému souboru `clang-tidy`. Pokud se nezadá a v cestě prostředí je k dispozici `clang-tidy`, použije se, pokud verze, která je součástí rozšíření, není novější. Pokud se v cestě prostředí nenajde, použije se `clang-tidy`, který je součástí rozšíření.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Určuje konfiguraci `clang-tidy` ve formátu YAML/JSON: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{key: x, value: y}]}`. Když je hodnota prázdná, `clang-tidy` se pokusí najít soubor s názvem `.clang-tidy` pro každý zdrojový soubor v jeho nadřazených adresářích.", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "Určuje konfiguraci `clang-tidy` ve formátu YAML/JSON, která se použije jako náhradní, když není nastavená konfigurace `#C_Cpp.codeAnalysis.clangTidy.config#` a nenašel se žádný soubor `.clang-tidy`: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{key: x, value: y}]}`.", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "Rozšířený regulární výraz POSIX (ERE) odpovídající názvům záhlaví pro výstup diagnostiky. Diagnostika z hlavního souboru každé jednotky překladu se vždy zobrazí. Proměnná `${workspaceFolder}` se podporuje (a používá se jako výchozí základní hodnota, pokud neexistuje žádný soubor `.clang-tidy`). Pokud tato možnost není `null` (prázdná), přepíše možnost `HeaderFilterRegex` v souboru `.clang-tidy`, pokud existuje.", @@ -175,7 +175,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.oneLiners.markdownDescription": "Celý blok kódu, který se zadá na jednom řádku, zůstane na jednom řádku bez ohledu na hodnoty kteréhokoli nastavení `C_Cpp.vcFormat.newLine.*`.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription": "Jakýkoli kód, ve kterém se na jednom řádku zadají levá a pravá složená závorka, zůstane na jednom řádku bez ohledu na hodnoty kteréhokoli nastavení `C_Cpp.vcFormat.newLine.*`.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "Bloky kódu se budou vždy formátovat podle hodnot nastavení `C_Cpp.vcFormat.newLine.*`.", - "c_cpp.configuration.clang_format_path.markdownDescription": "Úplná cesta ke spustitelnému souboru `clang-format`. Pokud se nespecifikuje a `clang-format` je k dispozici na cestě prostředí, použije se. Pokud se na cestě prostředí nenajde, použije se kopie `clang-format`, která se dodává spolu s rozšířením.", + "c_cpp.configuration.clang_format_path.markdownDescription": "Úplná cesta ke spustitelnému souboru `clang-format`. Pokud se nezadá a v cestě prostředí je k dispozici `clang-format`, použije se, pokud verze, která je součástí rozšíření, není novější. Pokud se v cestě prostředí nenajde, použije se `clang-format`, který je součástí rozšíření.", "c_cpp.configuration.clang_format_style.markdownDescription": "Styl kódování, v současné době se podporuje: `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`. Pokud chcete načíst styl ze souboru `.clang-format` v aktuálním nebo nadřazeném adresáři, použijte možnost `file` nebo použijte `file:/.clang-format` k odkázání na konkrétní cestu. Pokud chcete zadat konkrétní parametry, použijte `{klíč: hodnota, ...}`. Například styl `Visual Studio` je podobný tomuto: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "Název předdefinovaného stylu, který se použije jako záloha v případě, že se vyvolá `clang-format` se stylem `file`, ale nenajde se soubor `.clang-format`. Možné hodnoty jsou `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`, `none`, případně můžete použít `{klíč: hodnota, ...}` a nastavit konkrétní parametry. Například styl `Visual Studio` je podobný tomuto: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "Pokud se nastaví, přepíše chování řazení vložených souborů určené parametrem `SortIncludes`.", @@ -205,7 +205,7 @@ "c_cpp.configuration.exclusionPolicy.markdownDescription": "Dává rozšíření pokyn, kdy se při určování, které soubory se mají přidat do databáze navigace v kódu při průchodu cestami v poli `browse.path`, má používat nastavení `#files.exclude#` (a `#C_Cpp.files.exclude#`). Pokud vaše nastavení `#files.exclude#` obsahuje jen složky, `checkFolders` je nejlepší volbou, která zvýší rychlost, jakou rozšíření může inicializovat databázi navigace v kódu.", "c_cpp.configuration.exclusionPolicy.checkFolders.description": "Filtry vyloučení se vyhodnotí pro každou složku jen jednou (jednotlivé soubory se nekontrolují).", "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Filtry vyloučení se vyhodnotí pro každý soubor a složku, které se vyskytnou.", - "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Znak, který se použije jako oddělovač cest pro výsledky automatického dokončení direktiv `#include`", + "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Znak použitý jako oddělovač cesty pro generované uživatelské cesty", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "Když se tato možnost nastaví na `true`, popisky ovládacích prvků po najetí myší a automatické dokončování budou zobrazovat jen určité popisky strukturovaných komentářů. Jinak se budou zobrazovat všechny komentáře.", "c_cpp.configuration.doxygen.generateOnType.description": "Určuje, jestli se má po zadání zvoleného stylu komentáře automaticky vložit komentář Doxygen.", "c_cpp.configuration.doxygen.generatedStyle.description": "Řetězec znaků použitý jako počáteční řádek komentáře Doxygen.", @@ -253,6 +253,7 @@ "c_cpp.configuration.hover.description": "Pokud je tato možnost zakázaná, podrobnosti o najetí myší už nebude poskytovat jazykový server.", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "Povolte integrační služby pro [správce závislostí vcpkg](https://aka.ms/vcpkg/).", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Pokud existují závislosti, přidejte cesty pro zahrnuté soubory z `nan` a `node-addon-api`.", + "c_cpp.configuration.copilotHover.markdownDescription": "Pokud je tato možnost `disabled`, v hoveru se nezobrazí žádné informace Copilot.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Když se tato hodnota nastaví na `true`, operace Přejmenovat symbol bude vyžadovat platný identifikátor C/C++.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Pokud je hodnota `true`, automatické dokončování automaticky přidá za volání funkcí znak `(`. V takovém případě se může přidat i znak `)`, což záleží na hodnotě nastavení `#editor.autoClosingBrackets#`.", "c_cpp.configuration.filesExclude.markdownDescription": "Nakonfigurujte vzory glob pro vyloučení složek (a souborů, pokud se změní `#C_Cpp.exclusionPolicy#`). Ty jsou specifické pro rozšíření C/C++ a doplňují `#files.exclude#`, ale na rozdíl od `#files.exclude#` platí také pro cesty mimo aktuální složku pracovního prostoru a neodebírají se ze zobrazení Průzkumníka. Přečtěte si další informace o [vzorech glob](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", @@ -427,8 +428,8 @@ "c_cpp.walkthrough.create.cpp.file.title": "Vytvoření souboru C++", "c_cpp.walkthrough.create.cpp.file.description": "[Otevřete](command:toSide:workbench.action.files.openFile) nebo [vytvořte](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) soubor C++. Nezapomeňte ho uložit s příponou .cpp, například „helloworld.cpp“. \n[Vytvořte soubor C++](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", "c_cpp.walkthrough.create.cpp.file.altText": "Otevřete soubor C++ nebo složku s projektem C++.", - "c_cpp.walkthrough.command.prompt.title": "Spustit z příkazového řádku vývojáře", - "c_cpp.walkthrough.command.prompt.description": "Při použití kompilátoru Microsoft Visual Studio C++ vyžaduje rozšíření C++ spuštění VS Code z příkazového řádku vývojáře. Postupujte podle pokynů na pravé straně a spusťte ho znovu.\n [Znovu načíst okno](command:workbench.action.reloadWindow)", + "c_cpp.walkthrough.command.prompt.title": "Spustit z Developer Command Prompt for VS", + "c_cpp.walkthrough.command.prompt.description": "Při použití kompilátoru Microsoft Visual Studio C++ vyžaduje rozšíření C++ spuštění VS Code z Developer Command Prompt for VS. Postupujte podle pokynů na pravé straně a spusťte ho znovu.\n[Znovu načíst okno](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "Spuštění a ladění souboru C++", "c_cpp.walkthrough.run.debug.mac.description": "Otevřete soubor C++ a klikněte na tlačítko přehrát v pravém horním rohu editoru nebo stiskněte klávesu F5, když jste na souboru. Pokud chcete spustit s ladicím programem, vyberte clang++ – Sestavit a ladit aktivní soubor.", "c_cpp.walkthrough.run.debug.linux.description": "Otevřete soubor C++ a klikněte na tlačítko přehrát v pravém horním rohu editoru nebo stiskněte klávesu F5, když jste na souboru. Pokud chcete spustit s ladicím programem, vyberte g++ – Sestavit a ladit aktivní soubor.", diff --git a/Extension/i18n/csy/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/csy/src/Debugger/configurationProvider.i18n.json index f7c472f9d..bfb11b6ba 100644 --- a/Extension/i18n/csy/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/csy/src/Debugger/configurationProvider.i18n.json @@ -17,7 +17,7 @@ "pre.Launch.Task": "preLaunchTask: {0}", "debugger.path.not.exists": "Nepovedlo se najít ladicí program {0}. Konfigurace ladění pro {1} se ignoruje.", "build.and.debug.active.file": "sestavit a ladit aktivní soubor", - "cl.exe.not.available": "Sestavení a ladění {0} je k dispozici jen v případě, že se nástroj VS Code spustil z nástroje Developer Command Prompt pro VS.", + "cl.exe.not.available": "{0} se dá použít jenom v případě, že se VS Code spouští z nástroje {1}.", "lldb.find.failed": "Chybí závislosti {0} pro spustitelný soubor lldb-mi.", "lldb.search.paths": "Prohledáno:", "lldb.install.help": "Pokud chcete tento problém vyřešit, buď nainstalujte XCode přes obchod Apple App Store, nebo v okně terminálu spusťte {0}, aby se nainstalovaly nástroje příkazového řádku XCode.", @@ -38,9 +38,9 @@ "incorrect.files.type.copyFile": "„files“ musí být řetězec nebo pole řetězců v {0} krocích.", "missing.properties.ssh": "Pro kroky ssh se vyžadují \"host\" a \"command\".", "missing.properties.shell": "Pro kroky prostředí se vyžaduje příkaz command.", - "deploy.step.type.not.supported": "Typ kroku nasazení{0}se nepodporuje.", + "deploy.step.type.not.supported": "Typ kroku nasazení {0} se nepodporuje.", "unexpected.os": "Neočekávaný typ operačního systému", "path.to.pipe.program": "úplná cesta k programu kanálu, třeba {0}", "enable.pretty.printing": "Povolit přehledný výpis pro {0}", "enable.intel.disassembly.flavor": "Nastavte variantu zpětného překladu na {0}." -} \ No newline at end of file +} diff --git a/Extension/i18n/csy/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json b/Extension/i18n/csy/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json new file mode 100644 index 000000000..c3965738d --- /dev/null +++ b/Extension/i18n/csy/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "generate.copilot.description": "Vygenerovat souhrn Copilotu", + "copilot.disclaimer": "Obsah vygenerovaný umělou inteligencí může být nesprávný." +} \ No newline at end of file diff --git a/Extension/i18n/csy/src/LanguageServer/configurations.i18n.json b/Extension/i18n/csy/src/LanguageServer/configurations.i18n.json index 86d212215..29757d38e 100644 --- a/Extension/i18n/csy/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/csy/src/LanguageServer/configurations.i18n.json @@ -17,5 +17,6 @@ "path.is.not.a.directory": "Cesta není adresář: {0}", "duplicate.name": "{0} je duplicitní. Název konfigurace by měl být jedinečný.", "multiple.paths.not.allowed": "Více cest není povoleno.", + "multiple.paths.should.be.separate.entries": "Více cest by mělo být samostatné položky v poli.", "paths.are.not.directories": "Cesty nejsou adresáře: {0}" } \ No newline at end of file diff --git a/Extension/i18n/csy/src/LanguageServer/extension.i18n.json b/Extension/i18n/csy/src/LanguageServer/extension.i18n.json index 8396eb9c4..114ba9c5a 100644 --- a/Extension/i18n/csy/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/csy/src/LanguageServer/extension.i18n.json @@ -19,5 +19,9 @@ "code.action.aborted": "Opravu analýzy kódu nelze použít, protože dokument byl změněn.", "prerelease.message": "K dispozici je předběžná verze rozšíření C/C++. Chcete na ni přepnout?", "yes.button": "Ano", - "no.button": "Ne" + "no.button": "Ne", + "copilot.hover.unavailable": "Souhrn Copilot není k dispozici.", + "copilot.hover.excluded": "Soubor obsahující definici nebo deklaraci tohoto symbolu se vyloučil z použití s Copilotem.", + "copilot.hover.unavailable.symbol": "Souhrn Copilot není pro tento symbol k dispozici.", + "copilot.hover.error": "Při generování souhrnu Copilotu došlo k chybě." } \ No newline at end of file diff --git a/Extension/i18n/csy/src/SSH/sshCommandRunner.i18n.json b/Extension/i18n/csy/src/SSH/sshCommandRunner.i18n.json index 619eb1c92..2d1c795ae 100644 --- a/Extension/i18n/csy/src/SSH/sshCommandRunner.i18n.json +++ b/Extension/i18n/csy/src/SSH/sshCommandRunner.i18n.json @@ -6,7 +6,7 @@ { "ssh.canceled": "Příkaz SSH je zrušený", "ssh.passphrase.input.box": "Zadejte heslo pro klíč SSH {0}", - "ssh.enter.password.for.user": "Zadejte heslo pro uživatele{0}", + "ssh.enter.password.for.user": "Zadejte heslo pro uživatele {0}", "ssh.message.enter.password": "Zadejte heslo", "ssh.continue.confirmation.placeholder": "Opravdu chcete pokračovat?", "ssh.host.key.confirmation.title": "{0} má otisk prstu {1}.", @@ -15,6 +15,6 @@ "ssh.terminal.command.canceled": "Příkaz terminálu \"{0}\" byl zrušen.", "ssh.terminal.command.done": "\"{0}\" příkaz terminálu je hotový.", "ssh.continuing.command.canceled": "Úloha '{0}' je zrušená, ale podkladový příkaz nemusí být ukončen. Zkontrolujte to prosím ručně.", - "ssh.process.failed": "Proces{0}se nezdařil: {1}", + "ssh.process.failed": "Proces {0} se nezdařil: {1}", "ssh.wrote.data.to.terminal": "\"{0}\" zapsal data do terminálu: \"{1}\"." -} \ No newline at end of file +} diff --git a/Extension/i18n/csy/src/nativeStrings.i18n.json b/Extension/i18n/csy/src/nativeStrings.i18n.json index 1dc274958..458c05b87 100644 --- a/Extension/i18n/csy/src/nativeStrings.i18n.json +++ b/Extension/i18n/csy/src/nativeStrings.i18n.json @@ -159,8 +159,8 @@ "fallback_to_64_bit_mode2": "Nepovedlo se poslat dotaz na kompilátor. Probíhá návrat k 64bitovému režimu intelliSenseMode.", "fallback_to_no_bitness": "Nepovedlo se poslat dotaz na kompilátor. Probíhá návrat k režimu bez bitové verze.", "intellisense_client_creation_aborted": "Vytváření klienta IntelliSense se přerušilo: {0}", - "include_errors_config_provider_intellisense_disabled ": "Na základě informací z nastavení configurationProvider se zjistily chyby direktivy #include. Funkce IntelliSense pro tuto jednotku překladu ({0}) bude poskytovat Tag Parser.", - "include_errors_config_provider_squiggles_disabled ": "Na základě informací z nastavení configurationProvider se zjistily chyby direktivy #include. Pro tuto jednotku překladu ({0}) se zakázaly vlnovky.", + "include_errors_config_provider_intellisense_disabled": "Na základě informací z nastavení configurationProvider se zjistily chyby direktivy #include. Funkce IntelliSense pro tuto jednotku překladu ({0}) bude poskytovat Tag Parser.", + "include_errors_config_provider_squiggles_disabled": "Na základě informací z nastavení configurationProvider se zjistily chyby direktivy #include. Pro tuto jednotku překladu ({0}) se zakázaly vlnovky.", "preprocessor_keyword": "klíčové slovo preprocesoru", "c_keyword": "Klíčové slovo jazyka C", "cpp_keyword": "Klíčové slovo jazyka C++", @@ -316,5 +316,6 @@ "refactor_extract_xborder_jump": "Přecházení mezi vybraným kódem a okolním kódem jsou k dispozici.", "refactor_extract_missing_return": "Ve vybraném kódu se některé cesty ovládacího prvku ukončují bez nastavení návratové hodnoty. To se podporuje jenom u skalárních, numerických a ukazovacích návratových typů.", "expand_selection": "Rozbalit výběr (pro povolení možnosti Extrahovat do funkce)", - "file_not_found_in_path2": "\"{0}\" not found in compile_commands.json files. 'includePath' from c_cpp_properties.json in folder '{1}' will be used for this file instead." + "file_not_found_in_path2": "V souborech compile_commands.json se nepovedlo najít {0}. Pro tento soubor se místo toho použije includePath ze souboru c_cpp_properties.json ve složce {1}.", + "copilot_hover_link": "Vygenerovat souhrn Copilotu" } \ No newline at end of file diff --git a/Extension/i18n/csy/ui/settings.html.i18n.json b/Extension/i18n/csy/ui/settings.html.i18n.json index 95b595df8..c5a9372dd 100644 --- a/Extension/i18n/csy/ui/settings.html.i18n.json +++ b/Extension/i18n/csy/ui/settings.html.i18n.json @@ -55,7 +55,8 @@ "dot.config": "Konfigurace tečky", "dot.config.description": "Cesta k souboru .config vytvořenému systémem Kconfig. Systém Kconfig vygeneruje soubor se všemi definicemi pro sestavení projektu. Příkladem projektů, které používají systém Kconfig, jsou Linux Kernel a NuttX RTOS.", "compile.commands": "Příkazy kompilace", - "compile.commands.description": "Úplná cesta k souboru {0} pro pracovní prostor. Cesty pro vložené soubory a direktivy define v tomto souboru se použijí namísto hodnot nastavených pro nastavení {1} a {2}. Pokud databáze příkazů pro kompilaci neobsahuje položku pro jednotku překladu, která odpovídá souboru otevřenému v editoru, zobrazí se zpráva upozornění a rozšíření místo toho použije nastavení {3} a {4}.", + "compile.commands.description": "Seznam cest k {0} souborům pro pracovní prostor. Cesty pro vložené soubory a direktivy define v těchto souborech se použijí namísto hodnot nastavených pro nastavení {1} a {2}. Pokud databáze příkazů pro kompilaci neobsahuje položku pro jednotku překladu, která odpovídá souboru otevřenému v editoru, zobrazí se zpráva upozornění a rozšíření místo toho použije nastavení {3} a {4}.", + "one.compile.commands.path.per.line": "Jedna cesta příkazů kompilace na řádek", "merge.configurations": "Sloučit konfigurace", "merge.configurations.description": "Pokud je tato možnost {0} (nebo zaškrtnutá), sloučí cesty k zahrnutým souborům, direktivy define a vynucená zahrnutí s těmi od poskytovatele konfigurace.", "browse.path": "Procházení: cesta", diff --git a/Extension/i18n/csy/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json b/Extension/i18n/csy/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json index f1dc14fc6..60a0d692e 100644 --- a/Extension/i18n/csy/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json +++ b/Extension/i18n/csy/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "walkthrough.windows.title.open.dev.command.prompt": "Opětovné spuštění pomocí příkazového řádku pro vývojáře", - "walkthrough.windows.background.dev.command.prompt": " Používáte počítač s Windows s kompilátorem MVSC, takže musíte spustit VS Code z příkazového řádku vývojáře, aby se všechny proměnné prostředí správně nastavily. Opětovné spuštění pomocí příkazového řádku vývojáře:", - "walkthrough.open.command.prompt": "Otevřete Developer Command Prompt pro VS zadáním \"developer\" v nabídka Start Windows. Vyberte Developer Command Prompt pro VS, který automaticky přejde do aktuální otevřené složky.", - "walkthrough.windows.press.f5": "Do příkazového řádku zadejte „code“ a stiskněte Enter. Mělo by se znovu spustit VS Code a vrátit se k tomuto názorném postupu. " + "walkthrough.windows.title.open.dev.command.prompt": "Znovu spustit pomocí {0}", + "walkthrough.windows.background.dev.command.prompt": " Používáte počítač s Windows s kompilátorem MVSC, takže musíte spustit VS Code z {0}, aby se všechny proměnné prostředí správně nastavily. Opětovné spuštění pomocí nástroje {1}:", + "walkthrough.open.command.prompt": "Otevřete {0} zadáním „{1}“ v nabídce Start ve Windows. Vyberte {2}, čímž automaticky přejdete do aktuální otevřené složky.", + "walkthrough.windows.press.f5": "Do příkazového řádku zadejte „{0}“ a stiskněte Enter. Mělo by se znovu spustit VS Code a vrátit se k tomuto názorném postupu. " } \ No newline at end of file diff --git a/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index 1ab43c76b..c9aa88d37 100644 --- a/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -16,10 +16,8 @@ "walkthrough.windows.link.install": "Nainstalovat", "walkthrough.windows.note1": "Poznámka", "walkthrough.windows.note1.text": "Můžete použít sadu nástrojů C++ z Visual Studio Build Tools spolu s Visual Studio Code ke kompilaci, sestavení a ověření jakékoli kódové báze C++, pokud máte také platnou licenci Visual Studio (buď Community, Pro nebo Enterprise), kterou aktivně používáte k vývoji kódové báze C++.", - "walkthrough.windows.open.command.prompt": "Otevřete {0} zadáním příkazu „developer“ do nabídky Start systému Windows.", - "walkthrough.windows.command.prompt.name1": "Developer Command Prompt for VS", - "walkthrough.windows.check.install": "MSVC instalaci zkontrolujte tak, že zadáte {0} do Developer Command Prompt for VS. Měla by se zobrazit zpráva o autorských právech v popisu verze a základního použití.", + "walkthrough.windows.open.command.prompt": "Otevřete ho {0} zadáním „{1}“ v nabídce Start ve Windows.", + "walkthrough.windows.check.install": "Zkontrolujte instalaci MSVC zadáním {0} do nástroje {1}. Měla by se zobrazit zpráva o autorských právech v popisu verze a základního použití.", "walkthrough.windows.note2": "Poznámka", - "walkthrough.windows.note2.text": "Pokud chcete použít MSVC z příkazového řádku nebo VS Code, musíte spouštět z {0}. Běžné prostředí, jako je {1}, {2} nebo příkazový řádek Windows, nemá nastavenou nezbytnou proměnnou prostředí cesty.", - "walkthrough.windows.command.prompt.name2": "Developer Command Prompt for VS" -} + "walkthrough.windows.note2.text": "Pokud chcete použít MSVC z příkazového řádku nebo VS Code, musíte spouštět z {0}. Běžné prostředí, jako je {1}, {2} nebo příkazový řádek Windows, nemá nastavenou nezbytnou proměnnou prostředí cesty." +} \ No newline at end of file diff --git a/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index 8e1973951..e18dd4d35 100644 --- a/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -10,14 +10,12 @@ "walkthrough.windows.note1": "Poznámka", "walkthrough.windows.note1.text": "Můžete použít sadu nástrojů C++ z Visual Studio Build Tools spolu s Visual Studio Code ke kompilaci, sestavení a ověření jakékoli kódové báze C++, pokud máte také platnou licenci Visual Studio (buď Community, Pro nebo Enterprise), kterou aktivně používáte k vývoji kódové báze C++.", "walkthrough.windows.verify.compiler": "Ověřování instalace kompilátoru", - "walkthrough.windows.open.command.prompt": "Otevřete {0} zadáním příkazu „developer“ do nabídky Start systému Windows.", - "walkthrough.windows.command.prompt.name1": "Developer Command Prompt for VS", - "walkthrough.windows.check.install": "MSVC instalaci zkontrolujte tak, že zadáte {0} do Developer Command Prompt for VS. Měla by se zobrazit zpráva o autorských právech v popisu verze a základního použití.", + "walkthrough.windows.open.command.prompt": "Otevřete ho {0} zadáním „{1}“ v nabídce Start ve Windows.", + "walkthrough.windows.check.install": "Zkontrolujte instalaci MSVC zadáním {0} do nástroje {1}. Měla by se zobrazit zpráva o autorských právech v popisu verze a základního použití.", "walkthrough.windows.note2": "Poznámka", "walkthrough.windows.note2.text": "Pokud chcete použít MSVC z příkazového řádku nebo VS Code, musíte spouštět z {0}. Běžné prostředí, jako je {1}, {2} nebo příkazový řádek Windows, nemá nastavenou nezbytnou proměnnou prostředí cesty.", - "walkthrough.windows.command.prompt.name2": "Developer Command Prompt for VS", "walkthrough.windows.other.compilers": "Další možnosti kompilátoru", "walkthrough.windows.text3": "Pokud cílíte na Linux z Windows, podívejte se na {0}. Nebo můžete {1}.", "walkthrough.windows.link.title1": "Použití C++ a subsystému Windows pro Linux (WSL) ve VS Code", "walkthrough.windows.link.title2": "instalovat GCC na Windows pomocí MinGW" -} +} \ No newline at end of file diff --git a/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index 8e1973951..e18dd4d35 100644 --- a/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/csy/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -10,14 +10,12 @@ "walkthrough.windows.note1": "Poznámka", "walkthrough.windows.note1.text": "Můžete použít sadu nástrojů C++ z Visual Studio Build Tools spolu s Visual Studio Code ke kompilaci, sestavení a ověření jakékoli kódové báze C++, pokud máte také platnou licenci Visual Studio (buď Community, Pro nebo Enterprise), kterou aktivně používáte k vývoji kódové báze C++.", "walkthrough.windows.verify.compiler": "Ověřování instalace kompilátoru", - "walkthrough.windows.open.command.prompt": "Otevřete {0} zadáním příkazu „developer“ do nabídky Start systému Windows.", - "walkthrough.windows.command.prompt.name1": "Developer Command Prompt for VS", - "walkthrough.windows.check.install": "MSVC instalaci zkontrolujte tak, že zadáte {0} do Developer Command Prompt for VS. Měla by se zobrazit zpráva o autorských právech v popisu verze a základního použití.", + "walkthrough.windows.open.command.prompt": "Otevřete ho {0} zadáním „{1}“ v nabídce Start ve Windows.", + "walkthrough.windows.check.install": "Zkontrolujte instalaci MSVC zadáním {0} do nástroje {1}. Měla by se zobrazit zpráva o autorských právech v popisu verze a základního použití.", "walkthrough.windows.note2": "Poznámka", "walkthrough.windows.note2.text": "Pokud chcete použít MSVC z příkazového řádku nebo VS Code, musíte spouštět z {0}. Běžné prostředí, jako je {1}, {2} nebo příkazový řádek Windows, nemá nastavenou nezbytnou proměnnou prostředí cesty.", - "walkthrough.windows.command.prompt.name2": "Developer Command Prompt for VS", "walkthrough.windows.other.compilers": "Další možnosti kompilátoru", "walkthrough.windows.text3": "Pokud cílíte na Linux z Windows, podívejte se na {0}. Nebo můžete {1}.", "walkthrough.windows.link.title1": "Použití C++ a subsystému Windows pro Linux (WSL) ve VS Code", "walkthrough.windows.link.title2": "instalovat GCC na Windows pomocí MinGW" -} +} \ No newline at end of file diff --git a/Extension/i18n/deu/c_cpp_properties.schema.json.i18n.json b/Extension/i18n/deu/c_cpp_properties.schema.json.i18n.json index 03f6cf119..c70578396 100644 --- a/Extension/i18n/deu/c_cpp_properties.schema.json.i18n.json +++ b/Extension/i18n/deu/c_cpp_properties.schema.json.i18n.json @@ -9,7 +9,7 @@ "c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "Compilerargumente zum Ändern der verwendeten Include- oder Define-Anweisungen, z. B.: `-nostdinc++`, `-m32` usw. Argumente, die zusätzliche durch Leerzeichen getrennte Argumente enthalten, sollten als separate Argumente in das Array eingegeben werden, z. B. für `--sysroot ` `\"--sysroot\", \"\"` verwenden.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cStandard": "Version des C-Sprachstandards, die für IntelliSense verwendet werden soll. Hinweis: GNU-Standards werden nur zum Abfragen des festgelegten Compilers zum Abrufen von GNU-Definitionen verwendet, und IntelliSense emuliert die äquivalente Version des C-Standards.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cppStandard": "Version des C++-Sprachstandards, die für IntelliSense verwendet werden soll. Hinweis: GNU-Standards werden nur zum Abfragen des festgelegten Compilers zum Abrufen von GNU-Definitionen verwendet, und IntelliSense emuliert die äquivalente Version des C++-Standards.", - "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Vollständiger Pfad zur Datei `compile_commands.json` für den Arbeitsbereich.", + "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Vollständiger Pfad oder eine Liste mit vollständigen Pfaden zu `compile_commands.json` Dateien für den Arbeitsbereich.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.includePath": "Eine Liste mit Pfaden, die das IntelliSense-Modul bei der Suche nach eingeschlossenen Headern verwenden soll. Die Suche in diesen Pfaden ist nicht rekursiv. Geben Sie `**` an, um eine rekursive Suche durchzuführen. Beispiel: `${workspaceFolder}/**` durchsucht alle Unterverzeichnisse, `${workspaceFolder}` hingegen nicht. In der Regel sollte dies keine System-Includes enthalten; legen Sie stattdessen `C_Cpp.default.compilerPath` fest.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "Eine Liste von Pfaden für die IntelliSense-Engine, die bei der Suche nach eingeschlossenen Headern aus Mac-Frameworks verwendet werden sollen. Wird nur für die Mac-Konfiguration unterstützt.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.windowsSdkVersion": "Die Version des Windows SDK-Includepfads für die Verwendung unter Windows, z. B. `10.0.17134.0`.", diff --git a/Extension/i18n/deu/package.i18n.json b/Extension/i18n/deu/package.i18n.json index 48a34c625..f058273cd 100644 --- a/Extension/i18n/deu/package.i18n.json +++ b/Extension/i18n/deu/package.i18n.json @@ -77,7 +77,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Zeigen Sie die Codeaktionen „Alle löschen“ (wenn mehrere Problemtypen vorhanden sind), „Alle löschen“ (wenn mehrere Probleme für den vorhanden sind) und „Diese löschen“ an.", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "Bei `true` wird die Formatierung in den Zeilen ausgeführt, die durch Codeaktionen vom Typ 'Korrigieren' geändert wurden.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "Bei `true` wird die Codeanalyse mit `clang-tidy` aktiviert und nach dem Öffnen oder Speichern einer Datei ausgeführt, wenn `#C_Cpp.codeAnalysis.runAutomatically#` auf `true` festgelegt ist (Standardeinstellung).", - "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Der vollständige Pfad der ausführbaren Datei `clang-tidy`. Wenn nicht angegeben, ist `clang-tidy` im verwendeten Umgebungspfad verfügbar. Wenn der Umgebungspfad nicht gefunden wird, wird die `clang-tidy` verwendet, die mit der Erweiterung gebündelt ist.", + "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Der vollständige Pfad der ausführbaren Datei `clang-tidy`. Wenn dieser nicht angegeben wird und `clang-tidy` im verwendeten Umgebungspfad verfügbar ist, wird dieser verwendet, sofern keine neuere Version mit der Erweiterung gebündelt ist. Wenn der Umgebungspfad nicht gefunden wird, wird die `clang-tidy` verwendet, die mit der Erweiterung gebündelt ist.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Gibt eine `clang-tidy`-Konfiguration im YAML-/JSON-Format an: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{Schlüssel: x, Wert: y}]}`. Wenn der Wert leer ist, versucht `clang-tidy`, eine Datei namens `.clang-tidy` für jede Quelldatei in den übergeordneten Verzeichnissen zu finden.", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "Gibt eine `clang-tidy`-Konfiguration im YAML-/JSON-Format an, die als Fallback verwendet werden soll, wenn `#C_Cpp.codeAnalysis.clangTidy.config#` nicht festgelegt ist und keine `.clang-tidy`-Datei gefunden wird: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{Schlüssel: x, Wert: y}]}`.", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "Ein erweiterter regulärer POSIX-Ausdruck (Extended Regular Expression/ERE), der dem Namen der Header entspricht, aus denen die Diagnose ausgegeben werden soll. Diagnosen aus der Hauptdatei jeder Übersetzungseinheit werden immer angezeigt. Die Variable `${workspaceFolder}` wird unterstützt (und als standardmäßiger Fallbackwert benutzt, wenn keine `.clang-tidy`-Datei vorhanden ist). Wenn diese Option nicht `null` (leer) ist, überschreibt sie die Option `HeaderFilterRegex` in einer `.clang-tidy`-Datei, sofern vorhanden.", @@ -175,7 +175,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.oneLiners.markdownDescription": "Ein vollständiger Codeblock, der in einer Zeile eingegeben wird, wird unabhängig von den Werten der Einstellungen für `C_Cpp.vcFormat.newLine.*` in einer Zeile beibehalten.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription": "Jeder Code, in dem die öffnende und schließende geschweifte Klammer in einer Zeile eingegeben wird, wird unabhängig von den Werten der Einstellungen für `C_Cpp.vcFormat.newLine.*` in einer Zeile beibehalten.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "Codeblöcke werden immer basierend auf den Werten der Einstellungen `C_Cpp.vcFormat.newLine.*` formatiert.", - "c_cpp.configuration.clang_format_path.markdownDescription": "Der vollständige Pfad der ausführbaren `clang-format`-Datei. Wenn dieser nicht angegeben wird und `clang-format` im verwendeten Umgebungspfad verfügbar ist. Wenn sie nicht im Umgebungspfad gefunden wird, wird die mit der Erweiterung gebündelte `clang-format`-Datei verwendet.", + "c_cpp.configuration.clang_format_path.markdownDescription": "Der vollständige Pfad der ausführbaren `clang-format` Datei. Wenn dieser nicht angegeben wird und `clang-format` im verwendeten Umgebungspfad verfügbar ist, wird dieser verwendet, sofern keine neuere Version mit der Erweiterung gebündelt ist. Wenn sie nicht im Umgebungspfad gefunden wird, wird die mit der Erweiterung gebündelte `clang-format` Datei verwendet.", "c_cpp.configuration.clang_format_style.markdownDescription": "Codierungsformat, unterstützt derzeit:`Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`. Verwenden Sie `file`, um das Format aus einer `.clang-format`-Datei im aktuellen oder übergeordneten Verzeichnis zu laden, oder verwenden Sie `file:/.clang-format`, um auf einen speziellen Pfad zu verweisen. Verwenden Sie `{Schlüssel: Wert, ...}`, um bestimmte Parameter festzulegen. Beispielsweise ähnelt das Format `Visual Studio`: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "Name des vordefinierten Formats, das als Fallback verwendet wird, falls `clang-format` mit dem Format `file` aufgerufen wird, aber die `.clang-format`-Datei nicht gefunden wird. Mögliche Werte sind `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`, `none`, oder verwenden Sie `{Schlüssel: Wert, ...}`, um bestimmte Parameter festzulegen. Beispielsweise ähnelt das Format `Visual Studio`: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "Wenn diese Option festgelegt ist, wird das durch den Parameter `SortIncludes` festgelegte Sortierverhalten für Includes überschrieben.", @@ -205,7 +205,7 @@ "c_cpp.configuration.exclusionPolicy.markdownDescription": "Instruiert die Erweiterung, wann die Einstellung `#files.exclude#` (und `#C_Cpp.files.exclude#`) verwendet werden soll, wenn bestimmt wird, welche Dateien der Codenavigationsdatenbank beim Durchlaufen der Pfade im Array `browse.path` hinzugefügt werden sollen. Wenn Ihre Einstellung `#files.exclude#` nur Ordner enthält, ist `checkFolders` die beste Wahl und erhöht die Geschwindigkeit, mit der die Erweiterung die Codenavigationsdatenbank initialisieren kann.", "c_cpp.configuration.exclusionPolicy.checkFolders.description": "Die Ausschlussfilter werden nur einmal pro Ordner ausgewertet (einzelne Dateien werden nicht kontrolliert).", "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Die Ausschlussfilter werden für jede gefundene Datei und jeden gefundenen Ordner ausgewertet.", - "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Das Zeichen, das als Pfadtrennzeichen für die Ergebnisse der automatischen Vervollständigung `#include` verwendet wird.", + "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Das Zeichen, das als Pfadtrennzeichen für generierte Benutzerpfade verwendet wird.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "Wenn `true` festgelegt ist, zeigen die QuickInfos für Draufzeigen und AutoVervollständigen nur bestimmte Bezeichnungen strukturierter Kommentare an. Andernfalls werden alle Kommentare angezeigt.", "c_cpp.configuration.doxygen.generateOnType.description": "Steuert, ob der Doxygenkommentar nach Eingabe des ausgewählten Kommentarstils automatisch eingefügt wird.", "c_cpp.configuration.doxygen.generatedStyle.description": "Die Zeichenfolge von Zeichen, die als Startzeile des Doxygen-Kommentars verwendet wird.", @@ -253,6 +253,7 @@ "c_cpp.configuration.hover.description": "Wenn diese Option deaktiviert ist, werden die Hoverdetails nicht mehr vom Sprachserver bereitgestellt.", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "Hiermit aktivieren Sie Integrationsdienste für den [vcpkg-Abhängigkeitsmanager](https://aka.ms/vcpkg/).", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Fügen Sie Includepfade aus `nan` und `node-addon-api` hinzu, wenn es sich um Abhängigkeiten handelt.", + "c_cpp.configuration.copilotHover.markdownDescription": "Wenn `disabled` festgelegt ist, werden beim Daraufzeigen mit der Maus keine Copilot-Informationen angezeigt.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Wenn `true` festgelegt ist, erfordert 'Symbol umbenennen' einen gültigen C/C++-Bezeichner.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Wenn `true` festgelegt ist, fügt AutoVervollständigen automatisch `(` nach Funktionsaufrufen hinzu. In diesem Fall kann auch `)` in Abhängigkeit vom Wert der Einstellung `#editor.autoClosingBrackets#` hinzugefügt werden.", "c_cpp.configuration.filesExclude.markdownDescription": "Konfigurieren Sie Globmuster zum Ausschließen von Ordnern (und Dateien, wenn `#C_Cpp.exclusionPolicy#` geändert wird). Diese sind spezifisch für die C/C++-Erweiterung und gelten zusätzlich zu `#files.exclude#`, aber im Gegensatz zu `#files.exclude#` gelten sie auch für Pfade außerhalb des aktuellen Arbeitsbereichsordners und werden nicht aus der Explorer-Ansicht entfernt. Weitere Informationen zu [Globmustern](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", @@ -427,8 +428,8 @@ "c_cpp.walkthrough.create.cpp.file.title": "C++-Datei erstellen", "c_cpp.walkthrough.create.cpp.file.description": "[Open](command:toSide:workbench.action.files.openFile) oder [create](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) eine C++-Datei. Speichern Sie die Datei unbedingt mit der Erweiterung \".cpp\", z. B. \"helloworld.cpp\". \n[C++-Datei erstellen](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", "c_cpp.walkthrough.create.cpp.file.altText": "Öffnen Sie eine C++-Datei oder einen Ordner mit einem C++-Projekt.", - "c_cpp.walkthrough.command.prompt.title": "Starten über die Developer-Eingabeaufforderung", - "c_cpp.walkthrough.command.prompt.description": "Wenn Sie den Microsoft Visual Studio C++-Compiler verwenden, erfordert die C++-Erweiterung, dass Sie VS Code über die Entwicklereingabeaufforderung starten. Befolgen Sie die Anweisungen auf der rechten Seite, um den Neustart zu starten.\n[Reload Window](command:workbench.action.reloadWindow)", + "c_cpp.walkthrough.command.prompt.title": "Von der Developer Command Prompt for VS starten", + "c_cpp.walkthrough.command.prompt.description": "Bei Verwendung des Microsoft Visual Studio C++-Compilers erfordert die C++-Erweiterung, dass Sie VS Code aus der Developer Command Prompt for VS starten. Befolgen Sie die Anweisungen auf der rechten Seite, um den Neustart zu starten.\n[Reload Window](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "Ausführen und Debuggen Ihrer C++-Datei", "c_cpp.walkthrough.run.debug.mac.description": "Öffnen Sie Ihre C++-Datei, und klicken Sie in der oberen rechten Ecke des Editors auf die Wiedergabeschaltfläche, oder drücken Sie F5, wenn Sie die Datei verwenden. Wählen Sie \"clang++ – Aktive Datei erstellen und debuggen\" aus, die mit dem Debugger ausgeführt werden soll.", "c_cpp.walkthrough.run.debug.linux.description": "Öffnen Sie Ihre C++-Datei, und klicken Sie in der oberen rechten Ecke des Editors auf die Wiedergabeschaltfläche, oder drücken Sie F5, wenn Sie die Datei verwenden. Wählen Sie \"g++ – Aktive Datei erstellen und debuggen\" aus, die mit dem Debugger ausgeführt werden soll.", diff --git a/Extension/i18n/deu/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/deu/src/Debugger/configurationProvider.i18n.json index 378628c60..9b3e27e7f 100644 --- a/Extension/i18n/deu/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/deu/src/Debugger/configurationProvider.i18n.json @@ -17,7 +17,7 @@ "pre.Launch.Task": "preLaunchTask: {0}", "debugger.path.not.exists": "Der {0}-Debugger wurde nicht gefunden. Die Debugkonfiguration für {1} wird ignoriert.", "build.and.debug.active.file": "Aktive Datei erstellen und debuggen", - "cl.exe.not.available": "{0}-Build und -Debuggen können nur verwendet werden, wenn VS Code von der Developer-Eingabeaufforderung für VS ausgeführt wird.", + "cl.exe.not.available": "{0} kann nur verwendet werden, wenn VS Code von {1} ausgeführt wird.", "lldb.find.failed": "Fehlende Abhängigkeit \"{0}\" für ausführbare LLDB-MI-Datei.", "lldb.search.paths": "Gesucht in:", "lldb.install.help": "Um dieses Problem zu beheben, installieren Sie entweder XCode über den Apple App Store, oder installieren Sie die XCode-Befehlszeilentools, indem Sie \"{0}\" in einem Terminalfenster ausführen.", diff --git a/Extension/i18n/deu/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json b/Extension/i18n/deu/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json new file mode 100644 index 000000000..85857d584 --- /dev/null +++ b/Extension/i18n/deu/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "generate.copilot.description": "Copilot-Zusammenfassung generieren", + "copilot.disclaimer": "KI-generierte Inhalte können falsch sein." +} \ No newline at end of file diff --git a/Extension/i18n/deu/src/LanguageServer/configurations.i18n.json b/Extension/i18n/deu/src/LanguageServer/configurations.i18n.json index 5887699ce..b61b045b3 100644 --- a/Extension/i18n/deu/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/deu/src/LanguageServer/configurations.i18n.json @@ -17,5 +17,6 @@ "path.is.not.a.directory": "Der Pfad ist kein Verzeichnis: {0}", "duplicate.name": "\"{0}\" ist ein Duplikat. Der Konfigurationsname muss eindeutig sein.", "multiple.paths.not.allowed": "Mehrere Pfade sind nicht zulässig.", + "multiple.paths.should.be.separate.entries": "Mehrere Pfade müssen separate Einträge in einem Array sein.", "paths.are.not.directories": "Pfade sind keine Verzeichnisse: {0}" } \ No newline at end of file diff --git a/Extension/i18n/deu/src/LanguageServer/extension.i18n.json b/Extension/i18n/deu/src/LanguageServer/extension.i18n.json index 158b5119a..45c9a387f 100644 --- a/Extension/i18n/deu/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/deu/src/LanguageServer/extension.i18n.json @@ -19,5 +19,9 @@ "code.action.aborted": "Der Codeanalysepatch konnte nicht angewendet werden, da sich das Dokument geändert hat.", "prerelease.message": "Eine Vorabversion der C/C++-Erweiterung ist verfügbar. Möchten Sie zu ihr wechseln?", "yes.button": "Ja", - "no.button": "Nein" + "no.button": "Nein", + "copilot.hover.unavailable": "Die Copilot-Zusammenfassung ist nicht verfügbar.", + "copilot.hover.excluded": "Die Datei, die die Definition oder Deklaration dieses Symbols enthält, wurde von der Verwendung mit Copilot ausgeschlossen.", + "copilot.hover.unavailable.symbol": "Die Copilot-Zusammenfassung ist für dieses Symbol nicht verfügbar.", + "copilot.hover.error": "Fehler beim Generieren der Copilot-Zusammenfassung." } \ No newline at end of file diff --git a/Extension/i18n/deu/src/nativeStrings.i18n.json b/Extension/i18n/deu/src/nativeStrings.i18n.json index 059e84451..a8e1d314b 100644 --- a/Extension/i18n/deu/src/nativeStrings.i18n.json +++ b/Extension/i18n/deu/src/nativeStrings.i18n.json @@ -159,8 +159,8 @@ "fallback_to_64_bit_mode2": "Fehler beim Abfragen des Compilers. Es wird ein Fallback auf den 64-Bit-intelliSenseMode durchgeführt.", "fallback_to_no_bitness": "Fehler beim Abfragen des Compilers. Es wird ein Fallback auf keine Bitanzahl durchgeführt.", "intellisense_client_creation_aborted": "IntelliSense-Clienterstellung abgebrochen: {0}", - "include_errors_config_provider_intellisense_disabled ": "Basierend auf den von der configurationProvider-Einstellung bereitgestellten Informationen wurden #include-Fehler festgestellt. IntelliSense-Features für diese Übersetzungseinheit ({0}) werden vom Tagparser bereitgestellt.", - "include_errors_config_provider_squiggles_disabled ": "Basierend auf den von der configurationProvider-Einstellung bereitgestellten Informationen wurden #include-Fehler festgestellt. Wellenlinien sind für diese Übersetzungseinheit deaktiviert ({0}).", + "include_errors_config_provider_intellisense_disabled": "Basierend auf den von der configurationProvider-Einstellung bereitgestellten Informationen wurden #include-Fehler festgestellt. IntelliSense-Features für diese Übersetzungseinheit ({0}) werden vom Tagparser bereitgestellt.", + "include_errors_config_provider_squiggles_disabled": "Basierend auf den von der configurationProvider-Einstellung bereitgestellten Informationen wurden #include-Fehler festgestellt. Wellenlinien sind für diese Übersetzungseinheit deaktiviert ({0}).", "preprocessor_keyword": "Präprozessor-Schlüsselwort", "c_keyword": "C-Schlüsselwort", "cpp_keyword": "C++-Schlüsselwort", @@ -316,5 +316,6 @@ "refactor_extract_xborder_jump": "Es sind Sprünge zwischen dem ausgewählten und dem umgebenden Code vorhanden.", "refactor_extract_missing_return": "Im ausgewählten Code werden einige Steuerungspfade beendet, ohne den Rückgabewert festzulegen. Dies wird nur für skalare, numerische und Zeigerrückgabetypen unterstützt.", "expand_selection": "Auswahl erweitern (um „In Funktion extrahieren“ zu aktivieren)", - "file_not_found_in_path2": "„{0}“ wurde in compile_commands.json-Dateien nicht gefunden. Stattdessen wird „includePath“ aus „c_cpp_properties.json“ im Ordner „{1}“ für diese Datei verwendet." + "file_not_found_in_path2": "„{0}“ wurde in compile_commands.json-Dateien nicht gefunden. Stattdessen wird „includePath“ aus „c_cpp_properties.json“ im Ordner „{1}“ für diese Datei verwendet.", + "copilot_hover_link": "Copilot-Zusammenfassung generieren" } \ No newline at end of file diff --git a/Extension/i18n/deu/ui/settings.html.i18n.json b/Extension/i18n/deu/ui/settings.html.i18n.json index e0ea7a68f..ce92077db 100644 --- a/Extension/i18n/deu/ui/settings.html.i18n.json +++ b/Extension/i18n/deu/ui/settings.html.i18n.json @@ -55,7 +55,8 @@ "dot.config": "„dotConfig“", "dot.config.description": "Ein Pfad zu einer „.config“-Datei, die vom „Kconfig“-System erstellt wurde. Das „Kconfig“-System generiert eine Datei mit allen Definitionen zum Erstellen eines Projekts. Beispiele für Projekte, die das „Kconfig“-System verwenden, sind Linux-Kernel und NuttX-RTOS.", "compile.commands": "Kompilierungsbefehle", - "compile.commands.description": "Der vollständige Pfad zur {0}-Datei für den Arbeitsbereich. Die in dieser Datei ermittelten Includepfade und Define-Anweisungen werden anstelle der für die Einstellungen \"{1}\" und \"{2}\" festgelegten Werte verwendet. Wenn die Datenbank für Kompilierungsbefehle keinen Eintrag für die Übersetzungseinheit enthält, die der im Editor geöffneten Datei entspricht, wird eine Warnmeldung angezeigt, und die Erweiterung verwendet stattdessen die Einstellungen \"{3}\" und \"{4}\".", + "compile.commands.description": "Eine Liste der Pfade zum {0} Dateien für den Arbeitsbereich. Die in diesen Dateien ermittelten Includepfade und Define-Anweisungen werden anstelle der für die Einstellungen \"{1}\" und \"{2}\" festgelegten Werte verwendet. Wenn die Datenbank für Kompilierungsbefehle keinen Eintrag für die Übersetzungseinheit enthält, die der im Editor geöffneten Datei entspricht, wird eine Warnmeldung angezeigt, und die Erweiterung verwendet stattdessen die Einstellungen \"{3}\" und \"{4}\".", + "one.compile.commands.path.per.line": "Ein Kompilierungsbefehlspfad pro Zeile.", "merge.configurations": "Konfigurationen zusammenführen", "merge.configurations.description": "Wenn {0} (oder aktiviert) ist, schließen Sie Includepfade, Definitionen und erzwungene Includes mit denen eines Konfigurationsanbieters zusammen.", "browse.path": "Durchsuchen: Pfad", diff --git a/Extension/i18n/deu/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json b/Extension/i18n/deu/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json index ced93729d..03d07cc30 100644 --- a/Extension/i18n/deu/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json +++ b/Extension/i18n/deu/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "walkthrough.windows.title.open.dev.command.prompt": "Neustart mithilfe der Developer-Eingabeaufforderung", - "walkthrough.windows.background.dev.command.prompt": " Sie verwenden einen Windows-Computer mit dem MSVC-Compiler. Sie müssen daher VS Code über die Entwicklereingabeaufforderung starten, damit alle Umgebungsvariablen ordnungsgemäß festgelegt werden. So starten Sie mithilfe der Entwicklereingabeaufforderung neu:", - "walkthrough.open.command.prompt": "Öffnen Sie die Developer-Eingabeaufforderung für VS, indem Sie im Windows Startmenü \"developer\" eingeben. Wählen Sie die Developer-Eingabeaufforderung für VS aus, die automatisch zu Ihrem aktuellen geöffneten Ordner navigiert.", - "walkthrough.windows.press.f5": "Geben Sie \"code\" in die Eingabeaufforderung ein, und drücken Sie die EINGABETASTE. Dies sollte VS Code neu starten und Sie zu dieser exemplarischen Vorgehensweise zurückkehren. " + "walkthrough.windows.title.open.dev.command.prompt": "Mit dem {0} neu starten", + "walkthrough.windows.background.dev.command.prompt": " Sie verwenden einen Windows-Computer mit dem MSVC-Compiler. Daher müssen Sie VS Code aus dem {0} starten, damit alle Umgebungsvariablen ordnungsgemäß festgelegt werden. So initiieren Sie den Neustart mithilfe von {1}:", + "walkthrough.open.command.prompt": "Öffnen Sie die {0}, indem Sie im Windows-Startmenü „{1}“ eingeben. Wählen Sie {2} aus, das Sie automatisch zu Ihrem aktuell geöffneten Ordner navigiert.", + "walkthrough.windows.press.f5": "Geben Sie „{0}“ in die Eingabeaufforderung ein, und drücken Sie die EINGABETASTE. Dies sollte VS Code neu starten und Sie zu dieser exemplarischen Vorgehensweise zurückkehren. " } \ No newline at end of file diff --git a/Extension/i18n/deu/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/deu/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index 5c6cd1e9d..64054f741 100644 --- a/Extension/i18n/deu/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/deu/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -16,10 +16,8 @@ "walkthrough.windows.link.install": "Installieren", "walkthrough.windows.note1": "Hinweis", "walkthrough.windows.note1.text": "Sie können das C++-Toolset aus Visual Studio Build Tools zusammen mit Visual Studio Code zum Kompilieren, Erstellen und Überprüfen von C++-Codebasis verwenden, sofern Sie auch über eine gültige Visual Studio-Lizenz (Community, Pro oder Enterprise) verfügen, die Sie aktiv zum Entwickeln dieser C++-Codebasis verwenden.", - "walkthrough.windows.open.command.prompt": "Öffnen Sie die {0}, indem Sie im Windows-Startmenü \"Developer\" eingeben.", - "walkthrough.windows.command.prompt.name1": "Developer-Eingabeaufforderung für VS", - "walkthrough.windows.check.install": "Überprüfen Sie die MSVC-Installation, indem Sie {0} in die Developer-Eingabeaufforderung für VS eingeben. Es sollten ein Copyrighthinweis mit der Version und der grundlegenden Nutzungsbeschreibung angezeigt werden.", + "walkthrough.windows.open.command.prompt": "Öffnen Sie die {0}, indem Sie im Windows-Startmenü „{1}“ eingeben.", + "walkthrough.windows.check.install": "Überprüfen Sie Ihre MSVC-Installation, indem Sie {0} in {1} eingeben. Es sollten ein Copyrighthinweis mit der Version und der grundlegenden Nutzungsbeschreibung angezeigt werden.", "walkthrough.windows.note2": "Hinweis", - "walkthrough.windows.note2.text": "Um MSVC mithilfe der Befehlszeile oder mit VS Code zu verwenden, müssen Sie von einem {0} aus ausführen. Für eine normale Shell wie {1}, {2} oder die Windows-Eingabeaufforderung sind die erforderlichen PATH-Umgebungsvariablen nicht festgelegt.", - "walkthrough.windows.command.prompt.name2": "Developer-Eingabeaufforderung für VS" + "walkthrough.windows.note2.text": "Um MSVC mithilfe der Befehlszeile oder mit VS Code zu verwenden, müssen Sie von einem {0} aus ausführen. Für eine normale Shell wie {1}, {2} oder die Windows-Eingabeaufforderung sind die erforderlichen PATH-Umgebungsvariablen nicht festgelegt." } \ No newline at end of file diff --git a/Extension/i18n/deu/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/deu/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index 83641b276..664c7f9a3 100644 --- a/Extension/i18n/deu/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/deu/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "Hinweis", "walkthrough.windows.note1.text": "Sie können das C++-Toolset aus Visual Studio Build Tools zusammen mit Visual Studio Code zum Kompilieren, Erstellen und Überprüfen von C++-Codebasis verwenden, sofern Sie auch über eine gültige Visual Studio-Lizenz (Community, Pro oder Enterprise) verfügen, die Sie aktiv zum Entwickeln dieser C++-Codebasis verwenden.", "walkthrough.windows.verify.compiler": "Überprüfen der Compilerinstallation", - "walkthrough.windows.open.command.prompt": "Öffnen Sie die {0}, indem Sie im Windows-Startmenü \"Developer\" eingeben.", - "walkthrough.windows.command.prompt.name1": "Developer-Eingabeaufforderung für VS", - "walkthrough.windows.check.install": "Überprüfen Sie die MSVC-Installation, indem Sie {0} in die Developer-Eingabeaufforderung für VS eingeben. Es sollten ein Copyrighthinweis mit der Version und der grundlegenden Nutzungsbeschreibung angezeigt werden.", + "walkthrough.windows.open.command.prompt": "Öffnen Sie die {0}, indem Sie im Windows-Startmenü „{1}“ eingeben.", + "walkthrough.windows.check.install": "Überprüfen Sie Ihre MSVC-Installation, indem Sie {0} in {1} eingeben. Es sollten ein Copyrighthinweis mit der Version und der grundlegenden Nutzungsbeschreibung angezeigt werden.", "walkthrough.windows.note2": "Hinweis", "walkthrough.windows.note2.text": "Um MSVC mithilfe der Befehlszeile oder mit VS Code zu verwenden, müssen Sie von einem {0} aus ausführen. Für eine normale Shell wie {1}, {2} oder die Windows-Eingabeaufforderung sind die erforderlichen PATH-Umgebungsvariablen nicht festgelegt.", - "walkthrough.windows.command.prompt.name2": "Developer-Eingabeaufforderung für VS", "walkthrough.windows.other.compilers": "Andere Compileroptionen", "walkthrough.windows.text3": "Wenn Sie Linux aus Windows verwenden, lesen Sie {0}. Oder Sie können {1}.", "walkthrough.windows.link.title1": "Verwenden von C++ und Windows-Subsystem für Linux (WSL) in VS Code", diff --git a/Extension/i18n/deu/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/deu/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index 83641b276..664c7f9a3 100644 --- a/Extension/i18n/deu/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/deu/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "Hinweis", "walkthrough.windows.note1.text": "Sie können das C++-Toolset aus Visual Studio Build Tools zusammen mit Visual Studio Code zum Kompilieren, Erstellen und Überprüfen von C++-Codebasis verwenden, sofern Sie auch über eine gültige Visual Studio-Lizenz (Community, Pro oder Enterprise) verfügen, die Sie aktiv zum Entwickeln dieser C++-Codebasis verwenden.", "walkthrough.windows.verify.compiler": "Überprüfen der Compilerinstallation", - "walkthrough.windows.open.command.prompt": "Öffnen Sie die {0}, indem Sie im Windows-Startmenü \"Developer\" eingeben.", - "walkthrough.windows.command.prompt.name1": "Developer-Eingabeaufforderung für VS", - "walkthrough.windows.check.install": "Überprüfen Sie die MSVC-Installation, indem Sie {0} in die Developer-Eingabeaufforderung für VS eingeben. Es sollten ein Copyrighthinweis mit der Version und der grundlegenden Nutzungsbeschreibung angezeigt werden.", + "walkthrough.windows.open.command.prompt": "Öffnen Sie die {0}, indem Sie im Windows-Startmenü „{1}“ eingeben.", + "walkthrough.windows.check.install": "Überprüfen Sie Ihre MSVC-Installation, indem Sie {0} in {1} eingeben. Es sollten ein Copyrighthinweis mit der Version und der grundlegenden Nutzungsbeschreibung angezeigt werden.", "walkthrough.windows.note2": "Hinweis", "walkthrough.windows.note2.text": "Um MSVC mithilfe der Befehlszeile oder mit VS Code zu verwenden, müssen Sie von einem {0} aus ausführen. Für eine normale Shell wie {1}, {2} oder die Windows-Eingabeaufforderung sind die erforderlichen PATH-Umgebungsvariablen nicht festgelegt.", - "walkthrough.windows.command.prompt.name2": "Developer-Eingabeaufforderung für VS", "walkthrough.windows.other.compilers": "Andere Compileroptionen", "walkthrough.windows.text3": "Wenn Sie Linux aus Windows verwenden, lesen Sie {0}. Oder Sie können {1}.", "walkthrough.windows.link.title1": "Verwenden von C++ und Windows-Subsystem für Linux (WSL) in VS Code", diff --git a/Extension/i18n/esn/c_cpp_properties.schema.json.i18n.json b/Extension/i18n/esn/c_cpp_properties.schema.json.i18n.json index 93d0a6b0d..3c1fdbb4f 100644 --- a/Extension/i18n/esn/c_cpp_properties.schema.json.i18n.json +++ b/Extension/i18n/esn/c_cpp_properties.schema.json.i18n.json @@ -9,7 +9,7 @@ "c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "Argumentos del compilador para modificar las inclusiones o definiciones usadas, por ejemplo, `-nostdinc++`, `-m32`, etc. Los argumentos que toman argumentos adicionales delimitados por espacios deben especificarse como argumentos independientes en la matriz; por ejemplo, para `--sysroot ` use `\"--sysroot\", \"\"`.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cStandard": "Versión del estándar del lenguaje C que se va a usar para IntelliSense. Nota: Los estándares GNU solo se usan para consultar el compilador de conjuntos a fin de obtener definiciones GNU e IntelliSense emulará la versión del estándar C equivalente.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cppStandard": "Versión del estándar del lenguaje C++ que se va a usar para IntelliSense. Nota: Los estándares GNU solo se usan para consultar el compilador de conjuntos a fin de obtener definiciones GNU e IntelliSense emulará la versión del estándar C++ equivalente.", - "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Ruta de acceso completa al archivo `compile_commands.json` del área de trabajo.", + "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Ruta de acceso completa o una lista de rutas de acceso completas a los archivos `compile_commands.json` para el área de trabajo.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.includePath": "Lista de rutas de acceso que el motor de IntelliSense debe usar al buscar los encabezados incluidos. La búsqueda en estas rutas de acceso no es recursiva. Especifique `**` para indicar una búsqueda recursiva. Por ejemplo, `${workspaceFolder}/**` buscará en todos los subdirectorios, mientras que `${workspaceFolder}` no lo hará. Normalmente, esto no debería incluir las inclusiones del sistema. Si desea que lo haga, establezca `C_Cpp.default.compilerPath`.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "Lista de rutas de acceso que el motor de IntelliSense necesita usar para buscar los encabezados incluidos de las plataformas Mac. Solo se admite en configuraciones para Mac.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.windowsSdkVersion": "Versión de la ruta de acceso de inclusión de Windows SDK que debe usarse en Windows; por ejemplo, `10.0.17134.0`.", diff --git a/Extension/i18n/esn/package.i18n.json b/Extension/i18n/esn/package.i18n.json index 8ba3441e3..bfabca2ca 100644 --- a/Extension/i18n/esn/package.i18n.json +++ b/Extension/i18n/esn/package.i18n.json @@ -77,7 +77,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Mostrar las acciones de código 'Borrar todo' (si hay varios tipos de problema), 'Borrar todos los ' (si hay varios problemas para el ) y 'Borrar este'", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "Si es `true`, el formato se ejecutará en las líneas modificadas por las acciones de código \"Corregir\".", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "Si es `true`, el análisis de código que usa `clang-tidy` se habilitará y se ejecutará automáticamente si `#C_Cpp.codeAnalysis.runAutomatically#` es `true` (valor predeterminado).", - "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Ruta de acceso completa del archivo ejecutable de `clang-tidy`. Si no se especifica y `clang-tidy` está disponible en la ruta de acceso del entorno, se usará este. Si no se encuentra en la ruta de acceso del entorno, se usará el `clang-tidy` incluido con la extensión.", + "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Ruta de acceso completa del archivo ejecutable de `clang-tidy`. Si no se especifica y `clang-tidy` está disponible en la ruta de acceso del entorno, se usa a menos que la versión incluida con la extensión sea más reciente. Si no se encuentra en la ruta de acceso del entorno, se usará el `clang-tidy` incluido con la extensión.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Especifica una configuración `clang-tidy` en formato YAML/JSON: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{clave: x, valor: y}]}`. Cuando el valor está vacío, `clang-tidy` intentará encontrar un archivo denominado `.clang-tidy` para cada archivo de origen en sus directorios primarios.", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "Especifica una configuración `clang-tidy` en formato YAML/JSON que se usará como reserva cuando no se establezca `#C_Cpp.codeAnalysis.clangTidy.config#` y no se encuentre ningún archivo `.clang-tidy`: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{clave: x, valor: y}]}`.", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "Expresión regular extendida (ERE) POSIX que coincide con los nombres de los encabezados de los que se van a generar diagnósticos. Siempre se muestran los diagnósticos del archivo principal de cada unidad de traducción. Se admite la variable `${workspaceFolder}` (y se usa como valor de reserva predeterminado si no existe ningún archivo `.clang-tidy`). Si esta opción no es `null` (vacía), invalida la opción `HeaderFilterRegex` en un archivo `.clang-tidy`, si existe.", @@ -175,7 +175,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.oneLiners.markdownDescription": "Un bloque de código completo que se escribe en una línea se mantiene en una línea, independientemente de los valores de la configuración `C_Cpp.vcFormat.newLine.*`.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription": "Cualquier código en el que la llave de apertura y de cierre se escriba en una línea se mantiene en una sola línea, independientemente de cualquiera de los valores de configuración de `C_Cpp.vcFormat.newLine.*`.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "Los bloques de código siempre tienen formato basado en los valores de la configuración `C_Cpp.vcFormat.newLine.*`.", - "c_cpp.configuration.clang_format_path.markdownDescription": "Ruta de acceso completa del archivo ejecutable de `clang-format`. Si no se especifica y `clang-format` está disponible en la ruta de acceso del entorno, se usará este. Si no se encuentra en la ruta de acceso del entorno, se usará el `clang-format` incluido con la extensión.", + "c_cpp.configuration.clang_format_path.markdownDescription": "Ruta de acceso completa del archivo ejecutable de `clang-format`. Si no se especifica y `clang-format` está disponible en la ruta de acceso del entorno, se usa a menos que la versión incluida con la extensión sea más reciente. Si no se encuentra en la ruta de acceso del entorno, se usará el `clang-format` incluido con la extensión.", "c_cpp.configuration.clang_format_style.markdownDescription": "Estilo de codificación. Actualmente, admite: `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`. Use `file` para cargar el estilo de un archivo `.clang-format` en el directorio actual o primario, o use `file:/.clang-format` para hacer referencia a una ruta de acceso específica. Use `{clave: valor, ...}` para establecer parámetros específicos. Por ejemplo, el estilo de `Visual Studio` es similar a: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "Nombre del estilo predefinido que se usa como elemento fallback en el caso de que se invoque a `clang-format` con el estilo `file` y no se encuentre el archivo `.clang-format`. Los valores posibles son `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`, `none` o usar `{clave: valor, ...}` para establecer parámetros específicos. Por ejemplo, el estilo `Visual Studio` es similar a: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "Si se establece, invalida el comportamiento de ordenación de inclusiones que determina el parámetro `SortIncludes`.", @@ -205,7 +205,7 @@ "c_cpp.configuration.exclusionPolicy.markdownDescription": "Indica a la extensión cuándo usar la configuración `#files.exclude#` (y `#C_Cpp.files.exclude#`) al determinar qué archivos se deben agregar a la base de datos de navegación de código mientras se recorren las rutas de acceso de la matriz `browse.path`. Si la configuración `#files.exclude#` solo contiene carpetas, entonces `checkFolders` es la mejor opción y aumentará la velocidad con la que la extensión puede inicializar la base de datos de navegación de código.", "c_cpp.configuration.exclusionPolicy.checkFolders.description": "Los filtros de exclusión solo se evaluarán una vez por carpeta (no se comprueban los archivos individuales).", "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Los filtros de exclusión se evaluarán con cada archivo y carpeta encontrados.", - "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Carácter usado como separador de ruta de acceso para los resultados de finalización automática de instrucciones `#include`.", + "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Carácter utilizado como separador de ruta de acceso para las rutas de acceso de usuario generadas.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "Si es `true`, la información sobre herramientas al mantener el puntero y autocompletar solo mostrará ciertas etiquetas de comentarios estructurados. De lo contrario, se muestran todos los comentarios.", "c_cpp.configuration.doxygen.generateOnType.description": "Controla si se va a insertar automáticamente el comentario de Doxygen después de escribir el estilo de comentario elegido.", "c_cpp.configuration.doxygen.generatedStyle.description": "La cadena de caracteres utilizada como línea de inicio del comentario de Doxygen.", @@ -253,6 +253,7 @@ "c_cpp.configuration.hover.description": "Si se deshabilita, el servidor de lenguaje ya no proporciona detalles al mantener el puntero.", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "Habilita los servicios de integración para el [administrador de dependencias de vcpkgs](https://aka.ms/vcpkg/).", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Agrega rutas de acceso de inclusión de `nan` y `node-addon-api` cuando sean dependencias.", + "c_cpp.configuration.copilotHover.markdownDescription": "Si está `deshabilitado`, no aparecerá información de Copilot al mantener el puntero.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Si es `true`, 'Cambiar nombre de símbolo' requerirá un identificador de C/C++ válido.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Si es `true`, la opción de autocompletar agregará `(` de forma automática después de las llamadas a funciones, en cuyo caso puede que también se agregue `)`, en función del valor de la configuración de `editor.autoClosingBrackets`.", "c_cpp.configuration.filesExclude.markdownDescription": "Configure patrones globales para excluir carpetas (y archivos si se cambia `#C_Cpp.exclusionPolicy#`). Son específicos de la extensión de C/C++ y se agregan a `#files.exclude#`, pero a diferencia de `#files.exclude#`, también se aplican a las rutas de acceso fuera de la carpeta del área de trabajo actual y no se quitan de la vista del Explorador. Obtenga información sobre [patrones globales](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", @@ -427,8 +428,8 @@ "c_cpp.walkthrough.create.cpp.file.title": "Crear un archivo de C++", "c_cpp.walkthrough.create.cpp.file.description": "[Abrir](command:toSide:workbench.action.files.openFile) o [crear](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) un archivo de C++. Asegúrese de guardarlo con la extensión \".cpp\", como \"helloworld.cpp\". \n[Crear un archivo de C++](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", "c_cpp.walkthrough.create.cpp.file.altText": "Abre un archivo de C++ o una carpeta con un proyecto de C++.", - "c_cpp.walkthrough.command.prompt.title": "Volver a iniciar desde el símbolo del sistema del desarrollador", - "c_cpp.walkthrough.command.prompt.description": "Al usar el compilador de Microsoft Visual Studio C++, la extensión de C++ requiere que inicies VS Code desde el símbolo del sistema del desarrollador. Sigue las instrucciones de la derecha para volver a iniciar.\n[Volver a cargar ventana](command:workbench.action.reloadWindow)", + "c_cpp.walkthrough.command.prompt.title": "Iniciar desde el Símbolo del sistema para desarrolladores para VS", + "c_cpp.walkthrough.command.prompt.description": "Al usar el compilador de Microsoft Visual Studio C++, la extensión de C++ requiere que inicie VS Code desde el símbolo del sistema del desarrollador para VS. Sigue las instrucciones de la derecha para volver a iniciar.\n[Volver a cargar ventana](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "Ejecución y depuración del archivo de C++", "c_cpp.walkthrough.run.debug.mac.description": "Abre el archivo de C++ y haz clic en el botón reproducir de la esquina superior derecha del editor o presiona F5 cuando estés en el archivo. Selecciona \"clang++ - Compilar y depurar archivo activo\" para ejecutarlo con el depurador.", "c_cpp.walkthrough.run.debug.linux.description": "Abre el archivo de C++ y haz clic en el botón reproducir de la esquina superior derecha del editor o presiona F5 cuando estés en el archivo. Selecciona \"g++ - Compilar y depurar archivo activo\" para ejecutarlo con el depurador.", diff --git a/Extension/i18n/esn/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/esn/src/Debugger/configurationProvider.i18n.json index 2069ef23e..f67ff8611 100644 --- a/Extension/i18n/esn/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/esn/src/Debugger/configurationProvider.i18n.json @@ -17,7 +17,7 @@ "pre.Launch.Task": "preLaunchTask: {0}", "debugger.path.not.exists": "No se encuentra el depurador {0}. Se ha omitido la configuración de depuración de {1}.", "build.and.debug.active.file": "Compilar y depurar el archivo activo", - "cl.exe.not.available": "La compilación y depuración de {0} solo se puede usar cuando VS Code se ejecuta desde el Símbolo del sistema para desarrolladores de Visual Studio.", + "cl.exe.not.available": "{0} solo se puede usar cuando VS Code se ejecuta desde {1}.", "lldb.find.failed": "Falta la dependencia \"{0}\" para el ejecutable lldb-mi.", "lldb.search.paths": "Buscado en:", "lldb.install.help": "Para resolver este problema, instale XCode mediante App Store de Apple o instale las herramientas de línea de comandos de XCode ejecutando \"{0}\" en una ventana de terminal.", diff --git a/Extension/i18n/esn/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json b/Extension/i18n/esn/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json new file mode 100644 index 000000000..fe8590759 --- /dev/null +++ b/Extension/i18n/esn/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "generate.copilot.description": "Generar resumen de Copilot", + "copilot.disclaimer": "El contenido generado por inteligencia artificial puede ser incorrecto." +} \ No newline at end of file diff --git a/Extension/i18n/esn/src/LanguageServer/configurations.i18n.json b/Extension/i18n/esn/src/LanguageServer/configurations.i18n.json index 2280d2d03..9e8abce37 100644 --- a/Extension/i18n/esn/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/esn/src/LanguageServer/configurations.i18n.json @@ -17,5 +17,6 @@ "path.is.not.a.directory": "La ruta de acceso no es un directorio: {0}", "duplicate.name": "{0} es un duplicado. El nombre de la configuración debe ser único.", "multiple.paths.not.allowed": "No se permiten varias rutas de acceso.", + "multiple.paths.should.be.separate.entries": "Varias rutas de acceso deben ser entradas separadas en una matriz.", "paths.are.not.directories": "Las rutas de acceso no son directorios: {0}" } \ No newline at end of file diff --git a/Extension/i18n/esn/src/LanguageServer/extension.i18n.json b/Extension/i18n/esn/src/LanguageServer/extension.i18n.json index a275bdca8..3ba65ca3e 100644 --- a/Extension/i18n/esn/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/esn/src/LanguageServer/extension.i18n.json @@ -19,5 +19,9 @@ "code.action.aborted": "No se pudo aplicar la corrección de análisis de código porque el documento ha cambiado.", "prerelease.message": "Hay disponible una versión preliminar de la extensión de C/C++. ¿Desea cambiar a ella?", "yes.button": "Sí", - "no.button": "No" + "no.button": "No", + "copilot.hover.unavailable": "El resumen de Copilot no está disponible.", + "copilot.hover.excluded": "El archivo que contiene la definición o declaración de este símbolo se ha excluido del uso con Copilot.", + "copilot.hover.unavailable.symbol": "El resumen de Copilot no está disponible para este símbolo.", + "copilot.hover.error": "Error al generar el resumen de Copilot." } \ No newline at end of file diff --git a/Extension/i18n/esn/src/common.i18n.json b/Extension/i18n/esn/src/common.i18n.json index 3e4fe1fe4..aebefd2f5 100644 --- a/Extension/i18n/esn/src/common.i18n.json +++ b/Extension/i18n/esn/src/common.i18n.json @@ -9,9 +9,9 @@ "refer.read.me": "Consulte {0} para obtener información de solución de problemas. Puede crear incidencias en {1}", "process.exited": "Proceso cerrado con el código {0}", "process.succeeded": "El proceso se ejecutó correctamente.", - "killing.process": "{0}de proceso de terminación", + "killing.process": "{0} de proceso de terminación", "warning.file.missing": "Advertencia: Falta el archivo {0} que se esperaba.", "warning.debugging.not.tested": "Advertencia: La depuración no se ha probado para esta plataforma.", "reload.workspace.for.changes": "Recargue el área de trabajo para que el cambio de configuración surta efecto.", "reload.string": "Volver a cargar" -} \ No newline at end of file +} diff --git a/Extension/i18n/esn/src/nativeStrings.i18n.json b/Extension/i18n/esn/src/nativeStrings.i18n.json index 401ca5151..b7ce01d84 100644 --- a/Extension/i18n/esn/src/nativeStrings.i18n.json +++ b/Extension/i18n/esn/src/nativeStrings.i18n.json @@ -159,8 +159,8 @@ "fallback_to_64_bit_mode2": "No se pudo consultar el compilador. Revirtiendo a intelliSenseMode de 64 bits.", "fallback_to_no_bitness": "No se pudo consultar el compilador. Revirtiendo para no establecer ningún valor de bits.", "intellisense_client_creation_aborted": "Se anuló la creación del cliente de IntelliSense: {0}", - "include_errors_config_provider_intellisense_disabled ": "Se han detectado errores de #include basados en la información proporcionada por configurationProvider. El analizador de etiquetas proporcionará las características de IntelliSense para esta unidad de traducción ({0}).", - "include_errors_config_provider_squiggles_disabled ": "Se han detectado errores de #include basados en la información proporcionada por configurationProvider. El subrayado ondulado está deshabilitado para esta unidad de traducción ({0}).", + "include_errors_config_provider_intellisense_disabled": "Se han detectado errores de #include basados en la información proporcionada por configurationProvider. El analizador de etiquetas proporcionará las características de IntelliSense para esta unidad de traducción ({0}).", + "include_errors_config_provider_squiggles_disabled": "Se han detectado errores de #include basados en la información proporcionada por configurationProvider. El subrayado ondulado está deshabilitado para esta unidad de traducción ({0}).", "preprocessor_keyword": "palabra clave del preprocesador", "c_keyword": "Palabra clave de C", "cpp_keyword": "Palabra clave de C++", @@ -316,5 +316,6 @@ "refactor_extract_xborder_jump": "Hay saltos entre el código seleccionado y el código que lo rodea.", "refactor_extract_missing_return": "En el código seleccionado, algunas rutas de control salen sin establecer el valor devuelto. Esto se admite solo para tipos de valor devuelto escalar, numérico y puntero.", "expand_selection": "Expandir selección (para habilitar 'Extraer a función')", - "file_not_found_in_path2": "\"{0}\" no se encuentra en compile_commands.json archivos. ''includePath'' de c_cpp_properties.json de la carpeta ''{1}'' se usará en su lugar para este archivo." + "file_not_found_in_path2": "\"{0}\" no se encuentra en compile_commands.json archivos. ''includePath'' de c_cpp_properties.json de la carpeta ''{1}'' se usará en su lugar para este archivo.", + "copilot_hover_link": "Generar resumen de Copilot" } \ No newline at end of file diff --git a/Extension/i18n/esn/ui/settings.html.i18n.json b/Extension/i18n/esn/ui/settings.html.i18n.json index 176cb3cab..8ab009181 100644 --- a/Extension/i18n/esn/ui/settings.html.i18n.json +++ b/Extension/i18n/esn/ui/settings.html.i18n.json @@ -55,7 +55,8 @@ "dot.config": "Dot Config", "dot.config.description": "Ruta de acceso a un archivo .config creado por el sistema Kconfig. El sistema Kconfig genera un archivo con todas las definiciones para compilar un proyecto. Algunos ejemplos de proyectos que usan el sistema Kconfig son Kernel Linux y NuttX RTOS.", "compile.commands": "Comandos de compilación", - "compile.commands.description": "Ruta de acceso completa al archivo {0} del área de trabajo. Se usarán las definiciones y rutas de acceso de inclusión detectadas en el archivo, en lugar de los valores establecidos para las opciones {1} y {2}. Si la base de datos de comandos de compilación no contiene una entrada para la unidad de traducción que se corresponda con el archivo que ha abierto en el editor, se mostrará un mensaje de advertencia y la extensión usará las opciones {3} y {4} en su lugar.", + "compile.commands.description": "Una lista de rutas de acceso a {0} archivos para el área de trabajo. Se usarán las definiciones y rutas de acceso de inclusión detectadas en estos archivos, en lugar de los valores establecidos para las opciones {1} y {2}. Si la base de datos de comandos de compilación no contiene una entrada para la unidad de traducción que se corresponda con el archivo que ha abierto en el editor, se mostrará un mensaje de advertencia y la extensión usará las opciones {3} y {4} en su lugar.", + "one.compile.commands.path.per.line": "Una ruta de acceso de comandos de compilación por línea.", "merge.configurations": "Combinar configuraciones", "merge.configurations.description": "Cuando {0} (o activado), la combinación incluye rutas de acceso, define e incluye forzadas con las de un proveedor de configuración.", "browse.path": "Examinar: ruta de acceso", diff --git a/Extension/i18n/esn/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json b/Extension/i18n/esn/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json index dcdef6b4f..9bad7c7ea 100644 --- a/Extension/i18n/esn/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json +++ b/Extension/i18n/esn/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "walkthrough.windows.title.open.dev.command.prompt": "Volver a iniciar con el símbolo del sistema del desarrollador", - "walkthrough.windows.background.dev.command.prompt": " Estás usando una máquina Windows con el compilador de MSVC, por lo que debes iniciar VS Code desde el símbolo del sistema del desarrollador para que todas las variables de entorno se establezcan correctamente. Para reiniciar con el símbolo del sistema del desarrollador:", - "walkthrough.open.command.prompt": "Para abrir el Símbolo del sistema para desarrolladores para VS, escribe \"desarrollador\" en el menú Inicio de Windows. Selecciona el Símbolo del sistema para desarrolladores para VS, que irá automáticamente a la carpeta abierta actual.", - "walkthrough.windows.press.f5": "Escribe \"code\" en el símbolo del sistema y presiona Entrar. Esto debería reiniciar VS Code y hacerte volver a este tutorial. " + "walkthrough.windows.title.open.dev.command.prompt": "Volver a iniciar con el {0}", + "walkthrough.windows.background.dev.command.prompt": " Está usando una máquina Windows con el compilador de MSVC, por lo que debe iniciar VS Code desde el {0} para que todas las variables de entorno se establezcan correctamente. Para volver a iniciar con el {1}:", + "walkthrough.open.command.prompt": "Abra {0} escribiendo '{1}' en el menú Inicio de Windows. Selecciona el {2}, que irá automáticamente a la carpeta abierta actual.", + "walkthrough.windows.press.f5": "Escriba '{0}' en el símbolo del sistema y pulse Entrar. Esto debería reiniciar VS Code y hacerte volver a este tutorial. " } \ No newline at end of file diff --git a/Extension/i18n/esn/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/esn/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index ade495068..03d8a4619 100644 --- a/Extension/i18n/esn/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/esn/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -16,10 +16,8 @@ "walkthrough.windows.link.install": "Instalar", "walkthrough.windows.note1": "Nota", "walkthrough.windows.note1.text": "Puede usar el conjunto de herramientas de C++ de Visual Studio Build Tools junto con Visual Studio Code para compilar y comprobar cualquier código base de C++, siempre que también tenga una licencia de Visual Studio válida (Community, Pro o Enterprise) que esté usando de manera activa para desarrollar ese código base de C++.", - "walkthrough.windows.open.command.prompt": "Abra el {0} al escribir \"developer\" en el menú Inicio de Windows.", - "walkthrough.windows.command.prompt.name1": "Símbolo del sistema para desarrolladores para VS", - "walkthrough.windows.check.install": "Compruebe la instalación de MSVC escribiendo {0} en el Símbolo del sistema para desarrolladores para VS. Debería ver un mensaje de copyright con la versión y la descripción de uso básica.", + "walkthrough.windows.open.command.prompt": "Abra {0} escribiendo '{1}' en el menú Inicio de Windows.", + "walkthrough.windows.check.install": "Compruebe la instalación de MSVC escribiendo {0} en {1}. Debería ver un mensaje de copyright con la versión y la descripción de uso básica.", "walkthrough.windows.note2": "Nota", - "walkthrough.windows.note2.text": "Para usar MSVC desde la línea de comandos o VS Code, debe ejecutar desde un {0}. Un shell normal como {1}, {2}, o el símbolo del sistema de Windows no tiene establecidas las variables de entorno de ruta de acceso necesarias.", - "walkthrough.windows.command.prompt.name2": "Símbolo del sistema para desarrolladores para VS" + "walkthrough.windows.note2.text": "Para usar MSVC desde la línea de comandos o VS Code, debe ejecutar desde un {0}. Un shell normal como {1}, {2}, o el símbolo del sistema de Windows no tiene establecidas las variables de entorno de ruta de acceso necesarias." } \ No newline at end of file diff --git a/Extension/i18n/esn/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/esn/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index 9268c8f1f..959cf54ec 100644 --- a/Extension/i18n/esn/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/esn/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "Nota", "walkthrough.windows.note1.text": "Puede usar el conjunto de herramientas de C++ de Visual Studio Build Tools junto con Visual Studio Code para compilar y comprobar cualquier código base de C++, siempre que también tenga una licencia de Visual Studio válida (Community, Pro o Enterprise) que esté usando de manera activa para desarrollar ese código base de C++.", "walkthrough.windows.verify.compiler": "Comprobación de la instalación del compilador", - "walkthrough.windows.open.command.prompt": "Abra el {0} al escribir \"developer\" en el menú Inicio de Windows.", - "walkthrough.windows.command.prompt.name1": "Símbolo del sistema para desarrolladores para VS", - "walkthrough.windows.check.install": "Compruebe la instalación de MSVC escribiendo {0} en el Símbolo del sistema para desarrolladores para VS. Debería ver un mensaje de copyright con la versión y la descripción de uso básica.", + "walkthrough.windows.open.command.prompt": "Abra {0} escribiendo '{1}' en el menú Inicio de Windows.", + "walkthrough.windows.check.install": "Compruebe la instalación de MSVC escribiendo {0} en {1}. Debería ver un mensaje de copyright con la versión y la descripción de uso básica.", "walkthrough.windows.note2": "Nota", "walkthrough.windows.note2.text": "Para usar MSVC desde la línea de comandos o VS Code, debe ejecutar desde un {0}. Un shell normal como {1}, {2}, o el símbolo del sistema de Windows no tiene establecidas las variables de entorno de ruta de acceso necesarias.", - "walkthrough.windows.command.prompt.name2": "Símbolo del sistema para desarrolladores para VS", "walkthrough.windows.other.compilers": "Otras opciones del compilador", "walkthrough.windows.text3": "Si su objetivo es Linux desde Windows, consulte {0}. O bien, consulte {1}.", "walkthrough.windows.link.title1": "Uso de C++ y Subsistema de Windows para Linux (WSL) en VS Code", diff --git a/Extension/i18n/esn/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/esn/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index 9268c8f1f..959cf54ec 100644 --- a/Extension/i18n/esn/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/esn/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "Nota", "walkthrough.windows.note1.text": "Puede usar el conjunto de herramientas de C++ de Visual Studio Build Tools junto con Visual Studio Code para compilar y comprobar cualquier código base de C++, siempre que también tenga una licencia de Visual Studio válida (Community, Pro o Enterprise) que esté usando de manera activa para desarrollar ese código base de C++.", "walkthrough.windows.verify.compiler": "Comprobación de la instalación del compilador", - "walkthrough.windows.open.command.prompt": "Abra el {0} al escribir \"developer\" en el menú Inicio de Windows.", - "walkthrough.windows.command.prompt.name1": "Símbolo del sistema para desarrolladores para VS", - "walkthrough.windows.check.install": "Compruebe la instalación de MSVC escribiendo {0} en el Símbolo del sistema para desarrolladores para VS. Debería ver un mensaje de copyright con la versión y la descripción de uso básica.", + "walkthrough.windows.open.command.prompt": "Abra {0} escribiendo '{1}' en el menú Inicio de Windows.", + "walkthrough.windows.check.install": "Compruebe la instalación de MSVC escribiendo {0} en {1}. Debería ver un mensaje de copyright con la versión y la descripción de uso básica.", "walkthrough.windows.note2": "Nota", "walkthrough.windows.note2.text": "Para usar MSVC desde la línea de comandos o VS Code, debe ejecutar desde un {0}. Un shell normal como {1}, {2}, o el símbolo del sistema de Windows no tiene establecidas las variables de entorno de ruta de acceso necesarias.", - "walkthrough.windows.command.prompt.name2": "Símbolo del sistema para desarrolladores para VS", "walkthrough.windows.other.compilers": "Otras opciones del compilador", "walkthrough.windows.text3": "Si su objetivo es Linux desde Windows, consulte {0}. O bien, consulte {1}.", "walkthrough.windows.link.title1": "Uso de C++ y Subsistema de Windows para Linux (WSL) en VS Code", diff --git a/Extension/i18n/fra/c_cpp_properties.schema.json.i18n.json b/Extension/i18n/fra/c_cpp_properties.schema.json.i18n.json index 9069cfc16..1334268ca 100644 --- a/Extension/i18n/fra/c_cpp_properties.schema.json.i18n.json +++ b/Extension/i18n/fra/c_cpp_properties.schema.json.i18n.json @@ -9,7 +9,7 @@ "c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "Arguments du compilateur pour modifier les include ou defines utilisés, par exemple `-nostdinc++`, `-m32`, etc. Les arguments qui acceptent des arguments supplémentaires délimités par des espaces doivent être entrés en tant qu’arguments distincts dans le tableau, par exemple pour `--sysroot ` use `\"--sysroot\", \"\"`.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cStandard": "Version de la norme de langage C à utiliser pour IntelliSense. Remarque : Les normes GNU sont utilisées uniquement pour interroger le compilateur défini afin d'obtenir les définitions GNU. IntelliSense émule la version C normalisée équivalente.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cppStandard": "Version de la norme de langage C++ à utiliser pour IntelliSense. Remarque : Les normes GNU sont utilisées uniquement pour interroger le compilateur défini afin d'obtenir les définitions GNU. IntelliSense émule la version C++ normalisée équivalente.", - "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Chemin complet du fichier `compile_commands.json` pour l'espace de travail.", + "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Chemin d’accès complet ou liste des chemins d’accès complets aux fichiers `compile_commands.json` pour l’espace de travail.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.includePath": "Liste des chemins d’accès à utiliser par le moteur IntelliSense lors de la recherche d’en-têtes inclus. La recherche sur ces chemins d’accès n’est pas récursive. Spécifiez `**` pour indiquer une recherche récursive. Par exemple, `${workspaceFolder}/**` effectue une recherche dans tous les sous-répertoires, contrairement à `${workspaceFolder}`. En règle générale, cela ne doit pas inclure les éléments système ; au lieu de cela, définissez `C_Cpp.default.compilerPath`.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "Liste de chemins que le moteur IntelliSense doit utiliser pour la recherche des en-têtes inclus dans les frameworks Mac. Prise en charge uniquement sur la configuration Mac.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.windowsSdkVersion": "Version du chemin d'inclusion du SDK Windows à utiliser sur Windows, par ex., `10.0.17134.0`.", diff --git a/Extension/i18n/fra/package.i18n.json b/Extension/i18n/fra/package.i18n.json index 2e83f529c..7bbb1097a 100644 --- a/Extension/i18n/fra/package.i18n.json +++ b/Extension/i18n/fra/package.i18n.json @@ -77,7 +77,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Afficher l’option « Effacer tout » (s’il existe plusieurs types de problèmes), « Effacer tous les » (s’il existe plusieurs problèmes pour le ) et les actions de code « Effacer ceci »", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "Si la valeur est `true`, la mise en forme est exécutée sur les lignes modifiées par les actions de code 'Corriger'.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "Si la valeur est `true`, l’analyse du code à l’aide de `clang-tidy` est activée et s’exécute après l’ouverture ou l’enregistrement d’un fichier si `#C_Cpp.codeAnalysis.runAutomatically#` a la valeur `true` (valeur par défaut).", - "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Le chemin complet de l'exécutable `clang-tidy`. S'il n'est pas spécifié, et que `clang-tidy` est disponible dans le chemin de l'environnement, il sera utilisé. S'il n'est pas trouvé dans le chemin de l'environnement, le `clang-tidy` fourni avec l'extension sera utilisé.", + "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Le chemin d’accès complet de l’exécutable `clang-tidy`. S’il n’est pas spécifié et que `clang-tidy` est disponible dans le chemin d’accès à l’environnement, il est utilisé sauf si la version fournie avec l’extension est plus récente. S’il est introuvable dans le chemin d’accès à l’environnement, le `clang-tidy` fourni avec l’extension sera utilisé.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Spécifie une configuration `clang-tidy` au format YAML/JSON : `{Checks: '-*,clang-analyzer-*', CheckOptions: [{clé : x, valeur : y}]}`. Quand la valeur est vide, `clang-tidy` tente de trouver un fichier nommé `.clang-tidy` pour chaque fichier source dans ses répertoires parents.", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "Spécifie une configuration `clang-tidy` au format YAML/JSON à utiliser comme secours quand `#C_Cpp.codeAnalysis.clangTidy.config#` n’est pas défini et qu’aucun fichier `.clang-tidy` n’est trouvé : `{Checks: '-*,clang-analyzer-*', CheckOptions: [{clé : x, valeur : y}]}`.", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "Expression régulière étendue POSIX (ERE) correspondant aux noms des en-têtes à partir des diagnostics de sortie. Les diagnostics du fichier principal de chaque unité de traduction sont toujours affichés. La variable `${workspaceFolder}` est prise en charge (et est utilisée comme valeur de secours par défaut si aucun fichier `.clang-tidy` n’existe). Si cette option n’est pas `null` (vide), elle remplace l’option `HeaderFilterRegex` dans un fichier `.clang-tidy`, le cas échéant.", @@ -175,7 +175,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.oneLiners.markdownDescription": "Un bloc de code complet qui est entré sur une ligne est maintenu sur une ligne, quelles que soient les valeurs des paramètres `C_Cpp.vcFormat.newLine.*`.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription": "Tout code où les accolades ouvrantes et fermantes sont saisies sur une ligne est maintenu sur une ligne, quelles que soient les valeurs des paramètres `C_Cpp.vcFormat.newLine.*`.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "Les blocs de code sont toujours mis en forme en fonction des valeurs des paramètres `C_Cpp.vcFormat.newLine.*`.", - "c_cpp.configuration.clang_format_path.markdownDescription": "Le chemin complet de l'exécutable `clang-format`. S'il n'est pas spécifié, et que `clang-format` est disponible dans le chemin de l'environnement, il est utilisé. S'il n'est pas trouvé dans le chemin de l'environnement, le `clang-format` fourni avec l'extension sera utilisé.", + "c_cpp.configuration.clang_format_path.markdownDescription": "Le chemin d’accès complet de l’exécutable `clang-format`. S’il n’est pas spécifié et que `clang-format` est disponible dans le chemin d’accès à l’environnement, il est utilisé sauf si la version fournie avec l’extension est plus récente. S’il est introuvable dans le chemin d’accès à l’environnement, le `clang-format` fourni avec l’extension sera utilisé.", "c_cpp.configuration.clang_format_style.markdownDescription": "Le style de codage prend actuellement en charge : `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`. Utilisez `file` pour charger le style à partir d’un fichier `.clang-format` dans le répertoire actuel ou parent, ou utilisez `file:/.clang-format`pour référencer un chemin d'accès spécifique. Utiliser `{clé : valeur, ...}` pour définir des paramètres spécifiques. Par exemple, le style `Visual Studio` est similaire à : `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "Nom du style prédéfini utilisé comme secours dans le cas où `clang-format` est appelé avec le style `file`, mais le fichier `.clang-format` est introuvable. Les valeurs possibles sont `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`, `none` ou utilisez `{clé : valeur, ...}` pour définir des paramètres spécifiques. Par exemple, le style `Visual Studio` est similaire à : `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "S’il est défini, remplace le comportement de tri Include déterminé par le paramètre `SortIncludes`.", @@ -205,7 +205,7 @@ "c_cpp.configuration.exclusionPolicy.markdownDescription": "Indique à l’extension quand utiliser le paramètre `#files.exclude#` (et `#C_Cpp.files.exclude#`) lors de la détermination des fichiers qui doivent être ajoutés à la base de données de navigation du code tout en parcourant les chemins d’accès dans le tableau `browse.path`. Si votre paramètre `#files.exclude#` contient uniquement des dossiers, `checkFolders` est le meilleur choix et augmente la vitesse à laquelle l’extension peut initialiser la base de données de navigation du code.", "c_cpp.configuration.exclusionPolicy.checkFolders.description": "Les filtres d’exclusion ne seront évalués qu’une seule fois par dossier (les fichiers individuels ne sont pas vérifiés).", "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Les filtres d'exclusion seront évalués pour chaque fichier et dossier rencontré.", - "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Caractère utilisé comme séparateur de chemin dans les résultats d'autocomplétion de `#include`.", + "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Caractère utilisé comme séparateur de chemins d’accès pour les chemins d’utilisateur générés.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "Si la valeur est `true`, les info-bulles de pointage et d'autocomplétion affichent uniquement certaines étiquettes de commentaires structurés. Sinon, tous les commentaires sont affichés.", "c_cpp.configuration.doxygen.generateOnType.description": "Contrôle s’il faut insérer automatiquement le commentaire Doxygen après avoir tapé le style de commentaire choisi.", "c_cpp.configuration.doxygen.generatedStyle.description": "Chaîne de caractères utilisée comme ligne de départ du commentaire Doxygen.", @@ -253,6 +253,7 @@ "c_cpp.configuration.hover.description": "Si cette option est désactivée, les détails du pointage ne sont plus fournis par le serveur de langage.", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "Activez les services d'intégration pour le [gestionnaire de dépendances vcpkg](https://aka.ms/vcpkg/).", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Ajouter les chemins d'inclusion de `nan` et `node-addon-api` quand ils sont des dépendances.", + "c_cpp.configuration.copilotHover.markdownDescription": "Si l’option est `disabled`, aucune information Copilot n’apparaîtra dans Hover.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Si `true`, 'Renommer le symbole' exigera un identifiant C/C++ valide.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Si la valeur est `true`, l'autocomplétion ajoute automatiquement `(` après les appels de fonction. Dans ce cas `)` peut également être ajouté, en fonction de la valeur du paramètre `#editor.autoClosingBrackets#`.", "c_cpp.configuration.filesExclude.markdownDescription": "Configurer les modèles globaux pour exclure les dossiers (et les fichiers si `#C_Cpp.exclusionPolicy#` est modifié). Ils sont spécifiques à l’extension C/C++ et s’ajoutent à `#files.exclude#`, mais contrairement à `#files.exclude#`, ils s’appliquent également aux chemins en dehors du dossier de l’espace de travail actuel et ne sont pas supprimés de la vue de l’explorateur. En savoir plus sur les [motifs globaux](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", @@ -422,13 +423,13 @@ "c_cpp.walkthrough.activating.description": "Activation de l’extension C++ pour déterminer si votre environnement C++ a été configuré.\nActivation de l’extension...", "c_cpp.walkthrough.no.compilers.windows.description": "Nous n’avons pas trouvé de compilateur C++ sur votre machine, ce qui est nécessaire pour utiliser l’extension C++. Suivez les instructions de droite pour en installer un, puis cliquez sur « Rechercher mon nouveau compilateur » ci-dessous.\n[Rechercher mon nouveau compilateur](command:C_Cpp.RescanCompilers ?%22walkthrough%22)", "c_cpp.walkthrough.no.compilers.description": "Nous n’avons pas trouvé de compilateur C++ sur votre machine, ce qui est nécessaire pour utiliser l’extension C++. Sélectionnez « Installer un compilateur C++ » pour installer un compilateur pour vous ou suivez les instructions à droite pour en installer un, puis cliquez sur « Rechercher mon nouveau compilateur » ci-dessous.\n[Installer un compilateur C++](command:C_Cpp.InstallCompiler ?%22walkthrough%22)\n[Rechercher mon nouveau compilateur](command:C_Cpp.RescanCompilers ?%22walkthrough%22)", - "c_cpp.walkthrough.compilers.found.description": "L’extension C++ fonctionne avec un compilateur C++. Sélectionnez-en un parmi ceux déjà présents sur votre ordinateur en cliquant sur le bouton ci-dessous.\n[Sélectionner mon compilateur par défaut](command:C_Cpp.SelectIntelliSenseConfiguration ?%22walkthrough%22)", + "c_cpp.walkthrough.compilers.found.description": "L’extension C++ fonctionne avec un compilateur C++. Sélectionnez-en un parmi ceux déjà présents sur votre ordinateur en cliquant sur le bouton ci-dessous.\n[Sélectionner mon compilateur par défaut](command:C_Cpp.SelectIntelliSenseConfiguration?%22walkthrough%22)", "c_cpp.walkthrough.compilers.found.altText": "Image montrant la sélection d’une sélection rapide de compilateur par défaut et la liste des compilateurs trouvés sur l’ordinateur des utilisateurs, dont l’un est sélectionné.", "c_cpp.walkthrough.create.cpp.file.title": "Créer un fichier C++", "c_cpp.walkthrough.create.cpp.file.description": "[Ouvrir](command:toSide:workbench.action.files.openFile) ou [créer](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) un fichier C++. Veillez à l’enregistrer avec l’extension « .cpp », telle que « helloworld.cpp ». \n[Créer un fichier C++](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", "c_cpp.walkthrough.create.cpp.file.altText": "Ouvrez un fichier C++ ou un dossier avec un projet C++.", - "c_cpp.walkthrough.command.prompt.title": "Lancer à partir de l’invite de commandes développeur", - "c_cpp.walkthrough.command.prompt.description": "Quand vous utilisez le compilateur Microsoft Visual Studio C++, l’extension C++ vous demande de lancer VS Code à partir de l’invite de commandes du développeur. Suivez les instructions à droite pour relancer.\n[Recharger la fenêtre](command:workbench.action.reloadWindow)", + "c_cpp.walkthrough.command.prompt.title": "Lancer à partir du Invite de commandes développeur pour VS", + "c_cpp.walkthrough.command.prompt.description": "Quand vous utilisez le compilateur Microsoft Visual Studio C++, l’extension C++ vous demande de lancer VS Code à partir de l’invite de commandes développeur pour VS. Suivez les instructions à droite pour relancer.\n[Recharger la fenêtre](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "Exécuter et déboguer votre fichier C++", "c_cpp.walkthrough.run.debug.mac.description": "Permet d’ouvrir votre fichier C++ et de cliquer sur le bouton lecture dans le coin supérieur droit de l’éditeur, ou d’appuyer sur F5 lorsque vous êtes sur le fichier. Vous pouvez sélectionner « clang++ – Générer et déboguer le fichier actif » pour l’exécuter avec le débogueur.", "c_cpp.walkthrough.run.debug.linux.description": "Permet d’ouvrir votre fichier C++ et de cliquer sur le bouton lecture dans le coin supérieur droit de l’éditeur, ou d’appuyer sur F5 lorsque vous êtes sur le fichier. Vous pouvez sélectionner « g++ – Générer et déboguer le fichier actif » pour l’exécuter avec le débogueur.", diff --git a/Extension/i18n/fra/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/fra/src/Debugger/configurationProvider.i18n.json index b57954e36..24c801893 100644 --- a/Extension/i18n/fra/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/fra/src/Debugger/configurationProvider.i18n.json @@ -17,7 +17,7 @@ "pre.Launch.Task": "tâche de prélancement : {0}", "debugger.path.not.exists": "Impossible de trouver le débogueur {0}. La configuration de débogage pour {1} est ignorée.", "build.and.debug.active.file": "Générer et déboguer le fichier actif", - "cl.exe.not.available": "La génération et le débogage de {0} peuvent être utilisés uniquement quand VS Code est exécuté à partir de l'invite de commandes développeur pour VS.", + "cl.exe.not.available": "{0} est utilisable uniquement lorsque VS Code est exécuté à partir du {1}.", "lldb.find.failed": "La dépendance '{0}' est manquante pour l'exécutable lldb-mi.", "lldb.search.paths": "Recherche effectuée dans :", "lldb.install.help": "Pour résoudre ce problème, installez XCode via l'Apple App Store ou installez les outils en ligne de commande XCode en exécutant '{0}' dans une fenêtre de terminal.", diff --git a/Extension/i18n/fra/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json b/Extension/i18n/fra/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json new file mode 100644 index 000000000..97fe78f96 --- /dev/null +++ b/Extension/i18n/fra/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "generate.copilot.description": "Générer un résumé de Copilot", + "copilot.disclaimer": "Il est possible que le contenu généré par IA soit incorrect." +} \ No newline at end of file diff --git a/Extension/i18n/fra/src/LanguageServer/configurations.i18n.json b/Extension/i18n/fra/src/LanguageServer/configurations.i18n.json index 8de3546cc..c3994eb97 100644 --- a/Extension/i18n/fra/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/fra/src/LanguageServer/configurations.i18n.json @@ -17,5 +17,6 @@ "path.is.not.a.directory": "Le chemin n'est pas un répertoire : {0}", "duplicate.name": "{0} est dupliqué. Le nom de configuration doit être unique.", "multiple.paths.not.allowed": "Il est interdit d’utiliser plusieurs chemin d’accès.", + "multiple.paths.should.be.separate.entries": "Plusieurs chemins d’accès doivent être des entrées distinctes dans un tableau.", "paths.are.not.directories": "Les chemins d’accès ne sont pas des répertoires : {0}" } \ No newline at end of file diff --git a/Extension/i18n/fra/src/LanguageServer/extension.i18n.json b/Extension/i18n/fra/src/LanguageServer/extension.i18n.json index 8fe95f27f..168c6f64b 100644 --- a/Extension/i18n/fra/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/fra/src/LanguageServer/extension.i18n.json @@ -19,5 +19,9 @@ "code.action.aborted": "Impossible d’appliquer le correctif d’analyse du code, car le document a changé.", "prerelease.message": "Une version préliminaire de l’extension C/C++ est disponible. Voulez-vous basculer vers celui-ci ?", "yes.button": "Oui", - "no.button": "Non" + "no.button": "Non", + "copilot.hover.unavailable": "Le résumé de Copilot n’est pas disponible.", + "copilot.hover.excluded": "Le fichier contenant la définition ou la déclaration de ce symbole a été exclu de l’utilisation avec Copilot.", + "copilot.hover.unavailable.symbol": "Le résumé Copilot n’est pas disponible pour ce symbole.", + "copilot.hover.error": "Une erreur s’est produite lors de la génération du résumé Copilot." } \ No newline at end of file diff --git a/Extension/i18n/fra/src/nativeStrings.i18n.json b/Extension/i18n/fra/src/nativeStrings.i18n.json index 1ccfca5d6..b6af549a6 100644 --- a/Extension/i18n/fra/src/nativeStrings.i18n.json +++ b/Extension/i18n/fra/src/nativeStrings.i18n.json @@ -159,8 +159,8 @@ "fallback_to_64_bit_mode2": "Échec de l'interrogation du compilateur. Retour au intelliSenseMode 64 bits.", "fallback_to_no_bitness": "Échec de l'interrogation du compilateur. Retour au mode sans nombre de bits.", "intellisense_client_creation_aborted": "Abandon de la création du client IntelliSense : {0}", - "include_errors_config_provider_intellisense_disabled ": "Erreurs #include détectées d'après les informations fournies par le paramètre configurationProvider. Les fonctionnalités IntelliSense de cette unité de traduction ({0}) sont fournies par l'analyseur de balises.", - "include_errors_config_provider_squiggles_disabled ": "Erreurs #include détectées d'après les informations fournies par le paramètre configurationProvider. Les tildes sont désactivés pour cette unité de traduction ({0}).", + "include_errors_config_provider_intellisense_disabled": "Erreurs #include détectées d'après les informations fournies par le paramètre configurationProvider. Les fonctionnalités IntelliSense de cette unité de traduction ({0}) sont fournies par l'analyseur de balises.", + "include_errors_config_provider_squiggles_disabled": "Erreurs #include détectées d'après les informations fournies par le paramètre configurationProvider. Les tildes sont désactivés pour cette unité de traduction ({0}).", "preprocessor_keyword": "mot clé de préprocesseur", "c_keyword": "Mot clé C", "cpp_keyword": "Mot clé C++", @@ -316,5 +316,6 @@ "refactor_extract_xborder_jump": "Des sauts entre le code sélectionné et le code environnant sont présents.", "refactor_extract_missing_return": "Dans le code sélectionné, certains chemins de contrôle s'arrêtent sans définir la valeur renvoyée. Cela n'est pris en charge que pour les types de retour scalaire, numérique et pointeur.", "expand_selection": "Développer la sélection (pour activer ' Extraire vers la fonction')", - "file_not_found_in_path2": "« {0} » n'a pas été trouvé dans les fichiers compile_commands.json. « includePath » from c_cpp_properties.json in folder « {1} » sera utilisé pour ce fichier à la place." + "file_not_found_in_path2": "« {0} » n'a pas été trouvé dans les fichiers compile_commands.json. « includePath » from c_cpp_properties.json in folder « {1} » sera utilisé pour ce fichier à la place.", + "copilot_hover_link": "Générer un résumé de Copilot" } \ No newline at end of file diff --git a/Extension/i18n/fra/ui/settings.html.i18n.json b/Extension/i18n/fra/ui/settings.html.i18n.json index 807cbdbef..dfa039354 100644 --- a/Extension/i18n/fra/ui/settings.html.i18n.json +++ b/Extension/i18n/fra/ui/settings.html.i18n.json @@ -55,7 +55,8 @@ "dot.config": "Dot Config", "dot.config.description": "Chemin d’accès à un fichier .config créé par le système Kconfig. Le système Kconfig génère un fichier avec toutes les définitions pour générer un projet. Les exemples de projets qui utilisent le système Kconfig sont le noyau Linux et NuttX RTOS.", "compile.commands": "Commandes de compilation", - "compile.commands.description": "Chemin complet du fichier {0} pour l'espace de travail. Les chemins d'inclusion et les définitions découverts dans ce fichier sont utilisés à la place des valeurs définies pour les paramètres {1} et {2}. Si la base de données des commandes de compilation n'a pas d'entrée pour l'unité de traduction qui correspond au fichier que vous avez ouvert dans l'éditeur, un message d'avertissement s'affiche et l'extension utilise les paramètres {3} et {4} à la place.", + "compile.commands.description": "Une liste de chemins d'accès aux fichiers {0} de l'espace de travail. Les chemins d'inclusion et les définitions découverts dans ces fichiers seront utilisés à la place des valeurs définies pour les paramètres {1} et {2}. Si la base de données des commandes de compilation ne contient pas d'entrée pour l'unité de traduction correspondant au fichier que vous avez ouvert dans l'éditeur, un message d'avertissement apparaîtra et l'extension utilisera les paramètres {3} et {4} à la place.", + "one.compile.commands.path.per.line": "Un chemin d’accès des commandes de compilation par ligne.", "merge.configurations": "Fusionner les configurations", "merge.configurations.description": "Lorsque {0} (ou activé), la fusion inclut des chemins d’accès, des définitions et des éléments forcés avec ceux d’un fournisseur de configuration.", "browse.path": "Parcourir : chemin", diff --git a/Extension/i18n/fra/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json b/Extension/i18n/fra/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json index 27adc7c4d..9c3cf0391 100644 --- a/Extension/i18n/fra/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json +++ b/Extension/i18n/fra/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "walkthrough.windows.title.open.dev.command.prompt": "Relancer à l’aide de l’invite de commandes développeur", - "walkthrough.windows.background.dev.command.prompt": " Vous utilisez une machine Windows avec le compilateur MSVC. Vous devez donc démarrer VS Code à partir de l’invite de commandes développeur pour que toutes les variables d’environnement soient correctement définies. Pour relancer à l’aide de l’invite de commandes développeur :", - "walkthrough.open.command.prompt": "Ouvrez l’Invite de commandes développeur pour VS en tapant « développeur » dans le menu Démarrer Windows. Sélectionnez l’Invite de commandes développeur pour VS, qui naviguera automatiquement vers votre dossier ouvert actuel.", - "walkthrough.windows.press.f5": "Tapez « code » dans l’invite de commandes et appuyez sur Entrée. Vous devriez relancer VS Code et revenir à cette procédure pas à pas. " + "walkthrough.windows.title.open.dev.command.prompt": "Relancer à l’aide du {0}", + "walkthrough.windows.background.dev.command.prompt": " Vous utilisez une machine Windows avec le compilateur MSVC. Vous devez donc démarrer VS Code à partir de l’{0} pour que toutes les variables d’environnement soient correctement définies. Pour relancer en tirant parti de l’{1} :", + "walkthrough.open.command.prompt": "Ouvrez le {0} en tapant « {1} » dans le menu Démarrer de Windows. Sélectionnez le {2}, qui accède automatiquement à votre dossier ouvert actuel.", + "walkthrough.windows.press.f5": "Tapez « {0} » dans l’invite de commandes et appuyez sur Entrée. Vous devriez relancer VS Code et revenir à cette procédure pas à pas. " } \ No newline at end of file diff --git a/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index 5900f2c40..ce51fb14c 100644 --- a/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -16,10 +16,8 @@ "walkthrough.windows.link.install": "Installer", "walkthrough.windows.note1": "Remarque", "walkthrough.windows.note1.text": "Vous pouvez utiliser l’ensemble d’outils C++ à partir de Visual Studio Build Tools avec Visual Studio Code pour compiler, générer et vérifier n’importe quelle base de code C++, tant que vous disposez également d’une licence Visual Studio valide (Community, Pro ou Enterprise) que vous utilisez activement pour développer cette base de code C++.", - "walkthrough.windows.open.command.prompt": "Ouvrez le {0} en tapant « développeur » dans le menu Démarrer de Windows.", - "walkthrough.windows.command.prompt.name1": "Invite de commandes Developer pour VS", - "walkthrough.windows.check.install": "Vérifiez l’installation de votre MSVC en tapant {0} dans la Invite de commandes développeur pour VS. Vous devez voir un message de Copyright avec la version et la description de l’utilisation de base.", + "walkthrough.windows.open.command.prompt": "Ouvrez le {0} en tapant « {1} » dans le menu Démarrer de Windows.", + "walkthrough.windows.check.install": "Vérifiez votre installation MSVC en tapant {0} dans le {1}. Vous devez voir un message de Copyright avec la version et la description de l’utilisation de base.", "walkthrough.windows.note2": "Remarque", - "walkthrough.windows.note2.text": "Pour utiliser MSVC à partir de la ligne de commande ou VS Code, vous devez exécuter à partir d’un {0}. Un interpréteur de commandes ordinaire, tel que {1}, {2} ou l’invite de commandes Windows, n’a pas les variables d’environnement de chemin d’accès nécessaires définies.", - "walkthrough.windows.command.prompt.name2": "Invite de commandes développeur pour VS" + "walkthrough.windows.note2.text": "Pour utiliser MSVC à partir de la ligne de commande ou VS Code, vous devez exécuter à partir d’un {0}. Un interpréteur de commandes ordinaire, tel que {1}, {2} ou l’invite de commandes Windows, n’a pas les variables d’environnement de chemin d’accès nécessaires définies." } \ No newline at end of file diff --git a/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index 41da8b169..2a025d213 100644 --- a/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "Remarque", "walkthrough.windows.note1.text": "Vous pouvez utiliser l’ensemble d’outils C++ à partir de Visual Studio Build Tools avec Visual Studio Code pour compiler, générer et vérifier n’importe quelle base de code C++, tant que vous disposez également d’une licence Visual Studio valide (Community, Pro ou Enterprise) que vous utilisez activement pour développer cette base de code C++.", "walkthrough.windows.verify.compiler": "Vérification de l’installation du compilateur", - "walkthrough.windows.open.command.prompt": "Ouvrez le {0} en tapant « développeur » dans le menu Démarrer de Windows.", - "walkthrough.windows.command.prompt.name1": "Invite de commandes Developer pour VS", - "walkthrough.windows.check.install": "Vérifiez l’installation de votre MSVC en tapant {0} dans la Invite de commandes développeur pour VS. Vous devez voir un message de Copyright avec la version et la description de l’utilisation de base.", + "walkthrough.windows.open.command.prompt": "Ouvrez le {0} en tapant « {1} » dans le menu Démarrer de Windows.", + "walkthrough.windows.check.install": "Vérifiez votre installation MSVC en tapant {0} dans le {1}. Vous devez voir un message de Copyright avec la version et la description de l’utilisation de base.", "walkthrough.windows.note2": "Remarque", "walkthrough.windows.note2.text": "Pour utiliser MSVC à partir de la ligne de commande ou VS Code, vous devez exécuter à partir d’un {0}. Un interpréteur de commandes ordinaire, tel que {1}, {2} ou l’invite de commandes Windows, n’a pas les variables d’environnement de chemin d’accès nécessaires définies.", - "walkthrough.windows.command.prompt.name2": "Invite de commandes développeur pour VS", "walkthrough.windows.other.compilers": "Autres options du compilateur", "walkthrough.windows.text3": "Si vous ciblez Linux à partir de Windows, consultez {0}. Vous pouvez également {1}.", "walkthrough.windows.link.title1": "Utilisation de C++ et du Sous-système Windows pour Linux (WSL) dans VS Code", diff --git a/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index 41da8b169..2a025d213 100644 --- a/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/fra/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "Remarque", "walkthrough.windows.note1.text": "Vous pouvez utiliser l’ensemble d’outils C++ à partir de Visual Studio Build Tools avec Visual Studio Code pour compiler, générer et vérifier n’importe quelle base de code C++, tant que vous disposez également d’une licence Visual Studio valide (Community, Pro ou Enterprise) que vous utilisez activement pour développer cette base de code C++.", "walkthrough.windows.verify.compiler": "Vérification de l’installation du compilateur", - "walkthrough.windows.open.command.prompt": "Ouvrez le {0} en tapant « développeur » dans le menu Démarrer de Windows.", - "walkthrough.windows.command.prompt.name1": "Invite de commandes Developer pour VS", - "walkthrough.windows.check.install": "Vérifiez l’installation de votre MSVC en tapant {0} dans la Invite de commandes développeur pour VS. Vous devez voir un message de Copyright avec la version et la description de l’utilisation de base.", + "walkthrough.windows.open.command.prompt": "Ouvrez le {0} en tapant « {1} » dans le menu Démarrer de Windows.", + "walkthrough.windows.check.install": "Vérifiez votre installation MSVC en tapant {0} dans le {1}. Vous devez voir un message de Copyright avec la version et la description de l’utilisation de base.", "walkthrough.windows.note2": "Remarque", "walkthrough.windows.note2.text": "Pour utiliser MSVC à partir de la ligne de commande ou VS Code, vous devez exécuter à partir d’un {0}. Un interpréteur de commandes ordinaire, tel que {1}, {2} ou l’invite de commandes Windows, n’a pas les variables d’environnement de chemin d’accès nécessaires définies.", - "walkthrough.windows.command.prompt.name2": "Invite de commandes développeur pour VS", "walkthrough.windows.other.compilers": "Autres options du compilateur", "walkthrough.windows.text3": "Si vous ciblez Linux à partir de Windows, consultez {0}. Vous pouvez également {1}.", "walkthrough.windows.link.title1": "Utilisation de C++ et du Sous-système Windows pour Linux (WSL) dans VS Code", diff --git a/Extension/i18n/ita/c_cpp_properties.schema.json.i18n.json b/Extension/i18n/ita/c_cpp_properties.schema.json.i18n.json index 35aa537ba..04d4bfd78 100644 --- a/Extension/i18n/ita/c_cpp_properties.schema.json.i18n.json +++ b/Extension/i18n/ita/c_cpp_properties.schema.json.i18n.json @@ -9,7 +9,7 @@ "c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "Argomenti del compilatore per modificare le inclusioni o le definizioni usate, ad esempio `-nostdinc++`, `-m32` e così via. Gli argomenti che utilizzano argomenti delimitati da spazi aggiuntivi devono essere immessi come argomenti separati nella matrice, ad esempio per `--sysroot ` usare `\"--sysroot\", \"\"`.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cStandard": "Versione dello standard del linguaggio C da usare per IntelliSense. Nota: gli standard GNU vengono usati solo per eseguire query sul compilatore impostato per ottenere le definizioni di GNU. IntelliSense emulerà la versione dello standard di C equivalente.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cppStandard": "Versione dello standard del linguaggio C++ da usare per IntelliSense. Nota: gli standard GNU vengono usati solo per eseguire query sul compilatore impostato per ottenere le definizioni di GNU. IntelliSense emulerà la versione dello standard di C++ equivalente.", - "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Percorso completo del file `compile_commands.json` per l'area di lavoro.", + "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Percorso completo o elenco di percorsi completi dei file `compile_commands.json` per l'area di lavoro.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.includePath": "Elenco di percorsi che il motore IntelliSense usa durante la ricerca delle intestazioni incluse. La ricerca in questi percorsi non è ricorsiva. Specificare `**` per indicare la ricerca ricorsiva. Ad esempio: con `${workspaceFolder}/**` la ricerca verrà estesa a tutte le sottodirectory, mentre con `${workspaceFolder}` sarà limitata a quella corrente. In genere, ciò non deve includere le inclusioni di sistema, pertanto impostare `#C_Cpp.default.compilerPath#`.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "Elenco di percorsi che il motore IntelliSense userà durante la ricerca delle intestazioni incluse da framework Mac. Supportato solo nella configurazione Mac.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.windowsSdkVersion": "Versione del percorso di inclusione di Windows SDK da usare in Windows, ad esempio `10.0.17134.0`.", diff --git a/Extension/i18n/ita/package.i18n.json b/Extension/i18n/ita/package.i18n.json index d9bf9b2cc..1c56f046e 100644 --- a/Extension/i18n/ita/package.i18n.json +++ b/Extension/i18n/ita/package.i18n.json @@ -77,7 +77,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Mostrare le azioni codice 'Cancella tutto' (se sono presenti più tipi di problema), 'Cancella tutti ' (se sono presenti più problemi per ) e 'Cancella questo'", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "Se `true`, la formattazione verrà eseguita nelle righe modificate dalle azioni del codice 'Correggi'.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "Se è `true`, l'analisi del codice che usa `clang-tidy` verrà abilitata ed eseguita dopo l'apertura o il salvataggio di un file se `#C_Cpp.codeAnalysis.runAutomatically#` è `true` (impostazione predefinita).", - "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Percorso completo dell'eseguibile `clang-tidy`. Se non è specificato, `clang-tidy` è disponibile nel percorso dell'ambiente usato. Se non viene trovato nel percorso dell'ambiente, verrà usato `clang-tidy` in bundle con l'estensione.", + "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Percorso completo dell'eseguibile `clang-tidy`. Se non specificato, e se `clang-tidy` è disponibile nel percorso dell'ambiente, questo verrà utilizzato, a meno che la versione inclusa con l'estensione non sia più recente. Se non viene trovato nel percorso dell'ambiente, verrà usato `clang-tidy` in bundle con l'estensione.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Specifica una configurazione `clang-tidy` in formato YAML/JSON: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{chiave: x, valore: y}]}`. Quando il valore è vuoto, `clang-tidy` tenterà di trovare un file denominato `.clang-tidy` per ogni file di origine nelle directory padre.", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "Specifica una configurazione `clang-tidy` in formato YAML/JSON da usare come fallback quando `#C_Cpp.codeAnalysis.clangTidy.config#` non è impostato e non è stato trovato alcun file `.clang-tidy`: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{chiave: x, valore: y}]}`.", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "Espressione regolare estesa POSIX (ERE) corrispondente ai nomi delle intestazioni da cui eseguire la diagnostica di output. La diagnostica dal file principale di ogni unità di conversione viene sempre visualizzata. La variabile `${workspaceFolder}` è supportata e viene usata come valore di fallback predefinito se non esiste alcun file `.clang-tidy`. Se questa opzione non è `null` (vuota), esegue l'override dell'opzione `HeaderFilterRegex` in un file `.clang-tidy`, se presente.", @@ -175,7 +175,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.oneLiners.markdownDescription": "Un blocco di codice completo immesso su una sola riga viene mantenuto su una sola riga, indipendentemente dai valori di qualsiasi impostazione `C_Cpp.vcFormat.newLine.*`.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription": "Codice di qualsiasi tipo in cui le parentesi graffe di apertura e chiusura sono nella stessa riga viene mantenuto in una sola riga, indipendentemente dai valori di una delle impostazioni `C_Cpp.vcFormat.newLine.*`.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "I blocchi di codice vengono sempre formattati in base ai valori delle impostazioni `C_Cpp.vcFormat.newLine.*`.", - "c_cpp.configuration.clang_format_path.markdownDescription": "Percorso completo del file eseguibile `clang-format`. Se non è specificato, verrà usato lo strumento `clang-format` disponibile nel percorso dell'ambiente. Se non viene trovato nel percorso dell'ambiente, verrà usato il `clang-format` fornito in bundle con l'estensione.", + "c_cpp.configuration.clang_format_path.markdownDescription": "Percorso completo del file eseguibile `clang-format`. Se non specificato, e se `clang-format` è disponibile nel percorso dell'ambiente, questo verrà utilizzato, a meno che la versione inclusa con l'estensione non sia più recente. Se non viene trovato nel percorso dell'ambiente, verrà usato il `clang-format` fornito in bundle con l'estensione.", "c_cpp.configuration.clang_format_style.markdownDescription": "Stile di codifica, attualmente supporta: `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`. Usare `file` per caricare lo stile da un file `.clang-format` nella directory corrente o padre, oppure usare `file:/.clang-format` per fare riferimento a un percorso specifico. Usare `{chiave: valore, ...}` per impostare parametri specifici. Ad esempio, lo stile `Visual Studio` è simile a: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "Nome dello stile predefinito usato come fallback nel caso in cui `clang-format` venga richiamato con lo stile `file`, ma il file `clang-format` non viene trovato. I valori possibili sono `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`, `none`. In alternativa, usare `{chiave: valore, ...}` per impostare parametri specifici. Ad esempio, lo stile `Visual Studio` è simile a: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "Se è impostata, esegue l'override del comportamento di ordinamento di inclusione determinato dal parametro `SortIncludes`.", @@ -205,7 +205,7 @@ "c_cpp.configuration.exclusionPolicy.markdownDescription": "Indica all'estensione quando usare l'opzione `#files.exclude#` (e `#C_Cpp.files.exclude#`) per determinare i file da aggiungere al database di esplorazione del codice durante l'attraversamento dei percorsi nella matrice `browse.path`. Se l'opzione `#files.exclude#` contiene solo cartelle, `checkFolders` è la scelta migliore e consentirà di velocizzare l'inizializzazione del database di esplorazione del codice nell'estensione.", "c_cpp.configuration.exclusionPolicy.checkFolders.description": "I filtri di esclusione verranno valutati una sola volta per cartella (i singoli file non verranno controllati).", "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "I filtri di esclusione verranno valutati in base a ogni file e cartella rilevati.", - "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Carattere usato come separatore di percorso per i risultati di completamento automatico di `#include`.", + "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Carattere utilizzato come separatore di percorso per i percorsi utente generati.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "Se è `true`, le descrizioni comando al passaggio del mouse e del completamento automatico visualizzeranno solo alcune etichette di commenti strutturati. In caso contrario, vengono visualizzati tutti i commenti.", "c_cpp.configuration.doxygen.generateOnType.description": "Controlla se inserire automaticamente il commento Doxygen dopo aver digitato lo stile di commento scelto.", "c_cpp.configuration.doxygen.generatedStyle.description": "Stringa di caratteri utilizzata come riga iniziale del commento Doxygen.", @@ -253,6 +253,7 @@ "c_cpp.configuration.hover.description": "Se questa opzione è disabilitata, i dettagli al passaggio del mouse non vengono più forniti dal server di linguaggio.", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "Abilita i servizi di integrazione per l'[utilità di gestione dipendenze di vcpkg](https://aka.ms/vcpkg/).", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Aggiungere percorsi di inclusione da `nan` e `node-addon-api` quando sono dipendenze.", + "c_cpp.configuration.copilotHover.markdownDescription": "Se è `disabled`, nessuna informazione di Copilot verrà visualizzata al passaggio del mouse.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Se è `true`, con 'Rinomina simbolo' sarà richiesto un identificatore C/C++ valido.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Se è `true`, il completamento automatico aggiungerà automaticamente `(` dopo le chiamate di funzione. In tal caso potrebbe essere aggiunto anche `)`, a seconda del valore dell'impostazione `#editor.autoClosingBrackets#`.", "c_cpp.configuration.filesExclude.markdownDescription": "Configurare i criteri GLOB per escludere le cartelle (e i file se `#C_Cpp.exclusionPolicy#` viene modificato). Sono specifici dell'estensione C/C++ e si aggiungono a `#files.exclude#`, ma diversamente da `#files.exclude#` si applicano anche ai percorsi esterni alla cartella dell'area di lavoro corrente e non vengono rimossi dalla visualizzazione Esplora risorse. Altre informazioni su [criteri GLOB](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", @@ -427,8 +428,8 @@ "c_cpp.walkthrough.create.cpp.file.title": "Creare un file C++", "c_cpp.walkthrough.create.cpp.file.description": "[Open](command:toSide:workbench.action.files.openFile) o [creare](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) un file C++. Assicurasi di salvarlo con l'estensione \".cpp\", ad esempio \"helloworld.cpp\". \n[Creare un file C++](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", "c_cpp.walkthrough.create.cpp.file.altText": "Apre un file C++ o una cartella con un progetto C++.", - "c_cpp.walkthrough.command.prompt.title": "Prompt dei comandi per gli sviluppatori", - "c_cpp.walkthrough.command.prompt.description": "Quando si usa il compilatore C++ Microsoft Visual Studio, l'estensione C++ richiede di avviare VS Code dal prompt dei comandi per sviluppatori. Seguire le istruzioni a destra per riavviare.\n[Reload Window](command:workbench.action.reloadWindow)", + "c_cpp.walkthrough.command.prompt.title": "Avvia dal Prompt dei comandi per gli sviluppatori per Visual Studio", + "c_cpp.walkthrough.command.prompt.description": "Nell'ambito dell'utilizzo del compilatore C++ di Microsoft Visual Studio C++, l'estensione C++ richiede di avviare VS Code dal Prompt dei comandi per gli sviluppatori per VS. Seguire le istruzioni a destra per riavviare.\n[Ricarica finestra](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "Esegui con debug il file C++", "c_cpp.walkthrough.run.debug.mac.description": "Aprire il file C++ e fare clic sul pulsante Riproduci nell'angolo in alto a destra dell'editor oppure premere F5 quando è presente sul file. Selezionare \"clang++ - Compila ed esegui il debug del file attivo\" da eseguire con il debugger.", "c_cpp.walkthrough.run.debug.linux.description": "Aprire il file C++ e fare clic sul pulsante Riproduci nell'angolo in alto a destra dell'editor oppure premere F5 quando è presente sul file. Selezionare \"g++ - Compila ed esegue il debug del file attivo\" da eseguire con il debugger.", diff --git a/Extension/i18n/ita/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/ita/src/Debugger/configurationProvider.i18n.json index 64cb06e19..1272df869 100644 --- a/Extension/i18n/ita/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/ita/src/Debugger/configurationProvider.i18n.json @@ -17,7 +17,7 @@ "pre.Launch.Task": "preLaunchTask: {0}", "debugger.path.not.exists": "Impossibile trovare il debugger {0}. La configurazione di debug per {1} viene ignorata.", "build.and.debug.active.file": "compilare ed eseguire il debug del file attivo", - "cl.exe.not.available": "La compilazione e il debug di {0} sono utilizzabili solo quando VS Code viene eseguito da Prompt dei comandi per gli sviluppatori per Visual Studio.", + "cl.exe.not.available": "{0} è utilizzabile solo quando VS Code è in esecuzione da {1}.", "lldb.find.failed": "Manca la dipendenza '{0}' per l'eseguibile lldb-mi.", "lldb.search.paths": "Ricerca effettuata in:", "lldb.install.help": "Per risolvere questo problema, installare Xcode tramite Apple App Store oppure installare gli strumenti da riga di comando di Xcode eseguendo '{0}' in una finestra di terminale.", diff --git a/Extension/i18n/ita/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json b/Extension/i18n/ita/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json new file mode 100644 index 000000000..9589a4d34 --- /dev/null +++ b/Extension/i18n/ita/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "generate.copilot.description": "Genera riepilogo Copilot", + "copilot.disclaimer": "Il contenuto generato dall'intelligenza artificiale potrebbe non essere corretto." +} \ No newline at end of file diff --git a/Extension/i18n/ita/src/LanguageServer/configurations.i18n.json b/Extension/i18n/ita/src/LanguageServer/configurations.i18n.json index 5cf805191..4722976d4 100644 --- a/Extension/i18n/ita/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/ita/src/LanguageServer/configurations.i18n.json @@ -17,5 +17,6 @@ "path.is.not.a.directory": "Il percorso non è una directory: {0}", "duplicate.name": "{0} è duplicato. Il nome della configurazione deve essere univoco.", "multiple.paths.not.allowed": "Più percorsi non sono consentiti.", + "multiple.paths.should.be.separate.entries": "Più percorsi devono essere voci separate in una matrice.", "paths.are.not.directories": "I percorsi non sono directory: {0}" } \ No newline at end of file diff --git a/Extension/i18n/ita/src/LanguageServer/extension.i18n.json b/Extension/i18n/ita/src/LanguageServer/extension.i18n.json index 9c0e14369..a18f3637e 100644 --- a/Extension/i18n/ita/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/ita/src/LanguageServer/extension.i18n.json @@ -19,5 +19,9 @@ "code.action.aborted": "Impossibile applicare la correzione di analisi codice perché il documento è stato modificato.", "prerelease.message": "È disponibile una versione non definitiva dell'estensione C/C++. Passare a questa versione?", "yes.button": "Sì", - "no.button": "No" + "no.button": "No", + "copilot.hover.unavailable": "Il riepilogo di Copilot non è disponibile.", + "copilot.hover.excluded": "Il file contenente la definizione o la dichiarazione di questo simbolo è stato escluso dall'uso con Copilot.", + "copilot.hover.unavailable.symbol": "Il riepilogo di Copilot non è disponibile per questo simbolo.", + "copilot.hover.error": "Errore durante la generazione del riepilogo di Copilot." } \ No newline at end of file diff --git a/Extension/i18n/ita/src/expand.i18n.json b/Extension/i18n/ita/src/expand.i18n.json index 2043ff28d..7350a020e 100644 --- a/Extension/i18n/ita/src/expand.i18n.json +++ b/Extension/i18n/ita/src/expand.i18n.json @@ -6,7 +6,7 @@ { "max.recursion.reached": "Ha raggiunto la ricorsione di espansione massima delle stringhe. Possibile riferimento circolare.", "invalid.var.reference": "Riferimento a variabile {0} non valido nella stringa: {1}.", - "env.var.not.found": "La variabile di ambiente {0}non è stata trovata", + "env.var.not.found": "La variabile di ambiente {0} non è stata trovata", "commands.not.supported": "I comandi non sono supportati per la stringa: {0}.", "exception.executing.command": "Si è verificata un'eccezione durante l'esecuzione del comando {0} per la stringa: {1} {2}." -} \ No newline at end of file +} diff --git a/Extension/i18n/ita/src/nativeStrings.i18n.json b/Extension/i18n/ita/src/nativeStrings.i18n.json index 66f44f303..0f9ae629c 100644 --- a/Extension/i18n/ita/src/nativeStrings.i18n.json +++ b/Extension/i18n/ita/src/nativeStrings.i18n.json @@ -159,8 +159,8 @@ "fallback_to_64_bit_mode2": "Non è stato possibile eseguire una query sul compilatore. Verrà eseguito il fallback a intelliSenseMode a 64 bit.", "fallback_to_no_bitness": "Non è stato possibile eseguire una query sul compilatore. Verrà eseguito il fallback alla modalità senza numero di bit.", "intellisense_client_creation_aborted": "La creazione del client IntelliSense è stata interrotta: {0}", - "include_errors_config_provider_intellisense_disabled ": "Sono stati rilevati errori #include sulla base delle informazioni fornite dall'impostazione configurationProvider. Le funzionalità IntelliSense per questa unità di conversione ({0}) verranno fornite dal parser di tag.", - "include_errors_config_provider_squiggles_disabled ": "Sono stati rilevati errori #include sulla base delle informazioni fornite dall'impostazione configurationProvider. I segni di revisione sono disabilitati per questa unità di conversione ({0}).", + "include_errors_config_provider_intellisense_disabled": "Sono stati rilevati errori #include sulla base delle informazioni fornite dall'impostazione configurationProvider. Le funzionalità IntelliSense per questa unità di conversione ({0}) verranno fornite dal parser di tag.", + "include_errors_config_provider_squiggles_disabled": "Sono stati rilevati errori #include sulla base delle informazioni fornite dall'impostazione configurationProvider. I segni di revisione sono disabilitati per questa unità di conversione ({0}).", "preprocessor_keyword": "parola chiave del preprocessore", "c_keyword": "parola chiave C", "cpp_keyword": "parola chiave C++", @@ -316,5 +316,6 @@ "refactor_extract_xborder_jump": "Sono presenti collegamenti tra il codice selezionato e quello circostante.", "refactor_extract_missing_return": "Nel codice selezionato alcuni percorsi di controllo terminano senza impostare il valore restituito. Questo comportamento è supportato solo per tipi restituiti scalari, numerici e puntatore.", "expand_selection": "Espandi selezione (per abilitare 'Estrai in funzione')", - "file_not_found_in_path2": "\"{0}\" non è stato trovato nei file compile_commands.json. In alternativa per questo file verrà usato ''includePath'' del file c_cpp_properties.json nella cartella ''{1}''." + "file_not_found_in_path2": "\"{0}\" non è stato trovato nei file compile_commands.json. In alternativa per questo file verrà usato ''includePath'' del file c_cpp_properties.json nella cartella ''{1}''.", + "copilot_hover_link": "Genera riepilogo Copilot" } \ No newline at end of file diff --git a/Extension/i18n/ita/ui/settings.html.i18n.json b/Extension/i18n/ita/ui/settings.html.i18n.json index 181b6bcd8..d014da75e 100644 --- a/Extension/i18n/ita/ui/settings.html.i18n.json +++ b/Extension/i18n/ita/ui/settings.html.i18n.json @@ -55,7 +55,8 @@ "dot.config": "Dot Config", "dot.config.description": "Il percorso a un file .config creato dal sistema Kconfig. Il sistema Kconfig genera un file con tutte le define per compilare un progetto. Esempi di progetti che usano il sistema Kconfig sono Kernel Linux e NuttX RTOS.", "compile.commands": "Comandi di compilazione", - "compile.commands.description": "Percorso completo del file {0} per l'area di lavoro. Verranno usati i percorsi di inclusione e le direttive define individuati in questo file invece dei valori specificati per le impostazioni {1} e {2}. Se il database dei comandi di compilazione non contiene una voce per l'unità di conversione corrispondente al file aperto nell'editor, verrà visualizzato un messaggio di avviso e l'estensione userà le impostazioni {3} e {4}.", + "compile.commands.description": "Elenco di percorsi per {0} file per l'area di lavoro. Verranno usati i percorsi di inclusione e le definizioni individuati in questi file invece dei valori impostati per le impostazioni {1} e {2}. Se il database dei comandi di compilazione non contiene una voce per l'unità di conversione corrispondente al file aperto nell'editor, allora verrà visualizzato un messaggio di avviso e l'estensione userà le impostazioni {3} e {4}.", + "one.compile.commands.path.per.line": "Percorso di un comando di compilazione per riga.", "merge.configurations": "Unire configurazioni", "merge.configurations.description": "Quando è impostato su {0} (o selezionato), l'unione include percorsi di inclusione, definizioni e inclusioni forzate con quelli di un provider di configurazione.", "browse.path": "Sfoglia: percorso", diff --git a/Extension/i18n/ita/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json b/Extension/i18n/ita/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json index b69d56041..d0ad50441 100644 --- a/Extension/i18n/ita/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json +++ b/Extension/i18n/ita/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "walkthrough.windows.title.open.dev.command.prompt": "Riavviare utilizzando il prompt dei comandi per sviluppatori", - "walkthrough.windows.background.dev.command.prompt": " Si sta usando un computer Windows con il compilatore MSVC, quindi è necessario avviare VS Code dal prompt dei comandi per sviluppatori per impostare correttamente tutte le variabili di ambiente. Per riavviare utilizzando il prompt dei comandi per sviluppatori:", - "walkthrough.open.command.prompt": "Per aprire il Prompt dei comandi per gli sviluppatori per Visual Studio, digitare \"developer\" nel menu Start di Windows. Selezionare il Prompt dei comandi per gli sviluppatori per Visual Studio, che passerà automaticamente alla cartella aperta corrente.", - "walkthrough.windows.press.f5": "Digitare \"code\" nel prompt dei comandi e premere INVIO. È consigliabile riavviare VS Code e tornare a questa procedura dettagliata. " + "walkthrough.windows.title.open.dev.command.prompt": "Riavvia utilizzando il {0}", + "walkthrough.windows.background.dev.command.prompt": " Si sta usando un computer Windows con il compilatore MSVC, quindi è necessario avviare VS Code da {0} per impostare correttamente tutte le variabili di ambiente. Per riavviare usando {1}:", + "walkthrough.open.command.prompt": "Aprire il {0} digitando \"{1}\" nel menu Start di Windows. Selezionare il {2}, che passerà automaticamente alla cartella aperta corrente.", + "walkthrough.windows.press.f5": "Digitare \"{0}\" nel prompt dei comandi e premere INVIO. È consigliabile riavviare VS Code e tornare a questa procedura dettagliata. " } \ No newline at end of file diff --git a/Extension/i18n/ita/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/ita/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index e7a8f16d4..849e3a7e0 100644 --- a/Extension/i18n/ita/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/ita/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -16,10 +16,8 @@ "walkthrough.windows.link.install": "Installa", "walkthrough.windows.note1": "Nota", "walkthrough.windows.note1.text": "È possibile usare il set di strumenti C++ di Visual Studio Build Tools insieme a Visual Studio Code per compilare, creare e verificare qualsiasi codebase C++, purché sia disponibile una licenza di Visual Studio valida (Community, Pro o Enterprise) usata attivamente per sviluppare la codebase C++.", - "walkthrough.windows.open.command.prompt": "Per aprire {0}, digitare 'developer' nel menu Start di Windows.", - "walkthrough.windows.command.prompt.name1": "Prompt dei comandi per gli sviluppatori per Visual Studio", - "walkthrough.windows.check.install": "Verificare l'installazione di MSVC digitando {0} al Prompt dei comandi per gli sviluppatori per Visual Studio. Verranno visualizzati un messaggio di copyright, la versione e la descrizione sulla sintassi di base.", + "walkthrough.windows.open.command.prompt": "Aprire {0} digitando \"{1}\" nel menu Start di Windows.", + "walkthrough.windows.check.install": "Controllare l'installazione di MSVC digitando {0} in {1}. Verranno visualizzati un messaggio di copyright, la versione e la descrizione sulla sintassi di base.", "walkthrough.windows.note2": "Nota", - "walkthrough.windows.note2.text": "Per usare MSVC dalla riga di comando o da VS Code, è necessario eseguire l'applicazione da {0}. Con una shell normale, ad esempio {1}, {2} o il prompt dei comandi di Windows le variabili di ambiente del percorso necessarie non sono impostate.", - "walkthrough.windows.command.prompt.name2": "Prompt dei comandi per gli sviluppatori per Visual Studio" + "walkthrough.windows.note2.text": "Per usare MSVC dalla riga di comando o da VS Code, è necessario eseguire l'applicazione da {0}. Con una shell normale, ad esempio {1}, {2} o il prompt dei comandi di Windows le variabili di ambiente del percorso necessarie non sono impostate." } \ No newline at end of file diff --git a/Extension/i18n/ita/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/ita/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index 50e0606f3..43fc11a77 100644 --- a/Extension/i18n/ita/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/ita/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "Nota", "walkthrough.windows.note1.text": "È possibile usare il set di strumenti C++ di Visual Studio Build Tools insieme a Visual Studio Code per compilare, creare e verificare qualsiasi codebase C++, purché sia disponibile una licenza di Visual Studio valida (Community, Pro o Enterprise) usata attivamente per sviluppare la codebase C++.", "walkthrough.windows.verify.compiler": "Verifica dell'installazione del compilatore", - "walkthrough.windows.open.command.prompt": "Per aprire {0}, digitare 'developer' nel menu Start di Windows.", - "walkthrough.windows.command.prompt.name1": "Prompt dei comandi per gli sviluppatori per Visual Studio", - "walkthrough.windows.check.install": "Verificare l'installazione di MSVC digitando {0} al Prompt dei comandi per gli sviluppatori per Visual Studio. Verranno visualizzati un messaggio di copyright, la versione e la descrizione sulla sintassi di base.", + "walkthrough.windows.open.command.prompt": "Aprire {0} digitando \"{1}\" nel menu Start di Windows.", + "walkthrough.windows.check.install": "Controllare l'installazione di MSVC digitando {0} in {1}. Verranno visualizzati un messaggio di copyright, la versione e la descrizione sulla sintassi di base.", "walkthrough.windows.note2": "Nota", "walkthrough.windows.note2.text": "Per usare MSVC dalla riga di comando o da VS Code, è necessario eseguire l'applicazione da {0}. Con una shell normale, ad esempio {1}, {2} o il prompt dei comandi di Windows le variabili di ambiente del percorso necessarie non sono impostate.", - "walkthrough.windows.command.prompt.name2": "Prompt dei comandi per gli sviluppatori per Visual Studio", "walkthrough.windows.other.compilers": "Altre opzioni del compilatore", "walkthrough.windows.text3": "Se la destinazione è Linux da Windows, vedere {0}. In alternativa, è possibile {1}.", "walkthrough.windows.link.title1": "Uso di C++ e del sottosistema Windows per Linux (WSL) in VS Code", diff --git a/Extension/i18n/ita/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/ita/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index 50e0606f3..43fc11a77 100644 --- a/Extension/i18n/ita/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/ita/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "Nota", "walkthrough.windows.note1.text": "È possibile usare il set di strumenti C++ di Visual Studio Build Tools insieme a Visual Studio Code per compilare, creare e verificare qualsiasi codebase C++, purché sia disponibile una licenza di Visual Studio valida (Community, Pro o Enterprise) usata attivamente per sviluppare la codebase C++.", "walkthrough.windows.verify.compiler": "Verifica dell'installazione del compilatore", - "walkthrough.windows.open.command.prompt": "Per aprire {0}, digitare 'developer' nel menu Start di Windows.", - "walkthrough.windows.command.prompt.name1": "Prompt dei comandi per gli sviluppatori per Visual Studio", - "walkthrough.windows.check.install": "Verificare l'installazione di MSVC digitando {0} al Prompt dei comandi per gli sviluppatori per Visual Studio. Verranno visualizzati un messaggio di copyright, la versione e la descrizione sulla sintassi di base.", + "walkthrough.windows.open.command.prompt": "Aprire {0} digitando \"{1}\" nel menu Start di Windows.", + "walkthrough.windows.check.install": "Controllare l'installazione di MSVC digitando {0} in {1}. Verranno visualizzati un messaggio di copyright, la versione e la descrizione sulla sintassi di base.", "walkthrough.windows.note2": "Nota", "walkthrough.windows.note2.text": "Per usare MSVC dalla riga di comando o da VS Code, è necessario eseguire l'applicazione da {0}. Con una shell normale, ad esempio {1}, {2} o il prompt dei comandi di Windows le variabili di ambiente del percorso necessarie non sono impostate.", - "walkthrough.windows.command.prompt.name2": "Prompt dei comandi per gli sviluppatori per Visual Studio", "walkthrough.windows.other.compilers": "Altre opzioni del compilatore", "walkthrough.windows.text3": "Se la destinazione è Linux da Windows, vedere {0}. In alternativa, è possibile {1}.", "walkthrough.windows.link.title1": "Uso di C++ e del sottosistema Windows per Linux (WSL) in VS Code", diff --git a/Extension/i18n/jpn/c_cpp_properties.schema.json.i18n.json b/Extension/i18n/jpn/c_cpp_properties.schema.json.i18n.json index 038492d02..40002a566 100644 --- a/Extension/i18n/jpn/c_cpp_properties.schema.json.i18n.json +++ b/Extension/i18n/jpn/c_cpp_properties.schema.json.i18n.json @@ -9,7 +9,7 @@ "c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "たとえば `-nostdinc++`、`-m32` など、使用されているインクルードや定義を変更するコンパイラ引数。追加のスペース区切りの引数を受け取る引数は、配列内の別の引数として入力する必要があります。たとえば、`--sysroot ` の場合、`\"--sysroot\", \"\"` を使用します。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cStandard": "IntelliSense に使用する C 言語標準のバージョンです。注意: GNU 標準は、set コンパイラをクエリして GNU 定義を取得するためにのみ使用されるため、IntelliSense は同等の C 標準バージョンをエミュレートします。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cppStandard": "IntelliSense に使用する C++ 言語標準のバージョンです。注意: GNU 標準は、set コンパイラをクエリして GNU 定義を取得するためにのみ使用されるため、IntelliSense は同等の C++ 標準バージョンをエミュレートします。", - "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "ワークスペースの `compile_commands.json` ファイルへの完全なパス。", + "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "ワークスペースの `compile_commands.json` ファイルへの完全なパスまたは完全なパスの一覧。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.includePath": "インクルードされたヘッダーを検索する際に IntelliSense エンジンによって使用されるパスの一覧です。これらのパスでの検索は再帰的ではありません。再帰的な検索を示すには、`**` を指定します。たとえば、`${workspaceFolder}/**` を指定するとすべてのサブディレクトリが検索されますが、`${workspaceFolder}` はそうではありません。通常、これにはシステム インクルードを含めるべきではありません。 代わりに、`C_Cpp.default.compilerPath` を設定します。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "Mac フレームワークからインクルードされたヘッダーを検索する際に IntelliSense エンジンが使用するパスの一覧です。Mac 構成でのみサポートされます。", "c_cpp_properties.schema.json.definitions.configurations.items.properties.windowsSdkVersion": "Windows で使用する Windows SDK インクルード パスのバージョン (例: `10.0.17134.0`)。", diff --git a/Extension/i18n/jpn/package.i18n.json b/Extension/i18n/jpn/package.i18n.json index 0e889f90c..3e6704ee3 100644 --- a/Extension/i18n/jpn/package.i18n.json +++ b/Extension/i18n/jpn/package.i18n.json @@ -77,7 +77,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "[すべてクリア] (複数の問題の種類がある場合)、[すべてののクリア] (に複数の問題がある場合)、'これをクリア' コード アクションを表示する", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "`true` の場合、'修正' コード アクションによって変更された行に対して書式設定が実行されます。", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "`true` の場合、`clang-tidy` を使用したコード分析が有効になり、`#C_Cpp.codeAnalysis.runAutomatically#` が `true` (既定値) の場合、ファイルを開いたり保存したりした後に実行されます。", - "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` の実行可能ファイルの完全なパスです。指定されておらず、`clang-tidy` が環境パスに置かれている場合は、それが使用されます。環境パスに見つからない場合は、拡張機能にバンドルされている `clang-tidy` が使用されます。", + "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` の実行可能ファイルの完全なパスです。指定されていない場合は、拡張機能にバンドルされているバージョンが新しい場合を除き、環境パスで `clang-tidy` を使用できます。環境パスに見つからない場合は、拡張機能にバンドルされている `clang-tidy` が使用されます。", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "YAML/JSON 形式の `clang-tidy` 構成を指定します: `{Checks: '-*,clang-analyzer-*',CheckOptions: [{キー: x, 値: y}]}`。値が空の場合、`clang-tidy` は親ディレクトリ内の各ソース ファイルの `.clang-tidy` という名前のファイルの検索を試みます。", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "`#C_Cpp.codeAnalysis.clangTidy.config#` が設定されておらず、`clang-tidy` ファイルが見つからない場合に、フォールバックとして使用する YAML/JSON 形式の `clang-tidy` 構成を指定します: `{Checks: '-*,clang-analyzer-*',CheckOptions: [{キー: x, 値: y}]}`。", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "診断を出力するヘッダーの名前と一致する POSIX 拡張正規表現 (ERE)。各翻訳単位のメイン ファイルからの診断は常に表示されます。`${workspaceFolder}` 変数はサポートされています (`.clang-tidy` ファイルが存在しない場合は、既定のフォールバック値として使用されます)。このオプションが `null` (空) でない場合は、`.clang-tidy` ファイルの `HeaderFilterRegex` オプションがオーバーライドされます (存在する場合)。", @@ -175,7 +175,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.oneLiners.markdownDescription": "`C_Cpp.vcFormat.newLine.*` 設定の値に関係なく、1 行に入力された完全なコード ブロックは、1 行に保持されます。", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription": "`C_Cpp.vcFormat.newLine.*` 設定の値に関係なく、左および右中かっこが 1 行に入力されているコードは、1 行に保持されます。", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "コード ブロックは、常に `C_Cpp.vcFormat.newLine.*` 設定の値に基づいて書式設定されます。", - "c_cpp.configuration.clang_format_path.markdownDescription": "`clang-format` の実行可能ファイルの完全なパスです。指定されておらず、`clang-format` が環境パスに置かれている場合は、それが使用されます。環境パスに見つからない場合は、拡張機能にバンドルされている `clang-format` が使用されます。", + "c_cpp.configuration.clang_format_path.markdownDescription": "`clang-format` の実行可能ファイルの完全なパスです。指定されていない場合は、拡張機能にバンドルされているバージョンが新しい場合を除き、環境パスで `clang-format` を使用できます。環境パスに見つからない場合は、拡張機能にバンドルされている `clang-format` が使用されます。", "c_cpp.configuration.clang_format_style.markdownDescription": "次のコーディング スタイルが現在サポートされています: `Visual Studio`、`LLVM`、`Google`、`Chromium`、`Mozilla`、`WebKit`、`Microsoft`、`GNU`。`file` を使用して、現在のディレクトリまたは親ディレクトリにある `.clang-format` ファイルからスタイルを読み込むか、`file:<パス>/.clang-format` を使用して特定のパスを参照します。特定のパラメーターを設定するには、`{キー: 値, ...}` を使用します。たとえば、`Visual Studio` のスタイルは次のようになります: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`。", "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "`clang-format` が`file`スタイルで呼び出されたものの`.clang-format`ファイルが見つからない場合に、フォールバックとして使用される定義済みスタイルの名前。使用可能な値は、`Visual Studio`、`LLVM`、`Google`、`Chromium`、`Mozilla`、`WebKit`、`Microsoft`、`GNU`、`none` です。または、`{キー:値, ...}`を使用して特定のパラメーターを設定することもできます。たとえば、`Visual Studio`スタイルは次のようになります: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`。", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "設定されている場合、`SortIncludes` パラメーターによって決定されるインクルードの並べ替え動作がオーバーライドされます。", @@ -205,7 +205,7 @@ "c_cpp.configuration.exclusionPolicy.markdownDescription": "`browse.path` 配列内のパスを走査する際、コード ナビゲーションのデータベースに追加する必要があるファイルを決定するときに、いつ `#files.exclude#` (および `#C_Cpp.files.exclude#`) 設定を使用するかを拡張機能に指示します。`#files.exclude#` 設定にフォルダーのみが含まれる場合は `checkFolders` が最適で、拡張機能がコード ナビゲーションのデータベースを初期化する速度が向上します。", "c_cpp.configuration.exclusionPolicy.checkFolders.description": "除外フィルターはフォルダーごとに 1 回だけ評価されます (個々のファイルはチェックされません)。", "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "除外フィルターは、検出されたすべてのファイルとフォルダーに対して評価されます。", - "c_cpp.configuration.preferredPathSeparator.markdownDescription": "`#include` のオートコンプリート結果でパス区切り記号として使用される文字です。", + "c_cpp.configuration.preferredPathSeparator.markdownDescription": "生成されたユーザー パスのパス区切り記号として使用される文字です。", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "`true` の場合、ホバーおよびオートコンプリートのヒントに、構造化されたコメントの特定のラベルのみが表示されます。それ以外の場合は、すべてのコメントが表示されます。", "c_cpp.configuration.doxygen.generateOnType.description": "選択したコメント スタイルを入力した後に、Doxygen コメントを自動的に挿入するかどうかを制御します。", "c_cpp.configuration.doxygen.generatedStyle.description": "Doxygen コメントの開始行として使用される文字列です。", @@ -253,6 +253,7 @@ "c_cpp.configuration.hover.description": "無効にすると、ホバーの詳細が言語サーバーから提供されなくなります。", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "[vcpkg 依存関係マネージャー](https://aka.ms/vcpkg/) の統合サービスを有効にします。", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "依存関係である場合は、`nan` および `node-addon-api` のインクルード パスを追加してください。", + "c_cpp.configuration.copilotHover.markdownDescription": "`disabled` の場合、ホバーに Copilot 情報は表示されません。", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "`true` の場合、'シンボルの名前変更' には有効な C/C++ 識別子が必要です。", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "`true` の場合、関数呼び出しの後に `(` が自動的に追加されます。その場合は、`#editor.autoClosingBrackets#` 設定の値に応じて、`)` も追加される場合があります。", "c_cpp.configuration.filesExclude.markdownDescription": "フォルダー (および `#C_Cpp.exclusionPolicy#` が変更されている場合はファイル) を除外するための glob パターンを構成します。これらは C/C++ 拡張機能に固有であり、`#files.exclude#` に加えてありますが、`#files.exclude#` とは異なり、現在のワークスペース フォルダーの外部のパスにも適用され、エクスプローラー ビューからは削除されません。[glob パターン](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) についての詳細をご確認ください。", @@ -427,8 +428,8 @@ "c_cpp.walkthrough.create.cpp.file.title": "C++ ファイルの作成", "c_cpp.walkthrough.create.cpp.file.description": "[開く](command:toSide:workbench.action.files.openFile) または [作成](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) C++ ファイル。\"helloworld.cpp\" などの \".cpp\" 拡張子を使用して保存してください。\n[C++ ファイルの作成](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", "c_cpp.walkthrough.create.cpp.file.altText": "C++ ファイル または C++ プロジェクトを含むフォルダーを開きます。", - "c_cpp.walkthrough.command.prompt.title": "開発者コマンド プロンプトから再起動する", - "c_cpp.walkthrough.command.prompt.description": "Microsoft Visual Studio C++ コンパイラを使用する場合、C++ 拡張機能では、開発者コマンド プロンプトから VS Code を起動する必要があります。右側の指示に従って再起動してください。\n[ウィンドウの再読み込み](command:workbench.action.reloadWindow)", + "c_cpp.walkthrough.command.prompt.title": "VS の開発者コマンド プロンプトから起動する", + "c_cpp.walkthrough.command.prompt.description": "Microsoft Visual Studio C++ コンパイラを使用する場合、C++ 拡張機能では、VS の開発者コマンド プロンプトから VS Code を起動する必要があります。右側の指示に従って再起動してください。\n[ウィンドウの再読み込み](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "お使いの C++ ファイルを実行してデバッグする", "c_cpp.walkthrough.run.debug.mac.description": "C++ ファイルを開いてエディターの右上隅にある [再生] ボタンをクリックするか、ファイル上で F5 キーを押します。デバッガーで実行するには、[clang++ - アクティブ ファイルのビルドとデバッグ] を選択します。", "c_cpp.walkthrough.run.debug.linux.description": "C++ ファイルを開いてエディターの右上隅にある [再生] ボタンをクリックするか、ファイル上で F5 キーを押します。デバッガーで実行するには、[g++ - アクティブ ファイルのビルドとデバッグ] を選択します。", @@ -449,4 +450,4 @@ "c_cpp.configuration.refactoring.includeHeader.never.description": "ヘッダー ファイルを含めることはありません。", "c_cpp.languageModelTools.configuration.displayName": "C/C++ 構成", "c_cpp.languageModelTools.configuration.userDescription": "言語標準バージョンやターゲット プラットフォームなど、アクティブ C または C++ ファイルの構成。" -} +} \ No newline at end of file diff --git a/Extension/i18n/jpn/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/jpn/src/Debugger/attachToProcess.i18n.json index b92a94f82..e986dab52 100644 --- a/Extension/i18n/jpn/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/jpn/src/Debugger/attachToProcess.i18n.json @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "debugger.path.and.server.address.required": "デバッグ構成の{0}には、{1}と {2} が必要です", + "debugger.path.and.server.address.required": "デバッグ構成の {0} には、{1} と {2} が必要です", "no.pipetransport.useextendedremote": "選択されたデバッグ構成には {0} または {1} は含まれません", "select.process.attach": "アタッチするプロセスを選択する", "process.not.selected": "プロセスが選択されていません。", @@ -12,4 +12,4 @@ "no.process.list": "転送アタッチでプロセス一覧を取得できませんでした。", "failed.to.make.gdb.connection": "GDB 接続を作成できませんでした: \"{0}\"。", "failed.to.parse.processes": "プロセスを解析できませんでした: \"{0}\"。" -} \ No newline at end of file +} diff --git a/Extension/i18n/jpn/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/jpn/src/Debugger/configurationProvider.i18n.json index 0f009dc4e..0e022f0ad 100644 --- a/Extension/i18n/jpn/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/jpn/src/Debugger/configurationProvider.i18n.json @@ -17,7 +17,7 @@ "pre.Launch.Task": "preLaunchTask: {0}", "debugger.path.not.exists": "{0} デバッガーが見つかりません。{1} のデバッグ構成は無視されます。", "build.and.debug.active.file": "アクティブ ファイルのビルドとデバッグ", - "cl.exe.not.available": "{0} のビルドとデバッグを使用できるのは、VS 用開発者コマンド プロンプトから VS Code を実行する場合のみです。", + "cl.exe.not.available": "{0} は、{1} から VS Code を実行する場合にのみ使用できます。", "lldb.find.failed": "lldb-mi 実行可能ファイルの依存関係 '{0}' が見つかりません。", "lldb.search.paths": "検索対象:", "lldb.install.help": "この問題を解決するには、Apple App Store から XCode をインストールするか、またはターミナル ウィンドウで '{0}' を実行して XCode コマンド ライン ツールをインストールしてください。", diff --git a/Extension/i18n/jpn/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json b/Extension/i18n/jpn/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json new file mode 100644 index 000000000..c48e773b7 --- /dev/null +++ b/Extension/i18n/jpn/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "generate.copilot.description": "Copilot 要約を生成します", + "copilot.disclaimer": "AI によって生成されたコンテンツが正しくない可能性があります。" +} \ No newline at end of file diff --git a/Extension/i18n/jpn/src/LanguageServer/client.i18n.json b/Extension/i18n/jpn/src/LanguageServer/client.i18n.json index 9907442dc..f87ae5782 100644 --- a/Extension/i18n/jpn/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/jpn/src/LanguageServer/client.i18n.json @@ -8,13 +8,13 @@ "configure.intelliSense.forFolder": "'{0}' フォルダーの IntelliSense をどのように構成しますか?", "configure.intelliSense.thisFolder": "このフォルダーの IntelliSense をどのように構成しますか?", "found.string": "{0} で見つかりました", - "use.compiler": "{0}を使用する", + "use.compiler": "{0} を使用する", "configuration.providers": "構成プロバイダー", "compilers": "コンパイラ", "selectIntelliSenseConfiguration.string": "IntelliSense 構成を選択...", "setCompiler.message": "IntelliSense が構成されていません。独自の構成を設定しない限り、IntelliSense は機能しない可能性があります。", - "use.provider": "{0}を使用する", - "use.compileCommands": "{0}を使用する", + "use.provider": "{0} を使用する", + "use.compileCommands": "{0} を使用する", "selectAnotherCompiler.string": "コンピューター上の別のコンパイラを選択...", "installCompiler.string": "コンパイラのインストールに関するヘルプ", "installCompiler.string.nix": "コンパイラのインストール", @@ -38,4 +38,4 @@ "handle.extract.new.function": "NewFunction", "handle.extract.error": "関数への抽出に失敗しました: {0}", "invalid.edit": "関数への抽出に失敗しました。無効な編集が生成されました: '{0}'" -} \ No newline at end of file +} diff --git a/Extension/i18n/jpn/src/LanguageServer/configurations.i18n.json b/Extension/i18n/jpn/src/LanguageServer/configurations.i18n.json index bbc6b0771..c69388d17 100644 --- a/Extension/i18n/jpn/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/jpn/src/LanguageServer/configurations.i18n.json @@ -17,5 +17,6 @@ "path.is.not.a.directory": "パスがディレクトリではありません: {0}", "duplicate.name": "{0} が重複しています。構成名は一意である必要があります。", "multiple.paths.not.allowed": "複数のパスは使用できません。", + "multiple.paths.should.be.separate.entries": "複数のパスは、配列内の個別のエントリである必要があります。", "paths.are.not.directories": "パスはディレクトリではありません: {0}" } \ No newline at end of file diff --git a/Extension/i18n/jpn/src/LanguageServer/extension.i18n.json b/Extension/i18n/jpn/src/LanguageServer/extension.i18n.json index fe3c55f22..7eacea0df 100644 --- a/Extension/i18n/jpn/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/jpn/src/LanguageServer/extension.i18n.json @@ -19,5 +19,9 @@ "code.action.aborted": "ドキュメントが変更されたため、コード分析修正プログラムを適用できませんでした。", "prerelease.message": "C/C++ 拡張機能のプレリリース版が利用可能です。切り替えますか?", "yes.button": "はい", - "no.button": "いいえ" + "no.button": "いいえ", + "copilot.hover.unavailable": "Copilot の概要は使用できません。", + "copilot.hover.excluded": "このシンボルの定義または宣言を含むファイルは、Copilot での使用から除外されています。", + "copilot.hover.unavailable.symbol": "Copilot の概要は、このシンボルでは使用できません。", + "copilot.hover.error": "Copilot 要約の生成中にエラーが発生しました。" } \ No newline at end of file diff --git a/Extension/i18n/jpn/src/nativeStrings.i18n.json b/Extension/i18n/jpn/src/nativeStrings.i18n.json index ad82921c5..9012c476b 100644 --- a/Extension/i18n/jpn/src/nativeStrings.i18n.json +++ b/Extension/i18n/jpn/src/nativeStrings.i18n.json @@ -159,8 +159,8 @@ "fallback_to_64_bit_mode2": "コンパイラを照会できませんでした。64 ビットの intelliSenseMode に戻しています。", "fallback_to_no_bitness": "コンパイラを照会できませんでした。ビットなしに戻ります。", "intellisense_client_creation_aborted": "IntelliSense クライアントの作成が中止されました: {0}", - "include_errors_config_provider_intellisense_disabled ": "configurationProvider 設定によって提供された情報に基づいて、#include エラーが検出されました。この翻訳単位 ({0}) の IntelliSense 機能は、タグ パーサーによって提供されます。", - "include_errors_config_provider_squiggles_disabled ": "configurationProvider 設定によって提供された情報に基づいて、#include エラーが検出されました。この翻訳単位 ({0}) では、波線が無効になっています。", + "include_errors_config_provider_intellisense_disabled": "configurationProvider 設定によって提供された情報に基づいて、#include エラーが検出されました。この翻訳単位 ({0}) の IntelliSense 機能は、タグ パーサーによって提供されます。", + "include_errors_config_provider_squiggles_disabled": "configurationProvider 設定によって提供された情報に基づいて、#include エラーが検出されました。この翻訳単位 ({0}) では、波線が無効になっています。", "preprocessor_keyword": "プリプロセッサ キーワード", "c_keyword": "C キーワード", "cpp_keyword": "C++ キーワード", @@ -316,5 +316,6 @@ "refactor_extract_xborder_jump": "選択したコードと周囲のコードの間にジャンプが存在します。", "refactor_extract_missing_return": "選択したコードでは、戻り値を設定せずに一部のコントロール パスが終了します。これは、スカラー型、数値型、およびポインター型の戻り値に対してのみサポートされます。", "expand_selection": "選択範囲を展開する ([関数に抽出] を有効にする)", - "file_not_found_in_path2": "\"{0}\" が compile_commands.json ファイルに見つかりません。フォルダー '{1}' にある c_cpp_properties.json からの 'includePath' が、このファイルで代わりに使用されます。" + "file_not_found_in_path2": "\"{0}\" が compile_commands.json ファイルに見つかりません。フォルダー '{1}' にある c_cpp_properties.json からの 'includePath' が、このファイルで代わりに使用されます。", + "copilot_hover_link": "Copilot 要約の生成" } \ No newline at end of file diff --git a/Extension/i18n/jpn/ui/settings.html.i18n.json b/Extension/i18n/jpn/ui/settings.html.i18n.json index e514a5065..7d41d675f 100644 --- a/Extension/i18n/jpn/ui/settings.html.i18n.json +++ b/Extension/i18n/jpn/ui/settings.html.i18n.json @@ -55,7 +55,8 @@ "dot.config": "Dot Config", "dot.config.description": "Kconfig システムによって作成された.config ファイルへのパス。Kconfig システムは、プロジェクトをビルドするためのすべての定義を含むファイルを生成します。Kconfig システムを使用するプロジェクトの例としては、Linux Kernel と NuttX RTOS があります。", "compile.commands": "コンパイル コマンド", - "compile.commands.description": "ワークスペースの {0} ファイルへの完全なパスです。このファイルで検出されたインクルード パスおよび定義は、{1} および {2} の設定に設定されている値の代わりに使用されます。コンパイル コマンド データベースに、エディターで開いたファイルに対応する翻訳単位のエントリが含まれていない場合は、警告メッセージが表示され、代わりに拡張機能では {3} および {4} の設定が使用されます。", + "compile.commands.description": "ワークスペースの {0} ファイルへのパスの一覧。このファイルで検出されたインクルード パスおよび定義は、{1} および {2} の設定に設定されている値の代わりに使用されます。コンパイル コマンド データベースに、エディターで開いたファイルに対応する翻訳単位のエントリが含まれていない場合は、警告メッセージが表示され、代わりに拡張機能では {3} および {4} の設定が使用されます。", + "one.compile.commands.path.per.line": "1 行につき 1 つのコンパイル コマンド パス。", "merge.configurations": "構成のマージ", "merge.configurations.description": "{0} (またはチェックボックスがオン) の場合、インクルード パス、定義、および強制インクルードを構成プロバイダーのものにマージします。", "browse.path": "参照: パス", diff --git a/Extension/i18n/jpn/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json b/Extension/i18n/jpn/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json index 13e887429..8068620ed 100644 --- a/Extension/i18n/jpn/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json +++ b/Extension/i18n/jpn/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "walkthrough.windows.title.open.dev.command.prompt": "開発者コマンド プロンプトを使用した再起動", - "walkthrough.windows.background.dev.command.prompt": " MSVC コンパイラで Windows マシンを使用しているため、すべての環境変数を正しく設定するには、開発者コマンド プロンプトから VS Code を開始する必要があります。開発者コマンド プロンプトを使用して再起動するには:", - "walkthrough.open.command.prompt": "Windows スタート メニューで 「developer」と入力して、VS の開発者コマンド プロンプトを開きます。VS の開発者コマンド プロンプトを選択すると、現在開いているフォルダーに自動的に移動します。", - "walkthrough.windows.press.f5": "コマンド プロンプトに「code」と入力して Enter キーを押します。これにより、VS Code が再起動され、このチュートリアルに戻ります。 " + "walkthrough.windows.title.open.dev.command.prompt": "{0} を使用して再起動する", + "walkthrough.windows.background.dev.command.prompt": " MSVC コンパイラで Windows マシンを使用しているため、すべての環境変数を正しく設定するには、{0} から VS Code を開始する必要があります。{1} を使用して再起動するには:", + "walkthrough.open.command.prompt": "Windows スタート メニューで \"{1}\" と入力して、{0} を開きます。{2} を選択すると、現在開いているフォルダーに自動的に移動します。", + "walkthrough.windows.press.f5": "コマンド プロンプトに \"{0}\" と入力して Enter キーを押します。これにより、VS Code が再起動され、このチュートリアルに戻ります。" } \ No newline at end of file diff --git a/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index b59ce0ea5..ee850c771 100644 --- a/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -16,10 +16,8 @@ "walkthrough.windows.link.install": "インストール", "walkthrough.windows.note1": "メモ", "walkthrough.windows.note1.text": "有効な Visual Studio ライセンス (Community、Pro、Enterprise のいずれか) があり、その C++ コードベースの開発に積極的に使用している場合は、Visual Studio Build Tools の C++ ツールセットを Visual Studio Code と合わせて使用して、C++ コードベースのコンパイル、ビルド、および検証を行うことができます。", - "walkthrough.windows.open.command.prompt": "Windows スタート メニューに '開発者' と入力して、{0} を開きます。", - "walkthrough.windows.command.prompt.name1": "VS 向け developer コマンド プロンプト", - "walkthrough.windows.check.install": "VS の開発者コマンド プロンプトに {0} を入力して、MSVC インストールを確認します。バージョンと基本的な使用法の説明とともに、著作権に関するメッセージが表示されます。", + "walkthrough.windows.open.command.prompt": "Windows スタート メニューで '{1}' と入力して、{0} を開きます。", + "walkthrough.windows.check.install": "{1} に「{0}」と入力して、MSVC のインストールを確認します。バージョンと基本的な使用法の説明とともに、著作権に関するメッセージが表示されます。", "walkthrough.windows.note2": "メモ", - "walkthrough.windows.note2.text": "コマンド ラインまたは VS Code で MSVC を使用するには、{0} で実行する必要があります。{1}、{2}、Windows コマンド プロンプトなどの通常のシェルには、必要なパス環境変数が設定されていません。", - "walkthrough.windows.command.prompt.name2": "VS 向け開発者コマンド プロンプト" + "walkthrough.windows.note2.text": "コマンド ラインまたは VS Code で MSVC を使用するには、{0} で実行する必要があります。{1}、{2}、Windows コマンド プロンプトなどの通常のシェルには、必要なパス環境変数が設定されていません。" } \ No newline at end of file diff --git a/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index caff1dfdb..9a2619694 100644 --- a/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "メモ", "walkthrough.windows.note1.text": "有効な Visual Studio ライセンス (Community、Pro、Enterprise のいずれか) があり、その C++ コードベースの開発に積極的に使用している場合は、Visual Studio Build Tools の C++ ツールセットを Visual Studio Code と合わせて使用して、C++ コードベースのコンパイル、ビルド、および検証を行うことができます。", "walkthrough.windows.verify.compiler": "コンパイラのインストールの確認中", - "walkthrough.windows.open.command.prompt": "Windows スタート メニューに '開発者' と入力して、{0} を開きます。", - "walkthrough.windows.command.prompt.name1": "VS 向け developer コマンド プロンプト", - "walkthrough.windows.check.install": "VS の開発者コマンド プロンプトに {0} を入力して、MSVC インストールを確認します。バージョンと基本的な使用法の説明とともに、著作権に関するメッセージが表示されます。", + "walkthrough.windows.open.command.prompt": "Windows スタート メニューで '{1}' と入力して、{0} を開きます。", + "walkthrough.windows.check.install": "{1} に「{0}」と入力して、MSVC のインストールを確認します。バージョンと基本的な使用法の説明とともに、著作権に関するメッセージが表示されます。", "walkthrough.windows.note2": "メモ", "walkthrough.windows.note2.text": "コマンド ラインまたは VS Code で MSVC を使用するには、{0} で実行する必要があります。{1}、{2}、Windows コマンド プロンプトなどの通常のシェルには、必要なパス環境変数が設定されていません。", - "walkthrough.windows.command.prompt.name2": "VS 向け開発者コマンド プロンプト", "walkthrough.windows.other.compilers": "その他のコンパイラ オプション", "walkthrough.windows.text3": "Windows から Linux に貼り付ける場合は、{0} をチェックしてください。あるいは、{1} も使用できます。", "walkthrough.windows.link.title1": "VS Code で C++ と Windows Subsystem for Linux (WSL) を使用する", diff --git a/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index caff1dfdb..9a2619694 100644 --- a/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/jpn/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "メモ", "walkthrough.windows.note1.text": "有効な Visual Studio ライセンス (Community、Pro、Enterprise のいずれか) があり、その C++ コードベースの開発に積極的に使用している場合は、Visual Studio Build Tools の C++ ツールセットを Visual Studio Code と合わせて使用して、C++ コードベースのコンパイル、ビルド、および検証を行うことができます。", "walkthrough.windows.verify.compiler": "コンパイラのインストールの確認中", - "walkthrough.windows.open.command.prompt": "Windows スタート メニューに '開発者' と入力して、{0} を開きます。", - "walkthrough.windows.command.prompt.name1": "VS 向け developer コマンド プロンプト", - "walkthrough.windows.check.install": "VS の開発者コマンド プロンプトに {0} を入力して、MSVC インストールを確認します。バージョンと基本的な使用法の説明とともに、著作権に関するメッセージが表示されます。", + "walkthrough.windows.open.command.prompt": "Windows スタート メニューで '{1}' と入力して、{0} を開きます。", + "walkthrough.windows.check.install": "{1} に「{0}」と入力して、MSVC のインストールを確認します。バージョンと基本的な使用法の説明とともに、著作権に関するメッセージが表示されます。", "walkthrough.windows.note2": "メモ", "walkthrough.windows.note2.text": "コマンド ラインまたは VS Code で MSVC を使用するには、{0} で実行する必要があります。{1}、{2}、Windows コマンド プロンプトなどの通常のシェルには、必要なパス環境変数が設定されていません。", - "walkthrough.windows.command.prompt.name2": "VS 向け開発者コマンド プロンプト", "walkthrough.windows.other.compilers": "その他のコンパイラ オプション", "walkthrough.windows.text3": "Windows から Linux に貼り付ける場合は、{0} をチェックしてください。あるいは、{1} も使用できます。", "walkthrough.windows.link.title1": "VS Code で C++ と Windows Subsystem for Linux (WSL) を使用する", diff --git a/Extension/i18n/kor/Reinstalling the Extension.md.i18n.json b/Extension/i18n/kor/Reinstalling the Extension.md.i18n.json index a6bbb5edc..1913952b0 100644 --- a/Extension/i18n/kor/Reinstalling the Extension.md.i18n.json +++ b/Extension/i18n/kor/Reinstalling the Extension.md.i18n.json @@ -16,6 +16,6 @@ "reinstall.extension.text5": "Windows에서:", "reinstall.extension.text6": "Linux에서:", "reinstall.extension.text7": "그런 다음 VS Code의 마켓플레이스 UI를 통해 다시 설치합니다.", - "reinstall.extension.text8": "확장 프로그램의 올바른 버전이 VS Code에 의해 배포되지 않으면 시스템에 올바른 VSIX가 {0}일 수 있고 VS Code의 마켓플레이스 UI의 '...' 메뉴 아래 'VSIX에서 설치...' 옵션을 사용하여 설치할 수 있습니다.", + "reinstall.extension.text8": "확장 프로그램의 올바른 버전이 VS Code에 의해 배포되지 않으면 시스템에 올바른 VSIX가 {0} 일 수 있고 VS Code의 마켓플레이스 UI의 '...' 메뉴 아래 'VSIX에서 설치...' 옵션을 사용하여 설치할 수 있습니다.", "download.vsix.link.title": "VS Code 마켓플레이스 웹 사이트에서 다운로드" -} \ No newline at end of file +} diff --git a/Extension/i18n/kor/c_cpp_properties.schema.json.i18n.json b/Extension/i18n/kor/c_cpp_properties.schema.json.i18n.json index 563ee6e6b..2b67e4ba4 100644 --- a/Extension/i18n/kor/c_cpp_properties.schema.json.i18n.json +++ b/Extension/i18n/kor/c_cpp_properties.schema.json.i18n.json @@ -9,7 +9,7 @@ "c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "사용된 포함 또는 정의를 수정하기 위한 컴파일러 인수입니다. `-nostdinc++`, `-m32` 등 추가 공백으로 구분된 인수를 사용하는 인수는 배열에 별도의 인수로 입력해야 합니다(예: `--sysroot `의 경우 `\"--sysroot\", \"\"`를 사용하세요).", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cStandard": "IntelliSense에 사용할 C 언어 표준의 버전입니다. 참고: GNU 표준은 GNU 정의를 가져오기 위해 설정된 컴파일러를 쿼리하는 데만 사용되며, IntelliSense는 해당 C 표준 버전을 에뮬레이트합니다.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cppStandard": "IntelliSense에 사용할 C++ 언어 표준의 버전입니다. 참고: GNU 표준은 GNU 정의를 가져오기 위해 설정된 컴파일러를 쿼리하는 데만 사용되며, IntelliSense는 해당 C++ 표준 버전을 에뮬레이트합니다.", - "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "작업 영역의 `compile_commands.json` 파일 전체 경로입니다.", + "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "작업 영역에 대한 `compile_commands.json` 파일의 전체 경로 또는 전체 경로 목록입니다.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.includePath": "포함된 헤더를 검색하는 동안 사용할 IntelliSense 엔진의 경로 목록입니다. 이러한 경로 검색은 비재귀적입니다. 재귀적 검색을 나타내려면 `**`를 지정합니다. 예를 들어 `${workspaceFolder}/**`는 모든 하위 디렉터리를 검색하지만 `${workspaceFolder}`는 하위 디렉터리를 검색하지 않습니다. 일반적으로 시스템 포함은 포함되지 않아야 하고 `C_Cpp.default.compilerPath`가 설정되어야 합니다.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "Mac 프레임워크에서 포함된 헤더를 검색하는 동안 사용할 IntelliSense 엔진의 경로 목록입니다. Mac 구성에서만 지원됩니다.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.windowsSdkVersion": "Windows에서 사용할 Windows SDK 포함 경로의 버전입니다(예: `10.0.17134.0`).", diff --git a/Extension/i18n/kor/package.i18n.json b/Extension/i18n/kor/package.i18n.json index 3a092f7d5..2c16b29f1 100644 --- a/Extension/i18n/kor/package.i18n.json +++ b/Extension/i18n/kor/package.i18n.json @@ -77,7 +77,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "'모두 지우기'(여러 문제 유형이 있는 경우), '모두 지우기 '(에 대해 여러 문제가 있는 경우) 및 '이 항목 지우기' 코드 작업 표시", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "`true`이면 '수정' 코드 동작에 의해 변경된 줄에서 서식이 실행됩니다.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "`true`인 경우 `#C_Cpp.codeAnalysis.runAutomatically#`가 `true`(기본값)이면 `clang-tidy`를 사용한 코드 분석을 사용하도록 설정되고 파일을 열거나 저장한 뒤 실행됩니다.", - "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` 실행 파일의 전체 경로입니다. 지정하지 않은 경우 `clang-tidy`를 환경 경로에서 사용할 수 있으면 해당 실행 파일이 사용됩니다. 환경 경로에 없는 경우에는 확장과 함께 제공된 `clang-tidy`가 사용됩니다.", + "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` 실행 파일의 전체 경로입니다. 지정하지 않았고 환경 경로에서 `clang-tidy`를 사용할 수 있으면 확장과 함께 번들로 제공되는 버전이 최신 버전이 아니면 이 경로가 사용됩니다. 환경 경로에 없는 경우에는 확장과 함께 제공된 `clang-tidy`가 사용됩니다.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "YAML/JSON 형식의 `clang-tidy` 구성을 지정합니다. `{Checks: '-*,clang-analyzer-*', CheckOptions: [{키: x, 값: y}]}`. 값이 비어 있으면 `clang-tidy`는 상위 디렉터리의 각 소스 파일에 대해 `.clang-tidy`라는 파일을 찾으려고 시도합니다.", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "`#C_Cpp.codeAnalysis.clangTidy.config#`가 설정되지 않고 `.clang-tidy` 파일을 찾을 수 없는 경우 대체로 사용할 YAML/JSON 형식의 `clang-tidy` 구성을 지정합니다. `{Checks: '-*, clang-analyzer-*', CheckOptions: [{키: x, 값: y}]}`.", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "진단을 출력할 헤더의 이름과 일치하는 POSIX 확장 정규식(ERE)입니다. 각 번역 단위의 기본 파일에서 진단이 항상 표시됩니다. `${workspaceFolder}` 변수가 지원됩니다(`.clang-tidy` 파일이 없는 경우 기본 폴백 값으로 사용됨). 이 옵션이 `null`(비어 있음)이 아닌 경우 `.clang-tidy` 파일의 `HeaderFilterRegex` 옵션(있는 경우)을 재정의합니다.", @@ -175,7 +175,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.oneLiners.markdownDescription": "모든 `C_Cpp.vcFormat.newLine.*` 설정의 값에 관계없이 한 줄에 입력된 전체 코드 블록이 한 줄에 유지됩니다.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription": "모든 `C_Cpp.vcFormat.newLine.*` 설정의 값에 관계없이 여는 중괄호와 닫는 중괄호가 입력된 모든 코드가 한 줄에 유지됩니다.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "코드 블록은 항상 `C_Cpp.vcFormat.newLine.*` 설정의 값에 따라 서식이 지정됩니다.", - "c_cpp.configuration.clang_format_path.markdownDescription": "`clang-format` 실행 파일의 전체 경로입니다. 지정하지 않은 경우 `clang-format`을 환경 경로에서 사용할 수 있으면 해당 실행 파일이 사용됩니다. 환경 경로에 없는 경우에는 확장과 함께 제공된 `clang-format`이 사용됩니다.", + "c_cpp.configuration.clang_format_path.markdownDescription": "`clang-format` 실행 파일의 전체 경로입니다. 지정하지 않고 `clang-format`을 환경 경로에서 사용할 수 있는 경우 확장과 함께 번들로 제공되는 버전이 최신 버전이 아니면 이 경로가 사용됩니다. 환경 경로에 없는 경우에는 확장과 함께 제공된 `clang-format`이 사용됩니다.", "c_cpp.configuration.clang_format_style.markdownDescription": "코딩 스타일은 현재 `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`을 지원합니다. `file`을 사용하여 현재 또는 상위 디렉터리의 `.clang-format` 파일에서 스타일을 로드하거나 `file:<경로>/.clang-format`을 사용하여 특정 경로를 참조하세요. `{키: 값, ...}`을 사용하여 특정 매개 변수를 설정합니다. 예를 들어 `Visual Studio` 스타일은 `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`와 유사합니다.", "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "`clang-format`이 `file` 스타일을 사용하여 호출되지만 `clang-format` 파일을 찾을 수 없는 경우 대체로 사용되는 미리 정의된 스타일의 이름입니다. 가능한 값은 `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`, `none`이거나 `{key: value, ...}`를 사용하여 특정 매개 변수를 설정합니다. 예를 들어 `Visual Studio` 스타일은 `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`와 유사합니다.", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "설정되는 경우 `SortIncludes` 매개 변수로 결정된 포함 정렬 동작을 재정의합니다.", @@ -205,7 +205,7 @@ "c_cpp.configuration.exclusionPolicy.markdownDescription": "`browse.path` 배열의 경로를 통과하는 동안 코드 탐색 데이터베이스에 추가할 파일을 결정할 때 `#files.exclude#`(및 `#C_Cpp.files.exclude#`) 설정을 사용할 시기를 확장에 지시합니다. `#files.exclude#` 설정에 폴더만 포함되어 있는 경우 `checkFolders`가 가장 좋은 선택이며 확장이 코드 탐색 데이터베이스를 초기화하는 속도를 향상시킵니다.", "c_cpp.configuration.exclusionPolicy.checkFolders.description": "제외 필터는 폴더당 한 번만 평가됩니다(개별 파일은 검사되지 않음).", "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "제외 필터는 발생한 모든 파일 및 폴더에 대해 평가됩니다.", - "c_cpp.configuration.preferredPathSeparator.markdownDescription": "`#include` 자동 완성 결과의 경로 구분 기호로 사용되는 문자입니다.", + "c_cpp.configuration.preferredPathSeparator.markdownDescription": "생성된 사용자 경로의 경로 구분 기호로 사용되는 문자입니다.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "`true`인 경우 가리키기 및 자동 완성 도구 설명에 구조적 주석의 특정 레이블만 표시됩니다. 그렇지 않으면 모든 주석이 표시됩니다.", "c_cpp.configuration.doxygen.generateOnType.description": "선택한 주석 스타일을 입력한 후 Doxygen 주석을 자동으로 삽입할지 여부를 제어합니다.", "c_cpp.configuration.doxygen.generatedStyle.description": "Doxygen 주석의 시작 줄로 사용되는 문자 문자열입니다.", @@ -253,6 +253,7 @@ "c_cpp.configuration.hover.description": "사용하지 않도록 설정하면 언어 서버에서 마우스로 가리키기 세부 정보를 더 이상 제공하지 않습니다.", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "[vcpkg 종속성 관리자](https://aka.ms/vcpkg/)에 대해 통합 서비스를 사용하도록 설정합니다.", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "`nan` 및 `node-addon-api`가 종속성일 때 해당 포함 경로를 추가합니다.", + "c_cpp.configuration.copilotHover.markdownDescription": "`disabled`인 경우 Hover에 Copilot 정보가 표시되지 않습니다.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "`true`이면 '기호 이름 바꾸기'에 유효한 C/C++ 식별자가 필요합니다.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "`true`이면 자동 완성에서 `#editor.autoClosingBrackets#` 설정 값에 따라 함수 호출 뒤에 `(`를 자동으로 추가하며, 이 경우 `)`도 추가될 수 있습니다.", "c_cpp.configuration.filesExclude.markdownDescription": "폴더를 제외하기 위한 glob 패턴을 구성합니다(`#C_Cpp.exclusionPolicy#`가 변경된 경우 파일도). 이는 C/C++ 확장에만 해당하며 `#files.exclude#`와 더불어 사용되지만 `#files.exclude#`와 달리 현재 작업 영역 폴더 외부의 경로에도 적용되며 탐색기 보기에서 제거되지 않습니다. [glob 패턴](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)에 대해 자세히 알아보세요.", @@ -427,8 +428,8 @@ "c_cpp.walkthrough.create.cpp.file.title": "C++ 파일 만들기", "c_cpp.walkthrough.create.cpp.file.description": "C++를 [열거나](command:toSide:workbench.action.files.openFile) [만드세요](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D). \"helloworld.cpp\"와 같이 \".cpp\" 확장자로 저장해야 합니다. \n[C++ 파일 만들기](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", "c_cpp.walkthrough.create.cpp.file.altText": "C++ 프로젝트를 사용하여 C++ 파일 또는 폴더를 엽니다.", - "c_cpp.walkthrough.command.prompt.title": "개발자 명령 프롬프트에서 시작", - "c_cpp.walkthrough.command.prompt.description": "Microsoft Visual Studio C++ 컴파일러를 사용하는 경우 C++ 확장을 사용하려면 개발자 명령 프롬프트에서 VS Code를 시작해야 합니다. 다시 시작하려면 오른쪽의 지침을 따르세요.\n[Window 다시 로드](command:workbench.action.reloadWindow)", + "c_cpp.walkthrough.command.prompt.title": "VS용 개발자 명령 프롬프트 시작", + "c_cpp.walkthrough.command.prompt.description": "Microsoft Visual Studio C++ 컴파일러를 사용하는 경우 C++ 확장을 사용하려면 VS용 개발자 명령 프롬프트에서 VS Code를 실행해야 합니다. 다시 시작하려면 오른쪽의 지침을 따르세요.\n[Window 다시 로드](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "C++ 파일 실행 및 디버그", "c_cpp.walkthrough.run.debug.mac.description": "C++ 파일을 열고 편집기의 오른쪽 상단 모서리에 있는 재생 버튼을 클릭하거나 파일에서 F5를 누릅니다. 디버거와 함께 실행하려면 \"clang++ - 활성 파일 빌드 및 디버그\"를 선택합니다.", "c_cpp.walkthrough.run.debug.linux.description": "C++ 파일을 열고 편집기의 오른쪽 상단 모서리에 있는 재생 버튼을 클릭하거나 파일에서 F5를 누릅니다. 디버거와 함께 실행하려면 \"g++- 활성 파일 빌드 및 디버그\"를 선택합니다.", diff --git a/Extension/i18n/kor/src/Debugger/ParsedEnvironmentFile.i18n.json b/Extension/i18n/kor/src/Debugger/ParsedEnvironmentFile.i18n.json index 0886012f7..8cd48a24b 100644 --- a/Extension/i18n/kor/src/Debugger/ParsedEnvironmentFile.i18n.json +++ b/Extension/i18n/kor/src/Debugger/ParsedEnvironmentFile.i18n.json @@ -4,5 +4,5 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "ignoring.lines.in.envfile": "{0} {1}에서 구문 분석할 수 없는 줄을 무시하는 중: " -} \ No newline at end of file + "ignoring.lines.in.envfile": "{0} {1} 에서 구문 분석할 수 없는 줄을 무시하는 중: " +} diff --git a/Extension/i18n/kor/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/kor/src/Debugger/attachToProcess.i18n.json index 7f73c5da2..96348c527 100644 --- a/Extension/i18n/kor/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/kor/src/Debugger/attachToProcess.i18n.json @@ -4,12 +4,12 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "debugger.path.and.server.address.required": "디버그 구성에서 {0}을 사용하려면 {1} 및 {2}이(가) 있어야 합니다.", - "no.pipetransport.useextendedremote": "선택한 디버그 구성에 {0} 또는 {1}이(가) 포함되어 있지 않습니다.", + "debugger.path.and.server.address.required": "디버그 구성에서 {0} 을 사용하려면 {1} 및 {2} 이(가) 있어야 합니다.", + "no.pipetransport.useextendedremote": "선택한 디버그 구성에 {0} 또는 {1} 이(가) 포함되어 있지 않습니다.", "select.process.attach": "연결할 프로세스 선택", "process.not.selected": "프로세스가 선택되지 않았습니다.", "pipe.failed": "파이프 전송이 OS 및 프로세스를 가져오지 못했습니다.", "no.process.list": "전송 연결이 프로세스 목록을 가져올 수 없습니다.", "failed.to.make.gdb.connection": "다음 GDB 연결을 만들지 못했습니다. \"{0}\"", "failed.to.parse.processes": "다음 프로세스를 구문 분석하지 못했습니다. \"{0}\"" -} \ No newline at end of file +} diff --git a/Extension/i18n/kor/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/kor/src/Debugger/configurationProvider.i18n.json index 826cc718f..b0db5a64d 100644 --- a/Extension/i18n/kor/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/kor/src/Debugger/configurationProvider.i18n.json @@ -13,19 +13,19 @@ "debugger.launchConfig": "시작 구성:", "vs.code.1.69+.required": "'deploySteps'에는 VS Code 1.69 이상이 필요합니다.", "running.deploy.steps": "배포 단계 실행 중...", - "compiler.path.not.exists": "{0}을(를) 찾을 수 없습니다. {1} 작업이 무시됩니다.", + "compiler.path.not.exists": "{0} 을(를) 찾을 수 없습니다. {1} 작업이 무시됩니다.", "pre.Launch.Task": "preLaunchTask: {0}", - "debugger.path.not.exists": "{0} 디버거를 찾을 수 없습니다. {1}에 대한 디버그 구성은 무시됩니다.", + "debugger.path.not.exists": "{0} 디버거를 찾을 수 없습니다. {1} 에 대한 디버그 구성은 무시됩니다.", "build.and.debug.active.file": "활성 파일 빌드 및 디버그", - "cl.exe.not.available": "{0} 빌드 및 디버그는 VS의 개발자 명령 프롬프트에서 VS Code를 실행하는 경우에만 사용할 수 있습니다.", + "cl.exe.not.available": "{0} 은(는) VS Code가 {1} 에서 실행되는 경우에만 사용할 수 있습니다.", "lldb.find.failed": "lldb-mi 실행 파일에 대한 '{0}' 종속성이 없습니다.", "lldb.search.paths": "다음에서 검색됨:", "lldb.install.help": "이 문제를 해결하려면 Apple App Store를 통해 XCode를 설치하거나, 터미널 창에서 '{0}'을(를) 실행하여 XCode 명령줄 도구를 설치하세요.", - "envfile.failed": "{0}을(를) 사용하지 못했습니다. 이유: {1}", + "envfile.failed": "{0} 을(를) 사용하지 못했습니다. 이유: {1}", "replacing.sourcepath": "{0} '{1}'을(를) '{2}'(으)로 바꾸는 중입니다.", "replacing.targetpath": "{0} '{1}'을(를) '{2}'(으)로 바꾸는 중입니다.", "replacing.editorPath": "{0} '{1}'을(를) '{2}'(으)로 바꾸는 중입니다.", - "resolving.variables.in.sourcefilemap": "{0}에서 변수를 확인하는 중...", + "resolving.variables.in.sourcefilemap": "{0} 에서 변수를 확인하는 중...", "open.envfile": "{0} 열기", "recently.used.task": "최근에 사용한 앱", "configured.task": "구성된 작업", @@ -38,9 +38,9 @@ "incorrect.files.type.copyFile": "\"files\"는 {0} 단계에서 문자열 또는 문자열 배열이어야 합니다.", "missing.properties.ssh": "\"host\" 및 \"command\"는 ssh 단계에 필요합니다.", "missing.properties.shell": "\"command\"는 셸 단계에 필요합니다.", - "deploy.step.type.not.supported": "배포 단계 유형 {0}은(는) 지원되지 않습니다.", + "deploy.step.type.not.supported": "배포 단계 유형 {0} 은(는) 지원되지 않습니다.", "unexpected.os": "예기치 않은 OS 유형", "path.to.pipe.program": "{0} 같은 파이프 프로그램의 전체 경로", - "enable.pretty.printing": "{0}에 자동 서식 지정 사용", + "enable.pretty.printing": "{0} 에 자동 서식 지정 사용", "enable.intel.disassembly.flavor": "디스어셈블리 버전을 {0}(으)로 설정" -} \ No newline at end of file +} diff --git a/Extension/i18n/kor/src/Debugger/configurations.i18n.json b/Extension/i18n/kor/src/Debugger/configurations.i18n.json index c7ab7e23b..642128a9e 100644 --- a/Extension/i18n/kor/src/Debugger/configurations.i18n.json +++ b/Extension/i18n/kor/src/Debugger/configurations.i18n.json @@ -6,17 +6,17 @@ { "enter.program.name": "프로그램 이름 입력(예: {0})", "launch.string": "시작", - "launch.with": "{0}을(를) 사용하여 시작합니다.", + "launch.with": "{0} 을(를) 사용하여 시작합니다.", "attach.string": "연결", - "attach.with": "{0}과(와) 연결합니다.", + "attach.with": "{0} 과(와) 연결합니다.", "pipe.launch": "파이프 시작", - "pipe.launch.with": "{0}을(를) 사용한 파이프 시작입니다.", + "pipe.launch.with": "{0} 을(를) 사용한 파이프 시작입니다.", "pipe.attach": "파이프 연결", - "pipe.attach.with": "{0}을(를) 사용한 파이프 연결입니다.", + "pipe.attach.with": "{0} 을(를) 사용한 파이프 연결입니다.", "launch.with.vs.debugger": "Visual Studio C/C++ 디버거를 사용하여 시작합니다.", "attach.with.vs.debugger": "Visual Studio C/C++ 디버거를 사용하여 프로세스에 연결합니다.", "bash.on.windows.launch": "Windows 시작의 Bash", - "launch.bash.windows": "{0}을(를) 사용하여 Windows에서 Bash를 시작합니다.", + "launch.bash.windows": "{0} 을(를) 사용하여 Windows에서 Bash를 시작합니다.", "bash.on.windows.attach": "Windows 연결의 Bash", - "remote.attach.bash.windows": "{0}을(를) 사용하여 Windows의 Bash에서 실행되는 원격 프로세스에 연결합니다." -} \ No newline at end of file + "remote.attach.bash.windows": "{0} 을(를) 사용하여 Windows의 Bash에서 실행되는 원격 프로세스에 연결합니다." +} diff --git a/Extension/i18n/kor/src/Debugger/nativeAttach.i18n.json b/Extension/i18n/kor/src/Debugger/nativeAttach.i18n.json index fde7300cc..e20cbcea2 100644 --- a/Extension/i18n/kor/src/Debugger/nativeAttach.i18n.json +++ b/Extension/i18n/kor/src/Debugger/nativeAttach.i18n.json @@ -5,8 +5,8 @@ // Do not edit this file. It is machine generated. { "os.not.supported": "운영 체제 \"{0}\"은(는) 지원되지 않습니다.", - "timeout.processList.spawn": "{1}초 후에 \"{0}\" 시간이 초과되었습니다.", + "timeout.processList.spawn": "{1} 초 후에 \"{0}\" 시간이 초과되었습니다.", "cancel.processList.spawn": "\"{0}\"이(가) 취소되었습니다.", "error.processList.spawn": "\"{0}\"이(가) 코드 \"{1}\"(으)로 종료되었습니다.", "failed.processList.spawn": "\"{0}\"을(를) 생성하지 못했습니다." -} \ No newline at end of file +} diff --git a/Extension/i18n/kor/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json b/Extension/i18n/kor/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json new file mode 100644 index 000000000..0ca285c6e --- /dev/null +++ b/Extension/i18n/kor/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "generate.copilot.description": "Copilot 요약 생성", + "copilot.disclaimer": "AI 생성 콘텐츠가 잘못되었을 수 있습니다." +} \ No newline at end of file diff --git a/Extension/i18n/kor/src/LanguageServer/client.i18n.json b/Extension/i18n/kor/src/LanguageServer/client.i18n.json index 6959b3a1e..c44274113 100644 --- a/Extension/i18n/kor/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/kor/src/LanguageServer/client.i18n.json @@ -7,7 +7,7 @@ "select.compiler": "IntelliSense에 구성할 컴파일러 선택", "configure.intelliSense.forFolder": "'{0}' 폴더에 대해 IntelliSense를 어떻게 구성하시겠습니까?", "configure.intelliSense.thisFolder": "이 폴더에 IntelliSense를 어떻게 구성하려고 하나요?", - "found.string": "{0}에서 찾음", + "found.string": "{0} 에서 찾음", "use.compiler": "{0} 사용", "configuration.providers": "구성 공급자", "compilers": "컴파일러", @@ -23,13 +23,13 @@ "unable.to.start": "C/C++ 언어 서버를 시작할 수 없습니다. IntelliSense 기능을 사용할 수 없습니다. 오류: {0}", "server.crashed.restart": "언어 서버가 중단되었습니다. 다시 시작하는 중입니다...", "server.crashed2": "지난 3분 동안 언어 서버에서 크래시가 5회 발생했습니다. 다시 시작되지 않습니다.", - "loggingLevel.changed": "{0}이(가) {1}(으)로 변경되었습니다.", + "loggingLevel.changed": "{0} 이(가) {1}(으)로 변경되었습니다.", "dismiss.button": "해제", "disable.warnings.button": "경고 사용 안 함", - "unable.to.provide.configuration": "{0}은(는) '{1}'에 대한 IntelliSense 구성 정보를 제공할 수 없습니다. '{2}' 구성의 설정이 대신 사용됩니다.", + "unable.to.provide.configuration": "{0} 은(는) '{1}'에 대한 IntelliSense 구성 정보를 제공할 수 없습니다. '{2}' 구성의 설정이 대신 사용됩니다.", "config.not.found": "요청된 구성 이름을 찾을 수 없음: {0}", "unsupported.client": "지원되지 않는 클라이언트", - "timed.out": "{0}ms 후 시간이 초과되었습니다.", + "timed.out": "{0} ms 후 시간이 초과되었습니다.", "update.intellisense.time": "IntelliSense 시간(초) 업데이트: {0}", "configurations.received": "사용자 지정 구성이 수신됨:", "browse.configuration.received": "사용자 지정 찾아보기 구성이 수신됨: {0}", @@ -38,4 +38,4 @@ "handle.extract.new.function": "NewFunction", "handle.extract.error": "함수로 추출 실패: {0}", "invalid.edit": "함수로 추출하지 못했습니다. 잘못된 편집이 생성되었습니다. '{0}'" -} \ No newline at end of file +} diff --git a/Extension/i18n/kor/src/LanguageServer/codeAnalysis.i18n.json b/Extension/i18n/kor/src/LanguageServer/codeAnalysis.i18n.json index 8f7e8c21d..fe4272ef0 100644 --- a/Extension/i18n/kor/src/LanguageServer/codeAnalysis.i18n.json +++ b/Extension/i18n/kor/src/LanguageServer/codeAnalysis.i18n.json @@ -11,5 +11,5 @@ "clear.all.type.problems": "모든 {0} 문제 해결", "clear.this.problem": "이 {0} 문제 해결", "fix.this.problem": "이 {0} 문제 해결", - "show.documentation.for": "{0}에 대한 문서 표시" -} \ No newline at end of file + "show.documentation.for": "{0} 에 대한 문서 표시" +} diff --git a/Extension/i18n/kor/src/LanguageServer/configurations.i18n.json b/Extension/i18n/kor/src/LanguageServer/configurations.i18n.json index bba8f04b9..b46603e18 100644 --- a/Extension/i18n/kor/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/kor/src/LanguageServer/configurations.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "incompatible.intellisense.mode": "IntelliSense 모드 {0}은(는) 컴파일러 경로와 호환되지 않습니다.", - "failed.to.create.config.folder": "{0}을(를) 만들지 못했습니다.", + "incompatible.intellisense.mode": "IntelliSense 모드 {0} 은(는) 컴파일러 경로와 호환되지 않습니다.", + "failed.to.create.config.folder": "{0} 을(를) 만들지 못했습니다.", "invalid.configuration.file": "구성 파일이 잘못되었습니다. 배열에 구성이 하나 이상 있어야 합니다.", "unknown.properties.version": "c_cpp_properties.json에 알 수 없는 버전 번호가 있습니다. 일부 기능이 예상대로 작동하지 않을 수 있습니다.", "update.properties.failed": "\"{0}\"을(를) 업데이트하지 못했습니다(쓰기 권한이 있어야 함).", @@ -15,7 +15,8 @@ "cannot.resolve.compiler.path": "입력이 잘못되었습니다. 컴파일러 경로를 확인할 수 없습니다.", "path.is.not.a.file": "경로가 파일이 아닙니다. {0}", "path.is.not.a.directory": "경로가 디렉터리가 아닙니다. {0}", - "duplicate.name": "{0}은(는) 중복됩니다. 구성 이름은 고유해야 합니다.", + "duplicate.name": "{0} 은(는) 중복됩니다. 구성 이름은 고유해야 합니다.", "multiple.paths.not.allowed": "여러 경로는 허용되지 않습니다.", + "multiple.paths.should.be.separate.entries": "여러 경로는 배열에서 별도의 항목이어야 합니다.", "paths.are.not.directories": "경로는 디렉터리가 아닙니다. {0}" -} \ No newline at end of file +} diff --git a/Extension/i18n/kor/src/LanguageServer/extension.i18n.json b/Extension/i18n/kor/src/LanguageServer/extension.i18n.json index 5b547e76b..d7dfb9d83 100644 --- a/Extension/i18n/kor/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/kor/src/LanguageServer/extension.i18n.json @@ -19,5 +19,9 @@ "code.action.aborted": "문서가 변경되어 코드 분석 수정 사항을 적용할 수 없습니다.", "prerelease.message": "C/C++ 확장의 시험판 버전을 사용할 수 있습니다. 전환하시겠습니까?", "yes.button": "예", - "no.button": "아니요" + "no.button": "아니요", + "copilot.hover.unavailable": "Copilot 요약을 사용할 수 없습니다.", + "copilot.hover.excluded": "이 기호의 정의 또는 선언이 포함된 파일은 Copilot에서 사용되지 않도록 제외되었습니다.", + "copilot.hover.unavailable.symbol": "이 기호에는 Copilot 요약을 사용할 수 없습니다.", + "copilot.hover.error": "Copilot 요약을 생성하는 동안 오류가 발생했습니다." } \ No newline at end of file diff --git a/Extension/i18n/kor/src/LanguageServer/references.i18n.json b/Extension/i18n/kor/src/LanguageServer/references.i18n.json index 773efeadc..0969c7ac0 100644 --- a/Extension/i18n/kor/src/LanguageServer/references.i18n.json +++ b/Extension/i18n/kor/src/LanguageServer/references.i18n.json @@ -28,8 +28,8 @@ "started": "시작되었습니다.", "processing.source": "소스를 처리하고 있습니다.", "searching.files": "파일을 검색하고 있습니다.", - "files.searched": "{0}/{1}개 파일이 검색되었습니다.{2}", - "files.confirmed": "{0}/{1}개 파일이 확인되었습니다.{2}", + "files.searched": "{0}/{1} 개 파일이 검색되었습니다.{2}", + "files.confirmed": "{0}/{1} 개 파일이 확인되었습니다.{2}", "c.cpp.peek.references": "C/C++ Peek 참조", - "some.references.may.be.missing": "[경고] {0}을(를) 시작할 때 작업 영역 구문 분석이 완료되지 않았으므로 일부 참조가 없을 수 있습니다." -} \ No newline at end of file + "some.references.may.be.missing": "[경고] {0} 을(를) 시작할 때 작업 영역 구문 분석이 완료되지 않았으므로 일부 참조가 없을 수 있습니다." +} diff --git a/Extension/i18n/kor/src/SSH/commandInteractors.i18n.json b/Extension/i18n/kor/src/SSH/commandInteractors.i18n.json index 05724c463..050148ea9 100644 --- a/Extension/i18n/kor/src/SSH/commandInteractors.i18n.json +++ b/Extension/i18n/kor/src/SSH/commandInteractors.i18n.json @@ -4,5 +4,5 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "failed.to.connect": "{0}에 연결하지 못했습니다." -} \ No newline at end of file + "failed.to.connect": "{0} 에 연결하지 못했습니다." +} diff --git a/Extension/i18n/kor/src/SSH/sshHosts.i18n.json b/Extension/i18n/kor/src/SSH/sshHosts.i18n.json index 2b3eba04b..1c6701a30 100644 --- a/Extension/i18n/kor/src/SSH/sshHosts.i18n.json +++ b/Extension/i18n/kor/src/SSH/sshHosts.i18n.json @@ -5,7 +5,7 @@ // Do not edit this file. It is machine generated. { "failed.to.find.user.info.for.SSH": "SSH에 대한 사용자 정보를 찾지 못했습니다. 'snap'을 사용하여 VS Code를 설치한 것이 원인일 수 있습니다. SSH 기능을 사용하려는 경우 'deb' 패키지를 사용하여 VS Code를 다시 설치하세요.", - "failed.to.parse.SSH.config": "SSH 구성 파일 {0}을(를) 구문 분석하지 못했습니다. {1}", - "failed.to.read.file": "파일 {0}을(를) 읽지 못했습니다.", + "failed.to.parse.SSH.config": "SSH 구성 파일 {0} 을(를) 구문 분석하지 못했습니다. {1}", + "failed.to.read.file": "파일 {0} 을(를) 읽지 못했습니다.", "failed.to.write.file": "{0} 파일에 쓰지 못했습니다." -} \ No newline at end of file +} diff --git a/Extension/i18n/kor/src/common.i18n.json b/Extension/i18n/kor/src/common.i18n.json index bbeb36d78..820fe8884 100644 --- a/Extension/i18n/kor/src/common.i18n.json +++ b/Extension/i18n/kor/src/common.i18n.json @@ -6,12 +6,12 @@ { "failed.to.parse.json": "주석 또는 후행 쉼표로 인해 json 파일을 구문 분석하지 못했습니다.", "extension.not.ready": "C/C++ 확장을 아직 설치하고 있습니다. 자세한 내용은 출력 창을 참조하세요.", - "refer.read.me": "문제 해결 정보를 보려면 {0}을(를) 참조하세요. 이슈는 {1}에서 만들 수 있습니다.", + "refer.read.me": "문제 해결 정보를 보려면 {0} 을(를) 참조하세요. 이슈는 {1} 에서 만들 수 있습니다.", "process.exited": "프로세스가 {0} 코드로 종료됨", "process.succeeded": "프로세스가 성공적으로 실행되었습니다.", - "killing.process": "프로세스 {0}종료 중", - "warning.file.missing": "경고: 필요한 파일 {0}이(가) 없습니다.", + "killing.process": "프로세스 {0} 종료 중", + "warning.file.missing": "경고: 필요한 파일 {0} 이(가) 없습니다.", "warning.debugging.not.tested": "경고: 디버깅이 이 플랫폼에서 테스트되지 않았습니다.", "reload.workspace.for.changes": "설정 변경 내용을 적용하려면 작업 영역을 다시 로드합니다.", "reload.string": "다시 로드" -} \ No newline at end of file +} diff --git a/Extension/i18n/kor/src/expand.i18n.json b/Extension/i18n/kor/src/expand.i18n.json index 53936ce20..d2ef28ccf 100644 --- a/Extension/i18n/kor/src/expand.i18n.json +++ b/Extension/i18n/kor/src/expand.i18n.json @@ -5,8 +5,8 @@ // Do not edit this file. It is machine generated. { "max.recursion.reached": "최대 문자열 확장 재귀에 도달했습니다. 순환 참조가 발생할 수 있습니다.", - "invalid.var.reference": "문자열 {1}의 잘못된 변수 참조 {0}", - "env.var.not.found": "환경 변수 {0}을(를) 찾을 수 없습니다.", + "invalid.var.reference": "문자열 {1} 의 잘못된 변수 참조 {0}", + "env.var.not.found": "환경 변수 {0} 을(를) 찾을 수 없습니다.", "commands.not.supported": "{0} 문자열에는 명령이 지원되지 않습니다.", "exception.executing.command": "{1} {2} 문자열에 대해 {0} 명령을 실행하는 동안 예외가 발생했습니다." -} \ No newline at end of file +} diff --git a/Extension/i18n/kor/src/main.i18n.json b/Extension/i18n/kor/src/main.i18n.json index c6a8aeb7f..75c534b07 100644 --- a/Extension/i18n/kor/src/main.i18n.json +++ b/Extension/i18n/kor/src/main.i18n.json @@ -4,10 +4,10 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "macos.version.deprecated": "{0}보다 최신 버전의 C/C++ 확장에는 macOS 버전 {1} 이상이 필요합니다.", + "macos.version.deprecated": "{0} 보다 최신 버전의 C/C++ 확장에는 macOS 버전 {1} 이상이 필요합니다.", "intellisense.disabled": "IntelliSenseEngine이 비활성화되었습니다.", "more.info.button": "더 많은 정보", "ignore.button": "무시", "vsix.platform.incompatible": "설치된 C/C++ 확장이 시스템과 일치하지 않습니다.", "vsix.platform.mismatching": "설치된 C/C++ 확장이 시스템과 호환되지만 일치하지 않습니다." -} \ No newline at end of file +} diff --git a/Extension/i18n/kor/src/nativeStrings.i18n.json b/Extension/i18n/kor/src/nativeStrings.i18n.json index 9b6dc985e..93b3cb6be 100644 --- a/Extension/i18n/kor/src/nativeStrings.i18n.json +++ b/Extension/i18n/kor/src/nativeStrings.i18n.json @@ -25,11 +25,11 @@ "request_wait_error": "요청을 기다리는 동안 예기치 않은 오류가 발생했습니다. {0}", "errored_with": "다음으로 인해 {0} 오류가 발생했습니다. {1}", "file_open_failed": "{0} 파일을 열지 못했습니다.", - "default_query_failed": "{0}의 기본 포함 경로 및 정의를 쿼리하지 못했습니다.", - "failed_call": "{0}을(를) 호출하지 못했습니다.", + "default_query_failed": "{0} 의 기본 포함 경로 및 정의를 쿼리하지 못했습니다.", + "failed_call": "{0} 을(를) 호출하지 못했습니다.", "quick_info_failed": "요약 정보 작업 실패: {0}", - "create_intellisense_client_failed": "IntelliSense 클라이언트 {0}을(를) 만들지 못했습니다.", - "intellisense_spawn_failed": "IntelliSense 프로세스 {0}을(를) 생성하지 못했습니다.", + "create_intellisense_client_failed": "IntelliSense 클라이언트 {0} 을(를) 만들지 못했습니다.", + "intellisense_spawn_failed": "IntelliSense 프로세스 {0} 을(를) 생성하지 못했습니다.", "browse_engine_update_thread_join_failed": "browse_engine_update_thread.join()을 호출하는 동안 오류가 발생했습니다. {0}", "already_open_different_casing": "이 파일({0})은 편집기에서 이미 열려 있지만 대/소문자가 다릅니다. 이 파일 복사본에서 IntelliSense 기능을 사용할 수 없습니다.", "intellisense_client_disconnected": "서버에서 IntelliSense 클라이언트의 연결이 끊어졌습니다. {0}", @@ -38,26 +38,26 @@ "reset_timestamp_failed": "중단하는 동안 타임스탬프를 다시 설정하지 못했습니다. 오류 = {0}: {1}", "update_timestamp_failed": "타임스탬프를 업데이트할 수 없습니다. 오류 = {0}: {1}", "finalize_updates_failed": "파일 업데이트를 완료할 수 없습니다. 오류 = {0}: {1}", - "not_directory_with_mode": "{0}은(는) 디렉터리가 아닙니다(st_mode={1}).", - "retrieve_fs_info_failed": "{0}의 파일 시스템 정보를 검색할 수 없습니다. 오류 = {1}", - "not_directory": "{0}은(는) 디렉터리가 아닙니다.", + "not_directory_with_mode": "{0} 은(는) 디렉터리가 아닙니다(st_mode={1}).", + "retrieve_fs_info_failed": "{0} 의 파일 시스템 정보를 검색할 수 없습니다. 오류 = {1}", + "not_directory": "{0} 은(는) 디렉터리가 아닙니다.", "file_discovery_aborted": "파일 검색이 중단되었습니다.", "aborting_tag_parse": "{0} 및 종속성의 태그 구문 분석을 중단하는 중", "aborting_tag_parse_at_root": "루트에서 태그 구문 분석을 중단합니다.", "unable_to_retrieve_to_reset_timestamps": "타임스탬프를 다시 설정할 DB 레코드를 검색할 수 없습니다. 오류 = {0}", - "failed_to_reset_timestamps_for": "{0}에 대한 타임스탬프를 다시 설정하지 못했습니다. 오류 = {1}", + "failed_to_reset_timestamps_for": "{0} 에 대한 타임스탬프를 다시 설정하지 못했습니다. 오류 = {1}", "no_suitable_complier": "적합한 컴파일러를 찾을 수 없습니다. c_cpp_properties.json에서 \"compilerPath\"를 설정하세요.", "compiler_include_not_found": "컴파일러 포함 경로를 찾을 수 없음: {0}", "intellisense_not_responding": "IntelliSense 엔진이 응답하지 않습니다. 태그 파서를 대신 사용합니다.", - "tag_parser_will_be_used": "태그 파서는 {0}의 IntelliSense 작업에 사용됩니다.", - "error_squiggles_disabled_in": "{0}에서 오류 표시선을 사용할 수 없습니다.", + "tag_parser_will_be_used": "태그 파서는 {0} 의 IntelliSense 작업에 사용됩니다.", + "error_squiggles_disabled_in": "{0} 에서 오류 표시선을 사용할 수 없습니다.", "processing_folder_nonrecursive": "폴더를 처리하는 중(비재귀적): {0}", "processing_folder_recursive": "폴더를 처리하는 중(재귀적): {0}", "file_exclude": "파일 제외: {0}", "search_exclude": "검색 제외: {0}", - "discovery_files_processed": "파일 검색 중: {0}개 파일 처리됨", + "discovery_files_processed": "파일 검색 중: {0} 개 파일 처리됨", "files_removed_from_database": "{0} 파일이 데이터베이스에서 제거되었습니다.", - "parsing_files_processed": "구문 분석하는 중: {0}개 파일이 처리됨", + "parsing_files_processed": "구문 분석하는 중: {0} 개 파일이 처리됨", "shutting_down_intellisense": "IntelliSense 서버를 종료하는 중: {0}", "resetting_intellisense": "IntelliSense 서버를 다시 설정하는 중: {0}", "code_browsing_initialized": "코드 검색 서비스가 초기화되었습니다.", @@ -70,7 +70,7 @@ "parsing_remaining_files": "나머지 파일을 구문 분석하는 중...", "done_parsing_remaining_files": "나머지 파일의 구문 분석을 완료했습니다.", "using_configuration": "구성을 사용하는 중: \"{0}\"", - "include_path_suggestions_discovered": "{0}개 포함 경로 제안이 검색되었습니다.", + "include_path_suggestions_discovered": "{0} 개 포함 경로 제안이 검색되었습니다.", "checking_for_syntax_errors": "구문 오류를 확인하는 중: {0}", "intellisense_engine_is": "IntelliSense 엔진 = {0}.", "will_use_tag_parser_when_includes_dont_resolve": "이 확장은 #includes가 확인되지 않을 때 IntelliSense에 태그 파서를 사용합니다.", @@ -85,13 +85,13 @@ "replaced_placeholder_file_record": "바뀐 자리 표시자 파일 레코드", "tag_parsing_file": "태그 구문 분석 파일: {0}", "tag_parsing_error": "태그 구문 분석 오류(기호를 찾을 수 없는 경우 무시할 수 있음):", - "reset_timestamp_for": "{0}에 대한 타임스탬프 다시 설정", + "reset_timestamp_for": "{0} 에 대한 타임스탬프 다시 설정", "remove_file_failed": "파일을 제거하지 못했습니다. {0}", "regex_parse_error": "Regex 구문 분석 오류 - vscode 패턴: {0}, regex: {1}, 오류 메시지: {2}", "terminating_child_process": "자식 프로세스를 종료하는 중: {0}", "still_alive_killing": "계속 활성화되어 있습니다. 종료하는 중...", "giving_up": "포기", - "not_exited_yet": "아직 종료되지 않았습니다. {0}밀리초 동안 일시 중지된 후 다시 시도합니다.", + "not_exited_yet": "아직 종료되지 않았습니다. {0} 밀리초 동안 일시 중지된 후 다시 시도합니다.", "failed_to_spawn_process": "프로세스를 생성하지 못했습니다. 오류: {0}({1})", "offering_completion": "완료 제공 중", "compiler_on_machine": "머신에 있는 컴파일러(경로: '{0}')에서 기본값을 가져오는 중입니다.", @@ -100,7 +100,7 @@ "intellisense_client_not_available_quick_info": "IntelliSense 클라이언트를 사용할 수 없습니다. 요약 정보에 태그 파서를 사용합니다.", "tag_parser_quick_info": "요약 정보에 태그 파서를 사용하는 중", "closing_communication_channel": "통신 채널을 닫는 중입니다.", - "sending_compilation_args": "{0}에 대한 컴파일 인수를 보내는 중", + "sending_compilation_args": "{0} 에 대한 컴파일 인수를 보내는 중", "include_label": "포함: {0}", "framework_label": "프레임워크: {0}", "define_label": "정의: {0}", @@ -136,9 +136,9 @@ "cant_find_or_run_process": "process_name을 찾거나 실행할 수 없습니다.", "child_exec_failed": "자식 실행 실패 {0}", "could_not_communicate_with_child_process": "자식 프로세스와 통신할 수 없습니다.", - "arg_failed": "{0}개 실패", + "arg_failed": "{0} 개 실패", "failed_to_set_flag": "{0} 플래그를 설정하지 못했습니다.", - "unable_to_create": "{0}을(를) 만들 수 없습니다.", + "unable_to_create": "{0} 을(를) 만들 수 없습니다.", "failed_to_set_stdout_flag": "stdin {0} 플래그를 설정하지 못했습니다.", "failed_to_set_stdin_flag": "stdout {0} 플래그를 설정하지 못했습니다.", "failed_to_set_stderr_flag": "stderr {0} 플래그를 설정하지 못했습니다.", @@ -147,10 +147,10 @@ "process_failed_to_run": "프로세스를 실행하지 못했습니다.", "compiler_in_compilerpath_not_found": "지정한 컴파일러를 찾을 수 없습니다. {0}", "config_data_invalid": "구성 데이터가 잘못됨, {0}", - "cmake_executable_not_found": "{0}에서 CMake 실행 파일을 찾을 수 없음", + "cmake_executable_not_found": "{0} 에서 CMake 실행 파일을 찾을 수 없음", "no_args_provider": "인수 공급자가 없음", "invalid_file_path": "잘못된 파일 경로 {0}", - "cant_create_intellisense_client_for": "{0}에 대한 IntelliSense 클라이언트를 만들 수 없음", + "cant_create_intellisense_client_for": "{0} 에 대한 IntelliSense 클라이언트를 만들 수 없음", "suffix_declaration": "선언", "suffix_type_alias": "형식 별칭", "fallback_to_32_bit_mode": "컴파일러가 64비트를 지원하지 않습니다. 32비트 intelliSenseMode로 대체하는 중입니다.", @@ -159,8 +159,8 @@ "fallback_to_64_bit_mode2": "컴파일러를 쿼리하지 못했습니다. 64비트 intelliSenseMode로 대체하는 중입니다.", "fallback_to_no_bitness": "컴파일러를 쿼리하지 못했습니다. 0비트로 대체하는 중입니다.", "intellisense_client_creation_aborted": "IntelliSense 클라이언트 만들기가 중단되었습니다. {0}", - "include_errors_config_provider_intellisense_disabled ": "configurationProvider 설정에서 제공하는 정보를 기준으로 #include 오류가 검색되었습니다. 태그 파서가 이 변환 단위({0})에 적합한 IntelliSense 기능을 제공합니다.", - "include_errors_config_provider_squiggles_disabled ": "configurationProvider 설정에서 제공하는 정보를 기준으로 #include 오류가 검색되었습니다. 이 변환 단위({0})에서 물결선을 사용할 수 없습니다.", + "include_errors_config_provider_intellisense_disabled": "configurationProvider 설정에서 제공하는 정보를 기준으로 #include 오류가 검색되었습니다. 태그 파서가 이 변환 단위({0})에 적합한 IntelliSense 기능을 제공합니다.", + "include_errors_config_provider_squiggles_disabled": "configurationProvider 설정에서 제공하는 정보를 기준으로 #include 오류가 검색되었습니다. 이 변환 단위({0})에서 물결선을 사용할 수 없습니다.", "preprocessor_keyword": "전처리기 키워드", "c_keyword": "C 키워드", "cpp_keyword": "C++ 키워드", @@ -220,14 +220,14 @@ "compiler_path_empty": "명시적으로 빈 compilerPath로 인해 컴파일러 쿼리를 건너뜁니다.", "msvc_intellisense_specified": "MSVC intelliSenseMode를 지정했습니다. 컴파일러 cl.exe에 대해 구성합니다.", "unable_to_configure_cl_exe": "컴파일러 cl.exe를 구성할 수 없습니다.", - "querying_compiler_default_target": "명령줄 \"{0}\" {1}을(를) 사용하여 컴파일러의 기본 대상을 쿼리하는 중", + "querying_compiler_default_target": "명령줄 \"{0}\" {1} 을(를) 사용하여 컴파일러의 기본 대상을 쿼리하는 중", "compiler_default_target": "컴파일러가 기본 대상 값을 반환함: {0}", - "c_querying_compiler_default_standard": "명령줄 {0}을(를) 사용하여 기본 C 언어 표준에 대한 컴파일러를 쿼리하는 중", - "cpp_querying_compiler_default_standard": "명령줄 {0}을(를) 사용하여 기본 C++ 언어 표준에 대한 컴파일러를 쿼리하는 중", + "c_querying_compiler_default_standard": "명령줄 {0} 을(를) 사용하여 기본 C 언어 표준에 대한 컴파일러를 쿼리하는 중", + "cpp_querying_compiler_default_standard": "명령줄 {0} 을(를) 사용하여 기본 C++ 언어 표준에 대한 컴파일러를 쿼리하는 중", "detected_language_standard_version": "언어 표준 버전이 검색됨: {0}", "unhandled_default_target_detected": "처리되지 않은 기본 컴파일러 대상 값이 검색됨: {0}", "unhandled_target_arg_detected": "처리되지 않은 대상 인수 값이 검색됨: {0}", - "memory_limit_shutting_down_intellisense": "IntelliSense 서버 {0}을(를) 종료하는 중입니다. 메모리 사용량이 {1}MB이며 {2}MB 한도를 초과했습니다.", + "memory_limit_shutting_down_intellisense": "IntelliSense 서버 {0} 을(를) 종료하는 중입니다. 메모리 사용량이 {1}MB이며 {2}MB 한도를 초과했습니다.", "failed_to_query_for_standard_version": "기본 표준 버전에 대해 경로 \"{0}\"에서 컴파일러를 쿼리하지 못했습니다. 이 컴파일러에 대해서는 컴파일러 쿼리를 사용할 수 없습니다.", "unrecognized_language_standard_version": "컴파일러 쿼리에서 인식할 수 없는 언어 표준 버전을 반환했습니다. 지원되는 최신 버전이 대신 사용됩니다.", "intellisense_process_crash_detected": "IntelliSense 프로세스 크래시가 감지되었습니다.", @@ -235,7 +235,7 @@ "return_values_label": "반환 값:", "nvcc_compiler_not_found": "nvcc 컴파일러를 찾을 수 없음: {0}", "nvcc_host_compiler_not_found": "nvcc 호스트 컴파일러를 찾을 수 없음: {0}", - "invoking_nvcc": "명령줄 {0}을(를) 사용하여 nvcc를 호출하는 중", + "invoking_nvcc": "명령줄 {0} 을(를) 사용하여 nvcc를 호출하는 중", "nvcc_host_compile_command_not_found": "nvcc의 출력에서 호스트 컴파일 명령을 찾을 수 없습니다.", "unable_to_locate_forced_include": "강제 포함을 찾을 수 없음: {0}", "inline_macro": "인라인 매크로", @@ -245,11 +245,11 @@ "multiple_locations_note": "여러 위치", "folder_tag": "폴더", "file_tag": "파일", - "compiler_default_language_standard_version_old": "컴파일러가 기본 언어 표준 버전 {0}을(를) 반환했습니다. 이 버전은 이전 버전이므로 새 버전 {1}을(를) 기본으로 사용하려고 합니다.", + "compiler_default_language_standard_version_old": "컴파일러가 기본 언어 표준 버전 {0} 을(를) 반환했습니다. 이 버전은 이전 버전이므로 새 버전 {1} 을(를) 기본으로 사용하려고 합니다.", "unexpected_output_from_clang_tidy": "clang-tidy에서 예기치 않은 출력: {0}. 예상: {1}.", "generate_doxygen_comment": "Doxygen 주석 생성", - "offer_create_declaration": "{1}에서 ‘{0}’의 선언 만들기", - "offer_create_definition": "{1}에서 ‘{0}’의 정의 만들기", + "offer_create_declaration": "{1} 에서 ‘{0}’의 선언 만들기", + "offer_create_definition": "{1} 에서 ‘{0}’의 정의 만들기", "function_definition_not_found": "'{0}'에 대한 함수 정의를 찾을 수 없습니다.", "cm_attributes": "특성", "cm_bases": "Bases", @@ -316,5 +316,6 @@ "refactor_extract_xborder_jump": "선택된 코드와 주변 코드 사이에 점프가 있습니다.", "refactor_extract_missing_return": "선택된 코드에서 일부 제어 경로가 반환 값 설정 없이 종료됩니다. 이는 스칼라, 숫자 및 포인터 반환 형식에 대해서만 지원됩니다.", "expand_selection": "선택 영역 확장('함수로 추출'을 사용하도록 설정)", - "file_not_found_in_path2": "compile_commands.json 파일에서 \"{0}\"을(를) 찾을 수 없습니다. '{1}' 폴더의 c_cpp_properties.json 'includePath'가 대신 이 파일에 사용됩니다." -} \ No newline at end of file + "file_not_found_in_path2": "compile_commands.json 파일에서 \"{0}\"을(를) 찾을 수 없습니다. '{1}' 폴더의 c_cpp_properties.json 'includePath'가 대신 이 파일에 사용됩니다.", + "copilot_hover_link": "Copilot 요약 생성" +} diff --git a/Extension/i18n/kor/src/platform.i18n.json b/Extension/i18n/kor/src/platform.i18n.json index 2bd9fa87a..fd8983efb 100644 --- a/Extension/i18n/kor/src/platform.i18n.json +++ b/Extension/i18n/kor/src/platform.i18n.json @@ -6,5 +6,5 @@ { "unknown.os.platform": "알 수 없는 OS 플랫폼", "missing.plist.productversion": "SystemVersion.plist에서 ProduceVersion을 가져올 수 없음", - "missing.darwin.systemversion.file": "{0}에서 SystemVersion.plist를 찾지 못했습니다." -} \ No newline at end of file + "missing.darwin.systemversion.file": "{0} 에서 SystemVersion.plist를 찾지 못했습니다." +} diff --git a/Extension/i18n/kor/ui/settings.html.i18n.json b/Extension/i18n/kor/ui/settings.html.i18n.json index be74f775f..b94b35336 100644 --- a/Extension/i18n/kor/ui/settings.html.i18n.json +++ b/Extension/i18n/kor/ui/settings.html.i18n.json @@ -16,7 +16,7 @@ "intellisense.configurations": "IntelliSense 구성", "intellisense.configurations.description": "이 편집기를 사용하여 기본 {0} 파일에 정의된 IntelliSense 설정을 편집합니다. 이 편집기에서 변경한 내용은 선택한 구성에만 적용됩니다. 한 번에 여러 구성을 편집하려면 {1}(으)로 이동합니다.", "configuration.name": "구성 이름", - "configuration.name.description": "구성을 식별하는 이름입니다. {0}, {1} 및 {2}은(는) 해당 플랫폼에서 자동으로 선택되는 구성의 특수 식별자입니다.", + "configuration.name.description": "구성을 식별하는 이름입니다. {0}, {1} 및 {2} 은(는) 해당 플랫폼에서 자동으로 선택되는 구성의 특수 식별자입니다.", "select.configuration.to.edit": "편집할 구성 세트를 선택합니다.", "add.configuration.button": "구성 추가", "configuration.name.input": "구성 이름...", @@ -27,15 +27,15 @@ "specify.a.compiler": "컴파일러 경로를 지정하거나 드롭다운 목록에서 검색된 컴파일러 경로를 선택합니다.", "no.compiler.paths.detected": "(검색된 컴파일러 경로가 없음)", "compiler.args": "컴파일러 인수", - "compiler.arguments": "사용된 포함 또는 정의를 수정하기 위한 컴파일러 인수입니다. {0}, {1} 등. 공백으로 구분된 추가 인수를 사용하는 인수는 배열에 별도의 인수로 입력해야 합니다(예: {2}의 경우 {3}을(를) 사용하세요).", + "compiler.arguments": "사용된 포함 또는 정의를 수정하기 위한 컴파일러 인수입니다. {0}, {1} 등. 공백으로 구분된 추가 인수를 사용하는 인수는 배열에 별도의 인수로 입력해야 합니다(예: {2} 의 경우 {3} 을(를) 사용하세요).", "one.argument.per.line": "줄당 하나의 인수입니다.", "intellisense.mode": "IntelliSense 모드", "intellisense.mode.description": "MSVC, gcc 또는 Clang의 플랫폼 및 아키텍처 변형에 매핑되는 사용할 IntelliSense 모드입니다. 설정되지 않거나 {0}(으)로 설정된 경우 확장에서 해당 플랫폼의 기본값을 선택합니다. Windows의 경우 기본값인 {1}(으)로 설정되고, Linux의 경우 기본값인 {2}(으)로 설정되며, macOS의 경우 기본값인 {3}(으)로 설정됩니다. {4} 모드를 재정의하려면 특정 IntelliSense 모드를 선택합니다. {5} 변형(예: {6})만 지정하는 IntelliSense 모드는 레거시 모드이며 호스트 플랫폼에 따라 {7} 변형으로 자동으로 변환됩니다.", "include.path": "경로 포함", - "include.path.description": "포함 경로는 소스 파일에 포함된 헤더 파일(예: {0})을 포함하는 폴더입니다. 포함된 헤더 파일을 검색하는 동안 사용할 IntelliSense 엔진의 경로 목록을 지정합니다. 이러한 경로 검색은 비재귀적입니다. 재귀적 검색을 나타내려면 {1}을(를) 지정합니다. 예를 들어 {2}은(는) 모든 하위 디렉터리를 검색하지만 {3}은(는) 그러지 않습니다. Visual Studio가 설치된 Windows를 사용하거나 {4} 설정에 컴파일러가 지정된 경우 이 목록에 시스템 포함 경로를 나열할 필요가 없습니다.", + "include.path.description": "포함 경로는 소스 파일에 포함된 헤더 파일(예: {0})을 포함하는 폴더입니다. 포함된 헤더 파일을 검색하는 동안 사용할 IntelliSense 엔진의 경로 목록을 지정합니다. 이러한 경로 검색은 비재귀적입니다. 재귀적 검색을 나타내려면 {1} 을(를) 지정합니다. 예를 들어 {2} 은(는) 모든 하위 디렉터리를 검색하지만 {3} 은(는) 그러지 않습니다. Visual Studio가 설치된 Windows를 사용하거나 {4} 설정에 컴파일러가 지정된 경우 이 목록에 시스템 포함 경로를 나열할 필요가 없습니다.", "one.include.path.per.line": "줄당 하나의 포함 경로입니다.", "defines": "정의", - "defines.description": "파일을 구문 분석하는 동안 사용할 IntelliSense 엔진의 전처리기 정의 목록입니다. 필요에 따라 {0}을(를) 사용하여 값(예: {1})을 설정할 수 있습니다.", + "defines.description": "파일을 구문 분석하는 동안 사용할 IntelliSense 엔진의 전처리기 정의 목록입니다. 필요에 따라 {0} 을(를) 사용하여 값(예: {1})을 설정할 수 있습니다.", "one.definition.per.line": "줄당 하나의 정의입니다.", "c.standard": "C 표준", "c.standard.description": "IntelliSense에 사용할 C 언어 표준의 버전입니다. 참고: GNU 표준은 GNU 정의를 가져오기 위해 설정된 컴파일러를 쿼리하는 데만 사용되며, IntelliSense는 해당 C 표준 버전을 에뮬레이트합니다.", @@ -43,7 +43,7 @@ "cpp.standard.description": "IntelliSense에 사용할 C++ 언어 표준의 버전입니다. 참고: GNU 표준은 GNU 정의를 가져오기 위해 설정된 컴파일러를 쿼리하는 데만 사용되며, IntelliSense는 해당 C++ 표준 버전을 에뮬레이트합니다.", "advanced.settings": "고급 설정", "configuration.provider": "구성 공급자", - "configuration.provider.description": "소스 파일에 대한 IntelliSense 구성 정보를 제공할 수 있는 VS Code 확장의 ID입니다. 예를 들어 VS Code 확장 ID {0}을(를) 사용하여 CMake 도구 확장의 구성 정보를 제공합니다.", + "configuration.provider.description": "소스 파일에 대한 IntelliSense 구성 정보를 제공할 수 있는 VS Code 확장의 ID입니다. 예를 들어 VS Code 확장 ID {0} 을(를) 사용하여 CMake 도구 확장의 구성 정보를 제공합니다.", "windows.sdk.version": "Windows SDK 버전", "windows.sdk.version.description": "Windows에서 사용할 Windows SDK 포함 경로의 버전입니다(예: {0}).", "mac.framework.path": "Mac 프레임워크 경로", @@ -55,14 +55,15 @@ "dot.config": "Dot Config", "dot.config.description": "Kconfig 시스템에서 만든 .config 파일의 경로입니다. Kconfig 시스템은 프로젝트를 빌드하기 위한 모든 정의가 포함된 파일을 생성합니다. Kconfig 시스템을 사용하는 프로젝트의 예로는 Linux 커널 및 NuttX RTOS가 있습니다.", "compile.commands": "컴파일 명령", - "compile.commands.description": "작업 영역의 {0} 파일 전체 경로입니다. 이 파일에서 검색된 포함 경로 및 정의가 {1} 및 {2} 설정에 설정된 값 대신 사용됩니다. 사용자가 편집기에서 연 파일에 해당하는 변환 단위에 대한 항목이 컴파일 명령 데이터베이스에 포함되지 않는 경우, 경고 메시지가 나타나고 확장에서 대신 {3} 및 {4} 설정을 사용합니다.", + "compile.commands.description": "작업 영역에 대한 {0} 파일의 경로 목록입니다. 이러한 파일에서 검색된 포함 경로 및 정의는 {1} 및 {2} 설정에 설정된 값 대신 사용됩니다. 컴파일 명령 데이터베이스에 편집기에서 연 파일에 해당하는 번역 단위에 대한 항목이 없으면 경고 메시지가 나타나고 확장 프로그램에서 {3} 및 {4} 설정을 대신 사용합니다.", + "one.compile.commands.path.per.line": "줄당 하나의 컴파일 명령 경로입니다.", "merge.configurations": "구성 병합", "merge.configurations.description": "{0}(또는 선택)인 경우, 포함 경로, 정의 및 강제 포함을 구성 제공자의 경로와 병합합니다.", "browse.path": "찾아보기: 경로", - "browse.path.description": "태그 파서가 소스 파일에 포함된 헤더를 검색할 경로의 목록입니다. 생략된 경우 {0}이(가) {1}(으)로 사용됩니다. 기본적으로 이 경로 검색은 재귀적입니다. 비재귀적 검색을 나타내려면 {2}을(를) 지정합니다. 예: {3}은(는) 모든 하위 디렉터리를 검색하지만 {4}은(는) 하위 디렉터리를 검색하지 않습니다.", + "browse.path.description": "태그 파서가 소스 파일에 포함된 헤더를 검색할 경로의 목록입니다. 생략된 경우 {0} 이(가) {1}(으)로 사용됩니다. 기본적으로 이 경로 검색은 재귀적입니다. 비재귀적 검색을 나타내려면 {2} 을(를) 지정합니다. 예: {3} 은(는) 모든 하위 디렉터리를 검색하지만 {4} 은(는) 하위 디렉터리를 검색하지 않습니다.", "one.browse.path.per.line": "줄당 하나의 검색 경로입니다.", "limit.symbols": "찾아보기: 포함된 헤더로 기호 제한", - "limit.symbols.checkbox": "{0}(또는 선택)인 경우 태그 파서는 {1}의 원본 파일에 직접 또는 간접적으로 포함된 코드 파일만 구문 분석합니다. {2}인 경우(또는 선택하지 않은 경우) 태그 파서는 {3} 목록에 지정된 경로에 있는 모든 코드 파일을 구문 분석합니다.", + "limit.symbols.checkbox": "{0}(또는 선택)인 경우 태그 파서는 {1} 의 원본 파일에 직접 또는 간접적으로 포함된 코드 파일만 구문 분석합니다. {2} 인 경우(또는 선택하지 않은 경우) 태그 파서는 {3} 목록에 지정된 경로에 있는 모든 코드 파일을 구문 분석합니다.", "database.filename": "찾아보기: 데이터베이스 파일 이름", "database.filename.description": "생성된 기호 데이터베이스의 경로입니다. 이 경로는 태그 파서의 기호 데이터베이스를 작업 영역의 기본 스토리지 위치가 아닌 다른 곳에 저장하도록 확장에 지시합니다. 상대 경로가 지정된 경우 작업 영역 폴더 자체가 아니라 작업 영역의 기본 스토리지 위치에 대해 상대적으로 만들어집니다. {0} 변수를 사용하여 작업 영역 폴더에 상대적인 경로를 지정할 수 있습니다(예: {1})." -} \ No newline at end of file +} diff --git a/Extension/i18n/kor/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json b/Extension/i18n/kor/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json index cf38995b8..f5a7d59b3 100644 --- a/Extension/i18n/kor/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json +++ b/Extension/i18n/kor/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json @@ -7,12 +7,12 @@ "walkthrough.linux.title.run.and.debug.your.file": "Linux에서 C++ 파일 실행 및 디버그", "walkthrough.linux.run.and.debug.your.file": "VS Code에서 C++ 파일을 실행하고 디버그하려면:", "walkthrough.linux.instructions1": "실행하고 디버그할 C++ 원본 파일을 엽니다. 이 파일이 편집기에서 활성화되어 있는지(현재 표시되고 선택되어 있는지) 확인하세요.", - "walkthrough.linux.press.f5": "{0}을(를) 누릅니다. 또는 기본 메뉴에서 {1}을(를) 선택합니다.", + "walkthrough.linux.press.f5": "{0} 을(를) 누릅니다. 또는 기본 메뉴에서 {1} 을(를) 선택합니다.", "walkthrough.linux.run": "실행", "walkthrough.linux.start.debugging": "디버깅 시작", - "walkthrough.linux.select.compiler": "{0}을(를) 선택합니다.", - "walkthrough.linux.choose.build.active.file": "{0}을(를) 선택합니다.", + "walkthrough.linux.select.compiler": "{0} 을(를) 선택합니다.", + "walkthrough.linux.choose.build.active.file": "{0} 을(를) 선택합니다.", "walkthrough.linux.build.and.debug.active.file": "활성 파일 빌드 및 디버그", "walkthrough.linux.after.running": "처음으로 C++ 파일을 실행하고 디버깅한 후 프로젝트의 {0} 폴더 안에 {1} 및 {2}(이)라는 두 개의 새 파일이 있음을 알 수 있습니다.", - "walkthrough.linux.for.more.complex": "더 복잡한 빌드 및 디버그 시나리오의 경우 {0} 및 {1}에서 빌드 작업 및 디버그 구성을 사용자 지정할 수 있습니다. 예를 들어 명령줄에서 빌드할 때 일반적으로 컴파일러에 인수를 전달하는 경우 {3} 속성을 사용하여 {2}에서 해당 인수를 지정할 수 있습니다. 마찬가지로 {4}에서 디버깅을 위해 프로그램에 전달할 인수를 정의할 수 있습니다." -} \ No newline at end of file + "walkthrough.linux.for.more.complex": "더 복잡한 빌드 및 디버그 시나리오의 경우 {0} 및 {1} 에서 빌드 작업 및 디버그 구성을 사용자 지정할 수 있습니다. 예를 들어 명령줄에서 빌드할 때 일반적으로 컴파일러에 인수를 전달하는 경우 {3} 속성을 사용하여 {2} 에서 해당 인수를 지정할 수 있습니다. 마찬가지로 {4} 에서 디버깅을 위해 프로그램에 전달할 인수를 정의할 수 있습니다." +} diff --git a/Extension/i18n/kor/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json b/Extension/i18n/kor/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json index 3eda44f92..97e0609e4 100644 --- a/Extension/i18n/kor/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json +++ b/Extension/i18n/kor/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json @@ -7,12 +7,12 @@ "walkthrough.mac.title.run.and.debug.your.file": "macOS에서 C++ 파일 실행 및 디버그", "walkthrough.mac.run.and.debug.your.file": "VS Code에서 C++ 파일을 실행하고 디버그하려면:", "walkthrough.mac.instructions1": "실행하고 디버그할 C++ 원본 파일을 엽니다. 이 파일이 편집기에서 활성화되어 있는지(현재 표시되고 선택되어 있는지) 확인하세요.", - "walkthrough.mac.press.f5": "{0}을(를) 누릅니다. 또는 기본 메뉴에서 {1}을(를) 선택합니다.", + "walkthrough.mac.press.f5": "{0} 을(를) 누릅니다. 또는 기본 메뉴에서 {1} 을(를) 선택합니다.", "walkthrough.mac.run": "실행", "walkthrough.mac.start.debugging": "디버깅 시작", - "walkthrough.mac.select.compiler": "{0}을(를) 선택합니다.", - "walkthrough.mac.choose.build.active.file": "{0}을(를) 선택합니다.", + "walkthrough.mac.select.compiler": "{0} 을(를) 선택합니다.", + "walkthrough.mac.choose.build.active.file": "{0} 을(를) 선택합니다.", "walkthrough.mac.build.and.debug.active.file": "활성 파일 빌드 및 디버그", "walkthrough.mac.after.running": "처음으로 C++ 파일을 실행하고 디버깅한 후 프로젝트의 {0} 폴더 안에 {1} 및 {2}(이)라는 두 개의 새 파일이 있음을 알 수 있습니다.", - "walkthrough.mac.for.more.complex": "더 복잡한 빌드 및 디버그 시나리오의 경우 {0} 및 {1}에서 빌드 작업 및 디버그 구성을 사용자 지정할 수 있습니다. 예를 들어 명령줄에서 빌드할 때 일반적으로 컴파일러에 인수를 전달하는 경우 {3} 속성을 사용하여 {2}에서 해당 인수를 지정할 수 있습니다. 마찬가지로 {4}에서 디버깅을 위해 프로그램에 전달할 인수를 정의할 수 있습니다." -} \ No newline at end of file + "walkthrough.mac.for.more.complex": "더 복잡한 빌드 및 디버그 시나리오의 경우 {0} 및 {1} 에서 빌드 작업 및 디버그 구성을 사용자 지정할 수 있습니다. 예를 들어 명령줄에서 빌드할 때 일반적으로 컴파일러에 인수를 전달하는 경우 {3} 속성을 사용하여 {2} 에서 해당 인수를 지정할 수 있습니다. 마찬가지로 {4} 에서 디버깅을 위해 프로그램에 전달할 인수를 정의할 수 있습니다." +} diff --git a/Extension/i18n/kor/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json b/Extension/i18n/kor/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json index 67088e66c..5ef2e9569 100644 --- a/Extension/i18n/kor/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json +++ b/Extension/i18n/kor/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json @@ -7,12 +7,12 @@ "walkthrough.windows.title.run.and.debug.your.file": "Windows에서 C++ 파일 실행 및 디버그", "walkthrough.windows.run.and.debug.your.file": "VS Code에서 C++ 파일을 실행하고 디버그하려면:", "walkthrough.windows.instructions1": "실행하고 디버그할 C++ 원본 파일을 엽니다. 이 파일이 편집기에서 활성화되어 있는지(현재 표시되고 선택되어 있는지) 확인하세요.", - "walkthrough.windows.press.f5": "{0}을(를) 누릅니다. 또는 기본 메뉴에서 {1}을(를) 선택합니다.", + "walkthrough.windows.press.f5": "{0} 을(를) 누릅니다. 또는 기본 메뉴에서 {1} 을(를) 선택합니다.", "walkthrough.windows.run": "실행", "walkthrough.windows.start.debugging": "디버깅 시작", - "walkthrough.windows.select.compiler": "{0}을(를) 선택합니다.", - "walkthrough.windows.choose.build.active.file": "{0}을(를) 선택합니다.", + "walkthrough.windows.select.compiler": "{0} 을(를) 선택합니다.", + "walkthrough.windows.choose.build.active.file": "{0} 을(를) 선택합니다.", "walkthrough.windows.build.and.debug.active.file": "활성 파일 빌드 및 디버그", "walkthrough.windows.after.running": "처음으로 C++ 파일을 실행하고 디버깅한 후 프로젝트의 {0} 폴더 안에 {1} 및 {2}(이)라는 두 개의 새 파일이 있음을 알 수 있습니다.", - "walkthrough.windows.for.more.complex": "더 복잡한 빌드 및 디버그 시나리오의 경우 {0} 및 {1}에서 빌드 작업 및 디버그 구성을 사용자 지정할 수 있습니다. 예를 들어 명령줄에서 빌드할 때 일반적으로 컴파일러에 인수를 전달하는 경우 {3} 속성을 사용하여 {2}에서 해당 인수를 지정할 수 있습니다. 마찬가지로 {4}에서 디버깅을 위해 프로그램에 전달할 인수를 정의할 수 있습니다." -} \ No newline at end of file + "walkthrough.windows.for.more.complex": "더 복잡한 빌드 및 디버그 시나리오의 경우 {0} 및 {1} 에서 빌드 작업 및 디버그 구성을 사용자 지정할 수 있습니다. 예를 들어 명령줄에서 빌드할 때 일반적으로 컴파일러에 인수를 전달하는 경우 {3} 속성을 사용하여 {2} 에서 해당 인수를 지정할 수 있습니다. 마찬가지로 {4} 에서 디버깅을 위해 프로그램에 전달할 인수를 정의할 수 있습니다." +} diff --git a/Extension/i18n/kor/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json b/Extension/i18n/kor/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json index 0e4eb2779..11e8b5abc 100644 --- a/Extension/i18n/kor/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json +++ b/Extension/i18n/kor/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "walkthrough.windows.title.open.dev.command.prompt": "개발자 명령 프롬프트를 사용하여 다시 시작", - "walkthrough.windows.background.dev.command.prompt": " MSVC 컴파일러와 함께 Windows 시스템을 사용하고 있으므로 모든 환경 변수를 올바르게 설정하려면 개발자 명령 프롬프트에서 VS Code를 시작해야 합니다. 개발자 명령 프롬프트를 사용하여 다시 실행하려면 다음을 수행하세요.", - "walkthrough.open.command.prompt": "Windows 시작 메뉴에 \"developer\"를 입력하여 VS용 개발자 명령 프롬프트를 엽니다. 현재 열려 있는 폴더로 자동으로 이동하는 VS용 개발자 명령 프롬프트를 선택합니다.", - "walkthrough.windows.press.f5": "명령 프롬프트에 \"code\"를 입력하고 Enter 키를 누릅니다. 이렇게 하면 VS Code가 다시 시작되고 이 연습으로 다시 돌아옵니다. " -} \ No newline at end of file + "walkthrough.windows.title.open.dev.command.prompt": "{0} 사용하여 다시 시작", + "walkthrough.windows.background.dev.command.prompt": " MSVC 컴파일러와 함께 Windows 컴퓨터를 사용하고 있으므로 모든 환경 변수를 올바르게 설정하려면 {0} 에서 VS Code를 시작해야 합니다. {1} 을(를) 사용하여 다시 시작하려면 다음을 수행하세요.", + "walkthrough.open.command.prompt": "Windows 시작 메뉴에 \"{1}\"을(를) 입력하여 {0} 을(를) 엽니다. {2} 을(를) 선택하여 현재 열려 있는 폴더로 자동으로 이동합니다.", + "walkthrough.windows.press.f5": "명령 프롬프트에 \"{0}\"을(를) 입력하고 Enter 키를 누릅니다. 이렇게 하면 VS Code가 다시 시작되고 이 연습으로 다시 돌아옵니다. " +} diff --git a/Extension/i18n/kor/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/kor/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index 21d96a14f..a0648ddaa 100644 --- a/Extension/i18n/kor/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/kor/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -5,21 +5,19 @@ // Do not edit this file. It is machine generated. { "walkthrough.windows.install.compiler": "Windows에 C++ 컴파일러 설치", - "walkthrough.windows.text1": "Windows용 C++ 개발을 수행하는 경우 MSVC(Microsoft Visual C++) 컴파일러 도구 집합을 설치하는 것이 좋습니다. Windows에서 Linux를 대상으로 하는 경우 {0}을(를) 확인하세요. 또는 {1}할 수 있습니다.", + "walkthrough.windows.text1": "Windows용 C++ 개발을 수행하는 경우 MSVC(Microsoft Visual C++) 컴파일러 도구 집합을 설치하는 것이 좋습니다. Windows에서 Linux를 대상으로 하는 경우 {0} 을(를) 확인하세요. 또는 {1} 할 수 있습니다.", "walkthrough.windows.link.title1": "VS Code에서 C++ 및 Linux용 Windows 하위 시스템(WSL) 사용", "walkthrough.windows.link.title2": "MinGW로 Windows에 GCC 설치", - "walkthrough.windows.text2": "MSVC를 설치하려면 Visual Studio {1} 페이지에서 {0}을(를) 다운로드합니다.", + "walkthrough.windows.text2": "MSVC를 설치하려면 Visual Studio {1} 페이지에서 {0} 을(를) 다운로드합니다.", "walkthrough.windows.build.tools1": "Visual Studio 2022용 빌드 도구", "walkthrough.windows.link.downloads": "다운로드", - "walkthrough.windows.text3": "Visual Studio 설치 프로그램에서 {0} 워크로드를 확인하고 {1}을(를) 선택합니다.", + "walkthrough.windows.text3": "Visual Studio 설치 프로그램에서 {0} 워크로드를 확인하고 {1} 을(를) 선택합니다.", "walkthrough.windows.build.tools2": "C++ 빌드 도구", "walkthrough.windows.link.install": "설치", "walkthrough.windows.note1": "메모", "walkthrough.windows.note1.text": "현재 C++ 코드베이스를 개발하는 데 적극적으로 사용 중인 유효한 Visual Studio 라이선스(Community, Pro 또는 Enterprise)가 있는 한 Visual Studio Build Tools의 C++ 도구 집합을 Visual Studio Code와 함께 사용하여 모든 C++ 코드베이스를 컴파일, 빌드 및 확인할 수 있습니다.", - "walkthrough.windows.open.command.prompt": "Windows 시작 메뉴에서 '개발자'를 입력하여 {0}을(를) 엽니다.", - "walkthrough.windows.command.prompt.name1": "VS용 개발자 명령 프롬프트", - "walkthrough.windows.check.install": "VS용 개발자 명령 프롬프트에 {0}을(를) 입력하여 MSVC 설치를 확인합니다. 버전 및 기본 사용 설명과 함께 저작권 메시지가 표시되어야 합니다.", + "walkthrough.windows.open.command.prompt": "Windows 시작 메뉴에 '{1}'을(를) 입력하여 {0} 을(를) 엽니다.", + "walkthrough.windows.check.install": "{1} 에 {0} 을(를) 입력하여 MSVC 설치를 확인하세요. 버전 및 기본 사용 설명과 함께 저작권 메시지가 표시될 것입니다.", "walkthrough.windows.note2": "메모", - "walkthrough.windows.note2.text": "명령줄 또는 VS Code에서 MSVC를 사용하려면 {0}에서 실행해야 합니다. {1}, {2} 또는 Windows 명령 프롬프트와 같은 일반 셸에는 필요한 경로 환경 변수가 설정되어 있지 않습니다.", - "walkthrough.windows.command.prompt.name2": "VS용 개발자 명령 프롬프트" -} \ No newline at end of file + "walkthrough.windows.note2.text": "명령줄 또는 VS Code에서 MSVC를 사용하려면 {0} 에서 실행해야 합니다. {1}, {2} 또는 Windows 명령 프롬프트와 같은 일반 셸에는 필요한 경로 환경 변수가 설정되어 있지 않습니다." +} diff --git a/Extension/i18n/kor/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/kor/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index ba8c49b02..9ea099fe0 100644 --- a/Extension/i18n/kor/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/kor/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -10,14 +10,12 @@ "walkthrough.windows.note1": "메모", "walkthrough.windows.note1.text": "현재 C++ 코드베이스를 개발하는 데 적극적으로 사용 중인 유효한 Visual Studio 라이선스(Community, Pro 또는 Enterprise)가 있는 한 Visual Studio Build Tools의 C++ 도구 집합을 Visual Studio Code와 함께 사용하여 모든 C++ 코드베이스를 컴파일, 빌드 및 확인할 수 있습니다.", "walkthrough.windows.verify.compiler": "컴파일러 설치 확인 중", - "walkthrough.windows.open.command.prompt": "Windows 시작 메뉴에서 '개발자'를 입력하여 {0}을(를) 엽니다.", - "walkthrough.windows.command.prompt.name1": "VS용 개발자 명령 프롬프트", - "walkthrough.windows.check.install": "VS용 개발자 명령 프롬프트에 {0}을(를) 입력하여 MSVC 설치를 확인합니다. 버전 및 기본 사용 설명과 함께 저작권 메시지가 표시되어야 합니다.", + "walkthrough.windows.open.command.prompt": "Windows 시작 메뉴에 '{1}'을(를) 입력하여 {0} 을(를) 엽니다.", + "walkthrough.windows.check.install": "{1} 에 {0} 을(를) 입력하여 MSVC 설치를 확인하세요. 버전 및 기본 사용 설명과 함께 저작권 메시지가 표시될 것입니다.", "walkthrough.windows.note2": "메모", - "walkthrough.windows.note2.text": "명령줄 또는 VS Code에서 MSVC를 사용하려면 {0}에서 실행해야 합니다. {1}, {2} 또는 Windows 명령 프롬프트와 같은 일반 셸에는 필요한 경로 환경 변수가 설정되어 있지 않습니다.", - "walkthrough.windows.command.prompt.name2": "VS용 개발자 명령 프롬프트", + "walkthrough.windows.note2.text": "명령줄 또는 VS Code에서 MSVC를 사용하려면 {0} 에서 실행해야 합니다. {1}, {2} 또는 Windows 명령 프롬프트와 같은 일반 셸에는 필요한 경로 환경 변수가 설정되어 있지 않습니다.", "walkthrough.windows.other.compilers": "기타 컴파일러 옵션", - "walkthrough.windows.text3": "Windows에서 Linux를 대상으로 하는 경우 {0}을(를) 확인하세요. {1}을(를) 수행할 수도 있습니다.", + "walkthrough.windows.text3": "Windows에서 Linux를 대상으로 하는 경우 {0} 을(를) 확인하세요. {1} 을(를) 수행할 수도 있습니다.", "walkthrough.windows.link.title1": "VS Code에서 C++ 및 Linux용 Windows 하위 시스템(WSL) 사용", "walkthrough.windows.link.title2": "MinGW로 Windows에 GCC 설치" -} \ No newline at end of file +} diff --git a/Extension/i18n/kor/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/kor/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index ba8c49b02..9ea099fe0 100644 --- a/Extension/i18n/kor/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/kor/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -10,14 +10,12 @@ "walkthrough.windows.note1": "메모", "walkthrough.windows.note1.text": "현재 C++ 코드베이스를 개발하는 데 적극적으로 사용 중인 유효한 Visual Studio 라이선스(Community, Pro 또는 Enterprise)가 있는 한 Visual Studio Build Tools의 C++ 도구 집합을 Visual Studio Code와 함께 사용하여 모든 C++ 코드베이스를 컴파일, 빌드 및 확인할 수 있습니다.", "walkthrough.windows.verify.compiler": "컴파일러 설치 확인 중", - "walkthrough.windows.open.command.prompt": "Windows 시작 메뉴에서 '개발자'를 입력하여 {0}을(를) 엽니다.", - "walkthrough.windows.command.prompt.name1": "VS용 개발자 명령 프롬프트", - "walkthrough.windows.check.install": "VS용 개발자 명령 프롬프트에 {0}을(를) 입력하여 MSVC 설치를 확인합니다. 버전 및 기본 사용 설명과 함께 저작권 메시지가 표시되어야 합니다.", + "walkthrough.windows.open.command.prompt": "Windows 시작 메뉴에 '{1}'을(를) 입력하여 {0} 을(를) 엽니다.", + "walkthrough.windows.check.install": "{1} 에 {0} 을(를) 입력하여 MSVC 설치를 확인하세요. 버전 및 기본 사용 설명과 함께 저작권 메시지가 표시될 것입니다.", "walkthrough.windows.note2": "메모", - "walkthrough.windows.note2.text": "명령줄 또는 VS Code에서 MSVC를 사용하려면 {0}에서 실행해야 합니다. {1}, {2} 또는 Windows 명령 프롬프트와 같은 일반 셸에는 필요한 경로 환경 변수가 설정되어 있지 않습니다.", - "walkthrough.windows.command.prompt.name2": "VS용 개발자 명령 프롬프트", + "walkthrough.windows.note2.text": "명령줄 또는 VS Code에서 MSVC를 사용하려면 {0} 에서 실행해야 합니다. {1}, {2} 또는 Windows 명령 프롬프트와 같은 일반 셸에는 필요한 경로 환경 변수가 설정되어 있지 않습니다.", "walkthrough.windows.other.compilers": "기타 컴파일러 옵션", - "walkthrough.windows.text3": "Windows에서 Linux를 대상으로 하는 경우 {0}을(를) 확인하세요. {1}을(를) 수행할 수도 있습니다.", + "walkthrough.windows.text3": "Windows에서 Linux를 대상으로 하는 경우 {0} 을(를) 확인하세요. {1} 을(를) 수행할 수도 있습니다.", "walkthrough.windows.link.title1": "VS Code에서 C++ 및 Linux용 Windows 하위 시스템(WSL) 사용", "walkthrough.windows.link.title2": "MinGW로 Windows에 GCC 설치" -} \ No newline at end of file +} diff --git a/Extension/i18n/plk/Reinstalling the Extension.md.i18n.json b/Extension/i18n/plk/Reinstalling the Extension.md.i18n.json index 7e7ef000b..636020387 100644 --- a/Extension/i18n/plk/Reinstalling the Extension.md.i18n.json +++ b/Extension/i18n/plk/Reinstalling the Extension.md.i18n.json @@ -16,6 +16,6 @@ "reinstall.extension.text5": "W systemie Windows:", "reinstall.extension.text6": "W systemie Linux:", "reinstall.extension.text7": "Następnie zainstaluj ponownie za pośrednictwem interfejsu użytkownika platformy handlowej w programie VS Code.", - "reinstall.extension.text8": "Jeśli poprawna wersja rozszerzenia nie zostanie wdrożona przez VS Code, poprawny VSIX dla Twojego systemu może być {0}i zainstalowany przy użyciu opcji „Zainstaluj z VSIX...” w menu „...” w UI rynku w VS Code.", + "reinstall.extension.text8": "Jeśli poprawna wersja rozszerzenia nie zostanie wdrożona przez VS Code, poprawny VSIX dla Twojego systemu może być {0} i zainstalowany przy użyciu opcji „Zainstaluj z VSIX...” w menu „...” w UI rynku w VS Code.", "download.vsix.link.title": "Pobrano z witryny internetowej platformy handlowej programu VS Code" -} \ No newline at end of file +} diff --git a/Extension/i18n/plk/c_cpp_properties.schema.json.i18n.json b/Extension/i18n/plk/c_cpp_properties.schema.json.i18n.json index 7fa4581ce..090adce93 100644 --- a/Extension/i18n/plk/c_cpp_properties.schema.json.i18n.json +++ b/Extension/i18n/plk/c_cpp_properties.schema.json.i18n.json @@ -9,7 +9,7 @@ "c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "Argumenty kompilatora do modyfikowania użytych dołączeń lub definicji, np. `-nostdinc++`, `-m32` itp. Argumenty, które przyjmują dodatkowe argumenty rozdzielone spacjami, powinny być wprowadzane jako osobne argumenty w tablicy, na przykład dla argumentu `--sysroot ` należy użyć `\"--sysroot\", \"\"`.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cStandard": "Wersja standardu języka C, która ma być używana na potrzeby funkcji IntelliSense. Uwaga: standardy GNU są używane tylko do wykonywania zapytań względem kompilatora w celu pobrania dyrektyw define systemu GNU, a funkcja IntelliSense będzie emulować odpowiednią wersję standardu języka C.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cppStandard": "Wersja standardu języka C++, która ma być używana na potrzeby funkcji IntelliSense. Uwaga: standardy GNU są używane tylko do wykonywania zapytań względem kompilatora w celu pobrania dyrektyw define systemu GNU, a funkcja IntelliSense będzie emulować odpowiednią wersję standardu języka C++.", - "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Pełna ścieżka do pliku `compile_commands.json` na potrzeby obszaru roboczego.", + "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Pełna ścieżka lub lista pełnych ścieżek do plików `compile_commands.json` dla obszaru roboczego.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.includePath": "Lista ścieżek na potrzeby aparatu funkcji IntelliSense, która ma być używana podczas wyszukiwania dołączanych nagłówków. Wyszukiwanie w tych ścieżkach nie jest rekurencyjne. Uściślij za pomocą znaku `**`, aby wskazać wyszukiwanie rekurencyjne. Na przykład wyrażenie `${workspaceFolder}/**` powoduje przeszukiwanie wszystkich podkatalogów, podczas gdy wyrażenie `${workspaceFolder}` tego nie robi. Zazwyczaj nie powinno to zawierać elementów dołączanych systemu; zamiast tego ustaw `C_Cpp.default.compilerPath`.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "Lista ścieżek, których aparat IntelliSense ma używać podczas wyszukiwania dołączanych nagłówków ze struktur na komputerach Mac. Obsługiwane tylko w konfiguracji dla komputerów Mac.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.windowsSdkVersion": "Wersja ścieżki dołączania zestawu Microsoft Windows SDK do użycia w systemie Windows, np. `10.0.17134.0`.", diff --git a/Extension/i18n/plk/package.i18n.json b/Extension/i18n/plk/package.i18n.json index 262e12efd..712597c86 100644 --- a/Extension/i18n/plk/package.i18n.json +++ b/Extension/i18n/plk/package.i18n.json @@ -77,7 +77,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Pokaż polecenie „Wyczyść wszystko” (jeśli istnieje wiele typów problemów), „Wyczyść wszystkie ” (jeśli istnieje wiele problemów dotyczących ), a także działanie kodu „Wyczyść to”", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "W przypadku wartości `true` formatowanie będzie uruchamiane w wierszach zmienionych przez akcje kodu „Rozwiąż”.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "W przypadku wartości `true` analiza kodu przy użyciu polecenia `clang-tidy` zostanie włączona i zostanie uruchomiona po otwarciu lub zapisaniu pliku, jeśli parametr `#C_Cpp.codeAnalysis.runAutomatically#` ma wartość `true` (wartość domyślna).", - "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Pełna ścieżka pliku wykonywalnego `clang-tidy`. Jeśli nie zostanie określony, a element `clang-tidy` jest dostępny w ścieżce środowiska, jest używany. Jeśli ścieżka środowiska nie zostanie znaleziona, zostanie użyty element `clang-tidy` w pakiecie z rozszerzeniem.", + "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Pełna ścieżka pliku wykonywalnego `clang-tidy`. Jeśli nie zostanie określona, a element `clang-tidy` jest dostępny w ścieżce środowiska, zostanie on użyty, chyba że wersja w pakiecie z rozszerzeniem jest nowsza. Jeśli ścieżka środowiska nie zostanie znaleziona, zostanie użyty element `clang-tidy` w pakiecie z rozszerzeniem.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Określa konfigurację `clang-tidy` w formacie YAML/JSON: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{klucz: x, wartość: y}]}`. Gdy wartość jest pusta, element `clang-tidy` podejmie próbę znalezienia pliku o nazwie `clang-tidy` dla każdego pliku źródłowego w jego katalogach nadrzędnych.", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "Określa konfigurację `clang-tidy` w formacie YAML/JSON, który ma być używany jako rezerwowy, gdy konfiguracja `#C_Cpp.codeAnalysis.clangTidy.config#` nie jest ustawiona i nie znaleziono pliku `.clang-tidy`: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{klucz: x, wartość: y}]}`.", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "Rozszerzone wyrażenie regularne (ERE) POSIX pasujące do nazw nagłówków do diagnostyki wyjściowej. Diagnostyka z głównego pliku każdej jednostki tłumaczenia jest zawsze wyświetlana. Zmienna `${workspaceFolder}` jest obsługiwana (i jest używana jako domyślna wartość rezerwowa, jeśli plik `.clang-tidy` nie istnieje). Jeśli ta opcja nie ma wartości `null` (pusta), zastępuje opcję `HeaderFilterRegex` w pliku `.clang-tidy`, jeśli istnieje.", @@ -175,7 +175,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.oneLiners.markdownDescription": "Pełny blok kodu, który został wprowadzony w jednym wierszu, jest pozostawiany w jednym wierszu, niezależnie od wartości ustawień elementu `C_Cpp.vcFormat.newLine.*`.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription": "Dowolny kod, w którym otwierający i zamykający nawias klamrowy został wprowadzony w jednym wierszu, jest pozostawiany w jednym wierszu, niezależnie od wartości ustawień elementu `C_Cpp.vcFormat.newLine.*`.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "Bloki kodu są zawsze formatowane na podstawie wartości ustawień `C_Cpp.vcFormat.newLine.*`.", - "c_cpp.configuration.clang_format_path.markdownDescription": "Pełna ścieżka do pliku wykonywalnego elementu `clang-format`. Jeśli nie zostanie ona określona, a element `clang-format` będzie dostępny w ścieżce środowiska, to zostanie on użyty. Jeśli nie zostanie znaleziony w ścieżce środowiska, zostanie użyty element `clang-format` powiązany z danym rozszerzeniem.", + "c_cpp.configuration.clang_format_path.markdownDescription": "Pełna ścieżka do pliku wykonywalnego elementu `clang-format`. Jeśli nie zostanie określona, a element `clang-format` jest dostępny w ścieżce środowiska, zostanie on użyty, chyba że wersja w pakiecie z rozszerzeniem jest nowsza. Jeśli nie zostanie znaleziony w ścieżce środowiska, zostanie użyty element `clang-format` w pakiecie z rozszerzeniem.", "c_cpp.configuration.clang_format_style.markdownDescription": "Styl kodowania, obecnie obsługiwane: `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`. Użyj elementu `file`, aby załadować styl z pliku `.clang-format` znajdującego się w bieżącym lub nadrzędnym katalogu lub ścieżki `file:<ścieżka>/.clang-format`, aby odwołać się do określonej ścieżki. Użyj składni `{klucz: wartość, ...}`, aby ustawić określone parametry. Na przykład styl `Visual Studio` jest podobny do następującego: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "Nazwa wstępnie zdefiniowanego stylu używana jako rezerwa w przypadku, gdy plik `clang-format` zostanie wywołany przy użyciu stylu `file`, natomiast plik `.clang-format` nie zostanie znaleziony. Możliwe wartości to `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`, `none`, bądź użycie składni `{klucz: wartość, ...}` do ustawienia określonych parametrów. Na przykład styl `Visual Studio` jest podobny do następującego: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "Jeśli jest ustawiony, zastępuje zachowanie sortowania dołączanych elementów określane za pomocą parametru `SortIncludes`.", @@ -205,7 +205,7 @@ "c_cpp.configuration.exclusionPolicy.markdownDescription": "Określa, kiedy rozszerzenie ma używać ustawienia `#files.exclude#` (oraz `#C_Cpp.files.exclude#`) podczas ustalania, które pliki powinny być dodawane do bazy danych nawigacji kodu w trakcie przechodzenia przez ścieżki w tablicy `browse.path`. Jeśli ustawienie `#files.exclude#` zawiera tylko foldery, wtedy opcja `checkFolders` jest najlepszym wyborem, który zwiększy szybkość, przy jakiej rozszerzenie może inicjować bazę danych nawigacji kodu.", "c_cpp.configuration.exclusionPolicy.checkFolders.description": "Filtry wykluczeń będą oceniane tylko raz dla danego folderu (pojedyncze pliki nie są sprawdzane).", "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Filtry wykluczeń będą oceniane w stosunku do każdego napotkanego pliku lub folderu.", - "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Znak używany jako separator ścieżki na potrzeby wyników automatycznego uzupełniania dyrektywy `#include`.", + "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Znak używany jako separator ścieżek dla wygenerowanych ścieżek użytkowników.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "W przypadku wartości `true` etykietki narzędzi najechania kursorem oraz automatycznego uzupełniania będą wyświetlać tylko określone etykiety komentarzy ze strukturą. W przeciwnym razie wyświetlane będą wszystkie komentarze.", "c_cpp.configuration.doxygen.generateOnType.description": "Określa, czy komentarz Doxygen ma być wstawiany automatycznie po wpisaniu wybranego stylu komentarza.", "c_cpp.configuration.doxygen.generatedStyle.description": "Ciąg znaków używany jako wiersz początkowy komentarza Doxygen.", @@ -253,6 +253,7 @@ "c_cpp.configuration.hover.description": "W przypadku wyłączenia szczegóły dotyczące umieszczania wskaźnika myszy nie będą już udostępniane przez serwer języka.", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "Włącz usługi integracji dla elementu [vcpkg dependency manager](https://aka.ms/vcpkg/).", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Dodaj ścieżki dołączania z plików `nan` i `node-addon-api`, jeśli są one zależnościami.", + "c_cpp.configuration.copilotHover.markdownDescription": "W przypadku wartości `disabled` po najechaniu kursorem nie będą wyświetlane żadne informacje funkcji Copilot.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Jeśli ma wartość `true`, element „Symbol zmiany nazwy” będzie wymagać prawidłowego identyfikatora C/C++.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Jeśli ma wartość `true`, autouzupełnianie będzie automatycznie dodawać znak `(` po wywołaniach funkcji, a w niektórych przypadkach może również dodawać znak `)`, zależnie od ustawienia `#editor.autoClosingBrackets#`.", "c_cpp.configuration.filesExclude.markdownDescription": "Skonfiguruj wzorce globalne na potrzeby wykluczania folderów (i plików w przypadku zmiany zasad `#C_Cpp.exclusionPolicy#`). Są one specyficzne dla rozszerzenia języka C/C++ i są dodatkiem do elementu `#files.exclude#`, ale w przeciwieństwie do elementu `#files.exclude#` mają również zastosowanie do ścieżek spoza bieżącego folderu obszaru roboczego i nie są usuwane z widoku Eksploratora. Przeczytaj więcej o [wzorcach globalnych](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", @@ -425,10 +426,10 @@ "c_cpp.walkthrough.compilers.found.description": "Rozszerzenie języka C++ działa z kompilatorem języka C++. Wybierz jedną z tych, które są już na Twojej maszynie, klikając poniższy przycisk.\n[Select my Default Compiler](command:C_Cpp.SelectIntelliSenseConfiguration?%22walkthrough%22)", "c_cpp.walkthrough.compilers.found.altText": "Obraz przedstawiający wybieranie domyślnego kompilatora za pomocą narzędzia QuickPick oraz listę kompilatorów znalezionych na maszynach użytkowników, z których jeden jest zaznaczony.", "c_cpp.walkthrough.create.cpp.file.title": "Tworzenie pliku C++", - "c_cpp.walkthrough.create.cpp.file.description": "[Otwórz](command:toSide:workbench.action.files.openFile) lub [utwórz](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) plik C++. Pamiętaj, aby zapisać go z rozszerzeniem „.cpp” (na przykład „helloworld.cpp”). \n[Utwórz plik C++](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", + "c_cpp.walkthrough.create.cpp.file.description": "[Otwórz](command:toSide:workbench.action.files.openFile) lub [utwórz](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) plik C++. Pamiętaj, aby zapisać go z rozszerzeniem „.cpp” (na przykład „helloworld.cpp”). \n[Utwórz plik C++ ](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", "c_cpp.walkthrough.create.cpp.file.altText": "Otwórz plik C++ lub folder z projektem C++.", - "c_cpp.walkthrough.command.prompt.title": "Uruchamianie z wiersza polecenia dla deweloperów", - "c_cpp.walkthrough.command.prompt.description": "Jeśli korzystasz z kompilatora języka C++ programu Microsoft Visual Studio, rozszerzenie języka C++ wymaga uruchomienia edytora VS Code z poziomu wiersza polecenia dla deweloperów. Postępuj zgodnie z instrukcjami po prawej stronie, aby uruchomić ponownie.\n[Załaduj ponownie okno](command:workbench.action.reloadWindow)", + "c_cpp.walkthrough.command.prompt.title": "Uruchom z wiersz polecenia dla deweloperów dla programu VS", + "c_cpp.walkthrough.command.prompt.description": "W przypadku korzystania z kompilatora języka C++ programu Microsoft Visual Studio rozszerzenie języka C++ wymaga uruchomienia programu VS Code z wiersza polecenia dla deweloperów dla programu VS. Postępuj zgodnie z instrukcjami po prawej stronie, aby uruchomić ponownie.\n[Załaduj ponownie okno](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "Uruchamianie i debugowanie pliku C++", "c_cpp.walkthrough.run.debug.mac.description": "Otwórz plik C++ i kliknij przycisk odtwarzania w prawym górnym rogu edytora lub naciśnij klawisz F5, gdy korzystasz z pliku. Wybierz pozycję „clang++ — kompiluj i debuguj aktywny plik\", aby uruchomić go za pomocą debugera.", "c_cpp.walkthrough.run.debug.linux.description": "Otwórz plik C++ i kliknij przycisk odtwarzania w prawym górnym rogu edytora lub naciśnij klawisz F5, gdy korzystasz z pliku. Wybierz pozycję „g++ — kompiluj i debuguj aktywny plik\", aby uruchomić go za pomocą debugera.", diff --git a/Extension/i18n/plk/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/plk/src/Debugger/configurationProvider.i18n.json index 290a1f405..4f963898f 100644 --- a/Extension/i18n/plk/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/plk/src/Debugger/configurationProvider.i18n.json @@ -17,7 +17,7 @@ "pre.Launch.Task": "preLaunchTask: {0}", "debugger.path.not.exists": "Nie można odnaleźć debugera {0}. Konfiguracja debugowania dla {1} jest ignorowana.", "build.and.debug.active.file": "Kompiluj i debuguj aktywny plik", - "cl.exe.not.available": "{0} — funkcji kompilacji i debugowania można używać tylko wtedy, gdy program VS Code został uruchomiony z wiersza polecenia dla deweloperów w programie VS.", + "cl.exe.not.available": "Możliwe jest używanie opcji {0} w przypadku, gdy program VS Code zostanie uruchomiony z {1}.", "lldb.find.failed": "Brak zależności „{0}” dla pliku wykonywalnego lldb-mi.", "lldb.search.paths": "Wyszukano w:", "lldb.install.help": "Aby rozwiązać ten problem, zainstaluj środowisko XCode za pośrednictwem sklepu Apple App Store lub zainstaluj narzędzia wiersza polecenia środowiska XCode, uruchamiając polecenie „{0}” w oknie terminala.", diff --git a/Extension/i18n/plk/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json b/Extension/i18n/plk/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json new file mode 100644 index 000000000..0ee5e0e2a --- /dev/null +++ b/Extension/i18n/plk/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "generate.copilot.description": "Generuj podsumowanie funkcji Copilot", + "copilot.disclaimer": "Zawartość wygenerowana przez sztuczną inteligencję może być niepoprawna." +} \ No newline at end of file diff --git a/Extension/i18n/plk/src/LanguageServer/configurations.i18n.json b/Extension/i18n/plk/src/LanguageServer/configurations.i18n.json index 190871a1c..da0ae0632 100644 --- a/Extension/i18n/plk/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/plk/src/LanguageServer/configurations.i18n.json @@ -17,5 +17,6 @@ "path.is.not.a.directory": "Ścieżka nie jest katalogiem: {0}", "duplicate.name": "Element {0} jest duplikatem. Nazwa konfiguracji musi być unikatowa.", "multiple.paths.not.allowed": "Wiele ścieżek jest niedozwolonych.", + "multiple.paths.should.be.separate.entries": "Wiele ścieżek powinno być osobnymi wpisami w tablicy.", "paths.are.not.directories": "Ścieżki nie są katalogami: {0}" } \ No newline at end of file diff --git a/Extension/i18n/plk/src/LanguageServer/extension.i18n.json b/Extension/i18n/plk/src/LanguageServer/extension.i18n.json index fcf4c8d98..b434aa693 100644 --- a/Extension/i18n/plk/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/plk/src/LanguageServer/extension.i18n.json @@ -19,5 +19,9 @@ "code.action.aborted": "Nie można rozwiązać problemu z analizą kodu, ponieważ dokument został zmieniony.", "prerelease.message": "Dostępna jest wersja wstępna rozszerzenia C/C++. Czy chcesz się na nią przełączyć?", "yes.button": "Tak", - "no.button": "Nie" + "no.button": "Nie", + "copilot.hover.unavailable": "Podsumowanie Copilot jest niedostępne.", + "copilot.hover.excluded": "Plik zawierający definicję lub deklarację tego symbolu został wykluczony z używania z copilotem.", + "copilot.hover.unavailable.symbol": "Podsumowanie Copilot jest niedostępne dla tego symbolu.", + "copilot.hover.error": "Wystąpił błąd podczas generowania podsumowania funkcji Copilot." } \ No newline at end of file diff --git a/Extension/i18n/plk/src/nativeStrings.i18n.json b/Extension/i18n/plk/src/nativeStrings.i18n.json index 3587ff53a..cd9de4b4d 100644 --- a/Extension/i18n/plk/src/nativeStrings.i18n.json +++ b/Extension/i18n/plk/src/nativeStrings.i18n.json @@ -159,8 +159,8 @@ "fallback_to_64_bit_mode2": "Nie można wykonać zapytania dotyczącego kompilatora. Powrót do 64-bitowego trybu intelliSenseMode.", "fallback_to_no_bitness": "Nie można wykonać zapytania dotyczącego kompilatora. Powrót do braku liczby bitów.", "intellisense_client_creation_aborted": "Przerwano tworzenie klienta IntelliSense: {0}", - "include_errors_config_provider_intellisense_disabled ": "Wykryto błędy #include na podstawie informacji podanych przez ustawienie configurationProvider. Funkcje IntelliSense dla tej jednostki tłumaczeniowej ({0}) będą udostępniane przez analizator tagów.", - "include_errors_config_provider_squiggles_disabled ": "Wykryto błędy #include na podstawie informacji podanych przez ustawienie configurationProvider. Zygzaki dla tej jednostki tłumaczeniowej ({0}) są wyłączone.", + "include_errors_config_provider_intellisense_disabled": "Wykryto błędy #include na podstawie informacji podanych przez ustawienie configurationProvider. Funkcje IntelliSense dla tej jednostki tłumaczeniowej ({0}) będą udostępniane przez analizator tagów.", + "include_errors_config_provider_squiggles_disabled": "Wykryto błędy #include na podstawie informacji podanych przez ustawienie configurationProvider. Zygzaki dla tej jednostki tłumaczeniowej ({0}) są wyłączone.", "preprocessor_keyword": "słowo kluczowe preprocesora", "c_keyword": "Słowo kluczowe języka C", "cpp_keyword": "Słowo kluczowe języka C++", @@ -316,5 +316,6 @@ "refactor_extract_xborder_jump": "Występują skoki między zaznaczonym kodem a otaczającym kodem.", "refactor_extract_missing_return": "W zaznaczonym kodzie niektóre ścieżki kontroli kończą działanie bez ustawienia zwracanej wartości. Jest to obsługiwane tylko w przypadku zwracanych typów skalarnych, liczbowych i wskaźnikowych.", "expand_selection": "Rozwiń wybór (aby włączyć opcję „Wyodrębnij do funkcji”)", - "file_not_found_in_path2": "\"{0}\" not found in compile_commands.json files. 'includePath' from c_cpp_properties.json in folder '{1}' will be used for this file instead." + "file_not_found_in_path2": "Nie znaleziono elementu „{0}” w plikach compile_commands.json. Zamiast tego dla tego pliku zostanie użyty element „includePath” z c_cpp_properties.json w folderze „{1}”.", + "copilot_hover_link": "Generuj podsumowanie funkcji Copilot" } \ No newline at end of file diff --git a/Extension/i18n/plk/ui/settings.html.i18n.json b/Extension/i18n/plk/ui/settings.html.i18n.json index 232d52312..de59af40d 100644 --- a/Extension/i18n/plk/ui/settings.html.i18n.json +++ b/Extension/i18n/plk/ui/settings.html.i18n.json @@ -55,7 +55,8 @@ "dot.config": "Dot Config", "dot.config.description": "Ścieżka do pliku .config utworzonego przez system Kconfig. System Kconfig generuje plik ze wszystkimi definicjami na potrzeby kompilowania projektu. Przykłady projektów używających systemu Kconfig to jądro systemu Linux i system NuttX RTOS.", "compile.commands": "Polecenia kompilacji", - "compile.commands.description": "Pełna ścieżka do pliku {0} dla obszaru roboczego. Ścieżki dołączania i definicje wykryte w tym pliku będą używane zamiast wartości określonych dla ustawień {1} i {2}. Jeśli baza danych poleceń kompilacji nie zawiera wpisu dla jednostki translacji odpowiadającej plikowi, który został otwarty w edytorze, pojawi się komunikat ostrzegawczy, a rozszerzenie użyje zamiast tego ustawień {3} i {4}.", + "compile.commands.description": "Lista ścieżek do plików {0} dla obszaru roboczego. Ścieżki uwzględniania i definicje wykryte w tych plikach będą używane zamiast wartości określonych dla ustawień {1} i {2}. Jeśli baza danych poleceń kompilacji nie zawiera wpisu dla jednostki translacji odpowiadającej plikowi, który został otwarty w edytorze, pojawi się komunikat ostrzegawczy, a rozszerzenie użyje zamiast tego ustawień {3} i {4}.", + "one.compile.commands.path.per.line": "Jedna ścieżka poleceń kompilacji na wiersz.", "merge.configurations": "Scal konfiguracje", "merge.configurations.description": "Jeśli wartość jest równa {0} (lub jest zaznaczona), scala ścieżki dołączenia, definiuje i wymusza dołączenie ze ścieżkami od dostawcy konfiguracji.", "browse.path": "Przeglądaj: ścieżka", diff --git a/Extension/i18n/plk/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json b/Extension/i18n/plk/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json index d8fe509ad..b7385c2a3 100644 --- a/Extension/i18n/plk/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json +++ b/Extension/i18n/plk/walkthrough/debugconfig/run-and-debug-project-linux.md.i18n.json @@ -14,5 +14,5 @@ "walkthrough.linux.choose.build.active.file": "Wybierz kompilację {0}.", "walkthrough.linux.build.and.debug.active.file": "Kompiluj i debuguj aktywny plik", "walkthrough.linux.after.running": "Po uruchomieniu i debugowaniu pliku C++ po raz pierwszy zobaczysz dwa nowe pliki w folderze {0} projektu: {1} i {2}.", - "walkthrough.linux.for.more.complex": "W przypadku bardziej złożonych scenariuszy kompilacji i debugowania można dostosować zadania kompilacji i konfiguracje debugowania w pozycjach {0} i {1}. Na przykład jeśli zwykle przekazujesz argumenty do kompilatora podczas kompilowania z poziomu wiersza polecenia, możesz określić te argumenty w pozycji{2} przy użyciu właściwości {3}. Podobnie można zdefiniować argumenty do przekazania do programu na potrzeby debugowania w pozycji{4}." -} \ No newline at end of file + "walkthrough.linux.for.more.complex": "W przypadku bardziej złożonych scenariuszy kompilacji i debugowania można dostosować zadania kompilacji i konfiguracje debugowania w pozycjach {0} i {1}. Na przykład jeśli zwykle przekazujesz argumenty do kompilatora podczas kompilowania z poziomu wiersza polecenia, możesz określić te argumenty w pozycji {2} przy użyciu właściwości {3}. Podobnie można zdefiniować argumenty do przekazania do programu na potrzeby debugowania w pozycji {4}." +} diff --git a/Extension/i18n/plk/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json b/Extension/i18n/plk/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json index 5eb3b9711..bbb608d3b 100644 --- a/Extension/i18n/plk/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json +++ b/Extension/i18n/plk/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json @@ -14,5 +14,5 @@ "walkthrough.mac.choose.build.active.file": "Wybierz kompilację {0}.", "walkthrough.mac.build.and.debug.active.file": "Kompiluj i debuguj aktywny plik", "walkthrough.mac.after.running": "Po uruchomieniu i debugowaniu pliku C++ po raz pierwszy zobaczysz dwa nowe pliki w folderze {0} projektu: {1} i {2}.", - "walkthrough.mac.for.more.complex": "W przypadku bardziej złożonych scenariuszy kompilacji i debugowania można dostosować zadania kompilacji i konfiguracje debugowania w pozycjach {0} i {1}. Na przykład jeśli zwykle przekazujesz argumenty do kompilatora podczas kompilowania z poziomu wiersza polecenia, możesz określić te argumenty w pozycji{2} przy użyciu właściwości {3}. Podobnie można zdefiniować argumenty do przekazania do programu na potrzeby debugowania w pozycji{4}." -} \ No newline at end of file + "walkthrough.mac.for.more.complex": "W przypadku bardziej złożonych scenariuszy kompilacji i debugowania można dostosować zadania kompilacji i konfiguracje debugowania w pozycjach {0} i {1}. Na przykład jeśli zwykle przekazujesz argumenty do kompilatora podczas kompilowania z poziomu wiersza polecenia, możesz określić te argumenty w pozycji {2} przy użyciu właściwości {3}. Podobnie można zdefiniować argumenty do przekazania do programu na potrzeby debugowania w pozycji {4}." +} diff --git a/Extension/i18n/plk/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json b/Extension/i18n/plk/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json index 5df9ae4cb..4595ce32c 100644 --- a/Extension/i18n/plk/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json +++ b/Extension/i18n/plk/walkthrough/debugconfig/run-and-debug-project-windows.md.i18n.json @@ -14,5 +14,5 @@ "walkthrough.windows.choose.build.active.file": "Wybierz kompilację {0}.", "walkthrough.windows.build.and.debug.active.file": "Kompiluj i debuguj aktywny plik", "walkthrough.windows.after.running": "Po uruchomieniu i debugowaniu pliku C++ po raz pierwszy zobaczysz dwa nowe pliki w folderze {0} projektu: {1} i {2}.", - "walkthrough.windows.for.more.complex": "W przypadku bardziej złożonych scenariuszy kompilacji i debugowania można dostosować zadania kompilacji i konfiguracje debugowania w pozycjach {0} i {1}. Na przykład jeśli zwykle przekazujesz argumenty do kompilatora podczas kompilowania z poziomu wiersza polecenia, możesz określić te argumenty w pozycji{2} przy użyciu właściwości {3}. Podobnie można zdefiniować argumenty do przekazania do programu na potrzeby debugowania w pozycji{4}." -} \ No newline at end of file + "walkthrough.windows.for.more.complex": "W przypadku bardziej złożonych scenariuszy kompilacji i debugowania można dostosować zadania kompilacji i konfiguracje debugowania w pozycjach {0} i {1}. Na przykład jeśli zwykle przekazujesz argumenty do kompilatora podczas kompilowania z poziomu wiersza polecenia, możesz określić te argumenty w pozycji {2} przy użyciu właściwości {3}. Podobnie można zdefiniować argumenty do przekazania do programu na potrzeby debugowania w pozycji {4}." +} diff --git a/Extension/i18n/plk/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json b/Extension/i18n/plk/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json index 44bbedf7f..d7cf404d3 100644 --- a/Extension/i18n/plk/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json +++ b/Extension/i18n/plk/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "walkthrough.windows.title.open.dev.command.prompt": "Uruchom ponownie przy użyciu wiersza polecenia dla deweloperów", - "walkthrough.windows.background.dev.command.prompt": " Ponieważ używasz maszyny z systemem Windows z kompilatorem MSVC, uruchom edytor VS Code z wiersza polecenia dla deweloperów, aby wszystkie zmienne środowiskowe zostały prawidłowo skonfigurowane. Aby uruchomić ponownie przy użyciu wiersza polecenia dla deweloperów:", - "walkthrough.open.command.prompt": "Otwórz wiersz polecenia dla deweloperów dla edytora VS, wpisując „deweloper” w menu Start systemu Windows. Wybierz wiersz polecenia dla deweloperów dla edytora VS, który automatycznie przejdzie do bieżącego otwartego folderu.", - "walkthrough.windows.press.f5": "Wpisz „code” w wierszu polecenia i naciśnij klawisz Enter. To powinno ponownie uruchomić edytor VS Code i przenieść Cię z powrotem do tego przewodnika. " + "walkthrough.windows.title.open.dev.command.prompt": "Uruchom ponownie przy użyciu {0}", + "walkthrough.windows.background.dev.command.prompt": " Używasz komputera z systemem Windows i kompilatorem programu Microsoft Visual C++ z {0}, więc musisz uruchomić program VS Code od początku, aby wszystkie zmienne środowiskowe zostały poprawnie ustawione. Aby ponownie uruchomić przy użyciu {1}:", + "walkthrough.open.command.prompt": "Otwórz pozycję {0}, wpisując „{1}” w menu Start systemu Windows. Wybierz {2}, który automatycznie przeniesie do bieżącego otwartego folderu.", + "walkthrough.windows.press.f5": "Wpisz „{0}” w wierszu polecenia i naciśnij klawisz Enter. To powinno ponownie uruchomić program VS Code i przenieść Cię z powrotem do tego przewodnika. " } \ No newline at end of file diff --git a/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index ea8f9bc4b..891e84c91 100644 --- a/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -16,10 +16,8 @@ "walkthrough.windows.link.install": "Zainstaluj", "walkthrough.windows.note1": "Uwaga", "walkthrough.windows.note1.text": "Zestawu narzędzi języka C++ z narzędzi Visual Studio Build Tools wraz z programem Visual Studio Code można używać do kompilowania, tworzenia i weryfikowania dowolnej bazy kodu języka C++, o ile masz również ważną licencję programu Visual Studio (Community, Pro lub Enterprise), której aktywnie używasz do opracowywania tej bazy kodu języka C++.", - "walkthrough.windows.open.command.prompt": "Otwórz pozycję {0}, wpisując „deweloper” w menu Start systemu Windows.", - "walkthrough.windows.command.prompt.name1": "Wiersz polecenia Developer dla programu VS", - "walkthrough.windows.check.install": "Sprawdź instalację programu MSVC, wpisując {0} w wierszu polecenia dewelopera dla programu VS. Powinien zostać wyświetlony komunikat o prawach autorskich z wersją i opisem użycia podstawowego.", + "walkthrough.windows.open.command.prompt": "Otwórz pozycję {0}, wpisując „{1}” w menu Start systemu Windows.", + "walkthrough.windows.check.install": "Sprawdź instalację MSVC, wpisując {0} w {1}. Powinien zostać wyświetlony komunikat o prawach autorskich z wersją i podstawowym opisem dotyczącym użycia.", "walkthrough.windows.note2": "Uwaga", - "walkthrough.windows.note2.text": "Aby użyć programu MSVC z wiersza polecenia lub programu VS Code, należy uruchomić z {0}. Zwykła powłoka, taka jak {1}, {2} lub wiersz polecenia systemu Windows, nie ma ustawionych wymaganych zmiennych środowiskowych ścieżki.", - "walkthrough.windows.command.prompt.name2": "Wiersz polecenia dla deweloperów dla programu VS" + "walkthrough.windows.note2.text": "Aby użyć programu MSVC z wiersza polecenia lub programu VS Code, należy uruchomić z {0}. Zwykła powłoka, taka jak {1}, {2} lub wiersz polecenia systemu Windows, nie ma ustawionych wymaganych zmiennych środowiskowych ścieżki." } \ No newline at end of file diff --git a/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index 24a885648..211ffd2a0 100644 --- a/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "Notatka", "walkthrough.windows.note1.text": "Zestawu narzędzi języka C++ z narzędzi Visual Studio Build Tools wraz z programem Visual Studio Code można używać do kompilowania, tworzenia i weryfikowania dowolnej bazy kodu języka C++, o ile masz również ważną licencję programu Visual Studio (Community, Pro lub Enterprise), której aktywnie używasz do opracowywania tej bazy kodu języka C++.", "walkthrough.windows.verify.compiler": "Weryfikowanie instalacji kompilatora", - "walkthrough.windows.open.command.prompt": "Otwórz pozycję {0}, wpisując „deweloper” w menu Start systemu Windows.", - "walkthrough.windows.command.prompt.name1": "Wiersz polecenia Developer dla programu VS", - "walkthrough.windows.check.install": "Sprawdź instalację programu MSVC, wpisując {0} w wierszu polecenia dewelopera dla programu VS. Powinien zostać wyświetlony komunikat o prawach autorskich z wersją i opisem użycia podstawowego.", + "walkthrough.windows.open.command.prompt": "Otwórz pozycję {0}, wpisując „{1}” w menu Start systemu Windows.", + "walkthrough.windows.check.install": "Sprawdź instalację MSVC, wpisując {0} w {1}. Powinien zostać wyświetlony komunikat o prawach autorskich z wersją i podstawowym opisem dotyczącym użycia.", "walkthrough.windows.note2": "Notatka", "walkthrough.windows.note2.text": "Aby użyć programu MSVC z wiersza polecenia lub programu VS Code, należy uruchomić z {0}. Zwykła powłoka, taka jak {1}, {2} lub wiersz polecenia systemu Windows, nie ma ustawionych wymaganych zmiennych środowiskowych ścieżki.", - "walkthrough.windows.command.prompt.name2": "Wiersz polecenia dla deweloperów dla programu VS", "walkthrough.windows.other.compilers": "Inne opcje kompilatora", "walkthrough.windows.text3": "Jeśli zamierzasz korzystać z systemu Linux z poziomu systemu Windows, sprawdź {0}. Możesz też {1}.", "walkthrough.windows.link.title1": "Używanie języka C++ i podsystemu Windows dla systemu Linux (WSL) w programie VS Code", diff --git a/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index 24a885648..211ffd2a0 100644 --- a/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/plk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "Notatka", "walkthrough.windows.note1.text": "Zestawu narzędzi języka C++ z narzędzi Visual Studio Build Tools wraz z programem Visual Studio Code można używać do kompilowania, tworzenia i weryfikowania dowolnej bazy kodu języka C++, o ile masz również ważną licencję programu Visual Studio (Community, Pro lub Enterprise), której aktywnie używasz do opracowywania tej bazy kodu języka C++.", "walkthrough.windows.verify.compiler": "Weryfikowanie instalacji kompilatora", - "walkthrough.windows.open.command.prompt": "Otwórz pozycję {0}, wpisując „deweloper” w menu Start systemu Windows.", - "walkthrough.windows.command.prompt.name1": "Wiersz polecenia Developer dla programu VS", - "walkthrough.windows.check.install": "Sprawdź instalację programu MSVC, wpisując {0} w wierszu polecenia dewelopera dla programu VS. Powinien zostać wyświetlony komunikat o prawach autorskich z wersją i opisem użycia podstawowego.", + "walkthrough.windows.open.command.prompt": "Otwórz pozycję {0}, wpisując „{1}” w menu Start systemu Windows.", + "walkthrough.windows.check.install": "Sprawdź instalację MSVC, wpisując {0} w {1}. Powinien zostać wyświetlony komunikat o prawach autorskich z wersją i podstawowym opisem dotyczącym użycia.", "walkthrough.windows.note2": "Notatka", "walkthrough.windows.note2.text": "Aby użyć programu MSVC z wiersza polecenia lub programu VS Code, należy uruchomić z {0}. Zwykła powłoka, taka jak {1}, {2} lub wiersz polecenia systemu Windows, nie ma ustawionych wymaganych zmiennych środowiskowych ścieżki.", - "walkthrough.windows.command.prompt.name2": "Wiersz polecenia dla deweloperów dla programu VS", "walkthrough.windows.other.compilers": "Inne opcje kompilatora", "walkthrough.windows.text3": "Jeśli zamierzasz korzystać z systemu Linux z poziomu systemu Windows, sprawdź {0}. Możesz też {1}.", "walkthrough.windows.link.title1": "Używanie języka C++ i podsystemu Windows dla systemu Linux (WSL) w programie VS Code", diff --git a/Extension/i18n/ptb/c_cpp_properties.schema.json.i18n.json b/Extension/i18n/ptb/c_cpp_properties.schema.json.i18n.json index 96be96a64..0b887d394 100644 --- a/Extension/i18n/ptb/c_cpp_properties.schema.json.i18n.json +++ b/Extension/i18n/ptb/c_cpp_properties.schema.json.i18n.json @@ -9,7 +9,7 @@ "c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "Argumentos do compilador para modificar as inclusões ou definições usadas, por exemplo `-nostdinc++`, `-m32`, etc. Argumentos que usam argumentos adicionais delimitados por espaço devem ser inseridos como argumentos separados na matriz, por exemplo para `--sysroot ` use `\"--sysroot\", \"\"`.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cStandard": "Versão do padrão da linguagem C a ser usada para o IntelliSense. Observação: os padrões GNU são usados apenas para consultar o compilador de conjunto para obter definições GNU e o IntelliSense emulará a versão padrão do C equivalente.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cppStandard": "Versão do padrão da linguagem C++ a ser usada para o IntelliSense. Observação: os padrões GNU são usados apenas para consultar o compilador de conjunto para obter definições de GNU e o IntelliSense emulará a versão do C++ padrão equivalente.", - "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Caminho completo para o arquivo `compile_commands.json` para o espaço de trabalho.", + "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Caminho completo ou uma lista de caminhos completos para arquivos `compile_commands.json` para o espaço de trabalho.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.includePath": "Uma lista de caminhos para o mecanismo IntelliSense usar ao pesquisar cabeçalhos incluídos. A pesquisa nesses caminhos não é recursiva. Especifique `**` para indicar pesquisa recursiva. Por exemplo, `${workspaceFolder}/**` irá pesquisar em todos os subdiretórios enquanto `${workspaceFolder}` não irá. Normalmente, isso não deve incluir inclusões de sistema; em vez disso, defina `C_Cpp.default.compilerPath`.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "Uma lista de caminhos para o mecanismo IntelliSense usar durante a pesquisa de cabeçalhos incluídos nas estruturas do Mac. Suportado apenas na configuração do Mac.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.windowsSdkVersion": "A versão do SDK do Windows inclui o caminho a ser usado no Windows, por exemplo, `10.0.17134.0`.", diff --git a/Extension/i18n/ptb/package.i18n.json b/Extension/i18n/ptb/package.i18n.json index 96de292e6..28e49bd28 100644 --- a/Extension/i18n/ptb/package.i18n.json +++ b/Extension/i18n/ptb/package.i18n.json @@ -7,7 +7,7 @@ "c_cpp.subheaders.intelliSense.title": "IntelliSense", "c_cpp.subheaders.formatting.title": "Formatação", "c_cpp.subheaders.codeDocumentation.title": "Documentação do Código", - "c_cpp.subheaders.codeAnalysis.title": "Análise de Código", + "c_cpp.subheaders.codeAnalysis.title": "Análise de código", "c_cpp.subheaders.debugging.title": "Depurando", "c_cpp.subheaders.resourceManagement.title": "Gerenciamento de Recursos", "c_cpp.subheaders.miscellaneous.title": "Diversos", @@ -39,7 +39,7 @@ "c_cpp.command.RunCodeAnalysisOnActiveFile.title": "Executar Análise de Código no Arquivo Ativo", "c_cpp.command.RunCodeAnalysisOnOpenFiles.title": "Executar Análise de Código em Abrir Arquivos", "c_cpp.command.RunCodeAnalysisOnAllFiles.title": "Executar Análise de Código em Todos os Arquivos", - "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Limpar Todos os Problemas de Análise de Código", + "c_cpp.command.RemoveAllCodeAnalysisProblems.title": "Limpar todos os problemas de Análise de código", "c_cpp.command.BuildAndDebugFile.title": "Depurar Arquivo C/C++", "c_cpp.command.BuildAndRunFile.title": "Executar Arquivo C/C++", "c_cpp.command.AddDebugConfiguration.title": "Adicionar a Configuração de Depuração", @@ -77,7 +77,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Mostrar 'Limpar tudo' (se houver vários tipos de problema), 'Limpar todos os ' (se houver vários problemas para o ), e 'Limpar isso' para código de ações", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "Se for `true`, a formatação será executada nas linhas alteradas pelas ações de código 'Corrigir'.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "Se for `true`, a análise de código usando `clang-tidy` será habilitada e será executada depois que um arquivo for aberto ou salvo se `#C_Cpp.codeAnalysis.runAutomatically#` for `true` (o padrão).", - "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "O caminho completo do executável `clang-tidy`. Se não for especificado, o `clang-tidy` estará disponível no caminho do ambiente usado. Se não for encontrado no caminho do ambiente, o `clang-tidy` empacotado com a extensão será usado.", + "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "O caminho completo do executável `clang-tidy`. Se não for especificado, e o `clang-tidy` estiver disponível no caminho do ambiente, ele será usado, a menos que a versão fornecida com a extensão seja mais recente. Se não for encontrado no caminho do ambiente, o `clang-tidy` empacotado com a extensão será usado.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Especifica uma configuração `clang-tidy` no formato YAML/JSON: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{chave: x, valor: y}]}`. Quando o valor estiver vazio, `clang-tidy` tentará localizar um arquivo chamado `.clang-tidy` para cada arquivo de origem em seus diretórios pai.", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "Especifica uma configuração `clang-tidy` no formato YAML/JSON a ser usada como fallback quando `#C_Cpp.codeAnalysis.clangTidy.config#` não estiver definido e nenhum arquivo `.clang-tidy` for encontrado: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{chave: x, valor: y}]}`.", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "Uma expressão regular estendida (ERE) que corresponde ao nome do cabeçalho a partir do qual o diagnóstico deve ser gerado. Os diagnósticos do arquivo principal de cada unidade de tradução são sempre exibidos. A variável `${workspaceFolder}` é suportada (e será usada como o valor de fallback padrão se o arquivo `.clang-tidy` não existir). Se esta opção não for `null` (vazia), ela substituirá a opção `HeaderFilterRegex` em um arquivo `.clang-tidy`, se houver.", @@ -175,7 +175,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.oneLiners.markdownDescription": "Um bloco de código completo inserido em uma linha é mantido em uma linha, independentemente dos valores de qualquer uma das configurações `C_Cpp.vcFormat.newLine.*`.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription": "Qualquer código onde a chave de abertura e fechamento é inserida em uma linha é mantido em uma linha, independentemente dos valores de qualquer uma das configurações `C_Cpp.vcFormat.newLine.*`.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "Os blocos de código são sempre formatados com base nos valores das configurações `C_Cpp.vcFormat.newLine. *`.", - "c_cpp.configuration.clang_format_path.markdownDescription": "O caminho completo do executável `clang-format`. Se não for especificado, o `clang-format` estará disponível no caminho do ambiente usado. Se não for encontrado no caminho do ambiente, o `clang-format` empacotado com a extensão será usado.", + "c_cpp.configuration.clang_format_path.markdownDescription": "O caminho completo do executável `clang-format`. Se não for especificado, e o `clang-format` estiver disponível no caminho do ambiente, ele será usado, a menos que a versão fornecida com a extensão seja mais recente. Se não for encontrado no caminho do ambiente, o `clang-format` empacotado com a extensão será usado.", "c_cpp.configuration.clang_format_style.markdownDescription": "Estilo de codificação, atualmente suporta: `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`. Use `file` para carregar o estilo de um arquivo `.clang-format` no diretório atual ou pai, ou use `file:/.clang-format` para referenciar um caminho específico. Use `{chave: valor, ...}` para definir parâmetros específicos. Por exemplo, o estilo `Visual Studio` é semelhante a: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: - 4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "Nome do estilo predefinido usado como fallback no caso de `clang-format` ser invocado com o estilo `file`, mas o arquivo `.clang-format` não for encontrado. Os valores possíveis são `Visual Studio`,`LLVM`, `Google`,`Chromium`, `Mozilla`,`WebKit`, `Microsoft`, `GNU`, `none` ou use `{key: value, .. .}` para definir parâmetros específicos. Por exemplo, o estilo `Visual Studio` é semelhante a: `{BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifier: - 4, NamespaceIndentation: All, FixNamespaceComments: false}`.", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "Se definido, substitui o comportamento de classificação de inclusão determinado pelo parâmetro `SortIncludes`.", @@ -205,7 +205,7 @@ "c_cpp.configuration.exclusionPolicy.markdownDescription": "Instrui a extensão quando usar a configuração `#files.exclude#` (e `#C_Cpp.files.exclude#`) ao determinar quais arquivos devem ser adicionados ao banco de dados de navegação de código enquanto percorre os caminhos em `browse.path` matriz. Se sua configuração `#files.exclude#` contém apenas pastas, então `checkFolders` é a melhor escolha e aumentará a velocidade na qual a extensão pode inicializar o banco de dados de navegação de código.", "c_cpp.configuration.exclusionPolicy.checkFolders.description": "Os filtros de exclusão serão avaliados apenas uma vez por pasta (arquivos individuais não são verificados).", "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Os filtros de exclusão serão avaliados em relação a todos os arquivos e pastas encontrados.", - "c_cpp.configuration.preferredPathSeparator.markdownDescription": "O caractere usado como separador de caminho para resultados de preenchimento automático de `#include`.", + "c_cpp.configuration.preferredPathSeparator.markdownDescription": "O caractere usado como separador de caminho para caminhos de usuário gerados.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "Se for `true`, as dicas de passar o mouse e autocompletar exibirão apenas alguns rótulos de comentários estruturados. Caso contrário, todos os comentários serão exibidos.", "c_cpp.configuration.doxygen.generateOnType.description": "Controle se o comentário Doxygen deve ser inserido automaticamente depois de digitar o estilo de comentário escolhido.", "c_cpp.configuration.doxygen.generatedStyle.description": "A cadeia de caracteres usada como a linha inicial do comentário Doxygen.", @@ -253,6 +253,7 @@ "c_cpp.configuration.hover.description": "Se desabilitado, os detalhes do hover não são mais fornecidos pelo servidor de idiomas.", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "Habilitar os serviços de integração para o [gerenciador de dependências vcpkg](https://aka.ms/vcpkg/).", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Adicione caminhos de inclusão de `nan` e `node-addon-api` quando forem dependências.", + "c_cpp.configuration.copilotHover.markdownDescription": "Se `disabled`, nenhuma informação do Copilot será exibida em Hover.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Se `true`, 'Renomear Símbolo' exigirá um identificador C/C++ válido.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Se `true`, autocomplete adicionará automaticamente `(` após chamadas de função, neste caso `)` também pode ser adicionado, dependendo do valor da configuração `#editor.autoClosingBrackets#`.", "c_cpp.configuration.filesExclude.markdownDescription": "Configure padrões glob para excluir pastas (e arquivos se `#C_Cpp.exclusionPolicy#` for alterado). Esses são específicos para a extensão C/C++ e são adicionais a `#files.exclude#`, mas ao contrário de `#files.exclude#`, eles também se aplicam a caminhos fora do espaço de trabalho atual e não são removidos da visualização do Explorer. Saiba mais sobre [glob patterns](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", @@ -427,8 +428,8 @@ "c_cpp.walkthrough.create.cpp.file.title": "Criar um arquivo C++", "c_cpp.walkthrough.create.cpp.file.description": "[Abrir](command:toSide:workbench.action.files.openFile) ou [criar](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) em C++ arquivo. Certifique-se de salvá-lo com a extensão \".cpp\", como \"helloworld.cpp\".\n[Criar um arquivo C++](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", "c_cpp.walkthrough.create.cpp.file.altText": "Abra um arquivo C++ ou uma pasta com um projeto C++.", - "c_cpp.walkthrough.command.prompt.title": "Iniciar no prompt de comando do desenvolvedor", - "c_cpp.walkthrough.command.prompt.description": "Ao usar o compilador Microsoft Visual Studio C++, a extensão C++ exige que você inicie o VS Code no prompt de comando do desenvolvedor. Siga as instruções à direita para reiniciar.\n[Recarregar Janela](command:workbench.action.reloadWindow)", + "c_cpp.walkthrough.command.prompt.title": "Iniciar do Prompt de Comando do Desenvolvedor para VS", + "c_cpp.walkthrough.command.prompt.description": "Ao usar o compilador Microsoft Visual Studio C++, a extensão C++ exige que você inicie o VS Code a partir do Prompt de Comando do Desenvolvedor para o VS. Siga as instruções à direita para relançar.\n[Recarregar Janela](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "Executar e depurar o arquivo C++", "c_cpp.walkthrough.run.debug.mac.description": "Abra seu arquivo C++ e clique no botão play no canto superior direito do editor ou pressione F5 quando estiver no arquivo. Selecione \"clang++ - Compilar e depurar arquivo ativo\" para executar com o depurador.", "c_cpp.walkthrough.run.debug.linux.description": "Abra seu arquivo C++ e clique no botão play no canto superior direito do editor ou pressione F5 quando estiver no arquivo. Selecione \"g++ - Compilar e depurar arquivo ativo\" para executar com o depurador.", diff --git a/Extension/i18n/ptb/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/ptb/src/Debugger/configurationProvider.i18n.json index b37bea273..0cf1700d2 100644 --- a/Extension/i18n/ptb/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/ptb/src/Debugger/configurationProvider.i18n.json @@ -17,7 +17,7 @@ "pre.Launch.Task": "preLaunchTask: {0}", "debugger.path.not.exists": "Não foi possível localizar o {0} depurador. A configuração de depuração para {1} é ignorada.", "build.and.debug.active.file": "Compilar e depurar o arquivo ativo", - "cl.exe.not.available": "A criação e a depuração de {0} só podem ser usadas quando o VS Code é executado por meio do Prompt de Comando do Desenvolvedor para VS.", + "cl.exe.not.available": "{0} só pode ser usado quando o VS Code é executado a partir do {1}.", "lldb.find.failed": "Dependência ausente '{0}' no executável lldb-mi.", "lldb.search.paths": "Pesquisado em:", "lldb.install.help": "Para resolver esse problema, instale o XCode por meio da Apple App Store ou instale as Ferramentas de Linha de Comando do XCode executando '{0}' em uma janela de Terminal.", diff --git a/Extension/i18n/ptb/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json b/Extension/i18n/ptb/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json new file mode 100644 index 000000000..0c95ceba0 --- /dev/null +++ b/Extension/i18n/ptb/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "generate.copilot.description": "Gerar resumo do Copilot", + "copilot.disclaimer": "O conteúdo gerado pela IA pode estar incorreto." +} \ No newline at end of file diff --git a/Extension/i18n/ptb/src/LanguageServer/configurations.i18n.json b/Extension/i18n/ptb/src/LanguageServer/configurations.i18n.json index 0408803c4..b0beff6ba 100644 --- a/Extension/i18n/ptb/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/ptb/src/LanguageServer/configurations.i18n.json @@ -17,5 +17,6 @@ "path.is.not.a.directory": "O caminho não é um diretório: {0}", "duplicate.name": "{0} é uma duplicata. O nome da configuração deve ser exclusivo.", "multiple.paths.not.allowed": "Vários caminhos não são permitidos.", + "multiple.paths.should.be.separate.entries": "Vários caminhos devem ser entradas separadas em uma matriz.", "paths.are.not.directories": "Os caminhos não são diretórios: {0}" } \ No newline at end of file diff --git a/Extension/i18n/ptb/src/LanguageServer/extension.i18n.json b/Extension/i18n/ptb/src/LanguageServer/extension.i18n.json index 8c8660acc..596850296 100644 --- a/Extension/i18n/ptb/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/ptb/src/LanguageServer/extension.i18n.json @@ -19,5 +19,9 @@ "code.action.aborted": "Não foi possível aplicar a correção de análise de código porque o documento foi alterado.", "prerelease.message": "Uma versão de pré-lançamento da extensão C/C++ está disponível. Deseja alternar para ela?", "yes.button": "Sim", - "no.button": "Não" + "no.button": "Não", + "copilot.hover.unavailable": "O resumo do Copilot não está disponível.", + "copilot.hover.excluded": "O arquivo que contém a definição ou declaração deste símbolo foi excluído do uso com o Copilot.", + "copilot.hover.unavailable.symbol": "O resumo do Copilot não está disponível para este símbolo.", + "copilot.hover.error": "Ocorreu um erro ao gerar o resumo do Copilot." } \ No newline at end of file diff --git a/Extension/i18n/ptb/src/nativeStrings.i18n.json b/Extension/i18n/ptb/src/nativeStrings.i18n.json index ac5a72e53..bff77952d 100644 --- a/Extension/i18n/ptb/src/nativeStrings.i18n.json +++ b/Extension/i18n/ptb/src/nativeStrings.i18n.json @@ -159,8 +159,8 @@ "fallback_to_64_bit_mode2": "Falha ao consultar o compilador. Voltando para o intelliSenseMode de 64 bits.", "fallback_to_no_bitness": "Falha ao consultar o compilador. Voltando para nenhum número de bit.", "intellisense_client_creation_aborted": "Criação de cliente do IntelliSense anulada: {0}", - "include_errors_config_provider_intellisense_disabled ": "#inclui erros detectados com base nas informações fornecidas pela configuração configurationProvider. Os recursos do IntelliSense para essa unidade de conversão ({0}) serão fornecidos pelo Analisador de Marca.", - "include_errors_config_provider_squiggles_disabled ": "#inclui erros detectados com base nas informações fornecidas pela configuração configurationProvider. Os rabiscos estão desabilitados para esta unidade de tradução ({0}).", + "include_errors_config_provider_intellisense_disabled": "#inclui erros detectados com base nas informações fornecidas pela configuração configurationProvider. Os recursos do IntelliSense para essa unidade de conversão ({0}) serão fornecidos pelo Analisador de Marca.", + "include_errors_config_provider_squiggles_disabled": "#inclui erros detectados com base nas informações fornecidas pela configuração configurationProvider. Os rabiscos estão desabilitados para esta unidade de tradução ({0}).", "preprocessor_keyword": "palavra-chave do pré-processador", "c_keyword": "Palavra-chave C", "cpp_keyword": "Palavra-chave C++", @@ -316,5 +316,6 @@ "refactor_extract_xborder_jump": "Saltos entre o código selecionado e o código ao redor estão presentes.", "refactor_extract_missing_return": "No código selecionado, alguns caminhos de controle são encerrados sem definir o valor retornado. Isso tem suporte apenas para os tipos de retorno escalar, numérico e de ponteiro.", "expand_selection": "Expandir seleção (para habilitar \"Extrair para função\")", - "file_not_found_in_path2": "\"{0}\" não encontrado nos arquivos compile_commands.json. \"includePath\" de c_cpp_properties.json na pasta \"{1}\" será usado para esse arquivo." + "file_not_found_in_path2": "\"{0}\" não encontrado nos arquivos compile_commands.json. \"includePath\" de c_cpp_properties.json na pasta \"{1}\" será usado para esse arquivo.", + "copilot_hover_link": "Gerar resumo do Copilot" } \ No newline at end of file diff --git a/Extension/i18n/ptb/ui/settings.html.i18n.json b/Extension/i18n/ptb/ui/settings.html.i18n.json index 3b8868583..41323f507 100644 --- a/Extension/i18n/ptb/ui/settings.html.i18n.json +++ b/Extension/i18n/ptb/ui/settings.html.i18n.json @@ -55,7 +55,8 @@ "dot.config": "Configuração de Ponto", "dot.config.description": "Um caminho para um arquivo .config criado pelo sistema Kconfig. O sistema Kconfig gera um arquivo com todas as definições para construir um projeto. Exemplos de projetos que utilizam o sistema Kconfig são o Kernel Linux e o NuttX RTOS.", "compile.commands": "Compilar comandos", - "compile.commands.description": "O caminho completo para o arquivo {0} para o workspace. Os caminhos de inclusão e as definições descobertas neste arquivo serão usados no lugar dos valores definidos para as configurações {1} e {2}. Se o banco de dados de comandos de compilação não contiver uma entrada para a unidade de tradução que corresponda ao arquivo aberto no editor, uma mensagem de aviso será exibida e, em vez disso, a extensão usará as configurações {3} e {4}.", + "compile.commands.description": "Uma lista de caminhos para arquivos {0} do espaço de trabalho. Os caminhos de inclusão e as definições descobertos nesses arquivos serão usados em vez dos valores definidos para as configurações {1} e {2}. Se o banco de dados de comandos de compilação não contiver uma entrada para a unidade de tradução que corresponde ao arquivo aberto no editor, uma mensagem de aviso será exibida e a extensão usará as configurações {3} e {4}.", + "one.compile.commands.path.per.line": "Um caminho de comandos de compilação por linha.", "merge.configurations": "Mesclar as configurações", "merge.configurations.description": "Quando definido como {0} (ou verificado), mesclar os caminhos de inclusão, definições e inclusões forçadas com aqueles de um provedor de configuração.", "browse.path": "Procurar: caminho", diff --git a/Extension/i18n/ptb/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json b/Extension/i18n/ptb/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json index 1884b7bcb..4a188415a 100644 --- a/Extension/i18n/ptb/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json +++ b/Extension/i18n/ptb/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "walkthrough.windows.title.open.dev.command.prompt": "Reiniciar usando o prompt de comando do desenvolvedor", - "walkthrough.windows.background.dev.command.prompt": " Você está usando uma máquina Windows com o compilador MSVC, então você precisa iniciar o VS Code a partir do prompt de comando do desenvolvedor para que todas as variáveis de ambiente sejam definidas corretamente. Para reiniciar usando o prompt de comando do desenvolvedor:", - "walkthrough.open.command.prompt": "Abra o prompt de Comando do Desenvolvedor para VS digitando \"desenvolvedor\" no menu Iniciar do Windows. Selecione o prompt de Comando do Desenvolvedor para VS, que navegará automaticamente para sua pasta aberta atual.", - "walkthrough.windows.press.f5": "Digite \"código\" no prompt de comando e pressione enter. Isso deve reiniciar o VS Code e levá-lo de volta a este passo a passo. " + "walkthrough.windows.title.open.dev.command.prompt": "Reiniciar usando o {0}", + "walkthrough.windows.background.dev.command.prompt": " Você está usando um computador Windows com o compilador do MSVC, portanto, é necessário iniciar o VS Code a partir do {0} para que todas as variáveis de ambiente sejam definidas corretamente. Para reiniciar usando o {1}:", + "walkthrough.open.command.prompt": "Abra o {0} digitando \"{1}\" no menu Iniciar do Windows. Selecione o {2}, que navegará automaticamente para a pasta atualmente aberta.", + "walkthrough.windows.press.f5": "Digite \"{0}\" na solicitação de comando e pressione enter. Isso deve relançar o VS Code e levá-lo de volta a este tutorial. " } \ No newline at end of file diff --git a/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index 69ca126dc..266c47a6e 100644 --- a/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -16,10 +16,8 @@ "walkthrough.windows.link.install": "Instalar", "walkthrough.windows.note1": "Observação", "walkthrough.windows.note1.text": "Você pode usar o conjunto de ferramentas C++ das Ferramentas de Build do Visual Studio junto com o Visual Studio Code para compilar, construir e verificar qualquer base de código C++, contanto que também tenha uma licença válida do Visual Studio (Community, Pro ou Enterprise) que esteja ativamente usando para desenvolver essa base de código C++.", - "walkthrough.windows.open.command.prompt": "Abra o {0} digitando 'desenvolvedor' no menu Iniciar do Windows.", - "walkthrough.windows.command.prompt.name1": "Prompt de comando developer para VS", - "walkthrough.windows.check.install": "Verifique a instalação do MSVC digitando {0} no Prompt de comando do desenvolvedor para VS. Você deve ver uma mensagem de copyright com a versão e a descrição básica de uso.", + "walkthrough.windows.open.command.prompt": "Abra o {0} digitando '{1}' no menu Iniciar do Windows.", + "walkthrough.windows.check.install": "Verifique sua instalação do MSVC digitando {0} no {1}. Você deverá ver uma mensagem de copyright com a versão e a descrição básica de uso.", "walkthrough.windows.note2": "Observação", - "walkthrough.windows.note2.text": "Para usar o MSVC a partir da linha de comando ou Código VS, você deve executar a partir de um {0}. Um shell comum como {1}, {2} ou o prompt de comando do Windows não possui as variáveis ​​de ambiente de caminho necessárias definidas.", - "walkthrough.windows.command.prompt.name2": "Prompt de comando do desenvolvedor para VS" + "walkthrough.windows.note2.text": "Para usar o MSVC a partir da linha de comando ou Código VS, você deve executar a partir de um {0}. Um shell comum como {1}, {2} ou o prompt de comando do Windows não possui as variáveis ​​de ambiente de caminho necessárias definidas." } \ No newline at end of file diff --git a/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index 43c5f573b..d96d0bc9c 100644 --- a/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "Observação", "walkthrough.windows.note1.text": "Você pode usar o conjunto de ferramentas C++ das Ferramentas de Build do Visual Studio junto com o Visual Studio Code para compilar, construir e verificar qualquer base de código C++, contanto que também tenha uma licença válida do Visual Studio (Community, Pro ou Enterprise) que esteja ativamente usando para desenvolver essa base de código C++.", "walkthrough.windows.verify.compiler": "Verificando a instalação do compilador", - "walkthrough.windows.open.command.prompt": "Abra o {0} digitando 'desenvolvedor' no menu Iniciar do Windows.", - "walkthrough.windows.command.prompt.name1": "Prompt de comando developer para VS", - "walkthrough.windows.check.install": "Verifique a instalação do MSVC digitando {0} no Prompt de comando do desenvolvedor para VS. Você deve ver uma mensagem de copyright com a versão e a descrição básica de uso.", + "walkthrough.windows.open.command.prompt": "Abra o {0} digitando '{1}' no menu Iniciar do Windows.", + "walkthrough.windows.check.install": "Verifique sua instalação do MSVC digitando {0} no {1}. Você deverá ver uma mensagem de copyright com a versão e a descrição básica de uso.", "walkthrough.windows.note2": "Observação", "walkthrough.windows.note2.text": "Para usar o MSVC a partir da linha de comando ou Código VS, você deve executar a partir de um {0}. Um shell comum como {1}, {2} ou o prompt de comando do Windows não possui as variáveis ​​de ambiente de caminho necessárias definidas.", - "walkthrough.windows.command.prompt.name2": "Prompt de comando do desenvolvedor para VS", "walkthrough.windows.other.compilers": "Outras opções do compilador", "walkthrough.windows.text3": "Se você está segmentando o Linux a partir do Windows, verifique {0}. Ou você pode {1}.", "walkthrough.windows.link.title1": "Usando C++ e Subsistema Windows para Linux (WSL) no código VS", diff --git a/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index 43c5f573b..d96d0bc9c 100644 --- a/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/ptb/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "Observação", "walkthrough.windows.note1.text": "Você pode usar o conjunto de ferramentas C++ das Ferramentas de Build do Visual Studio junto com o Visual Studio Code para compilar, construir e verificar qualquer base de código C++, contanto que também tenha uma licença válida do Visual Studio (Community, Pro ou Enterprise) que esteja ativamente usando para desenvolver essa base de código C++.", "walkthrough.windows.verify.compiler": "Verificando a instalação do compilador", - "walkthrough.windows.open.command.prompt": "Abra o {0} digitando 'desenvolvedor' no menu Iniciar do Windows.", - "walkthrough.windows.command.prompt.name1": "Prompt de comando developer para VS", - "walkthrough.windows.check.install": "Verifique a instalação do MSVC digitando {0} no Prompt de comando do desenvolvedor para VS. Você deve ver uma mensagem de copyright com a versão e a descrição básica de uso.", + "walkthrough.windows.open.command.prompt": "Abra o {0} digitando '{1}' no menu Iniciar do Windows.", + "walkthrough.windows.check.install": "Verifique sua instalação do MSVC digitando {0} no {1}. Você deverá ver uma mensagem de copyright com a versão e a descrição básica de uso.", "walkthrough.windows.note2": "Observação", "walkthrough.windows.note2.text": "Para usar o MSVC a partir da linha de comando ou Código VS, você deve executar a partir de um {0}. Um shell comum como {1}, {2} ou o prompt de comando do Windows não possui as variáveis ​​de ambiente de caminho necessárias definidas.", - "walkthrough.windows.command.prompt.name2": "Prompt de comando do desenvolvedor para VS", "walkthrough.windows.other.compilers": "Outras opções do compilador", "walkthrough.windows.text3": "Se você está segmentando o Linux a partir do Windows, verifique {0}. Ou você pode {1}.", "walkthrough.windows.link.title1": "Usando C++ e Subsistema Windows para Linux (WSL) no código VS", diff --git a/Extension/i18n/rus/c_cpp_properties.schema.json.i18n.json b/Extension/i18n/rus/c_cpp_properties.schema.json.i18n.json index 37330ce65..11fc21591 100644 --- a/Extension/i18n/rus/c_cpp_properties.schema.json.i18n.json +++ b/Extension/i18n/rus/c_cpp_properties.schema.json.i18n.json @@ -9,7 +9,7 @@ "c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "Аргументы компилятора для изменения используемых включений или определений, например `-nostdinc++`, `-m32` и т. д. Аргументы, которые принимают дополнительные аргументы, разделенные пробелами, должны быть введены как отдельные аргументы в массиве, например для `--sysroot ` используйте `\"--sysroot\", \"\"`.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cStandard": "Версия стандарта языка C, используемая для IntelliSense. Примечание: стандарты GNU используются только для запроса определений GNU у установленного компилятора, а IntelliSense будет эмулировать эквивалентную версию стандарта C.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cppStandard": "Версия стандарта языка C++, используемая для IntelliSense. Примечание: стандарты GNU используются только для запроса определений GNU у установленного компилятора, а IntelliSense будет эмулировать эквивалентную версию стандарта C++.", - "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Полный путь к файлу `compile_commands.json` рабочей области.", + "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Полный путь или список полных путей к файлам `compile_commands.json` для рабочей области.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.includePath": "Список путей для подсистемы IntelliSense, используемых при поиске включаемых файлов заголовков. Поиск по этим путям не является рекурсивным. Чтобы использовать рекурсивный поиск, укажите `**`. Например, если указать `${workspaceFolder}/**`, будет выполнен поиск по всем подкаталогам, а если указать `${workspaceFolder}` — не будет. Обычно системное содержимое не включается; вместо этого установите значение `C_Cpp.default.compilerPath`.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "Список путей для подсистемы IntelliSense, используемых при поиске включаемых файлов заголовков из платформ Mac. Поддерживается только в конфигурации для Mac.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.windowsSdkVersion": "Версия пути включения Windows SDK для использования в Windows, например `10.0.17134.0`.", diff --git a/Extension/i18n/rus/package.i18n.json b/Extension/i18n/rus/package.i18n.json index 80249d88b..23b673f01 100644 --- a/Extension/i18n/rus/package.i18n.json +++ b/Extension/i18n/rus/package.i18n.json @@ -77,7 +77,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Отображение действий кода \"Очистить все проблемы\" (при множестве типов проблем), \"Очистить все проблемы типа <тип>\" (при множестве проблем определенного <типа>) и \"Очистить эту проблему\".", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "Если установлено значение `true`, форматирование будет выполняться в строках, измененных действиями кода \"Исправить\".", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "При значении `true` анализ кода с использованием `clang-tidy` будет включен и он будет запускаться после открытия или сохранения файла, если `#C_Cpp.codeAnalysis.runAutomatically#` имеет значение `true` (по умолчанию).", - "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Полный путь к исполняемому файлу `clang-tidy`. Если значение не указано, а `clang-tidy` доступен в переменной среды PATH, используется именно он. Если `clang-tidy` не найден в переменной среды PATH, будет использоваться, связанный с расширением.", + "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Полный путь к исполняемому файлу `clang-tidy`. Если не указано иное, а `clang-tidy` доступен в пути к среде, используется этот путь, если только версия, поставляемая в комплекте с расширением, не является более новой. Если `clang-tidy` не найден в переменной среды PATH, будет использоваться, связанный с расширением.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Задает конфигурацию `clang-tidy` в формате YAML/JSON: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{ключ: x, значение: y}]}`. Если значение пусто, `clang-tidy` попытается найти файл с именем `.clang-tidy` для каждого исходного файла в его родительских каталогах.", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "Задает конфигурацию `clang-tidy` в формате YAML/JSON, которая будет использоваться в качестве резервной, если не задана конфигурация `#C_Cpp.codeAnalysis.clangTidy.config#`, а файл `.clang-tidy` не найден: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{ключ: x, значение: y}]}`.", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "Расширенное регулярное выражение (ERE) POSIX, соответствующее именам заголовков для вывода диагностики. Диагностика основного файла каждой единицы трансляции отображается всегда. Поддерживается переменная `${workspaceFolder}` (и используется в качестве резервного значения по умолчанию, если файл `.clang-tidy` не существует). Если данный параметр не имеет значение `null` (пусто), он переопределяет параметр `HeaderFilterRegex` в файле `.clang-tidy` (если таковой существует).", @@ -175,7 +175,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.oneLiners.markdownDescription": "Полный блок кода, введенный в одной строке, остается в ней вне зависимости от значений параметров `C_Cpp.vcFormat.newLine.*`.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription": "Любой код, в котором открывающая и закрывающая фигурные скобки введены в одной строке, остается в ней вне зависимости от значений параметров `C_Cpp.vcFormat.newLine.*`.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "Блоки кода всегда форматируются на основе значений параметров `C_Cpp.vcFormat.newLine.*`.", - "c_cpp.configuration.clang_format_path.markdownDescription": "Полный путь к исполняемому файлу `clang-format`. Если значение не указано, а `clang-format` доступен в пути среды, используется. Если `clang-format` не найден в пути среды, будет использоваться вместе с расширением.", + "c_cpp.configuration.clang_format_path.markdownDescription": "Полный путь к исполняемому файлу `clang-format`. Если не указано и `clang-format` доступен в пути к среде, используется этот формат, если только версия, поставляемая с расширением, не является более новой. Если `clang-format` не найден в пути среды, будет использоваться вместе с расширением.", "c_cpp.configuration.clang_format_style.markdownDescription": "Стиль кодирования сейчас поддерживает: `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`. Используйте `file`, чтобы загрузить стиль из файла `.clang-format` в текущем или родительском каталоге, или используйте `file:/.clang-format`, чтобы сослаться на определенный. Используйте `{ключ: значение, ...}`, чтобы установить определенные параметры. Например, стиль `Visual Studio` похож на: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "Имя предварительно определенного стиля, используемое в качестве резервного варианта при вызове `clang-format` со стилем `file`, когда файл `.clang-format` не найден. Возможные значения: `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`, `none`. Используйте синтаксис `{ключ: значение, ...}`, чтобы задать конкретные параметры. Например, стиль `Visual Studio` похож на следующий: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "Если параметр задан, он переопределяет поведение сортировки включения, определяемое параметром `SortIncludes`.", @@ -205,7 +205,7 @@ "c_cpp.configuration.exclusionPolicy.markdownDescription": "Предписывает расширению, когда использовать параметр `#files.exclude#` (и `#C_Cpp.files.exclude#`) при определении файлов, которые нужно добавить в базу данных навигации по коду при обходе путей в массиве `browse.path`. Если параметр `#files.exclude#` содержит только папки, то вариант `checkFolders` подходит лучше всего и увеличивает скорость, с которой расширение может инициализировать базу данных навигации по коду.", "c_cpp.configuration.exclusionPolicy.checkFolders.description": "Фильтры исключения будут вычисляться только один раз для папки (отдельные файлы не проверяются).", "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Фильтры исключения будут вычисляться для каждого найденного файла и папки.", - "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Символ, используемый в качестве разделителя пути для результатов автозавершения `#include`.", + "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Символ, используемый в качестве разделителя путей для созданных путей пользователей.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "Если выбрано значение `true`, в подсказках при наведении указателя и автозавершении будут отображаться только определенные метки со структурированными комментариями. В противном случае отображаются все комментарии.", "c_cpp.configuration.doxygen.generateOnType.description": "Определяет, следует ли автоматически вставлять комментарий Doxygen после ввода выбранного стиля комментария.", "c_cpp.configuration.doxygen.generatedStyle.description": "Строка символов, используемая в качестве начальной строки комментария Doxygen.", @@ -253,6 +253,7 @@ "c_cpp.configuration.hover.description": "Если этот параметр отключен, сведения при наведении курсора больше не предоставляются языковым сервером.", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "Включите службы интеграции для [диспетчера зависимостей vcpkg](https://aka.ms/vcpkg/).", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Добавьте пути включения из `nan` и `node-addon-api`, если они являются зависимостями.", + "c_cpp.configuration.copilotHover.markdownDescription": "Если параметр `отключен`, сведения о Copilot не будут отображаться при наведении указателя мыши.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Если этот параметр имеет значение `true`, для операции 'Переименование символа' потребуется указать допустимый идентификатор C/C++.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Если присвоено значение `true`, автозаполнение автоматически добавит `(` после вызовов функции, при этом также может добавляться `)` в зависимости от значения параметра `#editor.autoClosingBrackets#`.", "c_cpp.configuration.filesExclude.markdownDescription": "Настройка стандартных масок для исключения папок (и файлов, если внесено изменение в `#C_Cpp.exclusionPolicy#`). Они специфичны для расширения C/C++ и дополняют `#files.exclude#`, но в отличие от `#files.exclude#` они применяются также к путям вне папки используемой рабочей области и не удаляются из представления обозревателя. Дополнительные сведения о [шаблонах глобусов](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", @@ -427,8 +428,8 @@ "c_cpp.walkthrough.create.cpp.file.title": "Создание файла C++", "c_cpp.walkthrough.create.cpp.file.description": "[Открыть](command:toSide:workbench.action.files.openFile) или [создать](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) файл C++. Обязательно сохраните его с расширением \".cpp\", например \"helloworld.cpp\".\n[Создать файл C++](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", "c_cpp.walkthrough.create.cpp.file.altText": "Откройте файл C++ или папку с проектом C++.", - "c_cpp.walkthrough.command.prompt.title": "Запуск из командной строки разработчика", - "c_cpp.walkthrough.command.prompt.description": "При использовании компилятора Microsoft Visual Studio C++ расширение C++ требует запуска VS Code из командной строки разработчика. Следуйте инструкциям справа для перезапуска.\n[Перезагрузить окно](command:workbench.action.reloadWindow)", + "c_cpp.walkthrough.command.prompt.title": "Запустить из Командная строка разработчика для VS", + "c_cpp.walkthrough.command.prompt.description": "При использовании компилятора Microsoft Visual Studio C++ расширение C++ требует запуска VS Code из командной строки разработчика для VS. Для перезапуска следуйте инструкциям справа.\n[Перезагрузить окно](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "Запустите и отладьте файл C++", "c_cpp.walkthrough.run.debug.mac.description": "Откройте файл C++ и нажмите кнопку воспроизведения в правом верхнем углу редактора или нажмите F5 при открытии файла. Выберите \"clang++— сборка и отладка активного файла\" для запуска с отладчиком.", "c_cpp.walkthrough.run.debug.linux.description": "Откройте файл C++ и нажмите кнопку воспроизведения в правом верхнем углу редактора или нажмите F5 при открытии файла. Выберите \"g++ — сборка и отладка активного файла\" для запуска с отладчиком.", diff --git a/Extension/i18n/rus/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/rus/src/Debugger/configurationProvider.i18n.json index a81ff7b48..743211eba 100644 --- a/Extension/i18n/rus/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/rus/src/Debugger/configurationProvider.i18n.json @@ -17,7 +17,7 @@ "pre.Launch.Task": "ЗадачаПредварительногоЗапуска: {0}", "debugger.path.not.exists": "Не удается найти отладчик {0}. Конфигурация отладки для {1} игнорируется.", "build.and.debug.active.file": "сборка и отладка активного файла", - "cl.exe.not.available": "Сборку и отладку {0} можно использовать только при запуске VS Code из Командной строки разработчика для VS.", + "cl.exe.not.available": "{0} можно использовать только при запуске VS Code из {1}.", "lldb.find.failed": "Отсутствует зависимость \"{0}\" для исполняемого файла lldb-mi.", "lldb.search.paths": "Поиск был выполнен в следующих расположениях:", "lldb.install.help": "Чтобы устранить эту проблему, установите XCode через Apple App Store или установите средства командной строки XCode, выполнив команду \"{0}\" в окне терминала.", diff --git a/Extension/i18n/rus/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json b/Extension/i18n/rus/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json new file mode 100644 index 000000000..780bae43b --- /dev/null +++ b/Extension/i18n/rus/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "generate.copilot.description": "Создать сводку Copilot", + "copilot.disclaimer": "Содержимое, создаваемое ИИ, может быть некорректным." +} \ No newline at end of file diff --git a/Extension/i18n/rus/src/LanguageServer/configurations.i18n.json b/Extension/i18n/rus/src/LanguageServer/configurations.i18n.json index a3bf9be06..d33ef90cd 100644 --- a/Extension/i18n/rus/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/rus/src/LanguageServer/configurations.i18n.json @@ -17,5 +17,6 @@ "path.is.not.a.directory": "Путь не является каталогом: {0}", "duplicate.name": "{0} является дубликатом. Имя конфигурации должно быть уникальным.", "multiple.paths.not.allowed": "Запрещено использовать несколько путей.", + "multiple.paths.should.be.separate.entries": "Несколько путей должны быть отдельными записями в массиве.", "paths.are.not.directories": "Пути не являются каталогами: {0}" } \ No newline at end of file diff --git a/Extension/i18n/rus/src/LanguageServer/extension.i18n.json b/Extension/i18n/rus/src/LanguageServer/extension.i18n.json index 64b084f3b..8e8494534 100644 --- a/Extension/i18n/rus/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/rus/src/LanguageServer/extension.i18n.json @@ -19,5 +19,9 @@ "code.action.aborted": "Не удалось применить исправление анализа кода, так как документ был изменен.", "prerelease.message": "Доступна предварительная версия расширения C/C++. Переключиться на нее?", "yes.button": "Да", - "no.button": "Нет" + "no.button": "Нет", + "copilot.hover.unavailable": "Сводка Copilot недоступна.", + "copilot.hover.excluded": "Файл, содержащий определение или объявление этого символа, исключен из использования с Copilot.", + "copilot.hover.unavailable.symbol": "Сводка Copilot недоступна для этого символа.", + "copilot.hover.error": "При создании сводки Copilot возникла ошибка." } \ No newline at end of file diff --git a/Extension/i18n/rus/src/nativeStrings.i18n.json b/Extension/i18n/rus/src/nativeStrings.i18n.json index b9542f4e1..3441843be 100644 --- a/Extension/i18n/rus/src/nativeStrings.i18n.json +++ b/Extension/i18n/rus/src/nativeStrings.i18n.json @@ -159,8 +159,8 @@ "fallback_to_64_bit_mode2": "Не удалось запросить сведения от компилятора. Возврат к 64-разрядному режиму IntelliSenseMode.", "fallback_to_no_bitness": "Не удалось запросить сведения от компилятора. Возврат к режиму без использования разрядности.", "intellisense_client_creation_aborted": "Создание клиента IntelliSense прервано: {0}", - "include_errors_config_provider_intellisense_disabled ": "обнаружены ошибки #include на основе сведений, предоставленных параметром configurationProvider. Функции IntelliSense для этой записи преобразования ({0}) будут предоставлены анализатором тегов.", - "include_errors_config_provider_squiggles_disabled ": "Обнаружены ошибки #include на основе сведений, предоставленных параметром configurationProvider. Волнистые линии для этой записи преобразования ({0}) отключены.", + "include_errors_config_provider_intellisense_disabled": "обнаружены ошибки #include на основе сведений, предоставленных параметром configurationProvider. Функции IntelliSense для этой записи преобразования ({0}) будут предоставлены анализатором тегов.", + "include_errors_config_provider_squiggles_disabled": "Обнаружены ошибки #include на основе сведений, предоставленных параметром configurationProvider. Волнистые линии для этой записи преобразования ({0}) отключены.", "preprocessor_keyword": "ключевое слово препроцессора", "c_keyword": "Ключевое слово C", "cpp_keyword": "Ключевое слово C++", @@ -316,5 +316,6 @@ "refactor_extract_xborder_jump": "Есть переходы между выбранным кодом и окружающим его кодом.", "refactor_extract_missing_return": "В выбранном коде некоторые контрольные пути завершаются без установки возвращаемого значения. Это поддерживается только для скалярных, числовых типов возвращаемого значения и типов возвращаемого значения-указателей.", "expand_selection": "Развернуть выделенный фрагмент (чтобы включить функцию \"Извлечение в функцию\")", - "file_not_found_in_path2": "\"{0}\" не найден в файлах compile_commands.json. Вместо него для этого файла будет использоваться \"includePath\" из файла c_cpp_properties.json в папке \"{1}\"." + "file_not_found_in_path2": "\"{0}\" не найден в файлах compile_commands.json. Вместо него для этого файла будет использоваться \"includePath\" из файла c_cpp_properties.json в папке \"{1}\".", + "copilot_hover_link": "Создать сводку Copilot" } \ No newline at end of file diff --git a/Extension/i18n/rus/ui/settings.html.i18n.json b/Extension/i18n/rus/ui/settings.html.i18n.json index 978261694..9bc1eb5fe 100644 --- a/Extension/i18n/rus/ui/settings.html.i18n.json +++ b/Extension/i18n/rus/ui/settings.html.i18n.json @@ -55,7 +55,8 @@ "dot.config": "Конфигурация dot", "dot.config.description": "Путь к файлу CONFIG, созданному системой Kconfig. Система Kconfig создает файл со всеми определениями для сборки проекта. Примеры проектов, в которых используется система Kconfig: ядро Linux и NuttX RTOS.", "compile.commands": "Команды компиляции", - "compile.commands.description": "Полный путь к файлу {0} для рабочей области. Обнаруженные в этом файле пути для включений и определения будут использоваться вместо значений, заданных для параметров {1} и {2}. Если база данных команд сборки не содержит запись для единицы трансляции, соответствующей открытому в редакторе файлу, то появится предупреждающее сообщение и расширение будет использовать параметры {3} и {4}.", + "compile.commands.description": "Список путей к файлам {0} для рабочей области. Пути включения и определения, обнаруженные в этих файлах, будут использоваться вместо значений, установленных для настроек {1} и {2}. Если в базе данных команд компиляции нет записи для единицы перевода, соответствующей файлу, который вы открыли в редакторе, появится предупреждающее сообщение, а расширение вместо этого будет использовать настройки {3} и {4}.", + "one.compile.commands.path.per.line": "Один путь команд компиляции на строку.", "merge.configurations": "Объединение конфигураций", "merge.configurations.description": "При значении {0} (или если установлен флажок) пути включения, определения и принудительные включения будут объединены с аналогичными элементами от поставщика конфигурации.", "browse.path": "Обзор: путь", diff --git a/Extension/i18n/rus/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json b/Extension/i18n/rus/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json index 44e0e346d..6e672957d 100644 --- a/Extension/i18n/rus/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json +++ b/Extension/i18n/rus/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "walkthrough.windows.title.open.dev.command.prompt": "Перезапуск с помощью командной строки разработчика", - "walkthrough.windows.background.dev.command.prompt": " Вы используете компьютер с Windows с компилятором MSVC, поэтому вам нужно запустить VS Code из командной строки разработчика, чтобы все переменные среды были установлены правильно. Чтобы перезапустить с помощью командной строки разработчика:", - "walkthrough.open.command.prompt": "Откройте командную строку разработчика для VS, введя \"developer\" в меню \"Пуск\" Windows. Выберите командную строку разработчика для VS, которая автоматически перейдет к вашей текущей открытой папке.", - "walkthrough.windows.press.f5": "Введите \"code\" в командную строку и нажмите ВВОД. Это должно перезапустить VS Code и вернуть вас к этому пошаговому руководству. " + "walkthrough.windows.title.open.dev.command.prompt": "Перезапустить с помощью {0}", + "walkthrough.windows.background.dev.command.prompt": " Вы используете компьютер Windows с компилятором MSVC, поэтому вам необходимо запустить VS Code из {0}, чтобы все переменные среды были установлены правильно. Для перезапуска с помощью {1}:", + "walkthrough.open.command.prompt": "Откройте {0}, введя \"{1}\" в меню \"Пуск\" в Windows. Выберите {2}. Вы автоматически перейдете к текущей открытой папке.", + "walkthrough.windows.press.f5": "Введите \"{0}\" в командную строку и нажмите ВВОД. Это должно перезапустить VS Code и вернуть вас к этому пошаговому руководству. " } \ No newline at end of file diff --git a/Extension/i18n/rus/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/rus/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index 8d9617282..01693b4e8 100644 --- a/Extension/i18n/rus/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/rus/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -16,10 +16,8 @@ "walkthrough.windows.link.install": "Установка", "walkthrough.windows.note1": "Примечание", "walkthrough.windows.note1.text": "Вы можете использовать набор инструментов C++ из пакета Visual Studio Build Tools вместе с Visual Studio Code для компиляции, сборки и проверки любой базы кода C++, если у вас есть действующая лицензия Visual Studio (Community, Pro или Enterprise), которой вы активно пользуетесь для разработки этой базы кода C++.", - "walkthrough.windows.open.command.prompt": "Откройте {0}, введя команду \"developer\" в меню \"Пуск\" в Windows.", - "walkthrough.windows.command.prompt.name1": "Командная строка разработчика для VS", - "walkthrough.windows.check.install": "Проверьте установку MSVC, введя {0} в командной строке разработчика для VS. Должно появиться сообщение об авторских правах с номером версии и кратким описанием использования.", + "walkthrough.windows.open.command.prompt": "Откройте {0}, введя \"{1}\" в меню \"Пуск\" в Windows.", + "walkthrough.windows.check.install": "Проверьте установку MSVC, введя \"{0}\" в {1}. Должно появиться сообщение об авторских правах с номером версии и кратким описанием использования.", "walkthrough.windows.note2": "Примечание", - "walkthrough.windows.note2.text": "Чтобы использовать MSVC из командной строки или VS Code, требуется запуск из {0}. В обычной среде, например в {1}, в {2} или в командной строке Windows, не заданы необходимые переменные среды \"path\".", - "walkthrough.windows.command.prompt.name2": "Командная строка разработчика для VS" + "walkthrough.windows.note2.text": "Чтобы использовать MSVC из командной строки или VS Code, требуется запуск из {0}. В обычной среде, например в {1}, в {2} или в командной строке Windows, не заданы необходимые переменные среды \"path\"." } \ No newline at end of file diff --git a/Extension/i18n/rus/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/rus/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index b671e3e71..9671f9cf6 100644 --- a/Extension/i18n/rus/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/rus/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "Примечание", "walkthrough.windows.note1.text": "Вы можете использовать набор инструментов C++ из пакета Visual Studio Build Tools вместе с Visual Studio Code для компиляции, сборки и проверки любой базы кода C++, если у вас есть действующая лицензия Visual Studio (Community, Pro или Enterprise), которой вы активно пользуетесь для разработки этой базы кода C++.", "walkthrough.windows.verify.compiler": "Проверка установки компилятора", - "walkthrough.windows.open.command.prompt": "Откройте {0}, введя команду \"developer\" в меню \"Пуск\" в Windows.", - "walkthrough.windows.command.prompt.name1": "Командная строка разработчика для VS", - "walkthrough.windows.check.install": "Проверьте установку MSVC, введя {0} в командной строке разработчика для VS. Должно появиться сообщение об авторских правах с номером версии и кратким описанием использования.", + "walkthrough.windows.open.command.prompt": "Откройте {0}, введя \"{1}\" в меню \"Пуск\" в Windows.", + "walkthrough.windows.check.install": "Проверьте установку MSVC, введя \"{0}\" в {1}. Должно появиться сообщение об авторских правах с номером версии и кратким описанием использования.", "walkthrough.windows.note2": "Примечание", "walkthrough.windows.note2.text": "Чтобы использовать MSVC из командной строки или VS Code, требуется запуск из {0}. В обычной среде, например в {1}, в {2} или в командной строке Windows, не заданы необходимые переменные среды \"path\".", - "walkthrough.windows.command.prompt.name2": "Командная строка разработчика для VS", "walkthrough.windows.other.compilers": "Другие параметры компилятора", "walkthrough.windows.text3": "Если вы нацеливаетесь на Linux из Windows, ознакомьтесь с {0}. Также вы можете {1}.", "walkthrough.windows.link.title1": "Использование C++ и подсистемы Windows для Linux в VS Code", diff --git a/Extension/i18n/rus/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/rus/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index b671e3e71..9671f9cf6 100644 --- a/Extension/i18n/rus/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/rus/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -10,12 +10,10 @@ "walkthrough.windows.note1": "Примечание", "walkthrough.windows.note1.text": "Вы можете использовать набор инструментов C++ из пакета Visual Studio Build Tools вместе с Visual Studio Code для компиляции, сборки и проверки любой базы кода C++, если у вас есть действующая лицензия Visual Studio (Community, Pro или Enterprise), которой вы активно пользуетесь для разработки этой базы кода C++.", "walkthrough.windows.verify.compiler": "Проверка установки компилятора", - "walkthrough.windows.open.command.prompt": "Откройте {0}, введя команду \"developer\" в меню \"Пуск\" в Windows.", - "walkthrough.windows.command.prompt.name1": "Командная строка разработчика для VS", - "walkthrough.windows.check.install": "Проверьте установку MSVC, введя {0} в командной строке разработчика для VS. Должно появиться сообщение об авторских правах с номером версии и кратким описанием использования.", + "walkthrough.windows.open.command.prompt": "Откройте {0}, введя \"{1}\" в меню \"Пуск\" в Windows.", + "walkthrough.windows.check.install": "Проверьте установку MSVC, введя \"{0}\" в {1}. Должно появиться сообщение об авторских правах с номером версии и кратким описанием использования.", "walkthrough.windows.note2": "Примечание", "walkthrough.windows.note2.text": "Чтобы использовать MSVC из командной строки или VS Code, требуется запуск из {0}. В обычной среде, например в {1}, в {2} или в командной строке Windows, не заданы необходимые переменные среды \"path\".", - "walkthrough.windows.command.prompt.name2": "Командная строка разработчика для VS", "walkthrough.windows.other.compilers": "Другие параметры компилятора", "walkthrough.windows.text3": "Если вы нацеливаетесь на Linux из Windows, ознакомьтесь с {0}. Также вы можете {1}.", "walkthrough.windows.link.title1": "Использование C++ и подсистемы Windows для Linux в VS Code", diff --git a/Extension/i18n/trk/c_cpp_properties.schema.json.i18n.json b/Extension/i18n/trk/c_cpp_properties.schema.json.i18n.json index 18993a2cf..4a90f6d79 100644 --- a/Extension/i18n/trk/c_cpp_properties.schema.json.i18n.json +++ b/Extension/i18n/trk/c_cpp_properties.schema.json.i18n.json @@ -9,7 +9,7 @@ "c_cpp_properties.schema.json.definitions.configurations.items.properties.compilerArgs": "Kullanılan içermeleri veya tanımları değiştirmek için derleyici bağımsız değişkenleri (örneğin, `-nostdinc++`, `-m32` vb.). Boşlukla ayrılmış ek bağımsız değişkenler alan bağımsız değişkenler, diziye ayrı bağımsız değişkenler olarak girilmelidir. Örneğin `--sysroot ` için `\"--sysroot\", \"\"` bağımsız değişkenlerini kullanın.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cStandard": "IntelliSense için kullanılacak C dil standardı sürümü. Not: GNU standartları yalnızca GNU tanımlarını almak için ayarlanan derleyiciyi sorgulamak amacıyla kullanılır ve IntelliSense eşdeğer C standart sürümüne öykünür.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.cppStandard": "IntelliSense için kullanılacak C++ dil standardı sürümü. Not: GNU standartları yalnızca GNU tanımlarını almak için ayarlanan derleyiciyi sorgulamak amacıyla kullanılır ve IntelliSense, eşdeğer C++ standart sürümüne öykünür.", - "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Çalışma alanı için `compile_commands.json` dosyasının tam yolu.", + "c_cpp_properties.schema.json.definitions.configurations.items.properties.compileCommands": "Çalışma alanı için `compile_commands.json` dosyalarının tam yolu veya tam yolların listesi.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.includePath": "IntelliSense altyapısının eklenen üst bilgileri ararken kullanacağı yol listesi. Bu yollarda arama özyinelemeli değildir. Özyinelemeli aramayı göstermek için `**` belirtin. Örneğin: `${workspaceFolder}/**` tüm alt dizinlerde ararken `${workspaceFolder}` aramaz. Bu genellikle sistem eklemelerini içermemelidir, bunun yerine `C_Cpp.default.compilerPath` ayarını belirleyin.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.macFrameworkPath": "Mac çerçevelerinden eklenen üst bilgileri ararken IntelliSense altyapısı tarafından kullanılacak yolların listesi. Yalnızca Mac yapılandırmalarında desteklenir.", "c_cpp_properties.schema.json.definitions.configurations.items.properties.windowsSdkVersion": "Windows üzerinde kullanılacak Windows SDK ekleme yolunun sürümü, ör. `10.0.17134.0`.", diff --git a/Extension/i18n/trk/package.i18n.json b/Extension/i18n/trk/package.i18n.json index 4c1534f15..0db522a1a 100644 --- a/Extension/i18n/trk/package.i18n.json +++ b/Extension/i18n/trk/package.i18n.json @@ -77,7 +77,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "'Tümünü temizle' (birden çok sorun türü varsa), 'Tüm temizle' ( için birden çok sorun varsa) ve 'Bunu temizle' kod eylemlerini göster", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "`true` ise biçimlendirme 'Düzelt' kod eylemlerinin değiştirdiği satırlarda çalıştırılacaktır.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "`True` ise `clang-tidy` kullanan kod analizi etkinleştirilir ve `#C_Cpp.codeAnalysis.runAutomatically#` değeri `true` (varsayılan) ise dosya açıldıktan veya kaydedildikten sonra çalıştırılır.", - "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` yürütülebilir dosyasının tam yolu. Belirtilmemişse ve ortam yolunda `clang-tidy` mevcutsa, bu kullanılır. Ortam yolunda bulunamazsa, uzantıyla birlikte gelen `clang-tidy` kullanılacaktır.", + "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` yürütülebilir dosyasının tam yolu. Belirtilmezse ve ortam yolunda `clang-tidy` kullanılabiliyorsa, uzantıyla birlikte paket olarak gelen sürüm daha yeni olmadıkça bu yürütülebilir dosya kullanılır. Ortam yolunda bulunmuyorsa, uzantı ile paket olarak gelen bir `clang-tidy` kullanılır.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "YAML/JSON biçiminde bir `clang-tidy` yapılandırmasını belirtir: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{anahtar: x, değer: y}]}`. Değer boş olduğunda, `clang-tidy`, üst dizinlerinde her kaynak dosya için `clang-tidy` adlı bir dosya bulmayı dener.", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "`#C_Cpp.codeAnalysis.clangTidy.config#` ayarlanmamışsa ve hiçbir `.clang-tidy` dosyası bulunamasa geri dönüş olarak kullanılacak YAML/JSON biçiminde bir `clang-tidy` yapılandırmasını belirtir: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{anahtar: x, değer: y}]}`.", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "Tanılama çıktısı alınacak başlıkların adlarıyla eşleşen bir POSIX genişletilmiş normal ifadesi (ERE). Her çeviri biriminin ana dosyasındaki tanılamalar her zaman görüntülenir. `${workspaceFolder}` değişkeni desteklenir (ve `.clang-tidy` dosyası yoksa varsayılan geri dönüş değeri olarak kullanılır). Bu seçenek `null` (boş) değilse, varsa `.clang-tidy` dosyasındaki `HeaderFilterRegex` seçeneğini geçersiz kılar.", @@ -175,7 +175,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.oneLiners.markdownDescription": "Tek satıra girilen tam kod bloğu, `C_Cpp.vcFormat.newLine.*` ayarlarının herhangi birinin değerinden bağımsız olarak tek satırda tutulur.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.allOneLineScopes.markdownDescription": "Açma ve kapama küme ayracının tek bir satırda girildiği tüm kodlar, `C_Cpp.vcFormat.newLine.*` ayarlarının herhangi birinin değerinden bağımsız olarak tek satırda tutulur.", "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "Kod blokları her zaman `C_Cpp.vcFormat.newLine.*` ayarlarının değerlerine göre biçimlendirilir.", - "c_cpp.configuration.clang_format_path.markdownDescription": "`clang-format` yürütülebilir dosyasının tam yolu. Belirtilmezse ve ortam yolunda `clang-format` kullanılabiliyorsa bu kullanılır. Ortam yolunda bulunamazsa uzantı ile paketlenmiş bir `clang-format` kullanılır.", + "c_cpp.configuration.clang_format_path.markdownDescription": "`clang-format` yürütülebilir dosyasının tam yolu. Belirtilmezse ve ortam yolunda `clang-format` kullanılabiliyorsa, uzantıyla birlikte paket olarak gelen sürüm daha yeni olmadıkça bu yürütülebilir dosya kullanılır. Ortam yolunda bulunmuyorsa, uzantı ile paket olarak gelen bir `clang-format` kullanılır.", "c_cpp.configuration.clang_format_style.markdownDescription": "Kodlama stili şu anda şunları destekliyor: `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`. Geçerli veya üst dizindeki `.clang-format` dosyasından stili yüklemek için `file` kullanın veya belirli bir yola başvurmak için `file:/.clang-format` kullanın. Belirli parametreleri ayarlamak için `{anahtar: değer, ...}` kullanın. Örneğin, `Visual Studio` stili şuna benzer: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "`clang-format`, `file` stiliyle çağrıldığında geri dönüş olarak kullanılan önceden tanımlı stilin adı, ancak `.clang-format` dosyası bulunamadı. Olası değerler: `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`, `none` veya belirli parametreleri ayarlamak için `{anahtar: değer, ...}` kullanın. Örneğin, `Visual Studio` stili şuna benzer: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`.", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "Ayarlanırsa, `SortIncludes` parametresi tarafından belirlenen ekleme sıralama davranışını geçersiz kılar.", @@ -205,7 +205,7 @@ "c_cpp.configuration.exclusionPolicy.markdownDescription": "`browse.path` dizisindeki yollarda dolaşırken, kod gezinti veritabanına hangi dosyaların ekleneceği belirlendiği sırada uzantıya `#files.exclude#` (ve `#C_Cpp.files.exclude#`) ayarının ne zaman kullanılacağını söyler. `#files.exclude#` ayarınız yalnızca klasörler içeriyorsa, `checkFolders` en iyi seçimdir ve uzantının kod gezinti veritabanını başlatabilme hızını artırır.", "c_cpp.configuration.exclusionPolicy.checkFolders.description": "Dışlama filtreleri, klasör başına yalnızca bir kez değerlendirilir (dosyalar tek tek denetlenmez).", "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Dışlama filtreleri, karşılaşılan her dosya ve klasörle değerlendirilecek.", - "c_cpp.configuration.preferredPathSeparator.markdownDescription": "`#include` otomatik tamamlama sonuçları için yol ayırıcısı olarak kullanılan karakter.", + "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Oluşturulan kullanıcı yolları için yol ayırıcı olarak kullanılan karakter.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "`true` ise, üzerine gelme ve otomatik tamamlama araç ipuçları, yapılandırılmış açıklamaların yalnızca belirli etiketlerini görüntüler. Aksi halde tüm açıklamalar görüntülenir.", "c_cpp.configuration.doxygen.generateOnType.description": "Seçilen açıklama stilini girdikten sonra Doxygen açıklamasının otomatik olarak eklenip eklenmeyeceğini kontrol eder.", "c_cpp.configuration.doxygen.generatedStyle.description": "Doxygen açıklamasının başlangıç satırı olarak kullanılan karakter dizesi.", @@ -253,6 +253,7 @@ "c_cpp.configuration.hover.description": "Devre dışı bırakılırsa üzerine gelme ayrıntıları artık dil sunucusu tarafından sağlanmaz.", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "[vcpkg bağımlılık yöneticisi](https://aka.ms/vcpkg/) için tümleştirme hizmetlerini etkinleştirin.", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "`nan` ve `node-addon-api` bağımlılık olduğunda bunlardan ekleme yolları ekleyin.", + "c_cpp.configuration.copilotHover.markdownDescription": "`disabled` ise Hover'da Copilot bilgisi görünmez.", "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "`true` ise, 'Sembolü Yeniden Adlandır' işlemi için geçerli bir C/C++ tanımlayıcısı gerekir.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "`true` ise otomatik tamamla özelliği, işlev çağrılarından sonra otomatik olarak `(` ekler. Bazı durumlarda `#editor.autoClosingBrackets#` ayarının değerine bağlı olarak `)` karakteri de eklenebilir.", "c_cpp.configuration.filesExclude.markdownDescription": "Klasörleri (ve `#C_Cpp.exclusionPolicy#` değiştirilirse dosyaları) hariç tutmak için glob desenlerini yapılandırın. Bunlar, C/C++ uzantısına özgüdür ve `#files.exclude#` öğesine ek olarak, ancak `#files.exclude#` öğesinden farklı olarak, geçerli çalışma alanı klasörünün dışındaki yollara da uygulanırlar ve Explorer görünümünden kaldırılmazlar. [Glob desenleri](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) ile ilgili daha fazla bilgi edinin.", @@ -427,8 +428,8 @@ "c_cpp.walkthrough.create.cpp.file.title": "C++ dosyası oluşturun", "c_cpp.walkthrough.create.cpp.file.description": "[Aç](command:toSide:workbench.action.files.openFile) veya [create](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) bir C++ dosya. \"helloworld.cpp\" gibi \".cpp\" uzantısıyla kaydettiğinizden emin olun.\n[Bir C++ Dosyası Oluşturun](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)", "c_cpp.walkthrough.create.cpp.file.altText": "Bir C++ dosyası veya bir klasörü C++ projesiyle açın.", - "c_cpp.walkthrough.command.prompt.title": "Geliştirici komut istemini kullanarak yeniden başlat", - "c_cpp.walkthrough.command.prompt.description": "Microsoft Visual Studio C++ derleyicisini kullanırken, C++ uzantısı, geliştirici komut isteminden VS Code'u başlatmanızı gerektirir. Yeniden başlatmak için sağdaki talimatları izleyin.\n[Yeniden Yükleme Penceresi](command:workbench.action.reloadWindow)", + "c_cpp.walkthrough.command.prompt.title": "VS için Geliştirici Komut İstemi'den başlat", + "c_cpp.walkthrough.command.prompt.description": "Microsoft Visual Studio C++ derleyicisini kullanırken, C++ uzantısı, VS için Geliştirici Komut İsteminden VS Code'u başlatmanızı gerektirir. Yeniden başlatmak için sağdaki talimatları izleyin.\n[Yeniden Yükleme Penceresi](command:workbench.action.reloadWindow)", "c_cpp.walkthrough.run.debug.title": "C++ dosyanızı çalıştırın ve hata ayıklayın", "c_cpp.walkthrough.run.debug.mac.description": "C++ dosyanızı açın ve düzenleyicinin sağ üst köşesindeki oynat düğmesine tıklayın veya dosyadayken F5'e basın. Hata ayıklayıcı ile çalıştırmak için \"clang++ - Etkin dosya derle ve hata ayıkla\" seçeneğini seçin.", "c_cpp.walkthrough.run.debug.linux.description": "C++ dosyanızı açın ve düzenleyicinin sağ üst köşesindeki oynat düğmesine tıklayın veya dosyadayken F5'e basın. Hata ayıklayıcı ile çalıştırmak için \"g++ - Aktif dosya derle ve hata ayıkla\"yı seçin.", diff --git a/Extension/i18n/trk/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/trk/src/Debugger/configurationProvider.i18n.json index b55087bdc..3867fc289 100644 --- a/Extension/i18n/trk/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/trk/src/Debugger/configurationProvider.i18n.json @@ -17,7 +17,7 @@ "pre.Launch.Task": "preLaunchTask: {0}", "debugger.path.not.exists": "{0} Hata ayıklayıcı bulunamadı. {1} için hata ayıklama yapılandırması yok sayıldı.", "build.and.debug.active.file": "etkin dosyayı derle ve dosyada hata ayıkla", - "cl.exe.not.available": "{0} derlemesi ve hata ayıklama yalnızca VS Code, VS için Geliştirici Komut İstemi'nden çalıştırıldığında kullanılabilir.", + "cl.exe.not.available": "{0} yalnızca VS Code {1} öğesinden çalıştırıldığında kullanılabilir.", "lldb.find.failed": "lldb-mi yürütülebilir dosyası için '{0}' bağımlılığı eksik.", "lldb.search.paths": "Şurada arandı:", "lldb.install.help": "Bu sorunu çözmek için, Apple App Store üzerinden XCode'u yükleyin ya da bir Terminal penceresinde '{0}' çalıştırarak XCode Komut Satırı Araçları'nı yükleyin.", diff --git a/Extension/i18n/trk/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json b/Extension/i18n/trk/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json new file mode 100644 index 000000000..44b299372 --- /dev/null +++ b/Extension/i18n/trk/src/LanguageServer/Providers/CopilotHoverProvider.i18n.json @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +// Do not edit this file. It is machine generated. +{ + "generate.copilot.description": "Copilot özeti oluştur", + "copilot.disclaimer": "Yapay zeka tarafından oluşturulan içerik yanlış olabilir." +} \ No newline at end of file diff --git a/Extension/i18n/trk/src/LanguageServer/configurations.i18n.json b/Extension/i18n/trk/src/LanguageServer/configurations.i18n.json index b22acf525..a9e5c26f2 100644 --- a/Extension/i18n/trk/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/trk/src/LanguageServer/configurations.i18n.json @@ -17,5 +17,6 @@ "path.is.not.a.directory": "Yol bir dizin değil: {0}", "duplicate.name": "{0} yineleniyor. Yapılandırma adı benzersiz olmalıdır.", "multiple.paths.not.allowed": "Birden fazla yola izin verilmez.", + "multiple.paths.should.be.separate.entries": "Birden çok yol bir dizideki ayrı girişler olmalıdır.", "paths.are.not.directories": "Yollar dizin değil: {0}" } \ No newline at end of file diff --git a/Extension/i18n/trk/src/LanguageServer/extension.i18n.json b/Extension/i18n/trk/src/LanguageServer/extension.i18n.json index e6392051e..1456a43e4 100644 --- a/Extension/i18n/trk/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/trk/src/LanguageServer/extension.i18n.json @@ -19,5 +19,9 @@ "code.action.aborted": "Belge değiştiğinden kod analizi düzeltmesi uygulanamadı.", "prerelease.message": "C/C++ uzantısının yayın öncesi bir sürümü var. Buna geçmek ister misiniz?", "yes.button": "Evet", - "no.button": "Hayır" + "no.button": "Hayır", + "copilot.hover.unavailable": "Copilot özeti kullanılamıyor.", + "copilot.hover.excluded": "Bu simgenin tanımını veya bildirimini içeren dosya Copilot ile kullanımdan dışlandı.", + "copilot.hover.unavailable.symbol": "Copilot özeti bu sembol için kullanılamıyor.", + "copilot.hover.error": "Copilot özeti oluşturulurken bir hata oluştu." } \ No newline at end of file diff --git a/Extension/i18n/trk/src/nativeStrings.i18n.json b/Extension/i18n/trk/src/nativeStrings.i18n.json index 7a51ffcd3..6feae9567 100644 --- a/Extension/i18n/trk/src/nativeStrings.i18n.json +++ b/Extension/i18n/trk/src/nativeStrings.i18n.json @@ -159,8 +159,8 @@ "fallback_to_64_bit_mode2": "Derleyici sorgulanamadı. 64 bit intelliSenseMode'a geri dönülüyor.", "fallback_to_no_bitness": "Derleyici sorgulanamadı. Bit genişliği yok durumuna geri dönülüyor.", "intellisense_client_creation_aborted": "IntelliSense istemcisi oluşturma işlemi durduruldu: {0}", - "include_errors_config_provider_intellisense_disabled ": "configurationProvider ayarı tarafından sağlanan bilgilere göre #include hataları saptandı. Bu çeviri birimi ({0}) için IntelliSense özellikleri Etiket Ayrıştırıcısı tarafından sağlanır.", - "include_errors_config_provider_squiggles_disabled ": "configurationProvider ayarı tarafından sağlanan bilgilere göre #include hataları saptandı. Bu çeviri birimi ({0}) için dalgalı çizgiler devre dışı bırakıldı.", + "include_errors_config_provider_intellisense_disabled": "configurationProvider ayarı tarafından sağlanan bilgilere göre #include hataları saptandı. Bu çeviri birimi ({0}) için IntelliSense özellikleri Etiket Ayrıştırıcısı tarafından sağlanır.", + "include_errors_config_provider_squiggles_disabled": "configurationProvider ayarı tarafından sağlanan bilgilere göre #include hataları saptandı. Bu çeviri birimi ({0}) için dalgalı çizgiler devre dışı bırakıldı.", "preprocessor_keyword": "ön işlemci anahtar sözcüğü", "c_keyword": "C anahtar sözcüğü", "cpp_keyword": "C++ anahtar sözcüğü", @@ -316,5 +316,6 @@ "refactor_extract_xborder_jump": "Seçili kod ile çevreleyen kod arasında atlamalar var.", "refactor_extract_missing_return": "Seçili kodda bazı denetim yolları, dönüş değeri ayarlanmadan çıkış yapıyor. Bu durum yalnızca skaler, sayısal ve işaretçi dönüş türlerinde desteklenir.", "expand_selection": "Seçimi genişlet (\"İşleve çıkar\" seçeneğini etkinleştirmek için)", - "file_not_found_in_path2": "\"{0}\" compile_commands.json dosyaları içinde bulunamadı. Bu dosya yerine '{1}' klasöründeki c_cpp_properties.json dosyasında bulunan 'includePath' kullanılacak." + "file_not_found_in_path2": "\"{0}\" compile_commands.json dosyaları içinde bulunamadı. Bu dosya yerine '{1}' klasöründeki c_cpp_properties.json dosyasında bulunan 'includePath' kullanılacak.", + "copilot_hover_link": "Copilot özeti oluştur" } \ No newline at end of file diff --git a/Extension/i18n/trk/ui/settings.html.i18n.json b/Extension/i18n/trk/ui/settings.html.i18n.json index 3b025007c..795b15fea 100644 --- a/Extension/i18n/trk/ui/settings.html.i18n.json +++ b/Extension/i18n/trk/ui/settings.html.i18n.json @@ -55,7 +55,8 @@ "dot.config": "Nokta Yapılandırması", "dot.config.description": "Kconfig sistemi tarafından oluşturulan bir .config dosyasının yolu. Kconfig sistemi, bir proje oluşturmak için tüm tanımlamaları içeren bir dosya oluşturur. Kconfig sistemini kullanan projelere örnek olarak Linux Çekirdeği ve NuttX RTOS verilebilir.", "compile.commands": "Derleme komutları", - "compile.commands.description": "Çalışma alanı için {0} dosyasının tam yolu. {1} ve {2} ayarları için ayarlanan değerler yerine bu dosyada bulunan içerme yolları ve tanımlar kullanılır. Derleme komutları veritabanı, düzenleyicide açtığınız dosyaya karşılık gelen çeviri birimi için bir giriş içermiyorsa, bir uyarı mesajı görüntülenir ve uzantı bunun yerine {3} ve {4} ayarlarını kullanır.", + "compile.commands.description": "Çalışma alanıyla ilgili {0} dosyalarına giden yolların listesi. Bu dosyalarda bulunan ekleme yolları ve tanımları {1} ve {2} ayarları için belirlenen değerlerin yerine kullanılır. Derleme komutları veritabanı düzenleyicide açtığınız dosyaya karşılık gelen çeviri birimi için bir giriş içermiyorsa, bir uyarı iletisi görünür ve bu durumda uzantı {3} ve {4} ayarlarını kullanır.", + "one.compile.commands.path.per.line": "Satır başına bir derleme komutları yolu.", "merge.configurations": "Yapılandırmaları birleştir", "merge.configurations.description": "{0} (veya işaretli) olduğunda, dahil etme yollarını, tanımları ve bir yapılandırma sağlayıcısından gelenlerle zorunlu dahil etmeleri birleştir.", "browse.path": "Gözat: yol", diff --git a/Extension/i18n/trk/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json b/Extension/i18n/trk/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json index 62fe69edb..9159abf1b 100644 --- a/Extension/i18n/trk/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json +++ b/Extension/i18n/trk/walkthrough/devcommandprompt/open-developer-command-prompt.md.i18n.json @@ -4,8 +4,8 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "walkthrough.windows.title.open.dev.command.prompt": "Geliştirici komut istemini kullanarak yeniden başlatın", - "walkthrough.windows.background.dev.command.prompt": " MSVC derleyicili bir Windows makinesi kullanıyorsunuz, dolayısıyla tüm ortam değişkenlerinin doğru ayarlanması için geliştirici komut isteminden VS Code'u başlatmanız gerekiyor. Geliştirici komut istemini kullanarak yeniden başlatmak için:", - "walkthrough.open.command.prompt": "Windows Başlat menüsüne \"geliştirici\" yazarak VS için Geliştirici Komut İstemi'ni açın. Geçerli açık klasörünüze otomatik olarak gidecek olan VS için Geliştirici Komut İstemi'ni seçin.", - "walkthrough.windows.press.f5": "Komut istemine \"kod\" yazın ve enter tuşuna basın. Bu, VS Code'u yeniden başlatmalı ve sizi bu izlenecek yola geri götürmelidir." + "walkthrough.windows.title.open.dev.command.prompt": "Sayfayı kullanarak yeniden {0}", + "walkthrough.windows.background.dev.command.prompt": " MSVC derleyicili bir Windows makinesi kullanıyorsunuz, dolayısıyla tüm ortam değişkenlerinin doğru ayarlanması için {0} öğesinden VS Code'u başlatmanız gerekiyor. {1} kullanarak yeniden başlatmak için:", + "walkthrough.open.command.prompt": "Windows Başlat menüsüne “{1}” yazarak {0} öğesini açın. Mevcut açık klasörünüze otomatik olarak gidecek olan {2} öğesini seçin.", + "walkthrough.windows.press.f5": "Komut istemine \"{0}\" yazın ve enter tuşuna basın. Bu, VS Code'u yeniden başlatmalı ve sizi bu izlenecek yola geri götürmelidir. " } \ No newline at end of file diff --git a/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json b/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json index 5473c3d9e..69029f98d 100644 --- a/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json +++ b/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows.md.i18n.json @@ -16,10 +16,8 @@ "walkthrough.windows.link.install": "Yükle", "walkthrough.windows.note1": "Not", "walkthrough.windows.note1.text": "Herhangi bir C++ kod temelini derlemek, oluşturmak ve doğrulamak için Visual Studio Code ile birlikte Visual Studio Derleme Araçları’nda bulunan C++ araç takımını kullanabilirsiniz. Bunun yanı sıra, bu C++ kod temelini geliştirmek için etkin olarak kullandığınız geçerli bir Visual Studio lisansına (Community, Pro veya Enterprise) sahip olursunuz.", - "walkthrough.windows.open.command.prompt": "Windows Başlat menüsüne 'geliştirici' yazarak {0} açın.", - "walkthrough.windows.command.prompt.name1": "VS için Developer Komut İstemi", - "walkthrough.windows.check.install": "VS için Geliştirici Komut İstemi’ne {0} yazarak MSVC yüklemenizi denetleyin. Sürüm ve temel kullanım açıklamasını içeren bir telif hakkı iletisi göreceksiniz.", + "walkthrough.windows.open.command.prompt": "Windows Başlat menüsüne '{1}' yazarak {0} öğesini açın.", + "walkthrough.windows.check.install": "{1} içine {0} yazarak MSVC yüklemenizi kontrol edin. Sürüm ve temel kullanım açıklamasını içeren bir telif hakkı iletisi göreceksiniz.", "walkthrough.windows.note2": "Not", - "walkthrough.windows.note2.text": "Komut satırından veya VS Code’dan MSVC’yi kullanmak için şuradan çalıştırmanız gerek: {0}. {1}, {2} veya Windows komut istemi gibi sıradan bir kabuk gerekli yol ortam değişkenleri kümesi içermez.", - "walkthrough.windows.command.prompt.name2": "VS için Geliştirici Komut İstemi" + "walkthrough.windows.note2.text": "Komut satırından veya VS Code’dan MSVC’yi kullanmak için şuradan çalıştırmanız gerek: {0}. {1}, {2} veya Windows komut istemi gibi sıradan bir kabuk gerekli yol ortam değişkenleri kümesi içermez." } \ No newline at end of file diff --git a/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json b/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json index 4012a3d4a..be4ac4563 100644 --- a/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json +++ b/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows10.md.i18n.json @@ -10,14 +10,12 @@ "walkthrough.windows.note1": "Not", "walkthrough.windows.note1.text": "Herhangi bir C++ kod temelini derlemek, oluşturmak ve doğrulamak için Visual Studio Code ile birlikte Visual Studio Derleme Araçları’nda bulunan C++ araç takımını kullanabilirsiniz. Bunun yanı sıra, bu C++ kod temelini geliştirmek için etkin olarak kullandığınız geçerli bir Visual Studio lisansına (Community, Pro veya Enterprise) sahip olursunuz.", "walkthrough.windows.verify.compiler": "Derleyici yüklemesi doğrulanıyor", - "walkthrough.windows.open.command.prompt": "Windows Başlat menüsüne 'geliştirici' yazarak {0} açın.", - "walkthrough.windows.command.prompt.name1": "VS için Developer Komut İstemi", - "walkthrough.windows.check.install": "VS için Geliştirici Komut İstemi’ne {0} yazarak MSVC yüklemenizi denetleyin. Sürüm ve temel kullanım açıklamasını içeren bir telif hakkı iletisi göreceksiniz.", + "walkthrough.windows.open.command.prompt": "Windows Başlat menüsüne '{1}' yazarak {0} öğesini açın.", + "walkthrough.windows.check.install": "{1} içine {0} yazarak MSVC yüklemenizi kontrol edin. Sürüm ve temel kullanım açıklamasını içeren bir telif hakkı iletisi göreceksiniz.", "walkthrough.windows.note2": "Not", "walkthrough.windows.note2.text": "Komut satırından veya VS Code’dan MSVC’yi kullanmak için şuradan çalıştırmanız gerek: {0}. {1}, {2} veya Windows komut istemi gibi sıradan bir kabuk gerekli yol ortam değişkenleri kümesi içermez.", - "walkthrough.windows.command.prompt.name2": "VS için Geliştirici Komut İstemi", "walkthrough.windows.other.compilers": "Diğer derleme seçenekleri", "walkthrough.windows.text3": "Windows'tan Linux'u hedefliyorsanız {0}‘a bakın. Veya, {1}.", "walkthrough.windows.link.title1": "VS Code'da Linux için C++’yı ve Windows Alt Sistemi’ni (WSL) kullanma", "walkthrough.windows.link.title2": "MinGW ile Windows’a GCC'yi yükleme" -} \ No newline at end of file +} diff --git a/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json b/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json index 4012a3d4a..be4ac4563 100644 --- a/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json +++ b/Extension/i18n/trk/walkthrough/installcompiler/install-compiler-windows11.md.i18n.json @@ -10,14 +10,12 @@ "walkthrough.windows.note1": "Not", "walkthrough.windows.note1.text": "Herhangi bir C++ kod temelini derlemek, oluşturmak ve doğrulamak için Visual Studio Code ile birlikte Visual Studio Derleme Araçları’nda bulunan C++ araç takımını kullanabilirsiniz. Bunun yanı sıra, bu C++ kod temelini geliştirmek için etkin olarak kullandığınız geçerli bir Visual Studio lisansına (Community, Pro veya Enterprise) sahip olursunuz.", "walkthrough.windows.verify.compiler": "Derleyici yüklemesi doğrulanıyor", - "walkthrough.windows.open.command.prompt": "Windows Başlat menüsüne 'geliştirici' yazarak {0} açın.", - "walkthrough.windows.command.prompt.name1": "VS için Developer Komut İstemi", - "walkthrough.windows.check.install": "VS için Geliştirici Komut İstemi’ne {0} yazarak MSVC yüklemenizi denetleyin. Sürüm ve temel kullanım açıklamasını içeren bir telif hakkı iletisi göreceksiniz.", + "walkthrough.windows.open.command.prompt": "Windows Başlat menüsüne '{1}' yazarak {0} öğesini açın.", + "walkthrough.windows.check.install": "{1} içine {0} yazarak MSVC yüklemenizi kontrol edin. Sürüm ve temel kullanım açıklamasını içeren bir telif hakkı iletisi göreceksiniz.", "walkthrough.windows.note2": "Not", "walkthrough.windows.note2.text": "Komut satırından veya VS Code’dan MSVC’yi kullanmak için şuradan çalıştırmanız gerek: {0}. {1}, {2} veya Windows komut istemi gibi sıradan bir kabuk gerekli yol ortam değişkenleri kümesi içermez.", - "walkthrough.windows.command.prompt.name2": "VS için Geliştirici Komut İstemi", "walkthrough.windows.other.compilers": "Diğer derleme seçenekleri", "walkthrough.windows.text3": "Windows'tan Linux'u hedefliyorsanız {0}‘a bakın. Veya, {1}.", "walkthrough.windows.link.title1": "VS Code'da Linux için C++’yı ve Windows Alt Sistemi’ni (WSL) kullanma", "walkthrough.windows.link.title2": "MinGW ile Windows’a GCC'yi yükleme" -} \ No newline at end of file +} From ec41c3e481f6efb4c93103adb00adc2db3bca85e Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 21 Jan 2025 16:29:29 -0800 Subject: [PATCH 73/78] Add a changelog entry. (#13177) --- Extension/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 2fd83d0a2..c9f0a4638 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -2,6 +2,7 @@ ## Version 1.23.4: January 21, 2025 ### Bug Fixes +* Fix some localization issues. [#12909](https://github.com/microsoft/vscode-cpptools/issues/12909), [#13090](https://github.com/microsoft/vscode-cpptools/issues/13090) * Fix a couple bugs with `.editorConfig` handling. [PR #13140](https://github.com/microsoft/vscode-cpptools/pull/13140) * Fix a bug when processing a file with invalid multi-byte sequences. [#13150](https://github.com/microsoft/vscode-cpptools/issues/13150) * Fix a potential telemetry issue with Copilot hover. [PR #13158](https://github.com/microsoft/vscode-cpptools/pull/13158) From 7037b070cefa4e984a8dfdce0cab4d0e94a5d974 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 18:51:52 -0800 Subject: [PATCH 74/78] Bump undici from 5.28.4 to 5.28.5 in /.github/actions (#13180) Bumps [undici](https://github.com/nodejs/undici) from 5.28.4 to 5.28.5. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v5.28.4...v5.28.5) --- updated-dependencies: - dependency-name: undici dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/actions/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/package-lock.json b/.github/actions/package-lock.json index abebc6d21..81f22bcc9 100644 --- a/.github/actions/package-lock.json +++ b/.github/actions/package-lock.json @@ -5613,9 +5613,9 @@ } }, "node_modules/undici": { - "version": "5.28.4", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/undici/-/undici-5.28.4.tgz", - "integrity": "sha1-aygECO22oaYEqbIDQPRbQi43MGg=", + "version": "5.28.5", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/undici/-/undici-5.28.5.tgz", + "integrity": "sha1-srlLa/jx2Rm8Wm8x8sAd6wLlTUs=", "license": "MIT", "dependencies": { "@fastify/busboy": "^2.0.0" From 97df273fc1d5f2d3c87305a44d92fefbb55bca14 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Mon, 27 Jan 2025 12:18:58 -0800 Subject: [PATCH 75/78] Fix Call Hierarchy Calls From. (#13201) --- Extension/src/LanguageServer/Providers/callHierarchyProvider.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extension/src/LanguageServer/Providers/callHierarchyProvider.ts b/Extension/src/LanguageServer/Providers/callHierarchyProvider.ts index 82bcf39ef..6c6d39f07 100644 --- a/Extension/src/LanguageServer/Providers/callHierarchyProvider.ts +++ b/Extension/src/LanguageServer/Providers/callHierarchyProvider.ts @@ -224,7 +224,7 @@ export class CallHierarchyProvider implements vscode.CallHierarchyProvider { let response: CallHierarchyCallsItemResult | undefined; let cancelled: boolean = false; try { - await this.client.languageClient.sendRequest(CallHierarchyCallsFromRequest, params, token); + response = await this.client.languageClient.sendRequest(CallHierarchyCallsFromRequest, params, token); } catch (e: any) { cancelled = e instanceof ResponseError && (e.code === RequestCancelled || e.code === ServerCancelled); if (!cancelled) { From 779bb080c1cee96e0f66b0cd155bb5dc2086778b Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Mon, 27 Jan 2025 20:02:08 -0800 Subject: [PATCH 76/78] Fix an undefined access when an edit is done before cpptools starts (#13206) * Fix an undefined access. --- Extension/src/LanguageServer/client.ts | 3 ++- Extension/src/LanguageServer/extension.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 46e2b71ca..b7564234c 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -1840,7 +1840,8 @@ export class DefaultClient implements Client { public onDidChangeTextDocument(textDocumentChangeEvent: vscode.TextDocumentChangeEvent): void { if (util.isCpp(textDocumentChangeEvent.document)) { // If any file has changed, we need to abort the current rename operation - if (workspaceReferences.renamePending) { + if (workspaceReferences !== undefined // Occurs when a document changes before cpptools starts. + && workspaceReferences.renamePending) { workspaceReferences.cancelCurrentReferenceRequest(refs.CancellationSender.User); } diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index 5cd0e2af1..cd520847a 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -298,7 +298,7 @@ async function onDidChangeSettings(event: vscode.ConfigurationChangeEvent): Prom } } -async function onDidChangeTextDocument(event: vscode.TextDocumentChangeEvent): Promise { +function onDidChangeTextDocument(event: vscode.TextDocumentChangeEvent): void { const me: Client = clients.getClientFor(event.document.uri); me.onDidChangeTextDocument(event); } From 896024ba9c1cd531c0655f742a401339ac62b307 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 28 Jan 2025 11:53:05 -0800 Subject: [PATCH 77/78] Update changelog and version for 1.23.5. (#13208) * Update changelog and version for 1.23.5. --- Extension/CHANGELOG.md | 65 +++++++++++++++--------------------------- Extension/package.json | 2 +- 2 files changed, 24 insertions(+), 43 deletions(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 91b09dcd2..ca0472279 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,30 +1,26 @@ # C/C++ for Visual Studio Code Changelog -## Version 1.23.4: January 21, 2025 -### Bug Fixes -* Fix some localization issues. [#12909](https://github.com/microsoft/vscode-cpptools/issues/12909), [#13090](https://github.com/microsoft/vscode-cpptools/issues/13090) -* Fix a couple bugs with `.editorConfig` handling. [PR #13140](https://github.com/microsoft/vscode-cpptools/pull/13140) -* Fix a bug when processing a file with invalid multi-byte sequences. [#13150](https://github.com/microsoft/vscode-cpptools/issues/13150) -* Fix a potential telemetry issue with Copilot hover. [PR #13158](https://github.com/microsoft/vscode-cpptools/pull/13158) -* Fix a crash when Copilot hover is used on code with no definition file (e.g. literals). -* Update clang-format and clang-tidy from 19.1.6 to 19.1.7. -* Update vsdbg from 17.12.10729.1 to 17.13.20115.1. -* Fix `libiconv.dll` not being signed on Windows. -* Fix incorrect GB2312 decoding on Linux. - -## Version 1.23.3: January 9, 2025 +## Version 1.23.5: January 28, 2025 ### Enhancements * Modifications to the snippet completions to more closely match the snippets provided by TypeScript. [#4482](https://github.com/microsoft/vscode-cpptools/issues/4482) * Enable setting multiple compile commands. [#7029](https://github.com/microsoft/vscode-cpptools/issues/7029) * Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12960](https://github.com/microsoft/vscode-cpptools/pull/12960) +* Changes to how paths are internally canonicalized on Linux and macOS, avoiding file system access to improve performance and delay resolution of symbolic links. [#12924](https://github.com/microsoft/vscode-cpptools/issues/12924) +* Add handling of `-fno-char8_t` and `-fchar8_t` compiler arguments. [#12968](https://github.com/microsoft/vscode-cpptools/issues/12968) +* Add support for providing well-known compiler argument information to Copilot Completions. [PR #12979](https://github.com/microsoft/vscode-cpptools/pull/12979) +* Fixed unnecessary cancellation of Copilot context requests. [PR #12988](https://github.com/microsoft/vscode-cpptools/pull/12988) +* Add support for passing an additional parameter to `C_Cpp.ConfigurationSelect` command. [PR #12993](https://github.com/microsoft/vscode-cpptools/pull/12993) + * Thank you for the contribution. [@adrianstephens](https://github.com/adrianstephens) * Update clang path setting descriptions. [PR #13071](https://github.com/microsoft/vscode-cpptools/pull/13071) -* Update clang-format and clang-tidy from 19.1.5 to 19.1.6. +* Update clang-format and clang-tidy from 19.1.2 to 19.1.7. * IntelliSense parser updates. ## Version 1.22.10: October 21, 2024 ### Bug Fixes +* Fix a perf regression in hover operation by using cached lexer line states. [#3126](https://github.com/microsoft/vscode-cpptools/issues/3126) * Fix `compile_commands.json` no longer being used if the containing folder is deleted and recreated. [#7030](https://github.com/microsoft/vscode-cpptools/issues/7030) * Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #13032](https://github.com/microsoft/vscode-cpptools/pull/13032) +* Increase clang-format timeout from 10 seconds to 30 seconds. [#10213](https://github.com/microsoft/vscode-cpptools/issues/10213) * Fix `C_Cpp.enhancedColorization` not taking effect after it's changed. [#10565](https://github.com/microsoft/vscode-cpptools/issues/10565) * Fix changes to `files.encoding` not triggering a database reset. [#10892](https://github.com/microsoft/vscode-cpptools/issues/10892) * Fix parameter hints interpreting `*` in a comment as markdown. [#11082](https://github.com/microsoft/vscode-cpptools/issues/11082) @@ -33,26 +29,9 @@ * Fix handling of `koi8ru` and `koi8t` file encodings on Windows. [#12272](https://github.com/microsoft/vscode-cpptools/issues/12272) * Fix description of `C_Cpp.preferredPathSeparator`. [#12597](https://github.com/microsoft/vscode-cpptools/issues/12597) * Fix the IntelliSense process launching when it's disabled and the Copilot extension is used. [#12750](https://github.com/microsoft/vscode-cpptools/issues/12750), [#13058](https://github.com/microsoft/vscode-cpptools/issues/13058) -* Fix the IntelliSense mode being `macos` instead of `windows` when `_WIN32` is defined on macOS. [#13016](https://github.com/Microsoft/vscode-cpptools/issues/13016) -* Fix IntelliSense bugs when using non-UTF8 file encodings. [#13028](https://github.com/microsoft/vscode-cpptools/issues/13028), [#13044](https://github.com/microsoft/vscode-cpptools/issues/13044) -* Fix an incorrect translation for "binary operator". [#13048](https://github.com/microsoft/vscode-cpptools/issues/13048) -* Fix the "references may be missing" logging pane being shown when the `C_Cpp.loggingLevel` is `Error` or `None`. [#13066](https://github.com/microsoft/vscode-cpptools/issues/13066) -* Fix `C_Cpp.default.compilerPath` not using the `C_Cpp.preferredPathSeparator` setting when generated from the 'Select IntelliSense Configuration' command. [#13083](https://github.com/microsoft/vscode-cpptools/issues/13083) - -### Version 1.23.2: December 5, 2024 -### Enhancements -* Changes to how paths are internally canonicalized on Linux and macOS, avoiding file system access to improve performance and delay resolution of symbolic links. [#12924](https://github.com/microsoft/vscode-cpptools/issues/12924) -* Add handling of `-fno-char8_t` and `-fchar8_t` compiler arguments. [#12968](https://github.com/microsoft/vscode-cpptools/issues/12968) -* Add support for providing well-known compiler argument information to Copilot Completions. [PR #12979](https://github.com/microsoft/vscode-cpptools/pull/12979) -* Fixed unnecessary cancellation of Copilot context requests. [PR #12988](https://github.com/microsoft/vscode-cpptools/pull/12988) -* Add support for passing an additional parameter to `C_Cpp.ConfigurationSelect` command. [PR #12993](https://github.com/microsoft/vscode-cpptools/pull/12993) - * Thank you for the contribution. [@adrianstephens](https://github.com/adrianstephens) -* Update clang-format and clang-tidy from 19.1.2 to 19.1.5. - -### Bug Fixes -* Fix a perf regression in hover operation by using cached lexer line states. [#3126](https://github.com/microsoft/vscode-cpptools/issues/3126) -* Increase clang-format timeout from 10 seconds to 30 seconds. [#10213](https://github.com/microsoft/vscode-cpptools/issues/10213) * Fix casing of path in include completion tooltip on Windows. [#12895](https://github.com/microsoft/vscode-cpptools/issues/12895) +* Fix a performance issue where some LSP requests would delay other LSP requests. [#12905](https://github.com/microsoft/vscode-cpptools/issues/12905) +* Fix some localization issues. [#12909](https://github.com/microsoft/vscode-cpptools/issues/12909), [#13090](https://github.com/microsoft/vscode-cpptools/issues/13090) * Fix pattern matching of sections in `.editorConfig` files. [#12933](https://github.com/microsoft/vscode-cpptools/issues/12933) * Fix handling of relative paths passed to cl.exe `/reference` argument. [#12944](https://github.com/microsoft/vscode-cpptools/issues/12944) * Fix a leak of compile command file watchers. [#12946](https://github.com/microsoft/vscode-cpptools/issues/12946) @@ -60,17 +39,19 @@ * Fix a compile commands fallback logic issue. [#12947](https://github.com/microsoft/vscode-cpptools/issues/12947) * Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12948](https://github.com/microsoft/vscode-cpptools/pull/12948) * Fix an issue in which a `didOpen` event was processed before the language client was fully started. [#12954](https://github.com/microsoft/vscode-cpptools/issues/12954) +* Fix the IntelliSense mode being `macos` instead of `windows` when `_WIN32` is defined on macOS. [#13016](https://github.com/Microsoft/vscode-cpptools/issues/13016) +* Fix IntelliSense bugs when using non-UTF8 file encodings. [#13028](https://github.com/microsoft/vscode-cpptools/issues/13028), [#13044](https://github.com/microsoft/vscode-cpptools/issues/13044) +* Fix an incorrect translation for "binary operator". [#13048](https://github.com/microsoft/vscode-cpptools/issues/13048) +* Fix the "references may be missing" logging pane being shown when the `C_Cpp.loggingLevel` is `Error` or `None`. [#13066](https://github.com/microsoft/vscode-cpptools/issues/13066) +* Fix `C_Cpp.default.compilerPath` not using the `C_Cpp.preferredPathSeparator` setting when generated from the 'Select IntelliSense Configuration' command. [#13083](https://github.com/microsoft/vscode-cpptools/issues/13083) +* Fix a couple bugs with `.editorConfig` handling. [PR #13140](https://github.com/microsoft/vscode-cpptools/pull/13140) +* Fix a bug when processing a file with invalid multi-byte sequences. [#13150](https://github.com/microsoft/vscode-cpptools/issues/13150) +* Fix call hierarchy calls from. [#13200](https://github.com/microsoft/vscode-cpptools/issues/13200) * Fix IntelliSense issues related to large header files (>32K) and encodings other than UTF-8. -* Fix a deadlock. - -### Version 1.23.1: November 6, 2024 -### Bug Fixes -* A potential fix for a crash during process shutdown (in `uv_run`). [#12668](https://github.com/microsoft/vscode-cpptools/issues/12668) -* Fix a performance issue where some LSP requests would delay other LSP requests. [#12905](https://github.com/microsoft/vscode-cpptools/issues/12905) -* A potential fix for a crash in cpptools (in `report_intellisense_results`). -* Fix a random deadlock with `compiler_info::find_or_create`. -* Fix a random deadlock with `handle_edits`. +* Update vsdbg from 17.12.10729.1 to 17.13.20115.1. * Other internal fixes. +* Fix some deadlocks. +* Fix some crashes. ## Version 1.22.11: November 5, 2024 ### Bug Fixes diff --git a/Extension/package.json b/Extension/package.json index db1fb79e1..fab08abde 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -2,7 +2,7 @@ "name": "cpptools", "displayName": "C/C++", "description": "C/C++ IntelliSense, debugging, and code browsing.", - "version": "1.23.4-main", + "version": "1.23.5-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", From 1458694ed6b88cf15f54d3adfa494514231753dd Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Tue, 28 Jan 2025 12:09:47 -0800 Subject: [PATCH 78/78] Fix incorrect merge. --- Extension/CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index ca0472279..97a78a34b 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -15,7 +15,6 @@ * Update clang-format and clang-tidy from 19.1.2 to 19.1.7. * IntelliSense parser updates. -## Version 1.22.10: October 21, 2024 ### Bug Fixes * Fix a perf regression in hover operation by using cached lexer line states. [#3126](https://github.com/microsoft/vscode-cpptools/issues/3126) * Fix `compile_commands.json` no longer being used if the containing folder is deleted and recreated. [#7030](https://github.com/microsoft/vscode-cpptools/issues/7030)