diff --git a/.github/actions/package-lock.json b/.github/actions/package-lock.json index 9d7e35227..74f33b5af 100644 --- a/.github/actions/package-lock.json +++ b/.github/actions/package-lock.json @@ -5605,9 +5605,9 @@ } }, "node_modules/undici": { - "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=", + "version": "5.29.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/undici/-/undici-5.29.0.tgz", + "integrity": "sha1-QZWVRJrj8s3Lo1gKLokDOZvR9aM=", "license": "MIT", "dependencies": { "@fastify/busboy": "^2.0.0" diff --git a/Extension/.gitignore b/Extension/.gitignore index 1adad30d0..1965b6766 100644 --- a/Extension/.gitignore +++ b/Extension/.gitignore @@ -10,6 +10,7 @@ server debugAdapters LLVM bin/cpptools* +bin/libc.so bin/*.dll bin/.vs bin/LICENSE.txt diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index f5c5e6350..9bc14b104 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,32 +1,34 @@ # C/C++ for Visual Studio Code Changelog -## Version 1.25.2: April 25, 2025 -### Bug Fixes -* Fix a crash in `read_double`. [#13435](https://github.com/Microsoft/vscode-cpptools/issues/13435) -* Fix a crash with Copilot hover. - -## Version 1.25.1: April 22, 2025 +## Version 1.26.0: May 22, 2025 ### Enhancement -* Add a configuration warning message explaining why paths in quotes can't be found. [#11955](https://github.com/microsoft/vscode-cpptools/issues/11955) +* Add support for c++26/2c, gnu++26/2c, and c++23preview configurations. [#12963](https://github.com/microsoft/vscode-cpptools/issues/12963), [#13133](https://github.com/microsoft/vscode-cpptools/issues/13133) ### Bug Fixes -* Fix no error appearing in the configuration UI when an invalid `compilerPath` is used. [#12661](https://github.com/microsoft/vscode-cpptools/issues/12661) -* Fix the 'Debug C/C++ File' button sometimes disappearing. [#13400](https://github.com/microsoft/vscode-cpptools/issues/13400) -* Fix issues with the `recursiveIncludes` properties in the configuration UI editor. [PR #13498](https://github.com/microsoft/vscode-cpptools/pull/13498) -* Update clang-tidy and clang-format from 20.1.2 to 20.1.3 (which has some bug fixes). -* Fix some translation issues. +* Fix an invalid IntelliSense error with C++23 escape sequences. [#13338](https://github.com/microsoft/vscode-cpptools/issues/13338) +* Fix switch header/source for CUDA files. [#13575](https://github.com/microsoft/vscode-cpptools/issues/13575) +* Update Apple clang 16.4 to LLVM clang version mappings and fix incorrect mappings for Apple clang 14. +* Update the bundled clang-tidy and clang-format from 1.20.3 to 1.20.5 (for bug fixes). -## Version 1.25.0: April 10, 2025 -### Enhancement +## Version 1.25.3: April 28, 2025 +### Enhancements +* Add a configuration warning message explaining why paths in quotes can't be found. [#11955](https://github.com/microsoft/vscode-cpptools/issues/11955) * Improve the description of the `C_Cpp.copilotHover` setting. [PR #13461](https://github.com/microsoft/vscode-cpptools/pull/13461) ### Bug Fixes +* Fix no error appearing in the configuration UI when an invalid `compilerPath` is used. [#12661](https://github.com/microsoft/vscode-cpptools/issues/12661) +* Fix the 'Debug C/C++ File' button sometimes disappearing. [#13400](https://github.com/microsoft/vscode-cpptools/issues/13400) +* Fix a crash in `read_double`. [#13435](https://github.com/Microsoft/vscode-cpptools/issues/13435) * Fix the handling of default file associations for certain file extensions. [PR #13455](https://github.com/microsoft/vscode-cpptools/pull/13455) * Fix shell parsing of the arguments of a full command line in `compilerPath`. [PR #13468](https://github.com/microsoft/vscode-cpptools/pull/13468) * Fix C and CUDA files being interpreted as C++ in `compile_commands.json`. [#13471](https://github.com/microsoft/vscode-cpptools/issues/13471) * Stop automatically mapping a `.C` file to C++ if it's already set in `files.associations`. [PR #13476](https://github.com/microsoft/vscode-cpptools/pull/13476) +* Fix issues with the `recursiveIncludes` properties in the configuration UI editor. [PR #13498](https://github.com/microsoft/vscode-cpptools/pull/13498) * Fix IntelliSense not updating after the language ID is changed, and prevent the language ID from being changed if it's set from `compile_commands.json` or a configuration provider. +* Update clang-tidy and clang-format from 20.1.2 to 20.1.3 (which has some bug fixes). * Fix a case where language server crash messages appear after 4 minutes. +* Fix a crash with Copilot hover. +* Fix some translation issues. ## Version 1.24.5: April 3, 2025 ### New Feature diff --git a/Extension/ThirdPartyNotices.txt b/Extension/ThirdPartyNotices.txt index a4e032fdb..5310d7f12 100644 --- a/Extension/ThirdPartyNotices.txt +++ b/Extension/ThirdPartyNotices.txt @@ -377,61 +377,6 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ---------------------------------------------------------- - ---------------------------------------------------------- - -fs.realpath 1.0.0 - ISC -https://github.com/isaacs/fs.realpath#readme - -Copyright (c) Isaac Z. Schlueter and Contributors -Copyright Joyent, Inc. and other Node contributors - -The ISC License - -Copyright (c) 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. - ----- - -This library bundles a version of the `fs.realpath` and `fs.realpathSync` -methods from Node.js v0.10 under the terms of the Node.js MIT license. - -Node's license follows, also included at the header of `old.js` which contains -the licensed code: - - Copyright Joyent, Inc. and other Node contributors. - - 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. - - --------------------------------------------------------- --------------------------------------------------------- @@ -752,6 +697,61 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +--------------------------------------------------------- + +--------------------------------------------------------- + +fs.realpath 1.0.0 - ISC AND MIT +https://github.com/isaacs/fs.realpath#readme + +Copyright (c) Isaac Z. Schlueter and Contributors +Copyright Joyent, Inc. and other Node contributors + +The ISC License + +Copyright (c) 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. + +---- + +This library bundles a version of the `fs.realpath` and `fs.realpathSync` +methods from Node.js v0.10 under the terms of the Node.js MIT license. + +Node's license follows, also included at the header of `old.js` which contains +the licensed code: + + Copyright Joyent, Inc. and other Node contributors. + + 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. + + --------------------------------------------------------- --------------------------------------------------------- @@ -2393,7 +2393,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI --------------------------------------------------------- -vscode-cpptools 6.1.0 - MIT +vscode-cpptools 6.3.0 - MIT https://github.com/Microsoft/vscode-cpptools-api#readme Copyright (c) Microsoft Corporation diff --git a/Extension/bin/linux.clang.arm.json b/Extension/bin/linux.clang.arm.json index 52bd188d4..9cb51ab2c 100644 --- a/Extension/bin/linux.clang.arm.json +++ b/Extension/bin/linux.clang.arm.json @@ -1,14 +1,13 @@ -{ - "defaults": [ - "-D__building_module(x)=0", - "-Dunix=1", - "-D__unix__=1", - "-D__linux__=1", - "-D__arm__=1", - "-D__ARM_32BIT_STATE=1", - "-D__PTRDIFF_TYPE__=int", - "-D__SIZE_TYPE__=unsigned int", - "-D__WCHAR_TYPE__=long int" - ], - "defaults_op": "merge" -} +{ + "defaults": [ + "-Dunix=1", + "-D__unix__=1", + "-D__linux__=1", + "-D__arm__=1", + "-D__ARM_32BIT_STATE=1", + "-D__PTRDIFF_TYPE__=int", + "-D__SIZE_TYPE__=unsigned int", + "-D__WCHAR_TYPE__=long int" + ], + "defaults_op": "merge" +} diff --git a/Extension/bin/linux.clang.arm64.json b/Extension/bin/linux.clang.arm64.json index 00589afb6..eebe976d4 100644 --- a/Extension/bin/linux.clang.arm64.json +++ b/Extension/bin/linux.clang.arm64.json @@ -1,14 +1,13 @@ -{ - "defaults": [ - "-D__building_module(x)=0", - "-Dunix=1", - "-D__unix__=1", - "-D__linux__=1", - "-D__aarch64__=1", - "-D__ARM_64BIT_STATE=1", - "-D__PTRDIFF_TYPE__=long int", - "-D__SIZE_TYPE__=long unsigned int", - "-D__WCHAR_TYPE__=int" - ], - "defaults_op": "merge" -} +{ + "defaults": [ + "-Dunix=1", + "-D__unix__=1", + "-D__linux__=1", + "-D__aarch64__=1", + "-D__ARM_64BIT_STATE=1", + "-D__PTRDIFF_TYPE__=long int", + "-D__SIZE_TYPE__=long unsigned int", + "-D__WCHAR_TYPE__=int" + ], + "defaults_op": "merge" +} diff --git a/Extension/bin/linux.clang.x64.json b/Extension/bin/linux.clang.x64.json index da855d4bd..383389821 100644 --- a/Extension/bin/linux.clang.x64.json +++ b/Extension/bin/linux.clang.x64.json @@ -1,14 +1,13 @@ -{ - "defaults": [ - "-D__building_module(x)=0", - "-Dunix=1", - "-D__unix__=1", - "-D__linux__=1", - "-D__x86_64=1", - "-D__x86_64__=1", - "-D__PTRDIFF_TYPE__=long int", - "-D__SIZE_TYPE__=long unsigned int", - "-D__WCHAR_TYPE__=int" - ], - "defaults_op": "merge" -} +{ + "defaults": [ + "-Dunix=1", + "-D__unix__=1", + "-D__linux__=1", + "-D__x86_64=1", + "-D__x86_64__=1", + "-D__PTRDIFF_TYPE__=long int", + "-D__SIZE_TYPE__=long unsigned int", + "-D__WCHAR_TYPE__=int" + ], + "defaults_op": "merge" +} diff --git a/Extension/bin/linux.clang.x86.json b/Extension/bin/linux.clang.x86.json index 4fb1eead0..2f4e27578 100644 --- a/Extension/bin/linux.clang.x86.json +++ b/Extension/bin/linux.clang.x86.json @@ -1,14 +1,13 @@ -{ - "defaults": [ - "-D__building_module(x)=0", - "-Dunix=1", - "-D__unix__=1", - "-D__linux__=1", - "-D__i386=1", - "-D__i386__=1", - "-D__PTRDIFF_TYPE__=int", - "-D__SIZE_TYPE__=unsigned int", - "-D__WCHAR_TYPE__=long int" - ], - "defaults_op": "merge" -} +{ + "defaults": [ + "-Dunix=1", + "-D__unix__=1", + "-D__linux__=1", + "-D__i386=1", + "-D__i386__=1", + "-D__PTRDIFF_TYPE__=int", + "-D__SIZE_TYPE__=unsigned int", + "-D__WCHAR_TYPE__=long int" + ], + "defaults_op": "merge" +} diff --git a/Extension/bin/macos.clang.arm.json b/Extension/bin/macos.clang.arm.json index 0ea0f569a..3c6484f3c 100644 --- a/Extension/bin/macos.clang.arm.json +++ b/Extension/bin/macos.clang.arm.json @@ -1,13 +1,12 @@ -{ - "defaults": [ - "-D__building_module(x)=0", - "-D__APPLE__=1", - "-D__MACH__=1", - "-D__arm__=1", - "-D__ARM_32BIT_STATE=1", - "-D__PTRDIFF_TYPE__=int", - "-D__SIZE_TYPE__=unsigned int", - "-D__WCHAR_TYPE__=long int" - ], - "defaults_op": "merge" -} +{ + "defaults": [ + "-D__APPLE__=1", + "-D__MACH__=1", + "-D__arm__=1", + "-D__ARM_32BIT_STATE=1", + "-D__PTRDIFF_TYPE__=int", + "-D__SIZE_TYPE__=unsigned int", + "-D__WCHAR_TYPE__=long int" + ], + "defaults_op": "merge" +} diff --git a/Extension/bin/macos.clang.arm64.json b/Extension/bin/macos.clang.arm64.json index 80f3c2975..63c6fe0e2 100644 --- a/Extension/bin/macos.clang.arm64.json +++ b/Extension/bin/macos.clang.arm64.json @@ -1,13 +1,12 @@ -{ - "defaults": [ - "-D__building_module(x)=0", - "-D__APPLE__=1", - "-D__MACH__=1", - "-D__aarch64__=1", - "-D__ARM_64BIT_STATE=1", - "-D__PTRDIFF_TYPE__=long int", - "-D__SIZE_TYPE__=long unsigned int", - "-D__WCHAR_TYPE__=int" - ], - "defaults_op": "merge" -} +{ + "defaults": [ + "-D__APPLE__=1", + "-D__MACH__=1", + "-D__aarch64__=1", + "-D__ARM_64BIT_STATE=1", + "-D__PTRDIFF_TYPE__=long int", + "-D__SIZE_TYPE__=long unsigned int", + "-D__WCHAR_TYPE__=int" + ], + "defaults_op": "merge" +} diff --git a/Extension/bin/macos.clang.x64.json b/Extension/bin/macos.clang.x64.json index 9aa1ba565..1a24ac74e 100644 --- a/Extension/bin/macos.clang.x64.json +++ b/Extension/bin/macos.clang.x64.json @@ -1,13 +1,12 @@ -{ - "defaults": [ - "-D__building_module(x)=0", - "-D__APPLE__=1", - "-D__MACH__=1", - "-D__x86_64=1", - "-D__x86_64__=1", - "-D__PTRDIFF_TYPE__=long int", - "-D__SIZE_TYPE__=long unsigned int", - "-D__WCHAR_TYPE__=int" - ], - "defaults_op": "merge" -} +{ + "defaults": [ + "-D__APPLE__=1", + "-D__MACH__=1", + "-D__x86_64=1", + "-D__x86_64__=1", + "-D__PTRDIFF_TYPE__=long int", + "-D__SIZE_TYPE__=long unsigned int", + "-D__WCHAR_TYPE__=int" + ], + "defaults_op": "merge" +} diff --git a/Extension/bin/macos.clang.x86.json b/Extension/bin/macos.clang.x86.json index a40718d33..173ae66b6 100644 --- a/Extension/bin/macos.clang.x86.json +++ b/Extension/bin/macos.clang.x86.json @@ -1,13 +1,12 @@ -{ - "defaults": [ - "-D__building_module(x)=0", - "-D__APPLE__=1", - "-D__MACH__=1", - "-D__i386=1", - "-D__i386__=1", - "-D__PTRDIFF_TYPE__=int", - "-D__SIZE_TYPE__=unsigned int", - "-D__WCHAR_TYPE__=long int" - ], - "defaults_op": "merge" -} +{ + "defaults": [ + "-D__APPLE__=1", + "-D__MACH__=1", + "-D__i386=1", + "-D__i386__=1", + "-D__PTRDIFF_TYPE__=int", + "-D__SIZE_TYPE__=unsigned int", + "-D__WCHAR_TYPE__=long int" + ], + "defaults_op": "merge" +} diff --git a/Extension/bin/messages/cs/messages.json b/Extension/bin/messages/cs/messages.json index c9e8d11f3..46da5dd8e 100644 --- a/Extension/bin/messages/cs/messages.json +++ b/Extension/bin/messages/cs/messages.json @@ -163,7 +163,7 @@ "Nerozpoznaná direktiva #pragma", null, "Nepodařilo se otevřít dočasný soubor %sq: %s2", - "Název adresáře dočasných souborů je moc dlouhý (%sq).", + null, "příliš málo argumentů ve volání funkce", "neplatná plovoucí konstanta", "Argument typu %t1 je nekompatibilní s parametrem typu %t2.", @@ -1828,7 +1828,7 @@ "Funkce auto vyžaduje ukončovací návratový typ.", "Šablona člena nemůže mít specifikátor pure.", "Řetězcový literál je příliš dlouhý – nadpočetné znaky se ignorují.", - "Možnost řízení klíčového slova nullptr se dá použít jenom při kompilaci C++.", + null, "Došlo k převodu std::nullptr_t na bool.", null, null, @@ -3230,8 +3230,8 @@ "druhá shoda je %t", "Atribut availability, který se tady používá, se ignoruje.", "Výraz inicializátoru podle C++20 v příkazu for založeném na rozsahu není v tomto režimu standardní.", - "co_await se může vztahovat jen na příkaz for založený na rozsahu.", - "Typ rozsahu ve smyčce for založené na rozsahu se nedá vyvodit.", + "co_await se může vztahovat jen na příkaz for založený na rozsahu", + "nelze odvodit typ rozsahu v příkazu for založeném na rozsahu", "Vložené proměnné jsou funkce standardu C++17.", "Destrukční operátor delete vyžaduje jako první parametr %t.", "Destrukční operátor delete nemůže mít parametry jiné než std::size_t a std::align_val_t.", @@ -3272,17 +3272,17 @@ "%sq není importovatelné záhlaví.", "Nelze importovat modul bez názvu.", "Modul nemůže mít závislost rozhraní sám na sebe.", - "Modul %sq je už importovaný.", + "%m už je naimportovaný", "Soubor modulu", "Nepodařilo se najít soubor modulu pro modul %sq.", "Soubor modulu %sq se nepovedlo naimportovat.", - "Očekávalo se %s1, ale našlo se %s2.", + null, "Při otevírání souboru modulu %sq", "Neznámý název oddílu %sq", - "neznámý soubor modulu", - "soubor modulu s importovatelnou hlavičkou", - "soubor modulu EDG", - "soubor modulu IFC", + null, + null, + null, + null, "neočekávaný soubor modulu", "Typ druhého operandu %t2 musí mít stejnou velikost jako %t1.", "Typ musí být možné triviálně kopírovat.", @@ -3347,7 +3347,7 @@ "nejde najít záhlaví %s, které se má importovat", "více než jeden soubor v seznamu souborů modulu odpovídá %s", "soubor modulu, který se našel pro %s, je pro jiný modul", - "libovolný druh souboru modulu", + null, "nejde přečíst soubor modulu", "předdefinovaná funkce není k dispozici, protože typ char8_t se nepodporuje s aktuálními možnostmi", null, @@ -3368,7 +3368,7 @@ "Nepovedlo se interpretovat rozložení bitů pro tento cíl kompilace.", "Žádný odpovídající operátor pro operátor IFC %sq", "Žádná odpovídající konvence volání pro konvenci volání IFC %sq", - "Modul %sq obsahuje nepodporované konstrukce.", + "%m obsahuje nepodporované konstruktory", "Nepodporovaná konstrukce IFC: %sq", "__is_signed už není klíčové slovo.", "Rozměr pole musí mít konstantní celočíselnou hodnotu bez znaménka.", @@ -3417,35 +3417,35 @@ "Příkazy if consteval a if not consteval nejsou v tomto režimu standardní.", "Vynechání () v deklarátoru výrazu lambda je v tomto režimu nestandardní.", "Když se vynechá seznam parametrů výrazu lambda, nepodporuje se klauzule requires na konci.", - "Požádalo se o neplatný oddíl modulu %sq.", - "Požádalo se nedefinovaný oddíl modulu %sq1 (předpokládalo se, že je to %sq2).", + "požádáno o neplatný oddíl %m", + "byl požadován %m nedefinovaný oddíl (pravděpodobně %sq)", null, null, - "Modul %sq1 pozice souboru %u1 (relativní pozice %u2) požadovaná pro oddíl %sq2, který přetéká konec svého oddílu", - "Modul %sq1 pozice souboru %u1 (relativní pozice %u2) požadována pro oddíl %sq2, který je nesprávně zarovnán s elementy oddílů", + "pozice %u1 v souboru %m (relativní pozice %u2) požadovaná pro oddíl %sq, která přetéká konec svého oddílu", + "pozice %u1 v souboru %m (relativní pozice %u2) požadována pro oddíl %sq, která je nesprávně zarovnána s elementy oddílů", "z dílčího pole %sq (relativní pozice k uzlu %u)", "Z oddílu %sq elementu %u1 (pozice souboru %u2, relativní pozice %u3)", "Atributy výrazů lambda jsou funkcí C++23.", "Identifikátor %sq by bylo možné zaměnit za vizuálně podobné %p.", "Tento komentář obsahuje podezřelé řídicí znaky formátování Unicode.", "Tento řetězec obsahuje řídicí znaky formátování Unicode. To může způsobit neočekávané chování modulu runtime.", - "Došlo k potlačení %d1 upozornění při zpracovávání modulu %sq1.", - "Došlo k potlačení %d1 upozornění při zpracovávání modulu %sq1.", - "Došlo k potlačení %d1 chyby při zpracovávání modulu %sq1.", - "Došlo k potlačení %d1 chyb při zpracovávání modulu %sq1.", + "při zpracovávání %m došlo k potlačení %u upozornění", + "při zpracování %m došlo k potlačení %u upozornění", + "při zpracování %m došlo k %u potlačené chybě", + "při zpracování %m došlo k(e) %u potlačeným chybám", "včetně", "potlačeno", "Virtuální členská funkce nemůže mít explicitní parametr this.", "Převzetí adresy funkce s explicitním this vyžaduje kvalifikovaný název.", "Vytvoření adresy funkce s explicitním this vyžaduje operátor &.", "řetězcový literál nelze použít k inicializaci člena flexibilního pole.", - "Reprezentace IFC definice funkce %sq je neplatná.", + "reprezentace IFC definice funkce %sq je neplatná", null, "graf UniLevel IFC se nepoužil k zadání parametrů.", "V grafu definice parametrů IFC byl zadán tento počet parametrů: %u1, zatímco deklarace IFC určovala tento počet parametrů: %u2.", "V grafu definice parametrů IFC byly zadány %u1 parametry, zatímco deklarace IFC určovala tento počet parametrů: %u2.", "V grafu definice parametrů IFC byly zadány %u1 parametry, zatímco deklarace IFC určovala tento počet parametrů: %u2.", - "Chybí reprezentace IFC definice funkce %sq.", + "chybí reprezentace IFC definice funkce %sq", "modifikátor funkce se nevztahuje na deklaraci členské šablony.", "výběr člena zahrnuje příliš mnoho vnořených anonymních typů", "mezi operandy není žádný společný typ", @@ -3467,7 +3467,7 @@ "bitové pole s nekompletním typem výčtu nebo neprůhledný výčet s neplatným základním typem", "došlo k pokusu o vytvoření elementu z oddílu IFC %sq pomocí indexu do oddílu IFC %sq2.", "oddíl %sq určil svou velikost položky jako %u1, když bylo očekáváno %u2.", - "při zpracování modulu %sq1 byl zjištěn neočekávaný požadavek IFC.", + "při zpracování %m byl zjištěn neočekávaný požadavek IFC", "podmínka selhala na řádku %d v %s1: %sq2", "atomické omezení závisí na sobě", "Funkce noreturn má návratový typ, který není void.", @@ -3475,9 +3475,9 @@ "výchozí argument šablony nelze zadat pro definici členské šablony mimo její třídu.", "při rekonstrukci entity se zjistil neplatný název identifikátoru IFC %sq.", null, - "neplatná hodnota řazení modulu %sq", + "neplatná hodnota řazení %m", "šablona funkce načtená z modulu IFC byla nesprávně parsována jako %nd.", - "nepovedlo se načíst odkaz na entitu IFC v modulu %sq.", + "nepodařilo se načíst odkaz na entitu IFC v %m", "Z oddílu %sq elementu %u1 (pozice souboru %u2, relativní pozice %u3)", "zřetězené specifikátory nejsou povolené pro typ třídy s netriviálním destruktorem.", "Explicitní deklarace specializace nemůže být deklarací typu friend.", @@ -3506,9 +3506,9 @@ null, "nejde vyhodnotit inicializátor pro člena flexibilního pole", "výchozí inicializátor bitového pole je funkce C++20", - "příliš mnoho argumentů v seznamu argumentů šablony v modulu %sq", + "příliš mnoho argumentů v seznamu argumentů šablony v %m", "zjištěno pro argument šablony reprezentovaný %sq elementem %u1 (pozice souboru %u2, relativní pozice %u3)", - "příliš málo argumentů v seznamu argumentů šablony v modulu %sq", + "příliš málo argumentů v seznamu argumentů šablony v %m", "zjištěno při zpracování seznamu argumentů šablony reprezentovaného %sq elementem %u1 (pozice souboru %u2, relativní pozice %u3)", "převod z vymezeného výčtového typu %t je nestandardní", "zrušení přidělení se neshoduje s druhem přidělení (jedno je pro pole a druhé ne)", @@ -3517,8 +3517,8 @@ "__make_unsigned je kompatibilní jenom s typem integer a výčtovým typem, které nejsou typu bool", "vnitřní název %sq bude odsud považován za běžný identifikátor", "přístup k neinicializovanému podobjektu v indexu %d", - "Číslo řádku IFC (%u1) přetéká maximální povolenou hodnotu (%u2), modul %sq.", - "Modul %sq1 požadoval element %u oddílu %sq2. Tato pozice souboru překračuje maximální reprezentovatelnou hodnotu.", + "číslo řádku IFC (%u1) přeteče maximální povolenou hodnotu (%u2) %m", + "%m požaduje element %u oddílu %sq; tato pozice v souboru překračuje maximální reprezentovatelnou hodnotu", "nesprávný počet argumentů", "Omezení kandidáta %n není splněno.", "Počet parametrů %n neodpovídá volání.", @@ -3551,7 +3551,7 @@ "Soubor IFC %sq nejde zpracovat.", "Verze IFC %u1.%u2 není podporována.", "Architektura IFC %sq není kompatibilní s aktuální cílovou architekturou.", - "Modul %sq1 požaduje index %u nepodporovaného oddílu odpovídajícího %sq2.", + "%m žádá o index %u nepodporovaného oddílu odpovídajícího %sq", "Číslo parametru %d z %n má typ %t, který nelze dokončit.", "Číslo parametru %d z %n má neúplný typ %t.", "Číslo parametru %d z %n má abstraktní typ %t.", @@ -3570,7 +3570,7 @@ "chybná reflexe (%r) pro spojení výrazů", "%n již byl definován (předchozí definice %p)", "objekt infovec není inicializovaný", - "value_of typ %t1 není kompatibilní s danou reflexí (entita s typem %t2)", + "extrakce typu %t1 není kompatibilní s danou odezvou (entita s typem %t2)", "reflektování sady přetížení není v tuto chvíli povolené", "tato vnitřní funkce vyžaduje reflexi pro instanci šablony", "nekompatibilní typy %t1 a %t2 pro operátora", @@ -3601,6 +3601,21 @@ "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", + "prvním argumentem musí být ukazatel na celé číslo (integer), výčet (enum) nebo podporovaný typ s plovoucí desetinnou čárkou", + "moduly C++ nelze použít při kompilaci více jednotek překladu", + "Moduly C++ se nedají použít s funkcí exportu před C++11", + "token IFC %sq se nepodporuje", + "atribut pass_object_size je platný pouze pro parametry deklarací funkce", + "argument %sq atributu %d1 musí být hodnota mezi 0 a %d2", + "ref-qualifier se tady ignoruje", + "neplatný typ elementu NEON vector %t", + "neplatný typ elementu NEON polyvector %t", + "neplatný typ elementu škálovatelného vektoru %t", + "neplatný počet elementů řazené kolekce členů pro typ škálovatelného vektoru", + "NEON vector/polyvector musí mít šířku 64 nebo 128 bitů", + "typ %t bez velikosti není povolený", + "objekt bez velikosti typu %t nemůže být inicializovaný hodnotou", + "v rámci oboru %u byl nalezen neočekávaný index deklarace null", "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.", @@ -3629,5 +3644,17 @@ "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." -] + "Aby se dalo použít --ms_c++23, musí být verze Microsoftu, která se emuluje, aspoň 1943.", + "neplatný aktuální pracovní adresář: %s", + "atribut cleanup v rámci funkce constexpr se v současné době nepodporuje", + "atribut assume se dá použít jenom na příkaz null", + "předpoklad selhal", + "šablony proměnných jsou funkcí C++14", + "nelze přijmout adresu funkce s parametrem deklarovaným atributem pass_object_size", + "všechny argumenty musí mít stejný typ", + "konečné porovnání bylo %s1 %s2 %s3", + "příliš mnoho argumentů pro atribut %sq", + "řetězec mantissa neobsahuje platné číslo", + "chyba v pohyblivé desetinné čárce při vyhodnocování konstanty", + "ignorován dědičný konstruktor %n pro operace podobné kopírování/přesouvání" +] \ No newline at end of file diff --git a/Extension/bin/messages/de/messages.json b/Extension/bin/messages/de/messages.json index 5c05d13cd..6567bc1e7 100644 --- a/Extension/bin/messages/de/messages.json +++ b/Extension/bin/messages/de/messages.json @@ -163,7 +163,7 @@ "Unbekanntes #pragma.", null, "Die temporäre Datei \"%sq\" konnte nicht geöffnet werden: %s2", - "Der Name des Verzeichnisses für temporäre Dateien ist zu lang (%sq).", + null, "Zu wenig Argumente im Funktionsaufruf.", "Ungültige Gleitkommakonstante.", "Das Argument vom Typ \"%t1\" ist mit dem Parameter vom Typ \"%t2\" inkompatibel.", @@ -1828,7 +1828,7 @@ "Für die auto-Funktion ist ein nachstehender Rückgabetyp erforderlich.", "Eine Membervorlage kann nicht über einen reinen Spezifizierer verfügen", "Zeichenfolgenliteral zu lang -- überschüssige Zeichen werden ignoriert", - "Die Option zum Steuern des nullptr-Schlüsselworts kann nur beim Kompilieren von C++ verwendet werden.", + null, "std::nullptr_t wird in einen booleschen Wert konvertiert.", null, null, @@ -3230,8 +3230,8 @@ "Die andere Übereinstimmung lautet \"%t\".", "Das hier verwendete Attribut \"availability\" wird ignoriert.", "Die C++20-Initialisierungsanweisung in einer bereichsbasierten for-Anweisung entspricht in diesem Modus nicht dem Standard.", - "co_await kann nur auf eine bereichsbasierte for-Anweisung angewendet werden.", - "Der Typ des Bereichs kann in einer bereichsbasierten for-Schleife nicht abgeleitet werden.", + "co_await kann nur auf eine bereichsbasierte „for“-Anweisung angewendet werden.", + "Der Typ des Bereichs kann in einer bereichsbasierten „for“-Anweisung nicht abgeleitet werden.", "Inlinevariablen sind ein C++17-Feature.", "Für eine \"operator delete\"-Funktion mit Zerstörung wird \"%t\" als erster Parameter benötigt.", "Eine \"operator delete\"-Funktion mit Zerstörung kann nur die Parameter \"std::size_t\" und \"std::align_val_t\" aufweisen.", @@ -3272,17 +3272,17 @@ "\"%sq\" ist kein importierbarer Header.", "Ein Modul ohne Namen kann nicht importiert werden.", "Ein Modul kann keine Schnittstellenabhängigkeit von sich selbst aufweisen.", - "Das Modul \"%sq\" wurde bereits importiert.", + "%m wurde bereits importiert.", "Moduldatei", "Die Moduldatei für das Modul \"%sq\" wurde nicht gefunden.", "Die Moduldatei \"%sq\" konnte nicht importiert werden.", - "Erwartet wurde \"%s1\", stattdessen gefunden: \"%s2\".", + null, "beim Öffnen der Moduldatei \"%sq\"", "Unbekannter Partitionsname \"%sq\".", - "Unbekannte Moduldatei", - "Importierbare Headermoduldatei", - "EDG-Moduldatei", - "IFC-Moduldatei", + null, + null, + null, + null, "Unerwartete Moduldatei", "Der Typ des zweiten Operanden, \"%t2\", muss die gleiche Größe aufweisen wie \"%t1\".", "Der Typ muss trivial kopierbar sein.", @@ -3347,7 +3347,7 @@ "Der zu importierende Header \"%s\" wurde nicht gefunden.", "Mehrere Dateien in der Moduldateiliste stimmen mit \"%s\" überein.", "Die für \"%s\" gefundene Moduldatei ist für ein anderes Modul bestimmt.", - "Beliebige Art von Moduldatei", + null, "Die Moduldatei kann nicht gelesen werden.", "Die integrierte Funktion ist nicht verfügbar, weil der char8_t-Typ mit den aktuellen Optionen nicht unterstützt wird.", null, @@ -3368,7 +3368,7 @@ "Das Bitlayout für dieses Kompilierungsziel kann nicht interpretiert werden.", "Kein entsprechender Operator für IFC-Operator \"%sq\".", "Keine entsprechende Aufrufkonvention für IFC-Aufrufkonvention \"%sq\".", - "Das Modul \"%sq\" enthält nicht unterstützte Konstrukte.", + "%m enthält nicht unterstützte Konstrukte.", "Nicht unterstütztes IFC-Konstrukt: %sq", "\"__is_signed\" kann ab jetzt nicht mehr als Schlüsselwort verwendet werden.", "Eine Arraydimension muss einen konstanten ganzzahligen Wert ohne Vorzeichen aufweisen.", @@ -3417,22 +3417,22 @@ "„wenn consteval“ und „wenn nicht consteval“ sind in diesem Modus nicht Standard", "das Weglassen von „()“ in einem Lambda-Deklarator ist in diesem Modus nicht der Standard", "eine „trailing-requires“-Klausel ist nicht zulässig, wenn die Lambda-Parameterliste ausgelassen wird", - "Modul %sq ungültige Partition angefordert", - "Modul %sq1 undefinierte Partition (könnte %sq2 sein) wurde angefordert", + "%m ungültige Partition angefordert", + "%m undefinierte Partition (könnte %sq sein) wurde angefordert.", null, null, - "Die %sq1-Dateiposition %u1 (relative Position %u2) des Moduls wurde für die %sq2-Partition angefordert. Dadurch wird das Ende der Partition überschritten", - "Modul %sq1 Dateiposition %u1 (relative Position %u2) wurde für die Partition %sq2 angefordert, welche mit dessen Partitionselementen falsch ausgerichtet ist", + "Die %m-Dateiposition %u1 (relative Position %u2) wurde für die %sq-Partition angefordert. Dadurch wird das Ende der Partition überschritten.", + "Die %m-Dateiposition %u1 (relative Position %u2) wurde für die Partition %sq angefordert, die mit den Partitionselementen falsch ausgerichtet ist.", "von Unterfeld %sq (relative Position zum Knoten %u)", "von Partition %sq Element %u1 (Dateiposition %u2, relative Position %u3)", "Attribute für Lambdas sind ein C++23-Feature", "der Bezeichner %sq könnte mit einem visuell ähnlichen Bezeichner verwechselt werden, der %p angezeigt wird", "dieser Kommentar enthält verdächtige Unicode-Formatierungssteuerzeichen", "diese Zeichenfolge enthält Unicode-Formatierungssteuerzeichen, die zu unerwartetem Laufzeitverhalten führen könnten", - "%d1 unterdrückte Warnung wurde bei der Verarbeitung des Moduls %sq1 festgestellt", - "%d1 unterdrückte Warnungen wurden bei der Verarbeitung des Moduls %sq1 festgestellt", - "%d1 unterdrückter Fehler wurde beim Verarbeiten des Moduls %sq1 festgestellt", - "%d1 unterdrückte Fehler wurden beim Verarbeiten des Moduls %sq1 festgestellt", + "%u unterdrückte Warnung wurde bei der Verarbeitung von %m festgestellt", + "%u unterdrückte Warnungen wurden bei der Verarbeitung von %m festgestellt.", + "%u unterdrückter Fehler wurde beim Verarbeiten von %m festgestellt", + "%u unterdrückte Fehler wurden bei der Verarbeitung von %m festgestellt.", "einschließlich", "Unterdrückt", "eine virtuelle Memberfunktion darf keinen expliziten „dies“-Parameter aufweisen", @@ -3467,7 +3467,7 @@ "entweder ein Bitfeld mit einem unvollständigen Enumerationstyp oder eine opake Enumeration mit einem ungültigen Basistyp", "Es wurde versucht, ein Element aus der IFC-Partition %sq mithilfe eines Indexes in der IFC-Partition %sq2 zu erstellen", "Die Partition %sq hat ihre Eintragsgröße mit %u1 angegeben, obwohl %u2 erwartet wurde", - "Unerwartete IFC-Anforderung beim Verarbeiten des Moduls %sq1", + "Unerwartete IFC-Anforderung beim Verarbeiten von %m", "Bedingungsfehler in Zeile %d in %s1: %sq2", "Die atomische Einschränkung hängt von sich selbst ab", "Die Funktion \"noreturn\" weist den Rückgabetyp \"nicht void\" auf.", @@ -3475,9 +3475,9 @@ "ein Standardvorlagenargument kann nicht für die Definition einer Membervorlage außerhalb seiner Klasse angegeben werden", "Ungültiger IFC-Bezeichnername %sq bei der Rekonstruktion der Entität gefunden", null, - "Modul %sq ungültiger Sortierwert", + "%m ungültiger Sortierwert", "Eine aus einem IFC-Modul geladene Funktionsvorlage wurde fälschlicherweise als %nd analysiert", - "Fehler beim Laden eines IFC-Entitätsverweises im Modul \"%sq\"", + "Fehler beim Laden eines IFC-Entitätsverweises in %m", "von Partition %sq Element %u1 (Dateiposition %u2, relative Position %u3)", "verkettete Kennzeichner sind für einen Klassentyp mit einem nichttrivialen Destruktor nicht zulässig", "Eine explizite Spezialisierungsdeklaration darf keine Frienddeklaration sein", @@ -3506,9 +3506,9 @@ null, "ein Initialisierer für einen flexiblen Arraymember kann nicht ausgewertet werden", "ein Standard-Bitfeldinitialisierer ist ein C++20-Feature", - "zu viele Argumente in der Vorlagenargumentliste im Modul %sq", + "Zu viele Argumente in der Vorlagenargumentliste in %m", "für das Vorlagenargument erkannt, das durch das %sq-Element %u1 dargestellt wird (Dateiposition %u2, relative Position %u3)", - "zu wenige Argumente in der Vorlagenargumentliste im Modul %sq", + "Zu wenige Argumente in der Vorlagenargumentliste in %m", "wurde beim Verarbeiten der Vorlagenargumentliste erkannt, die durch das %sq-Element %u1 (Dateiposition %u2, relative Position %u3) dargestellt wird", "die Konvertierung vom bereichsbezogenen Enumerationstyp \"%t\" entspricht nicht dem Standard", "die Zuordnungsfreigabe stimmt nicht mit der Zuordnungsart überein (eine ist für ein Array und die andere nicht)", @@ -3517,8 +3517,8 @@ "__make_unsigned ist nur mit nicht booleschen Integer- und Enumerationstypen kompatibel", "der systeminterne Name\"%sq wird von hier aus als gewöhnlicher Bezeichner behandelt.", "Zugriff auf nicht initialisiertes Teilobjekt bei Index %d", - "IFC-Zeilennummer (%u1) überläuft maximal zulässigen Wert (%u2) Modul %sq", - "Das Modul %sq1 hat das Element %u der Partition %sq2 angefordert. Diese Dateiposition überschreitet den maximal darstellbaren Wert", + "IFC-Zeilennummer (%u1) überschreitet maximal zulässigen Wert (%u2) %m.", + "%m hat das Element %u der Partition %sq angefordert. Diese Dateiposition überschreitet den maximal darstellbaren Wert.", "Falsche Anzahl von Argumenten", "Einschränkung für Kandidat %n nicht erfüllt", "Die Anzahl der Parameter von %n stimmt nicht mit dem Aufruf überein", @@ -3551,7 +3551,7 @@ "IFC-Datei %sq kann nicht verarbeitet werden", "IFC-Version %u1.%u2 wird nicht unterstützt", "Die IFC-Architektur \"%sq\" ist nicht mit der aktuellen Zielarchitektur kompatibel", - "Das Modul %sq1 fordert den Index %u einer nicht unterstützten Partition an, die %sq2 entspricht", + "%m fordert den Index %u einer nicht unterstützten Partition an, die %sq entspricht", "Die Parameternummer %d von %n weist den Typ %t auf, der nicht abgeschlossen werden kann", "Die Parameternummer %d von %n weist den unvollständigen Typ %t auf", "Die Parameternummer %d von %n weist den abstrakten Typ %t auf", @@ -3570,7 +3570,7 @@ "Ungültige Reflexion (%r) für Ausdrucks-Splice", "%n wurde bereits definiert (vorherige Definition %p)", "Infovec-Objekt nicht initialisiert", - "value_of Typ %t1 ist nicht mit der angegebenen Reflexion kompatibel (Entität vom Typ %t2).", + "Extrakt von Typ „%t1“ ist nicht mit der angegebenen Reflexion kompatibel (Entität vom Typ „%t2“).", "Das Reflektieren eines Überladungssatzes ist derzeit nicht zulässig.", "Diese systeminterne Funktion erfordert eine Reflexion für eine Vorlageninstanz.", "Inkompatible Typen %t1 und %t2 für Operator", @@ -3601,6 +3601,21 @@ "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", + "Das erste Argument muss ein Zeiger auf eine Ganzzahl, enum oder unterstützte Gleitkommazahl sein sein.", + "C++-Module können beim Kompilieren mehrerer Übersetzungseinheiten nicht verwendet werden.", + "C++-Module können nicht mit dem vor C++11 verfügbaren „export“-Feature verwendet werden.", + "Das IFC-Token %sq wird nicht unterstützt.", + "Das Attribut „pass_object_size“ ist nur für Parameter von Funktionsdeklarationen gültig.", + "Das Argument des %sq-Attributs %d1 muss einen Wert zwischen 0 und %d2 haben.", + "Ein Verweisqualifizierer (ref-qualifier) hier wird ignoriert.", + "Ungültiger NEON-Vektorelementtyp %t", + "Ungültiger NEON-Polyvektorelementtyp %t", + "Ungültiger skalierbarer Vektorelementtyp %t", + "Ungültige Anzahl von Tupelelementen für den skalierbaren Vektortyp.", + "Ein NEON-Vektor oder Polyvektor muss entweder 64 oder 128 Bit groß sein.", + "Der Typ „%t“ ohne Größe ist nicht zulässig.", + "Ein Objekt des Typs %t ohne Größe kann nicht mit einem Wert initialisiert werden.", + "Im Bereich %u wurde ein unerwarteter Nulldeklarationsindex gefunden.", "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", @@ -3629,5 +3644,17 @@ "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." -] + "Die zu emulierende Microsoft-Version muss mindestens 1943 sein, damit \"--ms_c++23\" verwendet werden kann.", + "Ungültiges aktuelles Arbeitsverzeichnis: %s", + "Das „cleanup“-Attribut innerhalb einer constexpr-Funktion wird derzeit nicht unterstützt.", + "Das „assume“-Attribut kann nur auf eine Nullanweisung angewendet werden.", + "Fehler bei Annahme", + "Variablenvorlagen sind ein C++14-Feature.", + "Die Adresse einer Funktion mit einem Parameter, der mit dem Attribut „pass_object_size“ deklariert wurde, kann nicht übernommen werden.", + "Alle Argumente müssen denselben Typ aufweisen.", + "Der letzte Vergleich war %s1 %s2 %s3.", + "Zu viele Argumente für %sq-Attribut", + "Die Zeichenfolge der Mantisse enthält keine gültige Zahl.", + "Gleitkommafehler während der Konstantenauswertung", + "Der vererbende Konstruktor %n wird bei einem Vorgang wie Kopieren/Verschieben ignoriert." +] \ No newline at end of file diff --git a/Extension/bin/messages/es/messages.json b/Extension/bin/messages/es/messages.json index 926681c81..64078047d 100644 --- a/Extension/bin/messages/es/messages.json +++ b/Extension/bin/messages/es/messages.json @@ -163,7 +163,7 @@ "#pragma no reconocida", null, "no se pudo abrir el archivo temporal %sq: %s2", - "el nombre del directorio de archivos temporales es demasiado largo (%sq)", + null, "no hay suficientes argumentos en la llamada a función", "constante flotante no válida", "un argumento de tipo %t1 no es compatible con un parámetro de tipo %t2", @@ -1828,7 +1828,7 @@ "la función 'auto' requiere un tipo de valor devuelto final", "una plantilla de miembro no puede tener un especificador puro", "literal de cadena demasiado largo: se omitieron los caracteres sobrantes", - "la opción para controlar la palabra clave nullptr solo se puede usar al compilar C++", + null, "std::nullptr_t convertido en booleano", null, null, @@ -3230,8 +3230,8 @@ "la otra coincidencia es %t", "el atributo \"availability\" usado aquí se ignora", "La instrucción del inicializador de estilo C++20 en una instrucción \"for\" basada en intervalo no es estándar en este modo", - "co_await solo se puede aplicar a una instrucción for basada en intervalo", - "no se puede deducir el tipo de intervalo en el bucle \"for\" basado en intervalo", + "co_await solo se puede aplicar a una instrucción \"for\" basada en intervalo", + "no se puede deducir el tipo de intervalo en la instrucción \"for\" basada en intervalos", "las variables insertadas son una característica de C++17", "el operador de destrucción requiere %t como primer parámetro", "un operador de destrucción \"delete\" no puede tener parámetros distintos de std::size_t y std::align_val_t", @@ -3272,17 +3272,17 @@ "%sq no es un encabezado que se pueda importar", "no se puede importar un módulo sin nombre", "un módulo no puede tener una dependencia de interfaz de sí mismo", - "el módulo %sq ya se ha importado", + "%m ya se ha importado", "archivo de módulo", "no se encuentra el archivo del módulo %sq", "No se puede importar el archivo de módulo %sq.", - "se esperaba %s1, pero se encontró %s2 en su lugar", + null, "al abrir el archivo de módulo %sq", "nombre de partición %sq desconocido", - "un archivo de módulo desconocido", - "un archivo de módulo de encabezado importable", - "un archivo de módulo EDG", - "un archivo de módulo IFC", + null, + null, + null, + null, "un archivo de módulo inesperado", "el tipo del segundo operando %t2 debe tener el mismo tamaño que %t1", "el tipo debe poder copiarse de forma trivial", @@ -3347,7 +3347,7 @@ "no se encuentra el encabezado \"%s\" para importar", "hay más de un archivo de la lista de archivos de módulo que coincide con \"%s\"", "el archivo de módulo que se encontró para \"%s\" es para otro módulo", - "cualquier tipo de archivo de módulo", + null, "no se puede leer el archivo de módulo", "la función integrada no está disponible porque no se admite el tipo char8_t con las opciones actuales", null, @@ -3368,7 +3368,7 @@ "no se puede interpretar el diseño de bits de este destino de compilación", "no hay ningún operador correspondiente al operador IFC %sq", "no hay ninguna convención de llamada correspondiente a la convención de llamada IFC %sq", - "el módulo %sq contiene construcciones no admitidas", + "%m contiene construcciones no admitidas", "construcción IFC no admitida: %sq", "__is_signed ya no es una palabra clave a partir de este punto", "una dimensión de matriz debe tener un valor entero sin signo constante", @@ -3417,35 +3417,35 @@ "'if consteval' y 'if not consteval' no son estándar en este modo", "omitir '()' en un declarador lambda no es estándar en este modo", "no se permite una cláusula trailing-requires-clause cuando se omite la lista de parámetros lambda", - "se solicitó una partición no válida del módulo %sq", - "módulo %sq1 partición no definida (se considera que es %sq2) solicitada", + "%m partición no válida solicitada", + "%m partición no definida (se considera que es %sq) solicitada", null, null, - "módulo %sq1, posición de archivo %u1 (posición relativa %u2) solicitada para la partición %sq2, que desborda el final de su partición", - "módulo %sq1 posición de archivo %u1 (posición relativa %u2) solicitada para la partición %sq2, que está mal alineada con sus elementos de particiones", + "%m posición de archivo %u1 (posición relativa %u2) solicitada para la partición %sq, que desborda el final de su partición", + "%m posición de archivo %u1 (posición relativa %u2) solicitada para la partición %sq, que está mal alineada con sus elementos de particiones", "desde el subcampo %sq (posición relativa al nodo %u)", "desde la partición %sq elemento %u1 (posición de archivo %u2, posición relativa %u3)", "los atributos de las expresiones lambda son una característica de C++23", "el identificador %sq podría confundirse con uno visualmente similar que aparece %p", "este comentario contiene caracteres de control de formato Unicode sospechosos", "esta cadena contiene caracteres de control de formato Unicode que podrían dar lugar a un comportamiento inesperado en tiempo de ejecución", - "Se encontró %d1 advertencia suprimida al procesar el módulo %sq1", - "Se encontraron %d1 advertencias suprimidas al procesar el módulo %sq1", - "Se encontró un error suprimido %d1 al procesar el módulo %sq1", - "Se encontraron %d1 errores suprimidos al procesar el módulo %sq1", + "Se encontró %u advertencia suprimida al procesar %m", + "Se encontraron %u advertencias suprimidas al procesar %m", + "Se encontró %u error suprimido al procesar %m", + "Se encontraron %u errores suprimidos al procesar %m", "Incluido", "Suprimido", "una función miembro virtual no puede tener un parámetro 'this' explícito", "tomar la dirección de una función explícita \"this\" requiere un nombre completo", "la formación de la dirección de una función explícita 'this' requiere el operador '&'", "no se puede usar un literal de cadena para inicializar un miembro de matriz flexible", - "La representación IFC de la definición de la función %sq no es válida", + "la representación IFC de la definición de la función %sq no es válida", null, "no se usó un gráfico IFC UniLevel para especificar parámetros", "el gráfico de definición de parámetros IFC especificó %u1 parámetros, mientras que la declaración IFC especificó %u2 parámetros", "el gráfico de definición de parámetros IFC especificó %u1 parámetro, mientras que la declaración IFC especificó %u2 parámetros", "el gráfico de definición de parámetros IFC especificó %u1 parámetros, mientras que la declaración IFC especificó %u2 parámetro", - "Falta la representación IFC de la definición de la función %sq", + "falta la representación IFC de la definición de la función %sq", "el modificador de función no se aplica a la declaración de plantilla de miembro", "la selección de miembros implica demasiados tipos anónimos anidados", "no hay ningún tipo común entre los operandos", @@ -3467,7 +3467,7 @@ "un campo de bits con un tipo de enumeración incompleto o una enumeración opaca con un tipo base no válido", "intentó construir un elemento a partir de la partición IFC %sq mediante un índice en la partición IFC %sq2", "la partición %sq especificó su tamaño de entrada como %u1 cuando se esperaba %u2", - "se encontró un requisito IFC inesperado al procesar el módulo %sq1", + "se encontró un requisito IFC inesperado al procesar %m", "error de condición en la línea %d en %s1: %sq2", "la restricción atómica depende de sí misma", "La función \"noreturn\" tiene un tipo de valor devuelto distinto de nulo", @@ -3475,9 +3475,9 @@ "no se puede especificar un argumento de plantilla predeterminado en la definición de una plantilla de miembro fuera de su clase", "se encontró un nombre de identificador IFC no válido %sq durante la reconstrucción de entidades", null, - "el módulo %sq es un valor de ordenación no válido", + "%m valor de ordenación no válido", "una plantilla de función cargada desde un módulo IFC se analizó incorrectamente como %nd", - "no se pudo cargar una referencia de entidad IFC en el módulo %sq", + "no se pudo cargar una referencia de entidad IFC en %m", "desde la partición %sq elemento %u1 (posición de archivo %u2, posición relativa %u3)", "no se permiten designadores encadenados para un tipo de clase con un destructor no trivial", "una declaración de especialización explícita no puede ser una declaración \"friend\"", @@ -3506,9 +3506,9 @@ null, "no se puede evaluar un inicializador para un miembro de matriz flexible", "un inicializador de campo de bits predeterminado es una característica de C++20", - "demasiados argumentos en la lista de argumentos de plantilla en el módulo %sq", + "demasiados argumentos en la lista de argumentos de plantilla en %m", "detectado para el argumento de plantilla representado por el elemento %sq %u1 (posición de archivo %u2, posición relativa %u3)", - "demasiado pocos argumentos en la lista de argumentos de plantilla en el módulo %sq", + "demasiado pocos argumentos en la lista de argumentos de plantilla en %m", "detectado al procesar la lista de argumentos de plantilla representada por el elemento %sq %u1 (posición de archivo %u2, posición relativa %u3)", "la conversión del tipo de enumeración con ámbito %t no es estándar", "la desasignación no coincide con la clase de asignación (una es para una matriz y la otra no)", @@ -3517,8 +3517,8 @@ "__make_unsigned solo es compatible con tipos de enumeración y enteros no booleanos", "el nombre intrínseco %sq se tratará como un identificador normal desde aquí", "acceso al subobjeto no inicializado en el índice %d", - "El número de línea IFC (%u1) desborda el valor máximo permitido (%u2) del módulo %sq", - "el módulo %sq1 elemento solicitado %u de la partición %sq2, esta posición de archivo supera el valor máximo que se puede representar", + "El número de línea IFC (%u1) desborda el valor máximo permitido (%u2) %m", + "%m solicitó el elemento %u de la partición %sq, esta posición de archivo supera el valor máximo que se puede representar", "número de argumentos incorrecto.", "restricción en el candidato %n no satisfecho", "el número de parámetros de %n no coincide con la llamada", @@ -3551,7 +3551,7 @@ "no se puede procesar la %sq del archivo IFC", "no se admite la versión IFC %u1.%u2", "la arquitectura IFC %sq no es compatible con la arquitectura de destino actual", - "el módulo %sq1 solicita el índice %u de una partición no admitida correspondiente a %sq2", + "%m solicita el índice %u de una partición no admitida correspondiente a %sq", "el número de parámetro %d de %n tiene un tipo %t que no se puede completar", "el número de parámetro %d de %n tiene el tipo incompleto %t", "el número de parámetro %d de %n tiene el tipo abstracto %t", @@ -3570,7 +3570,7 @@ "reflexión incorrecta (%r) para la expresión splice", "%n ya se ha definido (definición anterior %p)", "objeto infovec no inicializado", - "value_of tipo %t1 no es compatible con la reflexión proporcionada (entidad con el tipo %t2)", + "la extracción de tipo %t1 no es compatible con la reflexión especificada (entidad con el tipo %t2)", "no se permite actualmente reflejar un conjunto de sobrecargas", "este elemento intrínseco requiere una reflexión para una instancia de plantilla", "tipos incompatibles %t1 y %t2 para el operador", @@ -3601,6 +3601,21 @@ "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", + "el primer argumento debe ser un puntero a un entero, enumeración o tipo de punto flotante admitido", + "No se pueden usar módulos de C++ al compilar varias unidades de traducción", + "Los módulos de C++ no se pueden usar con la característica de \"exportación\" anterior a C++11", + "no se admite el token de IFC %sq", + "el atributo \"pass_object_size\" solo es válido en parámetros de declaraciones de función", + "el argumento del atributo %sq %d1 debe ser un valor entre 0 y %d2", + "aquí se omite un ref-qualifier", + "tipo de elemento de vector NEON %t no válido", + "tipo de elemento NEON polivector %t no válido", + "tipo de elemento vectorial escalable %t no válido", + "número no válido de elementos de tupla para el tipo de vector escalable", + "un vector o polivector NEON debe tener 64 o 128 bits de ancho", + "no se permite el tipo sin tamaño %t", + "un objeto del tipo sin tamaño %t no se puede inicializar con un valor", + "índice de declaración null inesperado encontrado como parte del ámbito %u", "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", @@ -3629,5 +3644,17 @@ "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\"" -] + "la versión de Microsoft que se emula debe ser al menos 1943 para usar \"--ms_c++23\"", + "directorio de trabajo actual no válido: %s", + "El atributo \"cleanup\" dentro de una función constexpr no se admite actualmente", + "el atributo \"assume\" solo se puede aplicar a una instrucción null", + "suposición errónea", + "las plantillas de variables son una característica de C++14", + "no puede tomar la dirección de una función con un parámetro declarado con el atributo \"pass_object_size\"", + "todos los argumentos deben tener el mismo tipo", + "la comparación final fue %s1 %s2 %s3", + "demasiados argumentos para el atributo %sq", + "la cadena de mantisa no contiene un número válido", + "error de punto flotante durante la evaluación constante", + "constructor heredado %n ignorado para operaciones de tipo copiar/mover" +] \ No newline at end of file diff --git a/Extension/bin/messages/fr/messages.json b/Extension/bin/messages/fr/messages.json index 6d2f9b052..c50ff6d3c 100644 --- a/Extension/bin/messages/fr/messages.json +++ b/Extension/bin/messages/fr/messages.json @@ -163,7 +163,7 @@ "#pragma non reconnu", null, "impossible d'ouvrir le fichier temporaire %sq : %s2", - "le nom du répertoire de fichiers temporaires est trop long (%sq)", + null, "arguments insuffisants dans l'appel de fonction", "constante flottante non valide", "l'argument de type %t1 est incompatible avec le paramètre de type %t2", @@ -1828,7 +1828,7 @@ "une fonction 'auto' requiert un type de retour de fin", "un modèle de membre ne peut pas avoir un spécificateur pure", "littéral de chaîne trop long -- caractères en trop ignorés", - "l'option pour contrôler le mot clé nullptr peut être uniquement utilisée lors de la compilation de C++", + null, "std::nullptr_t converted en bool", null, null, @@ -3230,8 +3230,8 @@ "l'autre correspondance est %t", "l'attribut 'availability' utilisé ici est ignoré", "L'instruction de l'initialiseur de style C++20 dans une instruction 'for' basée sur une plage n'est pas standard dans ce mode", - "co_await peut s'appliquer uniquement à une instruction for basée sur une plage", - "impossible de déduire le type de la plage dans une boucle 'for' basée sur une plage", + "co_await ne peut s’appliquer qu’à une instruction « for » basée sur une plage", + "impossible de déduire le type de plage dans une instruction « for » basée sur une plage", "les variables inline sont une fonctionnalité C++17", "l'opérateur delete de destruction nécessite %t en tant que premier paramètre", "un opérateur delete de destruction ne peut pas avoir d'autres paramètres que std::size_t et std::align_val_t", @@ -3272,17 +3272,17 @@ "%sq n'est pas un en-tête importable", "impossible d'importer un module sans nom", "un module ne peut pas avoir de dépendance d'interface par rapport à lui-même", - "le module %sq a déjà été importé", + "%m a déjà été importé", "fichier de module", "fichier de module introuvable pour le module %sq", "impossible d'importer le fichier de module %sq", - "%s1 attendu, %s2 trouvé à la place", + null, "à l'ouverture du fichier de module %sq", "nom de partition inconnu %sq", - "fichier de module inconnu", - "fichier de module d'en-tête importable", - "fichier de module EDG", - "fichier de module IFC", + null, + null, + null, + null, "fichier de module inattendu", "le type du deuxième opérande %t2 doit avoir la même taille que %t1", "le type doit pouvoir être copié de façon triviale", @@ -3347,7 +3347,7 @@ "l'en-tête '%s' à importer est introuvable", "plusieurs fichiers dans la liste de fichiers de module correspondent à '%s'", "le fichier de module trouvé pour '%s' est destiné à un autre module", - "n'importe quel genre de fichier de module", + null, "impossible de lire le fichier de module", "la fonction intégrée n'est pas disponible, car le type char8_t n'est pas pris en charge avec les options actuelles", null, @@ -3368,7 +3368,7 @@ "impossible d'interpréter la disposition des bits pour cette cible de compilation", "aucun opérateur correspondant pour l'opérateur IFC %sq", "aucune convention d'appel correspondante pour la convention d'appel IFC %sq", - "le module %sq contient des constructions non prises en charge", + "%m contient des constructions non prises en charge", "construction IFC non prise en charge : %sq", "__is_signed n'est plus un mot clé à partir de ce point", "une dimension de tableau doit avoir une valeur d'entier non signé constante", @@ -3417,35 +3417,35 @@ "« if consteval » et « if not consteval » ne sont pas standard dans ce mode", "l’omission de « () » dans un déclarateur lambda n’est pas standard dans ce mode", "une clause requires de fin n’est pas autorisée lorsque la liste de paramètres lambda est omise", - "module %sq partition non valide demandée", - "module %sq1 partition non définie (on pense qu’il s’agirait de %sq2) demandée", + "partition non valide de %m demandée", + "partition non définie de %m (supposée être %sq) demandée", null, null, - "module %sq1 file position %u1 (position relative %u2) demandée pour la partition %sq2 - qui dépasse la fin de sa partition", - "module %sq1 position de fichier %u1 (position relative %u2) demandée pour la partition %sq2, qui est mal alignée avec ses éléments de partitions", + "position %u1 (position relative %u2) du fichier de %m demandée pour la partition %sq : qui dépasse la fin de sa partition", + "position %u1 (position relative %u2) du fichier de %m demandée pour la partition %sq : qui est mal alignée avec ses éléments de partitions", "à partir du sous-champ %sq (position par rapport au nœud %u)", "à partir de la partition %sq, élément %u1 (position de fichier %u2, position relative %u3)", "les attributs des expressions lambdas sont une fonctionnalité C++23", "l’identificateur %sq peut être confondu avec un identificateur visuellement similaire qui apparaît %p", "ce commentaire contient des caractères de contrôle de mise en forme Unicode suspects", "cette chaîne contient des caractères de contrôle de mise en forme Unicode qui peuvent entraîner un comportement d’exécution inattendu", - "%d1 avertissement supprimé rencontré lors du traitement du module %sq1", - "%d1 avertissements supprimés rencontrés lors du traitement du module %sq1", - "%d1 erreur supprimé rencontré lors du traitement du module %sq1", - "%d1 erreurs supprimées rencontrées lors du traitement du module %sq1", + "l’avertissement supprimé %u a été rencontré lors du traitement de %m", + "des avertissements supprimés %u ont été rencontrés lors du traitement de %m", + "l’erreur supprimée %u a été rencontrée lors du traitement de %m", + "%u erreurs supprimées ont été rencontrées lors du traitement de %m", "Y compris", "Supprimé", "une fonction membre virtuelle ne peut pas avoir un paramètre « this » explicite", "la prise de l’adresse d’une fonction « this » explicite nécessite un nom qualifié", "la création de l’adresse d’une fonction « this » explicite nécessite l’opérateur '&'", "impossible d’utiliser un littéral de chaîne pour initialiser un membre de tableau flexible", - "La représentation IFC de la définition de la fonction %sq n’est pas valide.", + "la représentation IFC de la définition de la fonction %sq n’est pas valide", null, "un graphique IFC UniLevel n’a pas été utilisé pour spécifier des paramètres.", "%u1 paramètres ont été spécifiés par le graphique de définition de paramètres IFC alors que %u2 paramètres ont été spécifiés par la déclaration IFC", "%u1 paramètre a été spécifié par le graphique de définition de paramètres IFC alors que %u2 paramètres ont été spécifiés par la déclaration IFC", "%u1 paramètres ont été spécifiés par le graphique de définition de paramètres IFC alors que %u2 paramètre a été spécifié par la déclaration IFC", - "La représentation IFC de la définition de la fonction %sq est manquante.", + "la représentation IFC de la définition de la fonction %sq est absente", "Le modificateur de fonction ne s'applique pas à la déclaration du modèle de membre.", "la sélection de membre implique un trop grand nombre de types anonymes imbriqués", "il n’existe aucun type commun entre les opérandes", @@ -3467,7 +3467,7 @@ "soit un champ de bits avec un type enum incomplet, soit une énumération opaque avec un type de base non valide", "a tenté de construire un élément à partir d’une partition IFC %sq à l’aide d’un index dans la partition IFC %sq2.", "le %sq de partition a spécifié sa taille d’entrée %u1 alors que %u2 était attendu", - "une exigence IFC inattendue s’est produite lors du traitement du module %sq1.", + "une exigence IFC inattendue a été rencontrée lors du traitement de %m", "échec de la condition à la ligne %d dans %s1 : %sq2", "la contrainte atomique dépend d’elle-même.", "La fonction 'noreturn' a un type de retour non vide", @@ -3475,9 +3475,9 @@ "impossible de spécifier un argument template par défaut sur la définition d'un membre de modèle en dehors de sa classe", "nom d’identificateur IFC non valide %sq rencontré lors de la reconstruction de l’entité", null, - "le module %sq valeur de tri non valide", + "valeur de tri non valide de %m", "un modèle de fonction chargé à partir d’un module IFC a été analysé de manière incorrecte en tant que %nd", - "échec du chargement d’une référence d’entité IFC dans le module %sq", + "impossible de charger une référence d’entité IFC dans %m", "à partir de la partition %sq, élément %u1 (position de fichier %u2, position relative %u3)", "les désignateurs chaînés ne sont pas autorisés pour un type classe avec un destructeur non trivial", "une déclaration de spécialisation explicite ne peut pas être une déclaration friend", @@ -3506,9 +3506,9 @@ null, "ne peut pas évaluer un initialiseur pour un membre de tableau flexible", "un initialiseur de champ de bits par défaut est une fonctionnalité C++20", - "beaucoup d’arguments dans la liste d’arguments du modèle du module %sq", + "trop d’arguments dans la liste d’arguments du modèle dans %m", "détecté pour l’argument de modèle représenté par l’élément %sq %u1 (position de fichier %u2, position relative %u3)", - "nombre insuffisant d’arguments dans la liste d’arguments du modèle du module %sq", + "nombre insuffisant d’arguments dans la liste d’arguments du modèle dans %m", "détecté lors du traitement de la liste d’arguments de modèle représentée par l’élément %sq %u1 (position de fichier %u2, position relative %u3)", "conversion à partir du type d’énumération étendue %t n’est pas standard", "la désallocation ne correspond pas au genre d’allocation (l’un est pour un tableau et l’autre non)", @@ -3517,8 +3517,8 @@ "__make_unsigned n’est compatible qu’avec les types entier et enum non bool", "le nom intrinsèque %sq sera considéré comme un identificateur ordinaire à partir d’ici", "accès au sous-objet non initialisé à l’index %d", - "Le numéro de ligne IFC (%u1) dépasse le module de valeur maximale autorisée (%u2) %sq", - "module %sq1 élément demandé %u de partition %sq2, cette position de fichier dépasse la valeur maximale pouvant être représentée", + "le numéro de ligne IFC (%u1) dépasse le %m de la valeur maximale autorisée (%u2)", + "%m a demandé l’élément %u de la partition %sq, cette position de fichier dépasse la valeur maximale pouvant être représentée", "nombre d'arguments erroné", "contrainte sur le candidat %n pas satisfaite", "nombre de paramètres de %n ne correspond pas à l’appel", @@ -3551,7 +3551,7 @@ "Le fichier IFC %sq ne peut pas être traité", "La version IFC %u1.%u2 n'est pas prise en charge", "L'architecture IFC %sq est incompatible avec l'architecture cible actuelle", - "le module %sq1 demande l'index %u d'une partition non prise en charge correspondant à %sq2", + "%m demande l’index %u d’une partition non prise en charge qui correspond à %sq", "le paramètre numéro %d de %n a un type %t qui ne peut pas être complété", "le numéro de paramètre %d de %n a un type incomplet %t", "le numéro de paramètre %d de %n a un type abstrait %t", @@ -3570,7 +3570,7 @@ "réflexion incorrecte (%r) pour la splice d’expression", "%n a déjà été défini (définition précédente %p)", "objet infovec non initialisé", - "value_of type %t1 n'est pas compatible avec la réflexion donnée (entité de type %t2)", + "l’extrait du type %t1 n’est pas compatible avec la réflexion indiquée (entité de type %t2)", "refléter un ensemble de surcharge n'est actuellement pas autorisé", "cette intrinsèque nécessite une réflexion pour une instance de modèle", "types incompatibles %t1 et %t2 pour l'opérateur", @@ -3601,6 +3601,21 @@ "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", + "le premier argument doit être un pointeur vers un entier, une enum ou un type de point flottant pris en charge", + "les modules C++ ne peuvent pas être utilisés lors de la compilation de plusieurs unités de traduction", + "les modules C++ ne peuvent pas être utilisés avec la fonctionnalité « export » préalable à C++11", + "le jeton IFC %sq n’est pas pris en charge", + "l’attribut « pass_object_size » n’est valide que sur les paramètres des déclarations de fonction", + "l’argument de l’attribut %sq, %d1, doit être une valeur comprise entre 0 et %d2", + "un ref-qualifier ici est ignoré", + "type d’élément vectoriel NEON %t non valide", + "type d’élément polyvectoriel NEON %t non valide", + "type d’élément vectoriel évolutif %t non valide", + "nombre d’éléments de tuple non valide pour le type de vecteur évolutif", + "un vecteur ou polyvecteur NEON doit avoir une largeur de 64 ou 128 bits", + "le type %t sans taille n’est pas autorisé", + "un objet de type %t sans taille ne peut pas être initialisé par une valeur", + "index de déclaration nulle inattendu détecté dans le cadre de l’étendue %u", "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", @@ -3629,5 +3644,17 @@ "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 »" -] + "la version émulée Microsoft doit être au moins la version 1943 pour permettre l'utilisation de « --ms_c++23 »", + "répertoire de travail actif non valide : %s", + "l’attribut « cleanup » dans une fonction constexpr n’est pas actuellement pris en charge", + "l’attribut « assume » ne peut s’appliquer qu’à une instruction nulle", + "échec de l’hypothèse", + "les modèles variables sont une fonctionnalité de C++14", + "impossible de prendre l’adresse d’une fonction avec un paramètre déclaré avec l’attribut « pass_object_size »", + "tous les arguments doivent être du même type", + "la comparaison finale était %s1 %s2 %s3", + "trop d’arguments pour l’attribut %sq", + "la chaîne de mantisse ne contient pas de nombre valide", + "erreur de point flottant lors de l’évaluation constante", + "le constructeur d’héritage %n a été ignoré pour l’opération qui ressemble à copier/déplacer" +] \ No newline at end of file diff --git a/Extension/bin/messages/it/messages.json b/Extension/bin/messages/it/messages.json index 4920fe2bb..95fba4f12 100644 --- a/Extension/bin/messages/it/messages.json +++ b/Extension/bin/messages/it/messages.json @@ -163,7 +163,7 @@ "direttiva #pragma non riconosciuta", null, "impossibile aprire il file temporaneo %sq: %s2", - "il nome della directory dei file temporanei è troppo lungo (%sq)", + null, "argomenti insufficienti nella chiamata di funzione", "costante mobile non valida", "l'argomento di tipo %t1 è incompatibile con il parametro di tipo %t2", @@ -1828,7 +1828,7 @@ "con la funzione 'auto' è richiesto un tipo restituito finale", "un modello di membro non può avere un identificatore pure", "valore letterale stringa troppo lungo -- caratteri in eccesso ignorati", - "è possibile utilizzare l'opzione per controllare la parola chiave nullptr solo quando si esegue la compilazione nel linguaggio C++", + null, "std::nullptr_t convertito in bool", null, null, @@ -3230,8 +3230,8 @@ "l'altra corrispondenza è %t", "l'attributo 'availability' usato in questo punto viene ignorato", "l'istruzione di inizializzatore di tipo C++20 in un'istruzione 'for' basata su intervallo non è standard in questa modalità", - "co_await può essere applicato solo a un'istruzione for basata su intervallo", - "non è possibile dedurre il tipo dell'intervallo nel ciclo 'for' basato su intervallo", + "co_await può essere applicato solo a un'istruzione \"for\" basata su intervallo", + "non è possibile dedurre il tipo dell'intervallo nell'istruzione \"for\" basata su intervallo", "le variabili inline sono una funzionalità di C++17", "per l'eliminazione dell'operatore di eliminazione definitiva è necessario specificare %t come primo parametro", "per l'eliminazione di un operatore di eliminazione definitiva non è possibile specificare parametri diversi da std::size_t e std::align_val_t", @@ -3272,17 +3272,17 @@ "%sq non è un'intestazione importabile", "non è possibile importare un modulo senza nome", "un modulo non può avere una dipendenza di interfaccia impostata su se stesso", - "il modulo %sq è già stato importato", + "%m è già stato importato", "file di modulo", "non è stato possibile trovare il file di modulo per il modulo %sq", "non è stato possibile importare il file di modulo %sq", - "è previsto %s1, ma è stato trovato %s2", + null, "durante l'apertura del file di modulo %sq", "il nome di partizione %sq è sconosciuto", - "un file di modulo sconosciuto", - "un file di modulo intestazione importabile", - "un file di modulo EDG", - "un file di modulo IFC", + null, + null, + null, + null, "un file di modulo imprevisto", "il tipo del secondo operando %t2 deve avere le stesse dimensioni di %t1", "il tipo deve essere facilmente copiabile", @@ -3347,7 +3347,7 @@ "non è possibile trovare l'intestazione '%s' da importare", "più di un file nell'elenco file di modulo corrisponde a '%s'", "il file di modulo trovato per '%s' è riferito a un modulo diverso", - "qualsiasi tipo di modulo", + null, "non è possibile leggere il file del modulo", "la funzione predefinita non è disponibile perché il tipo char8_t non è supportato con le opzioni correnti", null, @@ -3368,7 +3368,7 @@ "non è possibile interpretare il layout di bit per questa destinazione di compilazione", "non esiste alcun operatore corrispondente per l'operatore IFC %sq", "non esiste alcuna convenzione di chiamata corrispondente per la convenzione di chiamata IFC %sq", - "il modulo %sq contiene costrutti non supportati", + "%m contiene costrutti non supportati", "costrutto IFC non supportato: %sq", "__is_signed non è più una parola chiave a partire da questo punto", "una dimensione di matrice deve avere un valore intero senza segno costante", @@ -3417,35 +3417,35 @@ "'if consteval' e 'if not consteval' non sono standard in questa modalità", "l'omissione di '()' in un dichiaratore lambda non è standard in questa modalità", "una clausola requires finale non è consentita quando l'elenco di parametri lambda viene omesso", - "modulo %sq partizione non valida richiesta", - "richiesta partizione non definita del modulo %sq1 (che si ritiene sia %sq2)", + "%m partizione non valida richiesta", + "%m partizione non definita (ritenuta %sq) richiesta", null, null, - "modulo %sq1 posizione file %u1 (posizione relativa %u2) richiesto per la partizione %sq2, che causa l'overflow della fine della partizione", - "modulo %sq1 posizione file %u1 (posizione relativa %u2) richiesto per la partizione %sq2, che non è allineata agli elementi delle partizioni", + "%m posizione file %u1 (posizione relativa %u2) richiesta per la partizione %sq, che causa l'overflow della fine della partizione", + "%m posizione file %u1 (posizione relativa %u2) richiesta per la partizione %sq, che non è allineata agli elementi delle partizioni", "dal sottocampo %sq (posizione relativa al nodo %u)", "dalla partizione %sq elemento %u1 (posizione file %u2, posizione relativa %u3)", "gli attributi nelle espressioni lambda sono una funzionalità di C++23", "l'identificatore %sq potrebbe essere confuso con un identificatore visivamente simile visualizzato %p", "questo commento contiene caratteri di controllo di formattazione Unicode sospetti", "questa stringa contiene caratteri di controllo di formattazione Unicode che potrebbero causare un comportamento di runtime imprevisto", - "%d1 avviso eliminato durante l'elaborazione del modulo %sq1", - "%d1 avvisi eliminati rilevati durante l'elaborazione del modulo %sq1", - "Errore %d1 eliminato durante l'elaborazione del modulo %sq1", - "%d1 errori eliminati rilevati durante l'elaborazione del modulo %sq1", + "%u avviso eliminato rilevato durante l'elaborazione di %m", + "%u avvisi eliminati rilevati durante l'elaborazione di %m", + "%u errore eliminato rilevato durante l'elaborazione di %m", + "%u errori eliminati rilevati durante l'elaborazione di %m", "compreso", "eliminato", "una funzione membro virtuale non può avere un parametro 'this' esplicito", "l'acquisizione dell'indirizzo di una funzione esplicita 'this' richiede un nome qualificato", "per formare l'indirizzo di una funzione esplicita 'this' è necessario l'operatore '&'", "impossibile utilizzare un valore letterale stringa per inizializzare un membro di matrice flessibile", - "La rappresentazione IFC della definizione della funzione %sq non è valida", + "la rappresentazione IFC della definizione della funzione %sq non è valida", null, "un grafico IFC UniLevel non è stato usato per specificare i parametri", "%u1 parametri specificati dal grafico di definizione dei parametri IFC mentre %u2 parametri sono stati specificati dalla dichiarazione IFC", "%u1 parametro è stato specificato dal grafico di definizione del parametro IFC mentre %u2 parametri sono stati specificati dalla dichiarazione IFC", "%u1 parametri sono stati specificati dal grafico di definizione del parametro IFC mentre %u2 parametro è stato specificato dalla dichiarazione IFC", - "Manca la rappresentazione IFC della definizione della funzione %sq", + "manca la rappresentazione IFC della definizione della funzione %sq", "il modificatore di funzione non si applica alla dichiarazione del modello di membro", "la selezione dei membri implica troppi tipi anonimi annidati", "non esiste alcun tipo comune tra gli operandi", @@ -3467,7 +3467,7 @@ "o un campo di bit con un tipo di enumerazione incompleto o un'enumerazione opaca con un tipo di base non valido", "ha tentato di costruire un elemento dalla partizione IFC %sq utilizzando un indice nella partizione IFC %sq2", "la partizione %sq ha specificato la dimensione della voce come %u1 mentre era previsto %u2", - "Durante l'elaborazione del modulo %sq1 è stato riscontrato un requisito IFC imprevisto.", + "durante l'elaborazione di %m è stato riscontrato un requisito IFC imprevisto", "condizione fallita alla riga %d in %s1: %sq2", "il vincolo atomico dipende da se stesso", "La funzione 'noreturn' ha un tipo restituito non void", @@ -3475,9 +3475,9 @@ "non è possibile specificare un argomento di modello predefinito nella definizione di un modello di membro all'esterno della relativa classe", "nome identificatore IFC %sq non valido rilevato durante la ricostruzione dell'entità", null, - "il modulo %sq valore di ordinamento non valido", + "valore di ordinamento %m non valido", "un modello di funzione caricato da un modulo IFC è stato analizzato erroneamente come %nd", - "non è stato possibile caricare un riferimento all'entità IFC nel modulo %sq", + "non è possibile caricare un riferimento all'entità IFC in %m", "dalla partizione %sq elemento %u1 (posizione file %u2, posizione relativa %u3)", "gli indicatori concatenati non sono consentiti per un tipo di classe con un distruttore non banale", "una dichiarazione di specializzazione esplicita non può essere una dichiarazione Friend", @@ -3506,9 +3506,9 @@ null, "non è possibile valutare un inizializzatore per un membro di matrice flessibile", "un inizializzatore di campo di bit predefinito è una funzionalità di C++20", - "troppi argomenti nell'elenco degli argomenti del modello nel modulo %sq", + "troppi argomenti nell'elenco degli argomenti del modello in %m", "rilevato per l'argomento del modello rappresentato dall’elemento %sq %u1 (posizione file %u2, posizione relativa %u3)", - "argomenti insufficienti nell'elenco degli argomenti del modello nel modulo %sq", + "argomenti insufficienti nell'elenco degli argomenti del modello in %m", "rilevato durante l'elaborazione dell'elenco di argomenti del modello rappresentato dall’elemento %sq %u1 (posizione file %u2, posizione relativa %u3)", "la conversione dal tipo di enumerazione con ambito %t non è conforme allo standard", "la deallocazione non corrisponde al tipo di allocazione (una è per una matrice e l'altra no)", @@ -3517,8 +3517,8 @@ "__make_unsigned è compatibile solo con i tipi di numero intero ed enumerazione non booleani", "il nome intrinseco %sq verrà trattato come un identificatore ordinario a partire da qui", "accesso a un sotto-oggetto non inizializzato all'indice %d", - "numero di riga IFC (%u1) che causa l’overflow del valore massimo consentito (%u2) del modulo %sq", - "il modulo %sq1 ha richiesto l'elemento %u della partizione %sq2. Questa posizione del file supera il valore massimo rappresentabile", + "numero di riga IFC (%u1) che causa l’overflow del valore massimo consentito (%u2) per %m", + "%m ha richiesto l'elemento %u della partizione %sq. Questa posizione del file supera il valore massimo rappresentabile", "numero errato di argomenti", "vincolo sul candidato %n non soddisfatto", "il numero di parametri di %n non corrisponde alla chiamata", @@ -3551,7 +3551,7 @@ "Non è possibile elaborare il file IFC %sq", "la versione IFC %u1.%u2 non è supportata", "l'architettura IFC %sq non è compatibile con l'architettura di destinazione corrente", - "il modulo %sq1 richiede l'indice %u di una partizione non supportata corrispondente a %sq2", + "%m richiede l'indice %u di una partizione non supportata corrispondente a %sq", "il numero di parametro %d di %n ha il tipo %t che non può essere completato", "il numero di parametro %d di %n ha il tipo incompleto %t", "il numero di parametro %d di %n ha il tipo astratto %t", @@ -3570,7 +3570,7 @@ "reflection non valida (%r) per la splice dell'espressione", "%n è già stato definito (definizione precedente %p)", "Oggetto infovec non inizializzato", - "value_of tipo %t1 non è compatibile con la reflection specificata (entità con tipo %t2)", + "il tipo di estrazione %t1 non è compatibile con la reflection specificata (entità con tipo %t2)", "la reflection di un set di overload non è attualmente consentita", "questo intrinseco richiede una reflection per un'istanza del modello", "tipi incompatibili %t1 e %t2 per l'operatore", @@ -3601,6 +3601,21 @@ "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", + "il primo argomento deve essere un puntatore a un numero intero, un'enumerazione o un tipo a virgola mobile supportato", + "non è possibile usare moduli C++ durante la compilazione di più unità di conversione", + "non è possibile usare i moduli C++ con la funzionalità \"export\" precedente a C++11", + "il token IFC %sq non è supportato", + "l'attributo \"pass_object_size\" è valido solo per i parametri delle dichiarazioni di funzione", + "l'argomento dell'attributo %sq %d1 deve essere un valore compreso tra 0 e %d2", + "un ref-qualifier qui viene ignorato", + "tipo di elemento vettore NEON %t non valido", + "tipo di elemento polivettore NEON %t non valido", + "tipo di elemento vettore scalabile %t non valido", + "numero non valido di elementi di tupla per il tipo di vettore scalabile", + "un vettore o un polivettore NEON deve avere una larghezza di 64 o 128 bit", + "il tipo senza dimensione %t non è consentito", + "un oggetto del tipo senza dimensione %t non può essere inizializzato dal valore", + "trovato indice di dichiarazione Null imprevisto come parte dell'ambito %u", "è 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", @@ -3629,5 +3644,17 @@ "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'" -] + "la versione di Microsoft da emulare deve essere almeno 1943 per usare '--ms_c++23'", + "directory di lavoro corrente non valida: %s", + "l'attributo \"cleanup\" all'interno di una funzione constexpr non è attualmente supportato", + "l'attributo \"assume\" può essere applicato solo a un'istruzione Null", + "presupposto non riuscito", + "i modelli di variabile sono una funzionalità di C++14", + "non è possibile accettare l'indirizzo di una funzione con un parametro dichiarato con l'attributo \"pass_object_size\"", + "tutti gli argomenti devono avere lo stesso tipo", + "confronto finale: %s1 %s2 %s3", + "troppi argomenti per l'attributo %sq", + "la stringa mantissa non contiene un numero valido", + "errore di virgola mobile durante la valutazione costante", + "eredità del costruttore %n ignorata per l'operazione analoga a copia/spostamento" +] \ No newline at end of file diff --git a/Extension/bin/messages/ja/messages.json b/Extension/bin/messages/ja/messages.json index 076f95c69..3ebcd9003 100644 --- a/Extension/bin/messages/ja/messages.json +++ b/Extension/bin/messages/ja/messages.json @@ -163,7 +163,7 @@ "認識されない #pragma", null, "一時ファイル %sq を開けませんでした: %s2", - "一時ファイルのディレクトリの名前が長すぎます (%sq)", + null, "関数呼び出しの引数が少なすぎます", "無効な浮動小数点定数", "型 %t1 の引数は型 %t2 のパラメーターと互換性がありません", @@ -1828,7 +1828,7 @@ "'auto' 関数には後続の戻り値の型が必要です", "メンバー テンプレートは純粋指定子を持つことはできません", "リテラル文字列が長すぎます -- 超過した文字は無視されました", - "nullptr キーワードを制御するためのオプションは C++ をコンパイルするときにのみ使用できます", + null, "std::nullptr_t がブール型に変換されました", null, null, @@ -3230,8 +3230,8 @@ "もう一方の一致は %t です", "ここで使用されている 'availability' 属性は無視されます", "範囲ベースの 'for' ステートメントにある C++20 形式の初期化子ステートメントは、このモードでは非標準です", - "co_await は範囲ベースの for ステートメントにのみ適用できます", - "範囲ベースの 'for' ループの範囲の種類を推測できません", + "co_await は範囲ベースの \"for\" ステートメントにのみ適用できます", + "範囲ベースの \"for\" ステートメントの範囲の種類を推測できません", "インライン変数は C++17 の機能です", "destroying operator delete には、最初のパラメーターとして %t が必要です", "destroying operator delete に、std::size_t および std::align_val_t 以外のパラメーターを指定することはできません", @@ -3272,17 +3272,17 @@ "%sq は、インポート可能なヘッダーではありません", "名前が指定されていないモジュールをインポートすることはできません", "モジュールはそれ自体に対するインターフェイス依存関係を持つことはできません", - "モジュール %sq は既にインポートされています", + "%m は既にインポートされています", "モジュール ファイル", "モジュール %sq のモジュール ファイルが見つかりませんでした", "モジュール ファイル %sq をインポートできませんでした", - "%s1 が必要ですが、%s2 が見つかりました", + null, "モジュール ファイル %sq を開くとき", "不明なパーティション名 %sq", - "不明なモジュール ファイル", - "インポート可能なヘッダー モジュール ファイル", - "EDG モジュール ファイル", - "IFC モジュール ファイル", + null, + null, + null, + null, "予期しないモジュール ファイル", "第 2 オペランド %t2 の型は、%t1 と同じサイズである必要があります", "型は普通にコピー可能である必要があります", @@ -3347,7 +3347,7 @@ "インポートするヘッダー '%s' が見つかりません", "モジュール ファイル リスト内の複数のファイルが '%s' と一致しています", "'%s' に対して見つかったモジュール ファイルは別のモジュール用です", - "あらゆる種類のモジュール ファイル", + null, "モジュール ファイルを読み取れません", "現在のオプションで char8_t 型がサポートされていないので、ビルトイン関数を使用できません", null, @@ -3368,7 +3368,7 @@ "このコンパイル ターゲットのビット レイアウトを解釈できません。", "IFC 演算子 %sq に対応する演算子がありません", "IFC 呼び出し規則 %sq に対応する呼び出し規則がありません", - "モジュール %sq にはサポートされていないコンストラクトが含まれています", + "%m にはサポートされていないコンストラクトが含まれています", "サポートされていない IFC コンストラクト: %sq", "__is_signed はこのポイントからキーワードではなくなりました", "配列の次元には定数の符号なし整数値を指定する必要があります", @@ -3417,22 +3417,22 @@ "このモードでは、'if consteval' と 'if not consteval' は標準ではありません", "ラムダ宣言子での '()' の省略は、このモードでは非標準です", "ラムダ パラメーター リストが省略されている場合、末尾の Requires 句は許可されません", - "モジュール %sq 無効なパーティションが要求されました", - "モジュール %sq1 個の未定義のパーティション (%sq2 と推定) が要求されました", + "%m の無効なパーティションが要求されました", + "%m の未定義のパーティション (%sq と推定) が要求されました", null, null, - "モジュール %sq1 ファイル位置 %u1 (相対位置 %u2) がパーティション %sq2 に対して要求されました - これはそのパーティションの終点をオーバーフローしています", - "モジュール %sq1 ファイル位置 %u1 (相対位置 %u2) がパーティション %sq2 に対して要求されました - これはそのパーティション要素の整列誤りです", + "%m ファイル位置 %u1 (相対位置 %u2) がパーティション %sq に対して要求されました - これはそのパーティションの終点をオーバーフローしています", + "%m ファイル位置 %u1 (相対位置 %u2) がパーティション %sq に対して要求されました - これはそのパーティション要素の整列誤りです", "サブフィールド %sq から (ノード %u への相対位置)", "パーティション元 %sq 要素 %u1 (ファイル位置 %u2、相対位置 %u3)", "ラムダの属性は C++23 機能です", "識別子 %sq は、%p に表示される視覚的に類似したものと混同される可能性があります", "このコメントには、不審な Unicode 書式設定制御文字が含まれています", "この文字列には、予期しない実行時の動作を引き起こす可能性のある Unicode 形式の制御文字が含まれています", - "%d1 個の抑制された警告が、モジュール %sq1 の処理中に発生しました", - "%d1 個の抑制された警告が、モジュール %sq1 の処理中に発生しました", - "%d1 個の抑制されたエラーが、モジュール %sq1 の処理中に発生しました", - "%d1 個の抑制されたエラーが、モジュール %sq1 の処理中に発生しました", + "%u 個の抑制された警告が、%m の処理中に発生しました", + "%u 個の抑制された警告が、%m の処理中に発生しました", + "%u 個の抑制されたエラーが、%m の処理中に発生しました", + "%u 個の抑制されたエラーが、%m の処理中に発生しました", "含む", "抑制", "仮想メンバー関数は、明示的な 'this' パラメーターを持つことはできません", @@ -3467,7 +3467,7 @@ "不完全な列挙型を持つビット フィールド、または無効な基本型を持つ不透明な列挙のいずれかです", "IFC パーティション %sq2 へのインデックスを使用して、IFC パーティション %sq から要素を構築しようとしました", "パーティション %sq は、%u2 が予期されたときにエントリ サイズを %u1 として指定されました", - "モジュール %sq1 の処理中に予期しない IFC 要件が発生しました", + "%m の処理中に予期しない IFC 要件が発生しました", "条件が行 %d で失敗しました (%s1: %sq2)", "アトミック制約は、それ自体に依存します", "'noreturn' 関数に void 以外の戻り値の型があります", @@ -3475,9 +3475,9 @@ "クラス外のメンバー テンプレートの定義では、既定のテンプレート引数を指定できません", "エンティティの再構築中に無効な IFC 識別子名 %sq が見つかりました", null, - "モジュール %sq は無効な並べ替え値です", + "%m は無効な並べ替え値です", "IFC モジュールから読み込まれた関数テンプレートが誤って %nd として解析されました", - "モジュール %sq で IFC エンティティ参照を読み込めませんでした", + "%m で IFC エンティティ参照を読み込めませんでした", "パーティション元 %sq 要素 %u1 (ファイル位置 %u2、相対位置 %u3)", "非単純デストラクターを持つクラス型では、チェーンされた指定子は許可されていません", "明示的特殊化宣言はフレンド宣言にできない場合があります", @@ -3506,9 +3506,9 @@ null, "柔軟な配列メンバーの初期化子を評価できません", "既定のビット フィールド初期化子は C++20 機能です", - "モジュール %sq 内のテンプレート引数リストの引数が多すぎます", + "%m 内のテンプレート引数リストの引数が多すぎます", "%sq 要素 %u1 (ファイル位置 %u2、相対位置 %u3) で表されるテンプレート引数に対して検出されました", - "モジュール %sq 内のテンプレート引数リストの引数が少なすぎます", + "%m 内のテンプレート引数リストの引数が少なすぎます", "%sq 要素 %u1 (ファイル位置 %u2,、相対位置 %u3) で表されるテンプレート引数リストの処理中に検出されました", "スコープを持つ列挙型 %t からの変換は非標準です", "割り当て解除の種類が一致割り当ての種類と一致しません (一方が配列用で、もう一方が配列用ではありません)", @@ -3517,8 +3517,8 @@ "__make_unsigned はブール型以外の整数型および列挙型とのみ互換性があります", "組み込み名前 %sq は、ここから通常の識別子として扱われます", "インデックス %d にある初期化されていないサブオブジェクトへのアクセス", - "IFC 行番号 (%u1) が許可された最大値 (%u2) モジュール %sq をオーバーフローしています", - "モジュール %sq1 が要素 %u (パーティション %sq2) を要求しました。このファイルの位置は、表現可能な最大値を超えています", + "IFC 行番号 (%u1) が、許可された最大値 (%u2) %m をオーバーフローしています", + "%m が要素 %u (パーティション %sq) を要求しました。このファイルの位置は、表現可能な最大値を超えています", "引数の数が正しくありません", "候補に対する制約 %n が満たされていません", "%n のパラメーター数が呼び出しと一致しません", @@ -3551,7 +3551,7 @@ "IFC ファイル %sq を処理できません", "IFC バージョン %u1.%u2 はサポートされていません", "IFC アーキテクチャ %sq は現在のターゲット アーキテクチャと互換性がありません", - "モジュール %sq1 は、インデックス %u (%sq2 に対応するサポートされていないパーティションのインデックス) を要求します。", + "%m は、インデックス %u (%sq に対応するサポートされていないパーティションのインデックス) を要求します", "%n のパラメーター番号 %d に、完了できない型 %t があります", "%n のパラメーター番号 %d に不完全な型 %t があります", "%n のパラメーター番号 %d は抽象型 %t", @@ -3570,7 +3570,7 @@ "式の継ぎ目のリフレクション (%r) が正しくありません", "%n は既に定義されています (前の定義 %p)", "infovec オブジェクトが初期化されていません", - "value_of 型 %t1 は、指定されたリフレクション (型 %t2 のエンティティ) と互換性がありません", + "型 %t1 の抽出は、指定されたリフレクション (型 %t2 のエンティティ) と互換性がありません", "オーバーロード セットのリフレクションは現在許可されていません", "この組み込み関数には、テンプレート インスタンスのリフレクションが必要です", "演算子の型 %t1 と %t2 に互換性がありません", @@ -3601,6 +3601,21 @@ "現在の翻訳単位のヘッダー ユニットを作成できませんでした", "現在の翻訳単位は、現在ヘッダー ユニットに書き込むことができない 1 つ以上の機能を使用します", "'explicit(bool)' は C++20 機能です", + "最初の引数は、整数、enum、またはサポートされている浮動小数点型へのポインターである必要があります", + "複数の翻訳単位をコンパイルする場合、C++ モジュールは使用できません", + "C++ モジュールは、C++11 より前の \"export\" 機能では使用できません", + "IFC トークン %sq はサポートされていません", + "\"pass_object_size\" 属性は、関数宣言のパラメーターでのみ有効です", + "%sq 属性 %d1 の引数は 0 から %d2 の間の値である必要があります", + "ここでの ref-qualifier は無視されます", + "NEON ベクター要素の型 %t は無効です", + "NEON ポリベクター要素の型 %t は無効です", + "スケーラブル ベクター要素の型 %t は無効です", + "スケーラブル ベクター型のタプル要素の数が無効です", + "NEON ベクターまたはポリベクターは、幅が 64 ビットまたは 128 ビットである必要があります", + "サイズのない型 %t は使用できません", + "サイズのない型 %t のオブジェクトを値で初期化できません", + "予期しない null 宣言インデックスがスコープ %u の一部として見つかりました", "ファイル %sq を参照するモジュール ファイル マップにモジュール名を指定する必要があります", "IFC パーティション %sq のノードが必要な場所で null インデックス値を受け取りました", "%nd に型 %t を指定することはできません", @@ -3629,5 +3644,17 @@ "'ext_vector_type' 属性は、整数型または浮動小数点型にのみ適用できます", "複数の指定子を同じ共用体にすることはできません", "テスト メッセージ", - "'--ms_c++23' を使用するには、エミュレートされている Microsoft のバージョンが 1943 以上である必要があります" -] + "'--ms_c++23' を使用するには、エミュレートされている Microsoft のバージョンが 1943 以上である必要があります", + "現在の作業ディレクトリ %s は無効です", + "constexpr 関数内の \"cleanup\" 属性は現在サポートされていません", + "\"assume\" 属性は null ステートメントにのみ適用できます", + "仮定に失敗しました", + "変数テンプレートは C++14 の機能です", + "\"pass_object_size\" 属性で宣言されたパラメーターを持つ関数のアドレスを取得することはできません", + "すべての引数が同じ型である必要があります", + "最終の比較は %s1 %s2 %s3 でした", + "属性 %sq の引数が多すぎます", + "仮数の文字列に有効な数値が含まれていません", + "定数の評価中に浮動小数点エラーが発生しました", + "コンストラクターの継承 %n は、コピーや移動と似た操作では無視されます" +] \ No newline at end of file diff --git a/Extension/bin/messages/ko/messages.json b/Extension/bin/messages/ko/messages.json index 5f8895cb1..8a36e7e07 100644 --- a/Extension/bin/messages/ko/messages.json +++ b/Extension/bin/messages/ko/messages.json @@ -163,7 +163,7 @@ "인식할 수 없는 #pragma", null, "임시 파일 %sq을(를) 열 수 없습니다. %s2", - "임시 파일의 디렉터리 이름이 너무 깁니다(%sq).", + null, "함수 호출에 인수가 너무 적습니다.", "부동 소수점 상수가 잘못되었습니다.", "%t1 형식의 인수가 %t2 형식의 매개 변수와 호환되지 않습니다.", @@ -1828,7 +1828,7 @@ "'auto' 함수에는 후행 반환 형식이 필요합니다.", "멤버 템플릿에는 순수 지정자를 사용할 수 없습니다.", "문자열 리터럴이 너무 깁니다. 초과된 문자가 무시되었습니다.", - "nullptr 키워드를 제어하는 옵션은 C++를 컴파일할 경우에만 사용할 수 있습니다.", + null, "std::nullptr_t가 bool로 변환되었습니다.", null, null, @@ -3231,7 +3231,7 @@ "여기에 사용된 'availability' 특성은 무시됩니다.", "범위 기반의 'for' 문에서 C++20 스타일 이니셜라이저 문은 이 모드에서 표준이 아닙니다.", "co_await는 범위 기반의 for 문에만 적용할 수 있습니다.", - "범위 기반의 'for' 루프에서 범위 형식을 추론할 수 없습니다.", + "범위 기반 \"for\" 문의 범위 유형을 추론할 수 없습니다.", "인라인 변수는 C++17 기능입니다.", "destroying operator delete에는 첫 번째 매개 변수로 %t이(가) 필요합니다.", "destroying operator delete는 std::size_t 및 std::align_val_t 이외의 매개 변수를 가질 수 없습니다.", @@ -3272,17 +3272,17 @@ "%sq은(는) 가져올 수 있는 헤더가 아닙니다.", "이름이 없는 모듈을 가져올 수 없습니다.", "모듈은 자신에 대한 인터페이스 종속성을 포함할 수 없습니다.", - "%sq 모듈을 이미 가져왔습니다.", + "%m을(를) 이미 가져왔습니다.", "모듈 파일", "모듈 %sq의 모듈 파일을 찾을 수 없습니다.", "모듈 파일 %sq을(를) 가져올 수 없습니다.", - "%s1이(가) 필요한데, %s2이(가) 발견되었습니다.", + null, "%sq 모듈 파일을 열 때", "알 수 없는 파티션 이름 %sq", - "알 수 없는 모듈 파일", - "가져올 수 있는 헤더 모듈 파일", - "EDG 모듈 파일", - "IFC 모듈 파일", + null, + null, + null, + null, "예기치 않은 모듈 파일", "두 번째 피연산자 %t2의 형식은 %t1과(와) 크기가 같아야 합니다.", "형식은 일반적으로 복사할 수 있어야 합니다.", @@ -3347,7 +3347,7 @@ "가져올 '%s' 헤더를 찾을 수 없습니다.", "모듈 파일 목록에 있는 두 개 이상의 파일이 '%s'과(와) 일치합니다.", "'%s'에 대해 찾은 모듈 파일이 다른 모듈에 대한 것입니다.", - "모든 종류의 모듈 파일", + null, "모듈 파일을 읽을 수 없음", "char8_t 형식이 현재 옵션에서 지원되지 않기 때문에 기본 제공 함수를 사용할 수 없습니다.", null, @@ -3368,7 +3368,7 @@ "이 컴파일 대상의 비트 레이아웃을 해석할 수 없음", "IFC 연산자 %sq에 해당하는 연산자가 없음", "IFC 호출 규칙 %sq에 해당하는 호출 규칙이 없음", - "모듈 %sq에 지원되지 않는 구문이 포함되어 있음", + "%m에 지원되지 않는 구문이 포함되어 있습니다.", "지원되지 않는 IFC 구문: %sq", "__is_signed는 이 시점부터 더 이상 키워드가 아님", "배열 차원에는 상수인 부호 없는 정수 값이 있어야 함", @@ -3417,29 +3417,29 @@ "'if consteval' 및 'if not consteval'은 이 모드에서 표준이 아닙니다.", "람다 선언자에서 '()'를 생략하는 것은 이 모드에서 표준이 아닙니다.", "람다 매개 변수 목록을 생략하면 후행-requires 절이 허용되지 않습니다.", - "모듈 %sq 잘못된 파티션이 요청됨", - "모듈 %sq1 정의되지 않은 파티션(%sq2로 추정됨) 요청됨", + "%m이(가) 잘못된 파티션을 요청했습니다.", + "%m 정의되지 않은 파티션(%sq으로 추정됨) 요청됨", null, null, - "모듈 %sq1 파일 위치 %u1(상대 위치 %u2)이 파티션 %sq2에 대해 요청됨 - 해당 파티션의 끝을 오버플로함", - "모듈 %sq1 파일 위치 %u1(상대 위치 %u2)이(가) 파티션 요소가 잘못 정렬된 파티션 %sq2에 대해 요청되었습니다.", + "%m 파일 위치 %u1(상대 위치 %u2)이 파티션 %sq에 대해 요청됨 - 해당 파티션의 끝을 오버플로함", + "%m 파일 위치 %u1(상대 위치 %u2)이(가) 파티션 요소가 잘못 정렬된 파티션 %sq에 대해 요청됨", "하위 필드 %sq(노드 %u에 대한 상대 위치)에서", "파티션 %sq 요소 %u1에서(파일 위치 %u2, 상대 위치 %u3)", "람다의 특성은 C++23 기능입니다.", "식별자 %sq은(는) 시각적으로 유사한 식별자와 혼동될 수 있습니다. %p", "이 주석에는 의심스러운 유니코드 서식 지정 제어 문자가 포함되어 있습니다.", "이 문자열에는 예기치 않은 런타임 동작이 발생할 수 있는 유니코드 서식 지정 컨트롤 문자가 포함되어 있습니다.", - "%d1 모듈 %sq1을(를) 처리하는 동안 표시되지 않는 경고가 발생했습니다.", - "%d1 모듈 %sq1을(를) 처리하는 동안 표시되지 않는 경고가 발생했습니다.", - "%d1 모듈 %sq1을(를) 처리하는 동안 오류가 표시되지 않았습니다.", - "%d1 모듈 %sq1을(를) 처리하는 동안 오류가 표시되지 않았습니다.", + "%m을(를) 처리하는 동안 %u개의 억제된 경고 발생", + "%m을(를) 처리하는 동안 %u개의 억제된 오류 발생", + "%m을(를) 처리하는 동안 %u개의 억제된 오류 발생", + "%m을(를) 처리하는 동안 %u개의 억제된 오류 발생", "포함", "표시 안 함", "가상 멤버 함수에는 명시적 'this' 매개 변수를 사용할 수 없습니다.", "명시적 'this' 함수의 주소를 사용하려면 정규화된 이름이 필요합니다.", "명시적 'this' 함수의 주소를 구성하려면 '&' 연산자가 필요합니다.", "가변 배열 멤버를 초기화하는 데 문자열 리터럴을 사용할 수 없습니다.", - "함수 %sq의 정의에 대한 IFC 표현이 잘못되었습니다.", + "함수 %sq의 정의의 IFC 표현이 잘못되었습니다.", null, "매개 변수를 지정하는 데 UniLevel IFC 차트가 사용되지 않았습니다.", "%u1 매개 변수는 IFC 매개 변수 정의 차트에 의해 지정되었지만 %u2 매개 변수는 IFC 선언에 의해 지정되었습니다.", @@ -3467,7 +3467,7 @@ "불완전한 열거형 형식이 있는 비트 필드 또는 잘못된 기본 형식이 있는 불투명 열거형", "IFC 파티션 %sq2에 대한 인덱스를 사용하여 IFC 파티션 %sq에서 요소를 구성하려고 했습니다.", "파티션 %sq에서 %u2이(가) 필요한 경우 해당 항목 크기를 %u1로 지정했습니다.", - "모듈 %sq1을(를) 처리하는 동안 예기치 않은 IFC 요구 사항이 발생했습니다.", + "%m을(를) 처리하는 동안 예기치 않은 IFC 요구 사항이 발생했습니다.", "%d행(%s1)에서 조건 실패: %sq2", "원자성 제약 조건은 자체에 따라 달라집니다.", "'noreturn' 함수에 void가 아닌 반환 형식이 있습니다.", @@ -3475,9 +3475,9 @@ "클래스 외부의 멤버 템플릿 정의에 기본 템플릿 인수를 지정할 수 없습니다.", "엔터티를 재구성하는 동안 %sq라는 잘못된 IFC 식별자를 발견했습니다.", null, - "모듈 %sq 잘못된 정렬 값", + "%m 잘못된 정렬 값", "IFC 모듈에서 로드된 함수 템플릿이 %nd(으)로 잘못 구문 분석되었습니다.", - "모듈 %sq에서 IFC 엔터티 참조를 로드하지 못했습니다.", + "%m에서 IFC 엔터티 참조를 로드하지 못했습니다.", "파티션 %sq 요소 %u1에서(파일 위치 %u2, 상대 위치 %u3)", "비자명 소멸자가 있는 클래스 형식에는 연결된 지정자를 사용할 수 없습니다.", "명시적 전문화 선언은 friend 선언이 아닐 수 있습니다.", @@ -3506,9 +3506,9 @@ null, "유연한 배열 멤버에 대한 이니셜라이저를 평가할 수 없습니다.", "기본 비트 필드 이니셜라이저는 C++20 기능입니다.", - "%sq 모듈의 템플릿 인수 목록에 인수가 너무 많습니다.", + "%m의 템플릿 인수 목록에 인수가 너무 많음", "%sq 요소 %u1(파일 위치 %u2, 상대 위치 %u3)이 나타내는 템플릿 인수에 대해 감지됨", - "%sq 모듈의 템플릿 인수 목록에 인수가 너무 적습니다.", + "%m의 템플릿 인수 목록에 인수가 너무 적음", "%sq 요소 %u1(파일 위치 %u2, 상대 위치 %u3)이 나타내는 템플릿 인수 목록을 처리하는 동안 감지되었습니다.", "범위가 지정된 열거형 형식 %t에서의 변환이 표준이 아닙니다.", "할당 취소가 할당 종류와 일치하지 않습니다(하나는 배열용이고 다른 할당 종류는 일치하지 않음).", @@ -3517,8 +3517,8 @@ "__make_unsigned 부울이 아닌 정수 및 열거형 형식과만 호환됩니다.", "내장 이름 %sq은(는) 여기에서 일반 식별자로 처리됩니다.", "인덱스 %d에서 초기화되지 않은 하위 개체에 대한 액세스", - "IFC 라인 번호(%u1)가 최대 허용 값(%u2) 모듈 %sq를 초과했습니다.", - "%sq1 모듈이 %u 요소(파티션 %sq2)를 요청했습니다. 이 파일 위치는 최대 표현 가능 값을 초과합니다.", + "IFC 라인 번호(%u1)가 최대 허용 값(%u2) %m을(를) 초과했습니다.", + "%m이(가) 파티션 %sq의 %u 요소를 요청했습니다. 이 파일 위치가 최대 표시 가능 값을 초과합니다.", "잘못된 인수 수", "후보 %n에 대한 제약 조건이 충족되지 않음", "%n의 매개 변수 수가 호출과 일치하지 않습니다.", @@ -3551,7 +3551,7 @@ "IFC 파일 %sq을(를) 처리할 수 없습니다.", "IFC 버전 %u1.%u2은(는) 지원되지 않습니다.", "IFC 아키텍처 %sq이(가) 현재 대상 아키텍처와 호환되지 않습니다.", - "모듈 %sq1이(가) 지원되지 않는 파티션의 인덱스 %u을(를) 요청합니다. 이 파티션은 %sq2에 해당합니다.", + "%m은(는) %sq에 해당하는 억제된 파티션의 인덱스 %u을(를) 요청합니다.", "%n의 매개 변수 번호 %d에는 완료할 수 없는 형식 %t이 있습니다.", "매개 변수 번호 %d(%n 중)이 불완전한 형식 %t입니다.", "매개 변수 번호 %d(%n 중)에는 추상 형식 %t이(가) 있습니다.", @@ -3570,7 +3570,7 @@ "식 스플라이스에 대한 잘못된 리플렉션(%r)", "%n이(가) 이미 정의되었습니다(이전 정의 %p).", "infovec 개체가 초기화되지 않음", - "value_of 형식 %t1이(가) 지정된 리플렉션(%t2 형식의 엔터티)과 호환되지 않습니다.", + "%t1 형식의 추출은 지정된 리플렉션(%t2 형식의 엔터티)과 호환되지 않습니다.", "오버로드 집합을 반영하는 것은 현재 허용되지 않습니다.", "이 내장 함수에는 템플릿 인스턴스에 대한 리플렉션이 필요합니다.", "연산자에 대해 호환되지 않는 형식 %t1 및 %t2", @@ -3601,6 +3601,21 @@ "현재 변환 단위에 대한 헤더 단위를 만들 수 없습니다.", "현재 변환 단위는 헤더 단위에 현재 쓸 수 없는 하나 이상의 기능을 사용합니다.", "'explicit(bool)'는 C++20 기능입니다.", + "첫 번째 인수는 정수, enum 또는 지원되는 부동 소수점 형식에 대한 포인터여야 합니다.", + "여러 번역 단위를 컴파일할 때는 C++ 모듈을 사용할 수 없습니다.", + "C++ 모듈은 C++11 이전 \"export\" 기능과 함께 사용할 수 없습니다.", + "IFC 토큰 %sq은(는) 지원되지 않습니다.", + "\"pass_object_size\" 특성은 함수 선언의 매개 변수에서만 유효합니다.", + "%sq 특성 %d1의 인수는 0에서 %d2 사이의 값이어야 합니다.", + "여기서 ref-qualifier가 무시됩니다.", + "잘못된 NEON 벡터 요소 형식 %t", + "잘못된 NEON 폴리벡터 요소 형식 %t", + "확장 가능한 벡터 요소 형식 %t이(가) 잘못되었습니다.", + "확장 가능한 벡터 형식에 대한 튜플 요소 수가 잘못되었습니다.", + "NEON 벡터 또는 폴리벡터의 너비는 64비트 또는 128비트여야 합니다.", + "크기가 없는 형식 %t은(는) 허용되지 않습니다.", + "크기가 없는 형식 %t의 개체는 값을 초기화할 수 없습니다.", + "%u 범위의 일부로 예기치 않은 null 선언 인덱스가 발견되었습니다.", "%sq 파일을 참조하는 모듈 파일 맵에 대한 모듈 이름을 지정해야 합니다.", "IFC 파티션 %sq 노드가 필요한 곳에 null 인덱스 값을 받았습니다.", "%nd은(는) %t 형식을 가질 수 없습니다", @@ -3629,5 +3644,17 @@ "'ext_vector_type' 특성은 부울, 정수 또는 부동 소수점 형식에만 적용됩니다", "동일한 공용 구조체에 여러 지정자를 사용할 수 없습니다.", "테스트 메시지", - "에뮬레이트되는 Microsoft 버전이 1943 이상이어야 '--ms_c++23'을 사용할 수 있습니다." -] + "에뮬레이트되는 Microsoft 버전이 1943 이상이어야 '--ms_c++23'을 사용할 수 있습니다.", + "현재 작업 디렉터리가 잘못되었습니다. %s", + "constexpr 함수 내의 \"cleanup\" 특성은 현재 지원되지 않습니다.", + "\"assume\" 특성은 null 문에만 적용할 수 있습니다.", + "가정 실패", + "변수 템플릿은 C++14 기능입니다.", + "\"pass_object_size\" 특성으로 선언된 매개 변수를 사용하여 함수의 주소를 사용할 수 없습니다.", + "모든 인수의 형식이 같아야 합니다.", + "최종 비교는 %s1 %s2 %s3입니다.", + "%sq 특성에 대한 인수가 너무 많습니다.", + "mantissa 문자열에 올바른 숫자가 없습니다.", + "상수 평가 중 부동 소수점 오류", + "복사/이동과 유사한 작업에 대해 상속 생성자 %n이(가) 무시됨" +] \ No newline at end of file diff --git a/Extension/bin/messages/pl/messages.json b/Extension/bin/messages/pl/messages.json index c5e42b82b..d17b843e8 100644 --- a/Extension/bin/messages/pl/messages.json +++ b/Extension/bin/messages/pl/messages.json @@ -163,7 +163,7 @@ "nierozpoznana dyrektywa #pragma", null, "nie można otworzyć pliku tymczasowego %sq: %s2", - "nazwa katalogu plików tymczasowych jest za długa (%sq)", + null, "za mało argumentów w wywołaniu funkcji", "nieprawidłowa stała zmiennoprzecinkowa", "argument typu %t1 jest niezgodny z parametrem typu %t2", @@ -1828,7 +1828,7 @@ "funkcja „auto” wymaga końcowego typu zwracanego", "szablon składowej nie może mieć czystego specyfikatora", "zbyt długi literał ciągu — zignorowano nadmiarowe znaki", - "opcja kontrolująca słowo kluczowe nullptr może być używana tylko podczas kompilowania kodu C++", + null, "typ std::nullptr_t skonwertowano na typ logiczny", null, null, @@ -3230,8 +3230,8 @@ "inne dopasowanie jest %t", "użyty tutaj atrybut „availability” jest ignorowany", "Instrukcja inicjatora w stylu języka C++20 w instrukcji „for” opartej na zakresie jest niestandardowa w tym trybie", - "element co_await można zastosować tylko do instrukcji for opartej na zakresie", - "nie można wywnioskować typu zakresu w pętli „for” opartej na zakresie.", + "Element co_await można zastosować tylko do instrukcji „for” opartej na zakresie", + "nie można wywnioskować typu zakresu w instrukcji „for” opartej na zakresie", "zmienne wbudowane to funkcja języka C++ 17", "niszczący operator delete wymaga elementu %t jako pierwszego parametru", "niszczący operator delete nie może mieć parametrów innych niż std::size_t i std::align_val_t", @@ -3272,17 +3272,17 @@ "%sq nie jest nagłówkiem, który można zaimportować", "nie można zaimportować modułu bez nazwy", "moduł nie może mieć zależności interfejsu od samego siebie", - "moduł %sq został już zaimportowany", + "%m zostało już zaimportowane", "plik modułu", "nie można odnaleźć pliku modułu dla modułu %sq", "nie można zaimportować pliku modułu %sq", - "oczekiwano elementu %s1, zamiast niego znaleziono element %s2", + null, "podczas otwierania pliku modułu %sq", "nieznana nazwa partycji %sq", - "nieznany plik modułu", - "plik modułu z importowalnym nagłówkiem", - "plik modułu EDG", - "plik modułu IFC", + null, + null, + null, + null, "nieoczekiwany plik modułu", "typ drugiego operandu %t2 musi mieć taki sam rozmiar jak element %t1", "typ musi być możliwy do skopiowania w prosty sposób", @@ -3347,7 +3347,7 @@ "nie można odnaleźć nagłówka „%s” do zaimportowania", "więcej niż jeden plik na liście plików modułu pasuje do elementu „%s”", "plik modułu znaleziony dla elementu „%s” jest dla innego modułu", - "dowolny rodzaj pliku modułu", + null, "nie można odczytać pliku modułu", "wbudowana funkcja jest niedostępna, ponieważ typ char8_t nie jest obsługiwany z bieżącymi opcjami", null, @@ -3368,7 +3368,7 @@ "nie można zinterpretować układu bitowego dla tego elementu docelowego kompilacji", "brak odpowiedniego operatora dla operatora IFC %sq", "brak odpowiedniej konwencji wywoływania dla konwencji wywoływania IFC %sq", - "moduł %sq zawiera nieobsługiwane konstrukcje", + "%m zawiera nieobsługiwane konstrukcje", "nieobsługiwana konstrukcja IFC: %sq", "Od tego punktu __is_signed nie jest już słowem kluczowym", "wymiar tablicy musi mieć stałą wartość całkowitą bez znaku", @@ -3417,22 +3417,22 @@ "Instrukcje „if consteval” i „if not consteval” nie są standardowe w tym trybie", "pominięcie elementu „()” w deklaratorze lambda jest niestandardowe w tym trybie", "klauzula trailing-requires-clause jest niedozwolona, gdy lista parametrów lambda zostanie pominięta", - "zażądano nieprawidłowej partycji modułu %sq", - "zażądano niezdefiniowanej partycji modułu %sq1 (prawdopodobnie %sq2)", + "Zażądano %m nieprawidłowej partycji", + "Zażądano %m niezdefiniowanej partycji (uważa się, że jest to %sq)", null, null, - "zażądano modułu %sq1 pozycji pliku %u1 (pozycja względna %u2) dla partycji %sq2, która powoduje przepełnienie końca partycji", - "zażądano modułu %sq1 pozycji pliku %u1 (pozycja względna %u2) dla partycji %sq2, która jest nieprawidłowo wyrównana do jej elementów partycji", + "%m pozycja pliku %u1 (względna pozycja %u2) zażądała partycji %sq — która przepełnia koniec partycji", + "%m pozycja pliku %u1 (względna pozycja %u2) zażądała partycji %sq — która jest niewyrównana z jej elementami partycji", "z podrzędnego pola %sq (względne położenie w stosunku do węzła %u)", "z partycji %sq elementu %u1 (pozycja pliku %u2, względna pozycja %u3)", "atrybuty w wyrażeniach lambda są funkcją języka C++23", "identyfikator %sq można pomylić z widocznym wizualnie identyfikatorem %p", "ten komentarz zawiera podejrzane znaki kontrolne formatowania Unicode", "ten ciąg zawiera znaki kontrolne formatowania Unicode, które mogą spowodować nieoczekiwane zachowanie środowiska uruchomieniowego", - "Znaleziono pominięte ostrzeżenie %d1 podczas przetwarzania modułu %sq1", - "Znaleziono ostrzeżenia pominięte przez %d1 podczas przetwarzania modułu %sq1", - "Znaleziono pominięty błąd %d1 podczas przetwarzania modułu %sq1", - "Znaleziono %d1 pominiętych błędów podczas przetwarzania modułu %sq1", + "Napotkano pominięte ostrzeżenie %u podczas przetwarzania %m", + "Napotkano pominięte ostrzeżenia %u podczas przetwarzania %m", + "Napotkano pominięty błąd %u podczas przetwarzania %m", + "Napotkano pominięte błędy %u podczas przetwarzania %m", "uwzględniając", "Pominięte", "wirtualna funkcja składowa nie może mieć jawnego parametru „this”", @@ -3467,7 +3467,7 @@ "pole bitowe z niekompletnym typem wyliczeniowym lub nieprzezroczyste wyliczenie z nieprawidłowym typem podstawowym", "próbowano skonstruować element z partycji IFC %sq przy użyciu indeksu do partycji IFC %sq", "partycja %sq określiła swój rozmiar wpisu jako %u1, gdy oczekiwano wartości %u2", - "napotkano nieoczekiwane wymaganie IFC podczas przetwarzania modułu %sq1", + "napotkano nieoczekiwane wymaganie IFC podczas przetwarzania %m", "warunek nie powiódł się w wierszu %d w %s1: %sq2", "niepodzielne ograniczenie zależy od samego siebie", "Funkcja \"noreturn\" ma zwracany typ inny niż void", @@ -3475,9 +3475,9 @@ "nie można określić domyślnego argumentu szablonu w deklaracji szablonu składowej klasy poza jej klasą", "napotkano nieprawidłową nazwę identyfikatora IFC %sq podczas odbudowy jednostki", null, - "nieprawidłowa wartość sortowania modułu %sq", + "%m nieprawidłowa wartość sortowania", "szablon funkcji załadowany z modułu IFC został niepoprawnie przeanalizowany jako %nd", - "nie można załadować odwołania do jednostki IFC w module %sq", + "nie można załadować odwołania do jednostki IFC w %m", "z partycji %sq elementu %u1 (pozycja pliku %u2, względna pozycja %u3)", "desygnator łańcuchowy nie jest dozwolony dla typu klasy z destruktorem nietrywialnym", "jawna deklaracja specjalizacji nie może być deklaracją zaprzyjaźnioną", @@ -3506,9 +3506,9 @@ null, "nie może ocenić inicjatora dla elastycznego elementu członkowskiego tablicy", "domyślny inicjator pola bitowego jest funkcją C++20", - "zbyt wiele argumentów na liście argumentów szablonu w module %sq", + "zbyt wiele argumentów na liście argumentów szablonu w %m", "wykryto dla argumentu szablonu reprezentowanego przez %sq element %u1 (pozycja pliku %u2, pozycja względna %u3)", - "zbyt mało argumentów na liście argumentów szablonu w module %sq", + "zbyt mało argumentów na liście argumentów szablonu w %m", "wykryty podczas przetwarzania listy argumentów szablonu reprezentowanej przez %sq elementu %u1 (pozycja pliku %u2, pozycja względna %u3)", "konwersja z typu wyliczenia z zakresem %t jest niestandardowa", "cofnięcie alokacji nie pasuje do rodzaju alokacji (jedna dotyczy tablicy, a druga nie)", @@ -3517,8 +3517,8 @@ "__make_unsigned jest zgodna tylko z nieliczbową liczbą całkowitą i typami wyliczenia", "nazwa wewnętrzna %sq będzie traktowana jako zwykły identyfikator z tego miejsca", "dostęp do odinicjowanego podobiektu w indeksie %d", - "Numer wiersza IFC (%u1) przepełnia maksymalną dozwoloną wartość (%u2) modułu %sq", - "moduł %sq1 zażądał elementu %u partycji %sq2. Ta pozycja pliku przekracza maksymalną wartość możliwą do reprezentowania", + "Numer wiersza IFC (%u1) przepełnia maksymalną dozwoloną wartość (%u2) %m", + "%m zażądał elementu %u partycji %sq, ta pozycja pliku przekracza maksymalną wartość do reprezentowania", "nieprawidłowa liczba argumentów", "ograniczenie dotyczące kandydata %n nie jest spełnione", "liczba parametrów elementu %n jest niezgodna z wywołaniem", @@ -3551,7 +3551,7 @@ "Nie można przetworzyć pliku IFC %sq", "Wersja IFC %u1.%u2 nie jest obsługiwana", "Architektura IFC %sq jest niezgodna z bieżącą architekturą docelową", - "moduł %sq1 żąda indeksu %u nieobsługiwanych partycji odpowiadającej %sq2", + "%m żąda indeksu %u nieobsługiwanej partycji odpowiadającej %sq", "numer parametru %d z %n ma typ %t, którego nie można ukończyć", "numer parametru %d z %n ma niekompletny typ %t", "numer parametru %d z %n ma typ abstrakcyjny %t", @@ -3570,7 +3570,7 @@ "złe odbicie (%r) dla splice wyrażenia", "Element %n został już zdefiniowany (poprzednia definicja :%p)", "obiekt infovec nie został zainicjowany", - "value_of typ %t1 jest niezgodny z danym odbiciem (jednostka o typie %t2)", + "wyodrębnienie typu %t1 jest niezgodne z danym odbiciem (jednostka o typie %t2)", "odzwierciedlanie zestawu przeciążeń jest obecnie niedozwolone", "ta wewnętrzna funkcja wymaga odbicia dla wystąpienia szablonu", "niezgodne typy %t1 i %t2 dla operatora", @@ -3601,6 +3601,21 @@ "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", + "pierwszy argument musi być wskaźnikiem do liczby całkowitej, enum lub obsługiwanego typu zmiennoprzecinkowego", + "Modułów języka C++ nie można używać podczas kompilowania wielu jednostek tłumaczenia", + "Modułów języka C++ nie można używać z funkcją „export” w języku pre-C++11", + "token IFC %sq nie jest obsługiwany", + "atrybut „pass_object_size” jest prawidłowy tylko w przypadku parametrów deklaracji funkcji", + "argument atrybutu %sq %d1 musi być wartością z zakresu od 0 do %d2", + "kwalifikator ref-qualifier w tym miejscu jest ignorowany", + "nieprawidłowy typ elementu wektora NEON %t", + "nieprawidłowy typ elementu polyvector NEON %t", + "nieprawidłowy skalowalny typ elementu wektora %t", + "nieprawidłowa liczba elementów spójnej kolekcji dla skalowalnego typu wektora", + "wektor NEON lub element polyvector musi mieć szerokość 64 lub 128 bitów", + "typ %t bez rozmiaru jest niedozwolony", + "obiektu typu bez rozmiaru %t nie można zainicjować wartością", + "znaleziono nieoczekiwany indeks deklaracji o wartości null jako część zakresu %u", "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", @@ -3629,5 +3644,17 @@ "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”" -] + "emulowaną wersją Microsoft musi być co najmniej 1943, aby użyć polecenia „--ms_c++23”", + "nieprawidłowy bieżący katalog roboczy: %s", + "Atrybut „cleanup” w funkcji constexpr nie jest obecnie obsługiwany", + "atrybut „assume” może dotyczyć tylko instrukcji null", + "założenie nie powiodło się", + "szablony zmiennych są funkcją języka C++14", + "nie można pobrać adresu funkcji z parametrem zadeklarowanym za pomocą atrybutu „pass_object_size”", + "wszystkie argumenty muszą mieć ten sam typ", + "końcowe porównanie: %s1 %s2 %s3", + "zbyt wiele argumentów dla atrybutu %sq", + "ciąg mantysy nie zawiera prawidłowej liczby", + "błąd zmiennoprzecinkowy podczas obliczania stałej", + "dziedziczenie konstruktora %n zostało zignorowane dla operacji kopiowania/przenoszenia" +] \ No newline at end of file diff --git a/Extension/bin/messages/pt-br/messages.json b/Extension/bin/messages/pt-br/messages.json index bfc788f38..0a3510013 100644 --- a/Extension/bin/messages/pt-br/messages.json +++ b/Extension/bin/messages/pt-br/messages.json @@ -163,7 +163,7 @@ "#pragma não reconhecido", null, "não pôde abrir arquivo temporário %sq: %s2", - "nome de diretório para arquivos temporários é muito longo (%sq)", + null, "muito poucos argumentos na chamada da função", "constante flutuante inválida", "argumento do tipo %t1 é incompatível com parâmetro do tipo %t2", @@ -1828,7 +1828,7 @@ "função 'auto' requer um tipo de retorno à frente", "um modelo de membros não pode ter um especificador puro", "string literal muito longa - caracteres excedentes ignorados", - "a opção para controle a palavra-chave nullptr pode ser utilizada somente quando se estiver compilando C++", + null, "std::nullptr_t convertido para bool", null, null, @@ -3230,8 +3230,8 @@ "a outra correspondência é %t", "o atributo 'availability' usado aqui é ignorado", "A instrução inicializadora no estilo C++20 em uma instrução 'for' com base em intervalos não é padrão neste modo", - "co_await pode ser aplicado somente a uma instrução 'for' baseada em intervalos", - "não é possível deduzir o tipo de intervalo no loop 'for' com base em intervalos", + "co_await só pode ser aplicado a uma instrução \"for\" baseada em intervalo", + "não é possível deduzir o tipo do intervalo na instrução \"for\" baseada em intervalo", "as variáveis embutidas são um recurso do C++17", "a destruição do operador de exclusão exige %t como primeiro parâmetro", "a destruição de um operador de exclusão não pode ter parâmetros diferentes de std::size_t e std::align_val_t", @@ -3272,17 +3272,17 @@ "%sq não é um cabeçalho importável", "não é possível importar um módulo sem nome", "um módulo não pode ter uma dependência de interface em si mesmo", - "o módulo %sq já foi importado", + "%m já foi importado", "arquivo de módulo", "não foi possível localizar o arquivo de módulo para o módulo %sq", "não foi possível importar o arquivo de módulo %sq", - "era esperado %s1, foi encontrado %s2", + null, "ao abrir o arquivo de módulo %sq", "nome de partição desconhecido %sq", - "um arquivo de módulo desconhecido", - "um arquivo de módulo de cabeçalho importável", - "um arquivo de módulo EDG", - "um arquivo de módulo IFC", + null, + null, + null, + null, "um arquivo de módulo inesperado", "o tipo do segundo operando %t2 precisa ter o mesmo tamanho que %t1", "o tipo precisa ser fácil de ser copiado", @@ -3347,7 +3347,7 @@ "não é possível localizar o cabeçalho '%s' a ser importado", "mais de um arquivo na lista de arquivos de módulo corresponde a '%s'", "o arquivo de módulo encontrado para '%s' é de um módulo diferente", - "qualquer tipo de arquivo de módulo", + null, "não é possível ler o arquivo de módulo", "a função interna não está disponível porque não há suporte para o tipo char8_t com as opções atuais", null, @@ -3368,7 +3368,7 @@ "não é possível interpretar o layout de bit para este destino de compilação", "nenhum operador correspondente para o operador IFC %sq", "não há convenção de chamada correspondente para a convenção de chamada IFC %sq", - "o módulo %sq contém constructos sem suporte", + "%m contém construções sem suporte", "constructo IFC sem suporte: %sq", "__is_signed não é mais uma palavra-chave deste ponto", "uma dimensão de matriz precisa ter um valor inteiro sem sinal constante", @@ -3417,35 +3417,35 @@ "'if consteval' e 'if not consteval' não são padrão neste modo", "omitir '()' em um declarador lambda não é padrão neste modo", "uma cláusula-requer à direita não é permitida quando a lista de parâmetros lambda é omitida", - "módulo %sq partição inválida solicitada", - "módulo %sq1 partição indefinida (acredita-se que seja %sq2) solicitada", + "partição inválida %m solicitada", + "partição indefinida %m (acredita-se que seja %sq) solicitada", null, null, - "módulo %sq1, posição do arquivo %u1 (posição relativa %u2) solicitado para a partição %sq2 — que transborda o final de sua partição", - "módulo %sq1, posição do arquivo %u1 (posição relativa %u2) solicitado para a partição %sq2 — que está desalinhada com seus elementos de partições", + "posição de arquivo %m %u1 (posição relativa %u2) solicitada para a partição %sq - que excede o final da partição", + "posição de arquivo %m %u1 (posição relativa %u2) solicitada para a partição %sq - que está desalinhada com os elementos da partição", "do subcampo %sq (posição relativa ao nó %u)", "da partição %sq, elemento %u1 (posição do arquivo %u2, posição relativa %u3)", "atributos em lambdas são um recurso do C++23", "O identificador %sq pode ser confundido com um visualmente semelhante ao que aparece %p", "este comentário contém caracteres de controle de formatação Unicode suspeitos", "essa cadeia de caracteres contém caracteres de controle de formatação Unicode que podem resultar em comportamento de runtime inesperado", - "%d1 aviso suprimido encontrado durante o processamento do módulo %sq1", - "%d1 avisos suprimidos foram encontrados durante o processamento do módulo %sq1", - "%d1 erro suprimido encontrado ao processar o módulo %sq1", - "%d1 erros suprimidos foram encontrados durante o processamento do módulo %sq1", + "foi encontrado %u aviso suprimido durante o processamento de %m`", + "avisos suprimidos %u foram encontrados ao processar %m", + "erro suprimido %u foi encontrado ao processar %m", + "foram encontrados %u erros suprimidos durante o processamento de %m", "incluindo", "suprimida", "uma função membro virtual não pode ter um parâmetro 'this' explícito", "usar o endereço de uma função explícita 'this' requer um nome qualificado", "formar o endereço de uma função 'this' explícita requer o operador '&'", "um literal de cadeia de caracteres não pode ser usado para inicializar um membro de matriz flexível", - "A representação IFC da definição da função %sq é inválida", + "a representação IFC da definição da função %sq é inválida", null, "um gráfico UNILevel IFC não foi usado para especificar parâmetros", "%u1 parâmetros foram especificados pelo gráfico de definição de parâmetro IFC, enquanto %u2 parâmetros foram especificados pela declaração IFC", "O parâmetro %u1 foi especificado pelo gráfico de definição de parâmetro IFC, enquanto os parâmetros %u2 foram especificados pela declaração IFC", "O parâmetro %u1 foi especificado pelo gráfico de definição de parâmetro IFC, enquanto parâmetros %u2 foram especificados pela declaração IFC", - "A representação IFC da definição da função %sq está ausente", + "a representação IFC da definição da função %sq está ausente", "o modificador de função não se aplica à declaração de modelo do membro", "a seleção de membro envolve muitos tipos anônimos aninhados", "não há nenhum tipo comum entre os operandos", @@ -3467,7 +3467,7 @@ "um campo de bits com um tipo de enumeração incompleto ou uma enumeração opaca com um tipo base inválido", "tentou construir um elemento da partição IFC %sq usando um índice na partição IFC %sq2", "a partição %sq especificou seu tamanho de entrada como %u1 quando %u2 era esperado", - "um requisito IFC inesperado foi encontrado durante o processamento do módulo %sq1", + "um requisito IFC inesperado foi encontrado ao processar %m", "condição falhou na linha %d em %s1: %sq2", "restrição atômica depende de si mesma", "A função 'noreturn' tem um tipo de retorno não nulo", @@ -3475,9 +3475,9 @@ "não é possível especificar um argumento de modelo padrão na definição do modelo de um membro fora de sua classe", "nome de identificador IFC inválido %sq encontrado durante a reconstrução da entidade", null, - "valor de classificação inválido do módulo %sq", + "%m valor de classificação inválido", "um modelo de função carregado de um módulo IFC foi analisado incorretamente como %nd", - "falha ao carregar uma referência de entidade IFC no módulo %sq", + "falha ao carregar uma referência de entidade IFC em %m", "da partição %sq, elemento %u1 (posição do arquivo %u2, posição relativa %u3)", "designadores encadeados não são permitidos para um tipo de classe com um destruidor não trivial", "uma declaração de especialização explícita não pode ser uma declaração de friend", @@ -3506,9 +3506,9 @@ null, "não é possível avaliar um inicializador para um membro de matriz flexível", "um inicializador de campo de bit padrão é um recurso C++20", - "muitos argumentos na lista de argumentos do modelo no módulo %sq", + "muitos argumentos na lista de argumentos de modelo em %m", "detectado para o argumento de modelo representado pelo elemento %sq %u1 (posição do arquivo %u2, posição relativa %u3)", - "poucos argumentos na lista de argumentos do modelo no módulo %sq", + "poucos argumentos na lista de argumentos de modelo em %m", "detectado durante o processamento da lista de argumentos do modelo representada pelo elemento %sq %u1 (posição do arquivo %u2, posição relativa %u3)", "a conversão do tipo de enumeração com escopo %t não é padrão", "a desalocação não corresponde ao tipo de alocação (uma é para uma matriz e a outra não)", @@ -3517,8 +3517,8 @@ "__make_unsigned só é compatível com inteiros não bool e tipos enum", "o nome intrínseco %sq será tratado como um identificador comum a partir daqui", "acesso ao subobjeto não inicializado no índice %d", - "o número de linha IFC (%u1) estoura o valor máximo permitido (%u2), módulo %sq", - "o módulo %sq1 solicitou o elemento %u da partição %sq2, essa posição do arquivo excede o valor máximo representável", + "número de linha IFC (%u1) excede o valor máximo permitido (%u2) %m", + "%m elemento solicitado %u da partição %sq, esta posição de arquivo excede o valor máximo representável", "número de argumentos errado", "restrição sobre o candidato %n não satisfeita", "o número de parâmetros de %n não corresponde à chamada", @@ -3551,7 +3551,7 @@ "O arquivo IFC %sq não pode ser processado", "A versão IFC %u1.%u2 não tem suporte", "A arquitetura IFC %sq é incompatível com a arquitetura de destino atual", - "o módulo %sq1 índice de solicitações %u de uma partição sem suporte correspondente %sq2", + "%m solicita índice %u de uma partição sem suporte correspondente a %sq", "o número de parâmetro %d de %n tem tipo %t que não pode ser concluído", "o número de parâmetro %d de %n tem o tipo incompleto %t", "o número de parâmetro %d de %n tem tipo o abstrato %t", @@ -3570,7 +3570,7 @@ "reflexão incorreta (%r) para a expressão splice", "%n já foi definido (definição anterior %p)", "objeto infovec não inicializado", - "o value_of tipo %t1 não é compatível com a reflexão fornecida (entidade com o tipo %t2)", + "a extração do tipo %t1 não é compatível com a reflexão fornecida (entidade com tipo %t2)", "refletir um conjunto de sobrecargas não é permitido no momento", "este elemento intrínseco requer uma reflexão para uma instância de modelo", "tipos incompatíveis %t1 e %t2 para o operador", @@ -3601,6 +3601,21 @@ "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", + "o primeiro argumento deve ser um ponteiro para inteiro, enumeração ou tipo de ponto flutuante com suporte", + "módulos C++ não podem ser usados ao compilar várias unidades de tradução", + "os módulos C++ não podem ser usados com o recurso \"exportar\" anterior ao C++11", + "o token IFC %sq não tem suporte", + "o atributo \"pass_object_size\" só é válido em parâmetros de declarações de função", + "o argumento do atributo %sq %d1 deve ser um valor entre 0 e %d2", + "um ref-qualifier de referência aqui é ignorado", + "tipo de elemento de vetor NEON inválido %t", + "tipo de elemento de polyvector NEON inválido %t", + "tipo de elemento de vetor escalonável inválido %t", + "número inválido de elementos de tupla para tipo de vetor escalonável", + "um vetor NEON ou polyvector deve ter 64 ou 128 bits de largura", + "tipo sem tamanho %t não é permitido", + "um objeto do tipo sem tamanho %t não pode ser inicializado com valor", + "índice de declaração nula inesperada encontrado como parte do escopo %u", "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", @@ -3629,5 +3644,17 @@ "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'" -] + "a versão da Microsoft que está sendo emulada deve ser pelo menos 1943 para usar '--ms_c++23'", + "diretório de trabalho atual inválido: %s", + "o atributo \"cleanup\" em uma função constexpr não tem suporte atualmente", + "o atributo \"assume\" só pode ser aplicado a uma instrução nula", + "suposição falhou", + "modelos de variável são um recurso do C++14", + "não é possível obter o endereço de uma função com um parâmetro declarado com o atributo \"pass_object_size\"", + "todos os argumentos devem ter o mesmo tipo", + "a comparação final foi %s1 %s2 %s3", + "muitos argumentos para o atributo %sq", + "cadeia de mantissa não contém um número válido", + "erro de ponto flutuante durante a avaliação da constante", + "construtor herdado %n ignorado para operação semelhante a copiar/mover" +] \ No newline at end of file diff --git a/Extension/bin/messages/ru/messages.json b/Extension/bin/messages/ru/messages.json index d6ad8182f..86456f7e3 100644 --- a/Extension/bin/messages/ru/messages.json +++ b/Extension/bin/messages/ru/messages.json @@ -163,7 +163,7 @@ "нераспознанная директива #pragma", null, "не удалось открыть временный файл %sq: %s2", - "слишком длинное имя каталога временных файлов (%sq)", + null, "слишком мало аргументов в вызове функции", "недопустимая константа с плавающей запятой", "аргумент типа %t1 несовместим с параметром типа %t2", @@ -1828,7 +1828,7 @@ "функция \"auto\" требует наличия завершающего возвращаемого типа", "у шаблона члена не может быть чистого спецификатора", "слишком длинный строковый литерал - лишние знаки игнорируются", - "параметр для управления ключевым словом nullptr может использоваться только при компиляции C++", + null, "std::nullptr_t, преобразованный в логический тип", null, null, @@ -3230,8 +3230,8 @@ "другое совпадение — %t", "Использованный здесь атрибут \"Availability\" игнорируется.", "Оператор инициализатора в стиле C++20 в операторе for на основе диапазонов является нестандартным в этом режиме.", - "co_await можно применить только к оператору for на основе диапазонов.", - "Невозможно вывести тип диапазона в цикле for на основе диапазона.", + "co_await можно применять только к оператору for на основе диапазона", + "не удается вывести тип диапазона в цикле for на основе диапазона", "встроенные переменные — это функция C++17", "для оператора удаления delete необходимо указать %t в качестве первого параметра", "оператор удаления delete не может иметь параметров, типы которых отличаются от std::size_t и std::align_val_t", @@ -3272,17 +3272,17 @@ "%sq не является пригодным для импорта заголовком", "Невозможно импортировать модуль без имени", "Модуль не может иметь зависимость интерфейса от самого себя", - "Модуль %sq уже импортирован", + "%m уже импортирован", "файл модуля", "не удалось найти файл модуля для модуля %sq", "не удалось импортировать файл модуля %sq", - "ожидалось %s1, но было найдено %s2", + null, "При открытии файла модуля %sq", "Неизвестное имя раздела %sq", - "неизвестный файл модуля", - "импортируемый файл модуля заголовка", - "файл модуля EDG", - "файл модуля IFC", + null, + null, + null, + null, "непредвиденный файл модуля", "тип второго операнда %t2 должен иметь тот же размер, что и %t1.", "тип должен поддерживать элементарное копирование.", @@ -3347,7 +3347,7 @@ "не удается найти заголовок \"%s\" для импорта", "несколько файлов в списке файлов модулей соответствуют \"%s\"", "файл модуля, обнаруженный для \"%s\", относится к другому модулю", - "любой тип файла модуля", + null, "не удалось прочитать файл модуля", "встроенная функция недоступна, так как тип char8_t не поддерживается с текущими параметрами.", null, @@ -3368,7 +3368,7 @@ "не удается интерпретировать битовый макет для этого целевого объекта компиляции", "отсутствует соответствующий оператор для оператора IFC %sq", "отсутствует соответствующее соглашение о вызовах для соглашения о вызовах IFC %sq", - "модуль %sq содержит неподдерживаемые конструкции", + "модуль %m содержит неподдерживаемые конструкции", "неподдерживаемая конструкция IFC: %sq", "__is_signed больше не является ключевым словом из этой точки", "измерение массива должно иметь постоянное целочисленное значение без знака", @@ -3417,35 +3417,35 @@ "\"if consteval\" и \"if not consteval\" не являются стандартными в этом режиме", "опущение \"()\" в лямбда-операторе объявления является нестандартным в этом режиме", "конечное предложение requires не допускается, если список лямбда-параметров опущен", - "запрошен недопустимый раздел модуля %sq", - "запрошен неопределенный раздел модуля %sq1 (предполагается — %sq2)", + "запрошен недопустимый раздел модуля %m", + "запрошен неопределенный раздел модуля %m (предполагается — %sq)", null, null, - "модуль %sq1, позиция файла %u1 (относительная позиция %u2) запрошена для раздела %sq2, который переполняет окончание этого раздела", - "модуль %sq1, позиция файла %u1 (относительная позиция %u2) запрошена для раздела %sq2, который не выровнен по элементам разделов", + "модуль %m, позиция файла %u1 (относительная позиция %u2) запрошена для раздела %sq, который выходит за конец этого раздела", + "файл %m, позиция %u1 (относительная позиция %u2) запрошена для раздела %sq, не выровненного по элементам разделов", "из подполя %sq (относительное положение к узлу %u)", "из раздела %sq, элемент %u1 (позиция файла %u2, относительная позиция %u3)", "атрибуты в лямбда-выражениях являются компонентом C++23", "идентификатор %sq можно перепутать с визуально похожим %p", "этот комментарий содержит подозрительные управляющие символы форматирования Юникода", "эта строка содержит управляющие символы форматирования Юникода, которые могут привести к непредвиденной работе среды выполнения", - "обнаружено %d1 подавленное предупреждение при обработке модуля %sq1", - "обнаружено несколько (%d1) подавленных предупреждений при обработке модуля %sq1", - "Обнаружена %d1 подавленная ошибка при обработке модуля %sq1", - "Обнаружено несколько (%d1) подавленных ошибок при обработке модуля %sq1", + "обнаружено %u подавленное предупреждение при обработке %m", + "обнаружено несколько (%u) подавленных предупреждений при обработке модуля %m", + "при обработке %m обнаружена подавленная ошибка %u", + "обнаружено несколько (%u) подавленных ошибок при обработке модуля %m", "включая", "подавлено", "виртуальная функция-член не может иметь явный параметр \"this\"", "для получения адреса явной функции \"this\" требуется полное имя", "для формирования адреса явной функции \"this\" требуется оператор \"&\"", "строковый литерал нельзя использовать для инициализации элемента гибкого массива", - "Представление IFC определения функции %sq недопустимо", + "представление IFC определения функции %sq недопустимо", null, "диаграмма IFC UniLevel не использовалось для указания параметров", "несколько (%u1) параметров указаны в диаграмме определения параметров IFC, в то время как несколько (%u2) параметров указаны в объявлении IFC", "%u1 параметр указан в диаграмме определения параметров IFC, в то время как несколько (%u2) параметров указаны в объявлении IFC", "несколько (%u1) параметров указаны в диаграмме определения параметров IFC, в то время как %u2 параметр указан в объявлении IFC", - "Представление IFC определения функции %sq отсутствует", + "отсутствует представление IFC определения функции %sq", "модификатор функции не применяется к объявлению шаблона элемента", "выбор элемента включает слишком много вложенных анонимных типов", "между операндами нет общего типа", @@ -3467,7 +3467,7 @@ "битовые поля с неполным типом или непрозрачное перечисление с недопустимым базовым типом", "попытка создать элемент из раздела IFC %sq с использованием индекса в разделе IFC %sq2", "размер записи в разделе %sq указан как %u1, в то время как ожидалось %u2", - "При обработке модуля %sq1 было обнаружено неожиданное требование IFC", + "при обработке модуля %m было обнаружено неожиданное требование IFC", "сбой условия в строке %d в %s1: %sq2", "атомарное ограничение зависит от самого себя", "Функция \"noreturn\" имеет не недействительный тип возврата", @@ -3475,9 +3475,9 @@ "аргумент шаблона по умолчанию не может быть указан в определении шаблона элемента вне его класса", "обнаружено недопустимое имя идентификатора IFC %sq во время реконструкции сущности", null, - "недопустимое значение сортировки модуля %sq", + "недопустимое значение сортировки %m", "шаблон функции, загруженный из модуля IFC, был неправильно проанализирован как %nd", - "не удалось загрузить ссылку на объект IFC в модуль %sq", + "не удалось загрузить ссылку на объект IFC в модуле %m", "из раздела %sq, элемент %u1 (позиция файла %u2, относительная позиция %u3)", "цепные обозначения не разрешены для типа класса с нетривиальным деструктором", "явное объявление специализации не может быть объявлением дружественной функции", @@ -3506,9 +3506,9 @@ null, "не удается оценить инициализатор для элемента гибкого массива", "стандартный инициализатор битового поля является функцией C++20", - "слишком много аргументов в списке аргументов шаблона в модуле %sq", + "слишком много аргументов в списке аргументов шаблона в %m", "обнаружено для аргумента шаблона, представленного элементом %sq %u1 (позиция файла %u2, относительная позиция %u3)", - "слишком мало аргументов в списке аргументов шаблона в модуле %sq", + "слишком мало аргументов в списке аргументов шаблона в модуле %m", "обнаружено при обработке для списка аргументов шаблона, представленного элементом %sq %u1 (позиция файла %u2, относительная позиция %u3)", "преобразование из типа ограниченного перечисления %t является нестандартным", "освобождение не соответствует типу выделения (одно из них для массива, а другое нет)", @@ -3517,8 +3517,8 @@ "__make_unsigned совместимо только с нелогическими целыми числами и типами перечислений", "внутреннее имя %sq будет рассматриваться с этого момента как обычный идентификатор", "доступ к неинициализированному подобъекту в индексе %d", - "Номер строки IFC (%u1) переполняет максимально допустимое значение (%u2) модуля %sq", - "модуль %sq1 запросил элемент %u раздела %sq2, эта позиция файла превышает максимальное отображаемое значение", + "Номер строки IFC (%u1) переполняет максимально допустимое значение (%u2) модуля %m", + "модуль %m запросил элемент %u раздела %sq, но эта позиция файла превышает максимальное представимое значение", "неправильное количество аргументов", "ограничение по соискателю %n не выполнено", "количество параметров %n не соответствует вызову", @@ -3551,7 +3551,7 @@ "Не удается обработать файл IFC %sq", "Версия IFC %u1.%u2 не поддерживается", "Архитектура IFC %sq несовместима с текущей целевой архитектурой", - "модуль %sq1 запрашивает индекс %u неподдерживаемой секции, соответствующей %sq2", + "модуль %m запрашивает индекс %u неподдерживаемого раздела, соответствующего %sq", "номер параметра %d из %n имеет тип %t, который не может быть завершен", "номер параметра %d из %n имеет неполный тип %t", "номер параметра %d из %n имеет абстрактный тип %t", @@ -3570,7 +3570,7 @@ "плохое отражение (%r) для выражения splice", "%n уже определено (предыдущее определение %p)", "объект infovec не инициализирован", - "value_of type %t1 несовместимо с данным отражением (сущность с типом %t2)", + "извлечение типа %t1 несовместимо с заданным отражением (сущность типа %t2)", "отражение набора перегрузки сейчас не разрешено", "эта внутренняя функция требует отражения для экземпляра шаблона", "несовместимые типы %t1 и %t2 для оператора", @@ -3601,6 +3601,21 @@ "не удалось создать единицу заголовка для текущей единицы трансляции", "текущая единица трансляции использует одну или несколько функций, которые в данный момент невозможно записать в единицу заголовка", "\"explicit(bool)\" — это функция C++20", + "первый аргумент должен быть указателем на целое число, enum или значение поддерживаемого типа с плавающей точкой", + "Модули C++ не могут использоваться при компиляции нескольких единиц трансляции", + "Модули C++ нельзя использовать с функцией \"export\" версии ниже C++11", + "токен IFC %sq не поддерживается", + "атрибут \"pass_object_size\" допустим только для параметров объявлений функций", + "аргумент атрибута %sq %d1 должен быть значением от 0 до %d2", + "здесь игнорируется ref-qualifier", + "недопустимый тип элемента вектора NEON %t", + "недопустимый тип элемента поливектора NEON %t", + "недопустимый тип масштабируемого векторного элемента %t", + "недопустимое количество элементов кортежа для масштабируемого векторного типа", + "вектор NEON или поливектор должен иметь ширину 64 или 128 бит", + "безразмерный тип %t не допускается", + "объект безразмерного типа %t нельзя инициализировать значением", + "обнаружен неожиданный индекс объявления NULL, являющийся частью области %u", "необходимо указать имя модуля для сопоставления файла модуля, ссылающегося на файл %sq", "было получено значение NULL индекса, в котором ожидался узел в секции IFC%sq", "%nd не может иметь тип %t", @@ -3629,5 +3644,17 @@ "атрибут ext_vector_type применяется только к типам bool, integer или float point", "использование нескольких указателей в одном объединении не допускается", "тестовое сообщение", - "для использования \"--ms_c++23\" эмулируемая версия Майкрософт должна быть не ниже 1943" -] + "для использования \"--ms_c++23\" эмулируемая версия Майкрософт должна быть не ниже 1943", + "недопустимый текущий рабочий каталог: %s", + "атрибут \"cleanup\" в функции вида constexpr в настоящее время не поддерживается", + "атрибут \"assume\" может применяться только к пустому оператору", + "предположение оказалось неверным", + "шаблоны переменных — это функция C++14", + "нельзя получить адрес функции с параметром, объявленным с атрибутом \"pass_object_size\"", + "все аргументы должны быть одного типа", + "окончательное сравнение было %s1 %s2 %s3", + "слишком много аргументов для атрибута %sq", + "строка мантиссы не содержит допустимого числа", + "ошибка с плавающей запятой во время вычисления константы", + "наследование конструктора %n игнорируется для операций, подобных копированию и перемещению" +] \ No newline at end of file diff --git a/Extension/bin/messages/tr/messages.json b/Extension/bin/messages/tr/messages.json index b82139ea9..b730e913d 100644 --- a/Extension/bin/messages/tr/messages.json +++ b/Extension/bin/messages/tr/messages.json @@ -163,7 +163,7 @@ "tanınmayan #pragma", null, "geçici dosya %sq açılamıyor: %s2", - "geçici dosya dizininin adı çok uzun (%sq)", + null, "işlev çağrısı içinde çok az sayıda bağımsız değişken var", "geçersiz kayan sabit", "%t1 türündeki bağımsız değişken %t2 türü parametre ile uyumsuz", @@ -1828,7 +1828,7 @@ "'auto' işlevi, bitiş dönüş türü gerektiriyor", "bir üye şablonu, saf bir belirticiye sahip olamaz", "dize sabit değeri çok uzun; fazla karakterler yoksayılıyor", - "nullptr anahtar sözcüğünü denetleme seçeneği yalnızca C++ derlerken kullanılabilir", + null, "std::nullptr_t, bool'a dönüştürüldü", null, null, @@ -3230,8 +3230,8 @@ "diğer eşleşme %t", "burada kullanılan 'availability' özniteliği yoksayıldı", "Bu modda, aralık tabanlı 'for' deyimindeki C++20 stili başlatıcı deyimi standart dışıdır", - "co_await yalnızca aralık tabanlı for deyimine uygulanabilir", - "aralık tabanlı 'for' döngüsündeki aralık türü çıkarsanamıyor", + "co_await yalnızca aralık tabanlı \"for\" deyimine uygulanabilir", + "aralık tabanlı \"for\" deyimindeki aralık türü çıkarsanamıyor", "satır içi değişkenler bir C++17 özelliğidir", "yok etme işleci silme işlemi birinci parametre olarak %t gerektirir", "yok etme işleci silme, std::size_t ve std::align_val_t dışında parametrelere sahip olamaz", @@ -3272,17 +3272,17 @@ "%sq, içeri aktarılabilen bir üst bilgi değil", "adı olmayan bir modül içeri aktarılamaz", "modülün kendisine yönelik arabirim bağımlılığı olamaz", - "%sq modülü zaten içeri aktarılmış", + "%m zaten içeri aktarılmış", "modül dosyası", "%sq modülü için modül dosyası bulunamadı", "%sq modül dosyası içeri aktarılamadı", - "%s1 bekleniyordu ancak bunun yerine %s2 bulundu", + null, "%sq modül dosyası açılırken", "%sq bölüm adı bilinmiyor", - "bilinmeyen bir modül dosyası", - "içeri aktarılabilir üst bilgi modülü dosyası", - "EDG modülü dosyası", - "IFC modülü dosyası", + null, + null, + null, + null, "beklenmeyen bir modül dosyası", "%t2 ikinci işlenenin türü, %t1 ile aynı boyutta olmalıdır", "tür, üç yana kopyalanabilir olmalıdır", @@ -3347,7 +3347,7 @@ "içeri aktarılacak '%s' üst bilgisi bulunamıyor", "modül dosyası listesinde birden fazla dosya '%s' ile eşleşiyor", "'%s' için bulunan modül dosyası farklı bir modüle yönelik", - "herhangi bir türde modül dosyası", + null, "modül dosyası okunamıyor", "char8_t türü geçerli seçeneklerle desteklenmediği için yerleşik işlev kullanılamıyor", null, @@ -3368,7 +3368,7 @@ "bu derleme hedefi için bit düzeni yorumlanamıyor", "%sq IFC operatörüne karşılık gelen operatör yok", "%sq IFC çağırma kuralına karşılık gelen çağırma kuralı yok", - "%sq modülü desteklenmeyen yapılar içeriyor", + "%m desteklenmeyen yapılar içeriyor", "desteklenmeyen IFC yapısı: %sq", "__is_signed şu andan itibaren bir anahtar sözcük değil", "dizi boyutu sabit bir işaretsiz tamsayı değerine sahip olmalıdır", @@ -3417,22 +3417,22 @@ "'if consteval' ve 'if not consteval' bu modda standart değil", "lambda bildirimcisinde '()' atlanması bu modda standart değil", "lambda parametre listesi atlandığında trailing-requires-clause’a izin verilmez", - "%sq modülünün geçersiz bölümü istendi", - "%sq1 modülünün tanımsız bölümü (%sq2 olduğu düşünülüyor) istendi", + "%m geçersiz bölümü istendi", + "%m tanımsız bölümü (%sq olduğu düşünülüyor) istendi", null, null, - "modül %sq1 dosya konumu %u1 (%u2 göreli konum) %sq2 bölümü için istendi - bu, bölümünün sonundan taşar", - "%sq1 modülünün %u1 dosya konumu (%u2 göreli konumu) bölüm öğeleriyle yanlış hizalanan %sq2 bölümü için istekte bulundu", + "%m dosya konumu %u1 (%u2 göreli konum) %sq bölümü için istendi - bu, bölümünün sonundan taşar", + "%u1 modülünün %m dosya konumu (%u2 göreli konumu) bölüm öğeleriyle yanlış hizalanan %sq bölümü için istekte bulundu", "%sq alt alanından (%u düğümüne göreli konum)", "%sq bölümündeki %u1 öğesinden (%u2 dosya konumu, %u3 göreli konumu)", "lambdalar üzerindeki öznitelikler bir C++23 özelliğidir", "%sq tanımlayıcısı görsel olarak %p gibi görünen tanımlayıcıyla karıştırılabilir", "bu açıklama, şüpheli Unicode biçimlendirme denetim karakterleri içeriyor", "bu dize beklenmeyen çalışma zamanı davranışına neden olabilecek Unicode biçimlendirme denetim karakterleri içeriyor", - "%d1 modülü işlenirken %sq1 gizlenen uyarıyla karşılaşıldı", - "%d1 modülü işlenirken %sq1 gizlenen uyarıyla karşılaşıldı", - "%d1 modülü işlenirken %sq1 gizlenen hatayla karşılaşıldı", - "%d1 modülü işlenirken %sq1 gizlenen hatayla karşılaşıldı", + "%m işlenirken %u gizlenen uyarıyla karşılaşıldı", + "%m işlenirken %u gizlenen uyarıyla karşılaşıldı", + "%m işlenirken %u gizlenen hatayla karşılaşıldı", + "%m işlenirken %u gizlenen hatayla karşılaşıldı", "dahil", "gizlendi", "sanal üye işlevi açık bir 'this' parametresine sahip olamaz", @@ -3467,7 +3467,7 @@ "tamamlanmamış sabit listesi türüne sahip bir bit alanı veya geçersiz temel türe sahip opak bir sabit listesi", "%sq2 IFC bölümü içinde bir dizin kullanılarak %sq IFC bölümündeki bir öğe oluşturulmaya çalışıldı", "%sq bölümü, %u2 beklendiğinde giriş boyutunu %u1 olarak belirtti", - "%sq1 modülü işlenirken beklenmeyen bir IFC gereksinimiyle karşılaşıldı", + "%m işlenirken beklenmeyen bir IFC gereksinimiyle karşılaşıldı", "koşul, %d numaralı satırda (%s1 içinde) başarısız oldu: %sq2", "atomik kısıtlama kendisine bağımlı", "'noreturn' işlevi geçersiz olmayan bir dönüş türüne sahiptir", @@ -3475,9 +3475,9 @@ "varsayılan bir şablon bağımsız değişkeni, sınıfının dışındaki bir şablon üyesinin tanımında belirtilemez", "varlık yeniden oluşturma işlemi sırasında geçersiz %sq IFC tanımlayıcı adı ile karşılaşıldı", null, - "%sq modülü geçersiz sıralama değeri", + "%m geçersiz sıralama değeri", "bir IFC modülünden yüklenen bir fonksiyon şablonu hatalı bir şekilde %nd olarak ayrıştırıldı", - "%sq modülünde bir IFC varlık referansı yüklenemedi", + "%m içindeki bir IFC varlık başvurusu yüklenemedi", "%sq bölümündeki %u1 öğesinden (%u2 dosya konumu, %u3 göreli konumu)", "zincirli belirleyicilere, önemsiz yıkıcıya sahip bir sınıf türü için izin verilmez", "açık bir özelleştirme bildirimi, arkadaş bildirimi olamaz", @@ -3506,9 +3506,9 @@ null, "esnek bir dizi üyesi için bir başlatıcıyı değerlendiremez", "varsayılan bir bit alanı başlatıcı, bir C++20 özelliğidir", - "%sq modülündeki şablon argüman listesinde çok fazla argüman var", + "%m içindeki şablon bağımsız değişkeni listesinde çok fazla bağımsız değişken var", "%sq öğesi %u1 tarafından temsil edilen şablon bağımsız değişkeni için algılandı (dosya konumu %u2, göreli konum %u3)", - "%sq modülündeki şablon argüman listesinde çok az argüman var", + "%m içindeki şablon bağımsız değişkeni listesinde çok az bağımsız değişken var", "%sq öğesi %u1 tarafından temsil edilen şablon bağımsız değişken listesi işlenirken algılandı (dosya konumu %u2, göreli konum %u3)", "%t kapsamlı sabit listesi türünden dönüştürme standart değil", "serbest bırakma, tahsis türüyle eşleşmiyor (biri bir dizi için, diğeri değil)", @@ -3517,8 +3517,8 @@ "__make_unsigned yalnızca bool olmayan tamsayı ve sabit listesi türleriyle uyumludur", "%sq gerçek adı buradan sıradan bir tanımlayıcı olarak ele alınacaktır.", "%d dizinindeki başlatılmamış alt nesneye erişim", - "IFC satır numarası (%u1), izin verilen maksimum değeri (%u2) modül %sq'den taşar", - "modül %sq1 istenen %u bölüm %sq2 ise, bu dosya konumu temsil edilebilir en büyük değeri aşıyor", + "IFC satır numarası (%u1), izin verilen maksimum değeri (%u2) %m'den taşar", + "%m, %sq bölümünün %u öğesini istedi, bu dosya konumu temsil edilebilir en büyük değeri aşıyor", "yanlış bağımsız değişken sayısı", "%n adayı üzerindeki kısıtlama karşılanamadı", "%n parametresinin sayısı çağrıyla eşleşmiyor", @@ -3551,7 +3551,7 @@ "%sq IFC dosyası işlenemiyor", "%u1.%u2 IFC sürümü desteklenmiyor", "%sq IFC mimarisi geçerli hedef mimariyle uyumsuz", - "%sq1 modülü, desteklenmeyen bir bölümün %u dizinini istiyor (%sq2 modülüne karşılık gelir)", + "%m, desteklenmeyen bir bölümün %u dizinini istiyor (%sq modülüne karşılık gelir)", "%n üzerindeki %d numaralı parametre %t türünde ve tamamlanamıyor", "%n üzerindeki %d numaralı parametre %t türünde ve tür tamamlanmamış", "%n üzerindeki %d numaralı parametre %t türünde ve bu bir soyut tür", @@ -3570,7 +3570,7 @@ "ifade eşleme için hatalı yansıma (%r)", "%n zaten tanımlandı (önceki tanım %p)", "infovec nesnesi başlatılamadı", - "value_of %t1 türü verilen yansımayla (%t2 türüne sahip varlık) uyumlu değil", + "%t1 türündeki ayıklama verilen yansımayla (%t2 türüne sahip varlık) uyumlu değil", "aşırı yükleme kümesini yansıtmaya şu anda izin verilmiyor", "bu iç öğe, bir şablon örneği için yansıma gerektiriyor", "işleç için %t1 ve %t2 türleri uyumsuz", @@ -3601,6 +3601,21 @@ "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", + "ilk bağımsız değişken tamsayıyı, enum'u veya desteklenen kayan noktayı gösteren bir işaretçi olmalıdır", + "C++ modülleri birden çok çeviri birimi derlenirken kullanılamaz", + "C++ modülleri, C++11 öncesi \"export\" özelliği ile kullanılamaz", + "%sq IFC belirteci desteklenmiyor", + "\"pass_object_size\" özniteliği yalnızca işlev bildirimlerinin parametrelerinde geçerlidir", + "%sq %d1 özniteliğinin bağımsız değişkeni 0 ile %d2 arasında bir değer olmalıdır", + "buradaki ref-qualifier yoksayıldı", + "%t NEON vektör öğesi türü geçersiz", + "%t NEON çoklu vektör öğesi türü geçersiz", + "%t ölçeklenebilir vektör öğesi türü geçersiz", + "Ölçeklenebilir vektör türü için geçersiz tanımlama grubu öğesi sayısı", + "bir NEON vektörü veya çoklu vektörü 64 veya 128 bit genişliğinde olmalıdır", + "%t boyutsuz türüne izin verilmiyor", + "%t boyutsuz türünün nesnesi değer tarafından başlatılamaz", + "%u kapsamının bir parçası olarak beklenmeyen null bildirim dizini bulundu", "%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", @@ -3629,5 +3644,17 @@ "'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" -] + "'--ms_c++23' kullanabilmek için öykünülen Microsoft sürümü en az 1943 olmalıdır", + "mevcut çalışma dizini geçersiz: %s", + "constexpr işlevi içindeki \"cleanup\" özniteliği şu anda desteklenmiyor", + "\"assume\" özniteliği yalnızca null deyime uygulanabilir", + "varsayım başarısız oldu", + "değişken şablonları bir C++14 özelliğidir", + "\"pass_object_size\" özniteliğiyle bildirilen parametreye sahip bir işlevin adresi alınamaz", + "tüm bağımsız değişkenler aynı türe sahip olmalıdır", + "son karşılaştırma %s1 %s2 %s3 idi", + "%sq özniteliği için çok fazla bağımsız değişken var", + "mantissa dizesi geçerli bir sayı içermiyor", + "sabit değerlendirme sırasında kayan nokta hatası", + "kopyalama/taşıma benzeri işlem için %n oluşturucusunu devralma yoksayıldı" +] \ No newline at end of file diff --git a/Extension/bin/messages/zh-cn/messages.json b/Extension/bin/messages/zh-cn/messages.json index ae52d271c..6db0e88a3 100644 --- a/Extension/bin/messages/zh-cn/messages.json +++ b/Extension/bin/messages/zh-cn/messages.json @@ -163,7 +163,7 @@ "无法识别的 #pragma", null, "未能打开临时文件 %sq: %s2", - "临时文件的目录名称太长(%sq)", + null, "函数调用中的参数太少", "浮点常量无效", "%t1 类型的实参与 %t2 类型的形参不兼容", @@ -1828,7 +1828,7 @@ "“auto”函数需要尾随的返回类型", "成员模板不能具有纯说明符", "字符串太长 -- 已忽略多余的字符", - "用于控制 nullptr 关键字的选项只能在编译 C++ 时使用", + null, "std::nullptr_t 已转换为 bool", null, null, @@ -3230,8 +3230,8 @@ "另一匹配是 %t", "已忽略此处使用的 \"availability\" 属性", "在基于范围的 \"for\" 语句中,C++20 样式的初始化表达式语句在此模式下不是标准的", - "co_await 只能应用到基于范围的 for 语句", - "无法在基于范围的 \"for\" 循环中推断范围类型", + "co_await 只能应用于基于范围的“for”语句", + "无法在基于范围的“for”语句中推断范围类型", "内联变量是 C++17 功能", "销毁运算符 delete 需要 %t 作为第一个参数", "销毁运算符 delete 不能具有 std::size_t 和 std::align_val_t 以外的参数", @@ -3272,17 +3272,17 @@ "%sq 不是可导入标头", "不能导入没有名称的模块", "模块不能与自身有接口依赖关系", - "已导入模块 %sq", + "%m 已导入", "模块文件", "找不到模块 %sq 的模块文件", "无法导入模块文件 %sq", - "预期 %s1,但找到 %s2", + null, "打开模块文件 %sq 时", "未知的分区名称 %sq", - "未知模块文件", - "可导入标头模块文件", - "EDG 模块文件", - "IFC 模块文件", + null, + null, + null, + null, "意外的模块文件", "第二个操作数的类型 %t2 必须与 %t1 大小相同", "类型必须可轻松复制", @@ -3347,7 +3347,7 @@ "找不到要导入的标头“%s”", "模块文件列表中有多个文件与“%s”匹配", "为“%s”找到的模块文件用于其他模块", - "任何类型的模块文件", + null, "无法读取模块文件", "内置函数不可用,因为当前选项不支持 char8_t 类型", null, @@ -3368,7 +3368,7 @@ "无法解释此编译目标的位布局", "IFC 运算符 %sq 没有对应的运算符", "IFC 调用约定 %sq 没有相应的调用约定", - "模块 %sq 包含不受支持的构造", + "%m 包含不受支持的构造", "不支持的 IFC 构造: %sq", "__is_signed 不再是从此点开始的关键字", "数组维度必须具有常量无符号整数值", @@ -3417,22 +3417,22 @@ "在此模式下,'if consteval' 和 'if not consteval' 不标准", "在此模式下,在 lambda 声明符中省略 '()' 为不标准操作", "当省略 lambda 参数列表时,不允许使用尾随 Requires 子句", - "已请求模块 %sq 无效分区", - "已请求模块 %sq1 未定义分区(被认为是 %sq2)", + "已请求 %m 个无效的分区", + "已请求 %m 个未定义分区(被认为是 %sq)", null, null, - "已请求模块 %sq1 文件位置 %u1 (相对位置 %u2),针对分区 %sq2 请求 - 溢出其分区的末尾", - "已请求模块 %sq1 文件位置 %u1 (相对位置 %u2),针对分区 %sq2 - 与其分区元素不一致", + "为分区 %sq 请求了 %m 文件位置 %u1(相对位置 %u2) - 溢出其分区的末尾", + "为分区 %sq 请求了 %m 文件位置 %u1(相对位置 %u2) - 与其分区元素不一致", "从子域 %sq (相对于节点 %u 的位置)", "来自分区 %sq 元素 %u1(文件位置 %u2,相对位置 %u3)", "Lambda 上的特性是一项 C++23 功能", "标识符 %sq 可能与显示 %p 的视觉上相似的标识符混淆", "此注释包含可疑的 Unicode 格式控制字符", "此字符串包含可能导致意外运行时行为的 Unicode 格式控制字符", - "遇到 %d1 条已抑制警告(处理模块 %sq1 时)", - "遇到 %d1 条已抑制警告(处理模块 %sq1 时)", - "遇到 %d1 条已抑制错误(处理模块 %sq1 时)", - "遇到 %d1 条已抑制错误(处理模块 %sq1 时)", + "处理 %m 时遇到 %u 条抑制的警告", + "处理 %m 时遇到 %u 条抑制的警告", + "处理 %m 时遇到 %u 个抑制的错误", + "处理 %m 时遇到 %u 个抑制的错误", "包括", "已抑制", "虚拟成员函数不能具有显式 'this' 参数", @@ -3467,7 +3467,7 @@ "具有不完整枚举类型的位字段或具有无效基类型的不透明枚举", "已尝试使用索引将一个元素从 IFC 分区 %sq 构造到 IFC 分区 %sq2", "分区 %sq 将其条目大小指定为 %u1,正确的大小为 %u2", - "处理模块 %sq1 时遇到意外的 IFC 要求", + "处理 %m 时遇到意外的 IFC 要求", "条件失败,行 %d,%s1: %sq2", "原子约束依赖于自身", "“noreturn”函数具有非 void 返回类型", @@ -3475,9 +3475,9 @@ "不能在成员模板类之外的成员模板定义上指定默认模板参数", "实体重建期间遇到了无效的 IFC 标识符名称 %sq", null, - "模块 %sq 排序值无效", + "%m 无效的排序值", "从 IFC 模块加载的函数模板被错误地分析为 %nd", - "未能在模块 %sq 中加载 IFC 实体引用", + "未能在 %m 中加载 IFC 实体引用", "来自分区 %sq 元素 %u1(文件位置 %u2,相对位置 %u3)", "对于具有非平凡析构函数的类的类型,不允许使用链式指示符", "显式专用化声明不能是友元声明", @@ -3506,9 +3506,9 @@ null, "无法计算灵活数组成员的初始值设定项", "默认位字段初始化表达式是 C++20 的特性。", - "模块 %sq 的模板参数列表中的参数太多", + "%m 中的模板参数列表中的参数太多", "检测到由 %sq 元素 %u1 表示的模板参数(文件位置 %u2,相对位置 %u3)", - "模块 %sq 的模板参数列表中的参数太少", + "%m 中的模板参数列表中的参数太少", "在处理由 %sq 元素 %u1 表示的模板参数列表时检测到(文件位置 %u2,相对位置 %u3)", "从作用域内枚举类型 %t 转换为非标准", "解除分配与分配类型不匹配(一种用于数组,另一种不匹配)", @@ -3517,8 +3517,8 @@ "__make_unsigned 仅与非布尔整数和枚举类型兼容", "内部名称 %sq 将从此处视为普通标识符", "访问索引为 %d 的未初始化的子对象", - "IFC 行号 (%u1) 溢出允许的最大值 (%u2) 模块 %sq", - "模块 %sq1 请求了元素 %u (分区 %sq2),此文件位置超出了最大可表示值", + "IFC 行号(%u1)溢出允许的最大值(%u2) %m", + "%m 请求了分区 %sq 的元素 %u,此文件位置超出了最大可表示值", "参数数目不正确。", "未满足对候选项 %n 的约束", "%n 的参数数目与调用不匹配", @@ -3551,7 +3551,7 @@ "无法处理 IFC 文件 %sq", "不支持 IFC 版本 %u1.%u2", "IFC 体系结构 %sq 与当前目标体系结构不兼容", - "模块 %sq1 请求索引 %u,它是对应于 %sq2 的不支持分区的索引", + "%m 请求对应于 %sq 的不支持分区的索引 %u", "%n 的参数编号 %d 具有无法完成的类型 %t", "%n 的参数编号 %d 具有未完成的类型 %t", "%n 的参数编号 %d 具有抽象类型 %t", @@ -3570,7 +3570,7 @@ "表达式拼接的错误反射(%r)", "已定义 %n (之前的定义 %p)", "infovec 对象未初始化", - "value_of 类型 %t1 与给定的反射(类型为 %t2 的实体)不兼容", + "类型 %t1 的提取与给定的反射(类型为 %t2 的实体)不兼容", "当前不允许反射重载集", "此内部函数需要模板实例的反射", "运算符的类型 %t1 和 %t2 不兼容", @@ -3601,6 +3601,21 @@ "无法为当前翻译单元创建标头单元", "当前翻译单元使用当前无法写入标头单元的一个或多个功能", "“explicit(bool)” 是 C++20 功能", + "第一个参数必须是指向整数、enum 或支持的浮点类型的指针", + "编译多个翻译单元时无法使用 C++ 模块", + "C++ 模块不能与预 C++11 的“export”功能一起使用", + "不支持 IFC 令牌 %sq", + "“pass_object_size”属性仅对函数声明的参数有效", + "%sq 属性 %d1 的参数必须介于 0 和 %d2 之间", + "此处的 ref-qualifier 被忽略", + "NEON 向量元素类型 %t 无效", + "NEON 多项式向量元素类型 %t 无效", + "可缩放矢量元素类型 %t 无效", + "可缩放向量类型的元组元素数量无效", + "NEON 向量或多项式向量的宽度必须为 64 位或 128 位", + "不允许使用无大小类型 %t", + "无大小类型 %t 的对象不能进行值初始化", + "在范围 %u 中找到意外的 null 声明索引", "必须为引用文件 %sq 的模块文件映射指定模块名称", "收到 null 索引值,但应为 IFC 分区 %sq 中的节点", "%nd 不能具有类型 %t", @@ -3629,5 +3644,17 @@ "\"ext_vector_type\" 属性仅适用于布尔值、整数或浮点类型", "不允许将多个指示符加入同一联合", "测试消息", - "正在模拟的 Microsoft 版本必须至少为 1943 才能使用“--ms_c++23”" -] + "正在模拟的 Microsoft 版本必须至少为 1943 才能使用“--ms_c++23”", + "当前工作目录无效: %s", + "constexpr 函数中的“cleanup”属性当前不受支持", + "“assume”属性只能应用于 null 语句", + "假设失败", + "变量模板是一项 C++14 功能", + "无法获取使用“pass_object_size”属性声明的参数的函数地址", + "所有参数的类型必须相同", + "最终比较为 %s1 %s2 %s3", + "属性 %sq 的参数太多", + "mantissa 字符串不包含有效的数字", + "常量计算期间出现浮点错误", + "对于复制/移动类操作,已忽略继承构造函数 %n" +] \ No newline at end of file diff --git a/Extension/bin/messages/zh-tw/messages.json b/Extension/bin/messages/zh-tw/messages.json index 20f1012bd..72ad00f5d 100644 --- a/Extension/bin/messages/zh-tw/messages.json +++ b/Extension/bin/messages/zh-tw/messages.json @@ -163,7 +163,7 @@ "無法辨認的 #pragma", null, "無法開啟暫存檔 %sq: %s2", - "暫存檔的目錄名稱太長 (%sq)", + null, "函式呼叫中的引數太少", "無效的浮點常數", "類型 %t1 的引數與類型 %t2 的參數不相容", @@ -1828,7 +1828,7 @@ "'auto' 函式需要有尾端傳回類型", "成員樣板不能有純虛擬函式規範", "字串常值太長 -- 已忽略額外的字元", - "控制 nullptr 關鍵字的選項只有在編譯 C++ 時才能使用", + null, "std::nullptr_t 已轉換成布林", null, null, @@ -3230,8 +3230,8 @@ "另一個相符項目為 %t", "已忽略此處使用的 'availability' 屬性", "範圍架構 'for' 陳述式中的 C++20 樣式初始設定式陳述式在此模式中不是標準用法", - "co_await 只能套用至範圍架構 for 陳述式", - "無法推算範圍架構 'for' 迴圈中的範圍類型", + "co_await 只能套用至範圍架構 \"for\" 陳述式", + "無法推算範圍架構 \"for\" 陳述式中的範圍類型", "內嵌變數為 C++17 功能", "終結運算子 Delete 需要 %t 作為第一個參數", "終結運算子 Delete 不能有除了 std::size_t 與 std::align_val_t 的參數", @@ -3272,17 +3272,17 @@ "%sq 不是可匯入的標頭", "無法匯入沒有名稱的模組", "模組本身不能具有介面相依性", - "已匯入模組 %sq", + "%m 已匯入", "模組檔案", "找不到模組 %sq 的模組檔案", "無法匯入模組檔案 %sq", - "必須為 %s1,但找到 %s2", + null, "在開啟模組檔案 %sq 時", "未知的分割名稱 %sq", - "未知的模組檔案", - "可匯入的標頭模組檔案", - "EDG 模組檔案", - "IFC 模組檔案", + null, + null, + null, + null, "未預期的模組檔案", "第二個運算元 %t2 的類型必須與 %t1 的大小相同", "類型必須可以原樣複製", @@ -3347,7 +3347,7 @@ "找不到要匯入的標頭 '%s'", "模組檔案清單中有多個檔案與 '%s' 相符", "為 '%s' 找到的模組檔案會用於其他模組", - "任何類型的模組檔案", + null, "無法讀取模組檔案", "因為目前的選項不支援 char8_t 類型,所以無法使用內建函式", null, @@ -3368,7 +3368,7 @@ "無法解譯此編譯目標的位元配置", "IFC 運算子 %sq 沒有任何相對應的運算子", "IFC 呼叫慣例 %sq 沒有任何相對應的呼叫慣例", - "模組 %sq 包含不支援的建構", + "%m 包含不受支援的建構", "不支援的 IFC 建構: %sq", "__is_signed 從現在起已不再是關鍵字", "陣列維度必須要有不帶正負號的常數整數值", @@ -3417,35 +3417,35 @@ "在此模式中,'if consteval' 和 'if not consteval' 不是標準", "在此模式中,在 Lambda 宣告子中省略 '()' 並非標準", "省略 Lambda 參數清單時,不允許後置 Requires 子句", - "模組 %sq 要求的分割區無效", - "模組 %sq1 已要求未定義的分割區 (相信是 %sq)", + "已要求 %m 無效的分割區", + "已要求 %m 未定義的分割區 (可能是 %sq)", null, null, - "模組 %sq1 檔案位置 %u1 (相對位置 %u2) 要求分割區 %sq2 - 溢出其分割區的結尾", - "模組 %sq1 檔案位置 %u1 (相對位置 %u2) 要求分割區 %sq2 - 與其分割區元素對齊錯誤", + "%m 檔案位置 %u1 (相對位置 %u2) 要求了分割區 %sq - 其溢出其分割區的結尾", + "%m 檔案位置 %u1 (相對位置 %u2) 要求了分割區 %sq - 這與其分割區元素未對齊", "從 subfield %sq (節點 %u 的相對位置)", "從分割區 %sq 元素 %u1 (檔案位置 %u2,相對位置 %u3)", "lambda 上的屬性是 C++23 功能", "識別碼 %sq 可能會與 %p 上視覺類似的識別碼混淆", "此註解包含可疑的 Unicode 格式化控制字元", "此字串包含 Unicode 格式化控制字元,可能會導致非預期的執行時間行為", - "%d1 抑制警告在處理模組 %sq1 時發生", - "%d1 抑制警告在處理模組 %sq1 時發生", - "%d1 抑制錯誤在處理模組 %sq1 時發生", - "%d1 抑制錯誤在處理模組 %sq1 時發生", + "處理 %m 時遇到 %u 個抑制的警告", + "處理 %m 時遇到 %u 個抑制的警告", + "處理 %m 時遇到 %u 個抑制的錯誤", + "處理 %m 時遇到 %u 個抑制的錯誤", "包括", "抑制", "虛擬成員函式不能有明確的 'this' 參數", "取得明確 'this' 函數的位址需要限定名稱", "形成明確 'this' 函數的位址需要 '&' 運算子", "字串常值不能用來初始化彈性陣列成員", - "函數 %sq 定義的 IFC 表示法無效", + "函式 %sq 定義的 IFC 表示法無效", null, "UniLevel IFC 圖表未用來指定參數", "IFC 參數定義圖表指定了 %u1 個參數,而 IFC 宣告則指定了 %u2 個參數", "IFC 參數定義圖表指定了 %u1 個參數,而 IFC 宣告則指定了 %u2 個參數", "IFC 參數定義圖表指定了 %u1 個參數,而 IFC 宣告則指定了 %u2 個參數", - "遺漏函數 %sq 定義的 IFC 標記法", + "遺漏函式 %sq 定義的 IFC 標記法", "函數修飾詞不適用於成員範本宣告", "成員選取涉及太多巢狀匿名型別", "運算元之間沒有通用類型", @@ -3467,7 +3467,7 @@ "具有不完整列舉類型的位欄位,或具有無效基底類型的不透明列舉", "已嘗試使用索引從 IFC 磁碟分割 %sq2 將元素建構到 IFC 磁碟分割 %sq", "磁碟分割 %sq 將其項目大小指定為 %u1,但預期為 %u2", - "處理模組 %sq1 時發現未預期的 IFC 需求", + "處理 %m 時遇到未預期的 IFC 需求", "第 %d 行 (在 %s1 中) 條件失敗: %sq2", "不可部分完成限制式依賴其本身", "'noreturn' 函數具有非 void 的返回類型", @@ -3475,9 +3475,9 @@ "無法在其類別外的成員範本定義上指定預設範本引數", "實體重建期間發現無效 IFC 識別碼名稱 %sq", null, - "模組 %sq 無效排序值", + "%m 無效的排序值", "從 IFC 模組載入的函數範本不正確地剖析為 %nd", - "無法在模組 %sq 中載入 IFC 實體參考", + "無法在 %m 中載入 IFC 實體參考", "從分割區 %sq 元素 %u1 (檔案位置 %u2,相對位置 %u3)", "具有非屬性解構函數的類別類型不允許連結指定元", "明確的特殊化宣告不能是 friend 宣告", @@ -3506,9 +3506,9 @@ null, "無法評估彈性陣列成員的初始設定式", "預設的位元欄位初始設定式為 C++20 功能", - "模組 %sq 中範本引數清單中的引數太多", + "%m 中範本引數清單中的引數太多", "偵測到 %sq 元素 %u1 所代表的範本引數 (檔案位置 %u2,相對位置 %u3)", - "模組 %sq 中範本引數清單中的引數太少", + "%m 中範本引數清單中的引數太少", "在處理 %sq 元素 %u1 所代表的範本引數清單時偵測到 (檔案位置 %u2,相對位置 %u3)", "從範圍列舉類型 %t 轉換為非標準", "解除配置和配置種類不相符 (一個是針對陣列,另一個則不是)", @@ -3517,8 +3517,8 @@ "__make_unsigned 只和非布林值整數和列舉類型相容", "在這裡會將內部名稱 %sq 視為一般識別碼", "存取索引 %d 中未初始化的子物件", - "IFC 行號 (%u1) 溢位最大允許值 (%u2) 模組 %sq", - "模組 %sq1 要求的元素 %u 分割區 %sq2,此檔案位置超出可表示的最大值", + "IFC 行號 (%u1) 溢出最大允許的值 (%u2) %m", + "%m 要求了分割區 %sq 的元素 %u,此檔案位置超過最大可呈現值", "引數數目錯誤", "不符合對候選項目 %n 的限制式", "%n 的參數數目和呼叫不相符", @@ -3551,7 +3551,7 @@ "無法處理 IFC 檔案 %sq", "不支援 IFC 版本 %u1.%u2", "IFC 架構 %sq 與目前的目標架構不相容", - "模組 %sq1 要求索引 %u,其為對應至 %sq2 不支援分割的索引", + "%m 要求對應至 %sq 不受支援的分割區的索引 %u", "%n 的參數編號 %d 具有無法完成的類型 %t", "%n 的參數編號 %d 具有不完整的類型 %t", "%n 的參數編號 %d 具有抽象類別型 %t", @@ -3570,7 +3570,7 @@ "運算式 splice 的不良反映 (%r)", "%n 已定義 (先前的定義 %p)", "infovec 物件未初始化", - "value_of 類型 %t1 與給定的反映 (類型為 %t2 的實體) 不相容", + "類型 %t1 的擷取與給定的反映 (類型為 %t2 的實體) 不相容", "目前不允許反射多載集", "此內部函式需要範本執行個體的反映", "運算子的 %t1 和 %t2 類型不相容", @@ -3601,6 +3601,21 @@ "無法為目前的編譯單位建立標頭單位", "目前的編譯單位使用一或多個目前無法寫入標頭單位的功能", "'explicit(bool)' 是 C++20 功能", + "第一個引數必須是整數的指標、enum 或支援的浮點類型", + "編譯多個翻譯單元時,無法使用 C++ 模組", + "C++ 模組無法搭配先前的 C++11 \"export\" 功能使用", + "IFC 權杖 %sq 不受支援", + "\"pass_object_size\" 屬性僅在函式宣告的參數上有效", + "%sq 屬性 %d1 的引數必須是介於 0 到 %d2 之間的值", + "這裡會忽略 ref-qualifier", + "無效的 NEON 向量元素類型 %t", + "無效的 NEON 多邊形向量元素類型 %t", + "無效的可調整向量元素類型 %t", + "可調整向量類型的 Tuple 元素數目無效", + "NEON 向量或多邊形向量必須是 64 或128 位元寬", + "不允許無大小類型 %t", + "無大小類型 %t 的物件不可以是以值初始化", + "在範圍 %u 中發現未預期的 Null 宣告索引", "必須為參照檔案的模組檔案對應指定模組名稱 %sq", "收到 Null 索引值,其中預期 IFC 分割區 %sq 中的節點", "%nd 不能有類型 %t", @@ -3629,5 +3644,17 @@ "'ext_vector_type' 屬性只適用於布林值、整數或浮點數類型", "不允許多個指示者進入相同的聯集", "測試訊息", - "模擬的 Microsoft 版本至少須為 1943,才能使用 '--ms_c++23'" -] + "模擬的 Microsoft 版本至少須為 1943,才能使用 '--ms_c++23'", + "無效的目前工作目錄: %s", + "constexpr 函式內的 \"cleanup\" 屬性目前不受支援", + "\"assume\" 屬性只能套用至 Null 陳述式", + "假設失敗", + "變數範本為 C++14 功能", + "無法取得具有的參數使用 \"pass_object_size\" 屬性宣告的函式位址", + "所有引數都必須有相同的類型", + "最終比較為 %s1 %s2 %s3", + "屬性 %sq 的引數太多", + "Mantissa 字串未包含有效的數字", + "常數評估期間發生浮點錯誤", + "繼承建構函式 %n 已略過複製/移動之類作業" +] \ No newline at end of file diff --git a/Extension/bin/windows.clang.arm.json b/Extension/bin/windows.clang.arm.json index 5f7397c87..2a62f646c 100644 --- a/Extension/bin/windows.clang.arm.json +++ b/Extension/bin/windows.clang.arm.json @@ -1,6 +1,5 @@ -{ - "defaults": [ - "-D__building_module(x)=0" - ], - "defaults_op": "merge" -} +{ + "defaults": [ + ], + "defaults_op": "merge" +} diff --git a/Extension/bin/windows.clang.arm64.json b/Extension/bin/windows.clang.arm64.json index 5f7397c87..2a62f646c 100644 --- a/Extension/bin/windows.clang.arm64.json +++ b/Extension/bin/windows.clang.arm64.json @@ -1,6 +1,5 @@ -{ - "defaults": [ - "-D__building_module(x)=0" - ], - "defaults_op": "merge" -} +{ + "defaults": [ + ], + "defaults_op": "merge" +} diff --git a/Extension/bin/windows.clang.x64.json b/Extension/bin/windows.clang.x64.json index 5f7397c87..2a62f646c 100644 --- a/Extension/bin/windows.clang.x64.json +++ b/Extension/bin/windows.clang.x64.json @@ -1,6 +1,5 @@ -{ - "defaults": [ - "-D__building_module(x)=0" - ], - "defaults_op": "merge" -} +{ + "defaults": [ + ], + "defaults_op": "merge" +} diff --git a/Extension/bin/windows.clang.x86.json b/Extension/bin/windows.clang.x86.json index 5f7397c87..2a62f646c 100644 --- a/Extension/bin/windows.clang.x86.json +++ b/Extension/bin/windows.clang.x86.json @@ -1,6 +1,5 @@ -{ - "defaults": [ - "-D__building_module(x)=0" - ], - "defaults_op": "merge" -} +{ + "defaults": [ + ], + "defaults_op": "merge" +} diff --git a/Extension/c_cpp_properties.schema.json b/Extension/c_cpp_properties.schema.json index 939cb8a34..6e69667e7 100644 --- a/Extension/c_cpp_properties.schema.json +++ b/Extension/c_cpp_properties.schema.json @@ -19,8 +19,8 @@ "markdownDescription": "Full path of the compiler being used, e.g. `/usr/bin/gcc`, to enable more accurate IntelliSense.", "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", - "null" + "null", + "string" ] }, "compilerArgs": { @@ -59,6 +59,7 @@ "c++17", "c++20", "c++23", + "c++26", "gnu++98", "gnu++03", "gnu++11", @@ -66,6 +67,7 @@ "gnu++17", "gnu++20", "gnu++23", + "gnu++26", "${default}" ] }, @@ -312,4 +314,4 @@ "version" ], "additionalProperties": false -} +} \ 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 a2a854e4c..5ec7ff2f4 100644 --- a/Extension/i18n/chs/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/chs/src/LanguageServer/configurations.i18n.json @@ -10,11 +10,10 @@ "unknown.properties.version": "c_cpp_properties.json 中发现未知的版本号。某些功能可能无法按预期工作。", "update.properties.failed": "尝试更新“{0}”失败(是否有写入权限?)", "failed.to.parse.properties": "未能分析“{0}”", - "path.with.spaces": "具有空格和参数的编译器路径两端缺少双引号 \"。", + "path.with.spaces": "找不到带有空格的编译器路径。如果这是为了包含编译器参数,请用双引号({0})括住编译器路径。", "cannot.find": "无法找到: {0}", - "cannot.resolve.compiler.path": "输入无效,无法解析编译器路径", "path.is.not.a.file": "路径不是文件: {0}", - "wrapped.with.quotes": "Do not add extra quotes around paths.", + "wrapped.with.quotes": "不要在路径周围添加额外的引号。", "path.is.not.a.directory": "路径不是目录: {0}", "duplicate.name": "{0} 重复。配置名称应是唯一的。", "multiple.paths.not.allowed": "不允许使用多个路径。", diff --git a/Extension/i18n/cht/src/LanguageServer/configurations.i18n.json b/Extension/i18n/cht/src/LanguageServer/configurations.i18n.json index ab3ad8dec..81e50f638 100644 --- a/Extension/i18n/cht/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/cht/src/LanguageServer/configurations.i18n.json @@ -10,11 +10,10 @@ "unknown.properties.version": "在 c_cpp_properties.json 中找到未知的版本號碼。某些功能可能無法如期運作。", "update.properties.failed": "嘗試更新 \"{0}\" 失敗 (您有寫入權限嗎?)", "failed.to.parse.properties": "無法剖析 \"{0}\"", - "path.with.spaces": "具有空格和引數的編譯器路徑前後缺少雙引號 \"。", + "path.with.spaces": "找不到具有空格的編譯器路徑。如果這是為了要包含編譯器引數,請以雙引號 ({0}) 括住編譯器路徑。", "cannot.find": "找不到: {0}", - "cannot.resolve.compiler.path": "輸入無效,無法解析編譯器路徑", "path.is.not.a.file": "路徑不是檔案: {0}", - "wrapped.with.quotes": "Do not add extra quotes around paths.", + "wrapped.with.quotes": "請勿在路徑周圍新增額外的引號。", "path.is.not.a.directory": "路徑不是目錄: {0}", "duplicate.name": "{0} 重複。組態名稱應該是唯一的。", "multiple.paths.not.allowed": "不允許使用多個路徑。", diff --git a/Extension/i18n/csy/package.i18n.json b/Extension/i18n/csy/package.i18n.json index 6176c3c95..f5b1d07f5 100644 --- a/Extension/i18n/csy/package.i18n.json +++ b/Extension/i18n/csy/package.i18n.json @@ -254,7 +254,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 zakázáno (`disabled`), při najetí myší se nezobrazí možnost Vygenerovat souhrn Copilot.", + "c_cpp.configuration.copilotHover.markdownDescription": "Pokud je zakázáno (`disabled`), při najetí myší se nezobrazí možnost Vygenerovat souhrn Copilotu.", "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).", diff --git a/Extension/i18n/csy/src/LanguageServer/configurations.i18n.json b/Extension/i18n/csy/src/LanguageServer/configurations.i18n.json index dbfbc3142..fd53ef62f 100644 --- a/Extension/i18n/csy/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/csy/src/LanguageServer/configurations.i18n.json @@ -10,11 +10,10 @@ "unknown.properties.version": "V souboru c_cpp_properties.json se našlo neplatné číslo verze. Některé funkce nemusí fungovat podle očekávání.", "update.properties.failed": "Nepovedlo se aktualizovat {0} (máte oprávnění k zápisu?).", "failed.to.parse.properties": "Nepovedlo se parsovat {0}.", - "path.with.spaces": "Cesta ke kompilátoru s mezerami a argumenty by měla být uzavřená do dvojitých uvozovek, které chybí.", + "path.with.spaces": "Cestu ke kompilátoru s mezerami se nepovedlo najít. Pokud měly být zahrnuty argumenty kompilátoru, uzavřete cestu ke kompilátoru do dvojitých uvozovek ({0}).", "cannot.find": "Nepovedlo se najít: {0}", - "cannot.resolve.compiler.path": "Neplatný vstup, nedá se přeložit cesta ke kompilátoru.", "path.is.not.a.file": "Cesta není soubor: {0}", - "wrapped.with.quotes": "Do not add extra quotes around paths.", + "wrapped.with.quotes": "Nepřidávejte nadbytečné uvozovky kolem cest.", "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.", diff --git a/Extension/i18n/csy/ui/settings.html.i18n.json b/Extension/i18n/csy/ui/settings.html.i18n.json index 7e2b47aec..501481219 100644 --- a/Extension/i18n/csy/ui/settings.html.i18n.json +++ b/Extension/i18n/csy/ui/settings.html.i18n.json @@ -11,7 +11,7 @@ "switch.to.json": "Pokud chcete přepnout na soubor {0}, klikněte na odkaz na soubor nebo použijte příkaz:", "edit.configurations.in.json": "Upravit konfigurace v souboru JSON", "edit.configurations.json": "C/C++: Upravit konfigurace (JSON)", - "check.the.schema": "Další informace o vlastnostech jazyků C/C++ najdete tady: {0}", + "check.the.schema": "Další informace o vlastnostech C/C++ najdete tady: {0}.", "cpp.properties.schema.reference": "Referenční informace ke schématu vlastností C/C++", "view.schema.reference": "Referenční informace ke schématu vlastností", "intellisense.configurations": "Konfigurace IntelliSense", diff --git a/Extension/i18n/deu/package.i18n.json b/Extension/i18n/deu/package.i18n.json index e6cab6600..42d18a86e 100644 --- a/Extension/i18n/deu/package.i18n.json +++ b/Extension/i18n/deu/package.i18n.json @@ -430,7 +430,7 @@ "c_cpp.walkthrough.create.cpp.file.description": "[Öffnen](command:toSide:workbench.action.files.openFile) oder [erstellen](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\" extension, z. B. \"helloworld.cpp\". \n[Erstellen Sie eine C++-Datei](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": "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.command.prompt.description": "Bei Verwendung des Microsoft Visual Studio C++-Compilers erfordert die C++-Erweiterung, dass Sie VS Code aus 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/LanguageServer/configurations.i18n.json b/Extension/i18n/deu/src/LanguageServer/configurations.i18n.json index 75dbd822b..ec30b8b78 100644 --- a/Extension/i18n/deu/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/deu/src/LanguageServer/configurations.i18n.json @@ -10,11 +10,10 @@ "unknown.properties.version": "In \"c_cpp_properties.json\" wurde eine unbekannte Versionsnummer gefunden. Einige Features funktionieren möglicherweise nicht wie erwartet.", "update.properties.failed": "Fehler beim Aktualisieren von \"{0}\". (Besitzen Sie Schreibzugriff?)", "failed.to.parse.properties": "Fehler beim Analysieren von \"{0}\".", - "path.with.spaces": "Der Compilerpfad mit Leerzeichen und Argumenten enthält keine doppelten Anführungszeichen (\") um den Pfad.", + "path.with.spaces": "Der Compilerpfad mit Leerzeichen konnte nicht gefunden werden. Wenn dies auch Compilerargumente einschließen soll, setzen Sie den Compilerpfad in doppelte Anführungszeichen ({0}).", "cannot.find": "Nicht gefunden: {0}", - "cannot.resolve.compiler.path": "Ungültige Eingabe, Compilerpfad kann nicht aufgelöst werden.", "path.is.not.a.file": "Der Pfad ist keine Datei: {0}", - "wrapped.with.quotes": "Do not add extra quotes around paths.", + "wrapped.with.quotes": "Fügen Sie keine zusätzlichen Anführungszeichen um Pfade hinzu.", "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.", diff --git a/Extension/i18n/esn/src/LanguageServer/configurations.i18n.json b/Extension/i18n/esn/src/LanguageServer/configurations.i18n.json index dd3789012..bdf0c3e4a 100644 --- a/Extension/i18n/esn/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/esn/src/LanguageServer/configurations.i18n.json @@ -10,11 +10,10 @@ "unknown.properties.version": "Se encontró un número de versión desconocido en el archivo c_cpp_properties.json. Es posible que algunas características no funcionen correctamente.", "update.properties.failed": "No se pudo actualizar \"{0}\". ¿Tiene acceso de escritura?", "failed.to.parse.properties": "No se pudo analizar \"{0}\"", - "path.with.spaces": "En la ruta de acceso del compilador con espacios y argumentos faltan comillas dobles (\") para delimitarla.", + "path.with.spaces": "No se encontró la ruta de acceso del compilador con espacios. Si la intención era incluir argumentos del compilador, escriba la ruta del compilador entre comillas dobles ({0}).", "cannot.find": "No se encuentra {0}", - "cannot.resolve.compiler.path": "Entrada no válida. No se puede resolver la ruta de acceso del compilador.", "path.is.not.a.file": "La ruta de acceso no es un archivo: {0}", - "wrapped.with.quotes": "Do not add extra quotes around paths.", + "wrapped.with.quotes": "No agregue comillas adicionales alrededor de las rutas de acceso.", "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.", diff --git a/Extension/i18n/fra/src/LanguageServer/configurations.i18n.json b/Extension/i18n/fra/src/LanguageServer/configurations.i18n.json index b0b131957..214fdd52d 100644 --- a/Extension/i18n/fra/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/fra/src/LanguageServer/configurations.i18n.json @@ -10,11 +10,10 @@ "unknown.properties.version": "Numéro de version inconnu dans c_cpp_properties.json. Certaines fonctionnalités peuvent ne pas fonctionner comme prévu.", "update.properties.failed": "La tentative de mise à jour de \"{0}\" a échoué (avez-vous un accès en écriture ?)", "failed.to.parse.properties": "L'analyse de \"{0}\" a échoué", - "path.with.spaces": "Le chemin du compilateur avec des espaces et des arguments n'a pas de guillemets doubles autour du chemin.", + "path.with.spaces": "Le chemin d’accès du compilateur contenant des espaces est introuvable. S’il devait inclure des arguments du compilateur, entourez le chemin d’accès du compilateur de guillemets doubles ({0}).", "cannot.find": "{0} introuvable", - "cannot.resolve.compiler.path": "Entrée non valide, impossible de résoudre le chemin du compilateur", "path.is.not.a.file": "Le chemin n'est pas un fichier : {0}", - "wrapped.with.quotes": "Do not add extra quotes around paths.", + "wrapped.with.quotes": "N’ajoutez pas de guillemets supplémentaires autour des chemins.", "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.", diff --git a/Extension/i18n/ita/package.i18n.json b/Extension/i18n/ita/package.i18n.json index 0ef6c2b63..7f545c998 100644 --- a/Extension/i18n/ita/package.i18n.json +++ b/Extension/i18n/ita/package.i18n.json @@ -429,8 +429,8 @@ "c_cpp.walkthrough.create.cpp.file.title": "Creare un file C++", "c_cpp.walkthrough.create.cpp.file.description": "[Apri](command:toSide:workbench.action.files.openFile) o [Crea](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) un file C++. Assicurati di salvarlo con l'estensione \".cpp\", ad esempio \"helloworld.cpp\". \n[Crea 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": "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.command.prompt.title": "Avvia dal Developer Command Prompt for VS", + "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 Developer Command Prompt for 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/LanguageServer/configurations.i18n.json b/Extension/i18n/ita/src/LanguageServer/configurations.i18n.json index 9ff2af2c3..c94128dc1 100644 --- a/Extension/i18n/ita/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/ita/src/LanguageServer/configurations.i18n.json @@ -10,11 +10,10 @@ "unknown.properties.version": "È stato trovato un numero di versione sconosciuto in c_cpp_properties.json. Alcune funzionalità potrebbero non funzionare come previsto.", "update.properties.failed": "Il tentativo di aggiornamento di \"{0}\" non è riuscito. L'accesso in scrittura è disponibile?", "failed.to.parse.properties": "Non è stato possibile analizzare \"{0}\"", - "path.with.spaces": "Il percorso del compilatore con spazi e argomenti non è racchiuso tra virgolette doppie (\").", + "path.with.spaces": "Il percorso del compilatore con spazi e argomenti non è racchiuso tra virgolette doppie ({0}).", "cannot.find": "Non è possibile trovare: {0}", - "cannot.resolve.compiler.path": "Input non valido. Non è possibile risolvere il percorso del compilatore", "path.is.not.a.file": "Il percorso non è un file: {0}", - "wrapped.with.quotes": "Do not add extra quotes around paths.", + "wrapped.with.quotes": "Non aggiungere virgolette aggiuntive intorno ai percorsi.", "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.", diff --git a/Extension/i18n/jpn/src/LanguageServer/configurations.i18n.json b/Extension/i18n/jpn/src/LanguageServer/configurations.i18n.json index aab707053..dffe1e85e 100644 --- a/Extension/i18n/jpn/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/jpn/src/LanguageServer/configurations.i18n.json @@ -10,11 +10,10 @@ "unknown.properties.version": "c_cpp_properties.json に不明なバージョン番号が見つかりました。一部の機能が予期したとおりに動作しない可能性があります。", "update.properties.failed": "\"{0}\" を更新しようとして失敗しました (書き込みアクセス権限があるか確認してください)", "failed.to.parse.properties": "\"{0}\" を解析できませんでした", - "path.with.spaces": "スペースと引数を含むコンパイラ パスの前後に、二重引用符 (\") がありません。", + "path.with.spaces": "スペースを含むコンパイラ パスが見つかりませんでした。コンパイラ引数を含める場合は、コンパイラ パスを二重引用符 ({0}) で囲みます。", "cannot.find": "{0} が見つかりません。", - "cannot.resolve.compiler.path": "無効な入力です。コンパイラ パスを解決できません", "path.is.not.a.file": "パスがファイルではありません: {0}", - "wrapped.with.quotes": "Do not add extra quotes around paths.", + "wrapped.with.quotes": "パスの前後に余分な引用符を追加しないでください。", "path.is.not.a.directory": "パスがディレクトリではありません: {0}", "duplicate.name": "{0} が重複しています。構成名は一意である必要があります。", "multiple.paths.not.allowed": "複数のパスは使用できません。", diff --git a/Extension/i18n/kor/src/LanguageServer/configurations.i18n.json b/Extension/i18n/kor/src/LanguageServer/configurations.i18n.json index cc41f0652..4eee2192a 100644 --- a/Extension/i18n/kor/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/kor/src/LanguageServer/configurations.i18n.json @@ -10,11 +10,10 @@ "unknown.properties.version": "c_cpp_properties.json에 알 수 없는 버전 번호가 있습니다. 일부 기능이 예상대로 작동하지 않을 수 있습니다.", "update.properties.failed": "\"{0}\"을(를) 업데이트하지 못했습니다(쓰기 권한이 있어야 함).", "failed.to.parse.properties": "\"{0}\"을(를) 구문 분석하지 못했습니다.", - "path.with.spaces": "공백과 인수를 포함하는 컴파일러 경로에 경로를 둘러싼 큰따옴표(\")가 없습니다.", + "path.with.spaces": "공백이 있는 컴파일러 경로를 찾을 수 없습니다. 만약 컴파일러 인수를 포함하려는 의도였다면, 컴파일러 경로를 큰따옴표({0})로 감싸세요.", "cannot.find": "찾을 수 없음: {0}", - "cannot.resolve.compiler.path": "입력이 잘못되었습니다. 컴파일러 경로를 확인할 수 없습니다.", "path.is.not.a.file": "경로가 파일이 아님: {0}", - "wrapped.with.quotes": "Do not add extra quotes around paths.", + "wrapped.with.quotes": "경로 주위에 따옴표를 추가하지 마세요.", "path.is.not.a.directory": "경로가 디렉터리가 아님: {0}", "duplicate.name": "{0}은(는) 중복됩니다. 구성 이름은 고유해야 합니다.", "multiple.paths.not.allowed": "여러 경로는 허용되지 않습니다.", diff --git a/Extension/i18n/plk/src/LanguageServer/configurations.i18n.json b/Extension/i18n/plk/src/LanguageServer/configurations.i18n.json index 14f2b9d9d..0fcca8b0a 100644 --- a/Extension/i18n/plk/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/plk/src/LanguageServer/configurations.i18n.json @@ -10,11 +10,10 @@ "unknown.properties.version": "W pliku c_cpp_properties.json znaleziono nieznany numer wersji. Niektóre funkcje mogą nie działać w oczekiwany sposób.", "update.properties.failed": "Próba aktualizacji elementu „{0}” nie powiodła się (czy masz dostęp do zapisu?)", "failed.to.parse.properties": "Nie można przeanalizować elementu „{0}”", - "path.with.spaces": "W ścieżce kompilatora ze spacjami i argumentami brakuje podwójnych cudzysłowów \" wokół ścieżki.", + "path.with.spaces": "Nie można odnaleźć ścieżki kompilatora ze spacjami. Jeśli było to przeznaczone do uwzględnienia argumentów kompilatora, otocz ścieżkę kompilatora podwójnym cudzysłowem ({0}).", "cannot.find": "Nie można znaleźć: {0}", - "cannot.resolve.compiler.path": "Nieprawidłowe dane wejściowe, nie można rozpoznać ścieżki kompilatora", "path.is.not.a.file": "Ścieżka nie jest plikiem: {0}", - "wrapped.with.quotes": "Do not add extra quotes around paths.", + "wrapped.with.quotes": "Nie dodawaj dodatkowych cudzysłowów wokół ścieżek.", "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.", diff --git a/Extension/i18n/plk/ui/settings.html.i18n.json b/Extension/i18n/plk/ui/settings.html.i18n.json index dff332d05..afde6c0a1 100644 --- a/Extension/i18n/plk/ui/settings.html.i18n.json +++ b/Extension/i18n/plk/ui/settings.html.i18n.json @@ -11,7 +11,7 @@ "switch.to.json": "Przełącz do pliku {0}, klikając link pliku lub używając polecenia:", "edit.configurations.in.json": "Edytuj konfiguracje w pliku JSON", "edit.configurations.json": "C/C++: edytuj konfiguracje (JSON)", - "check.the.schema": "Dowiedz się więcej o właściwościach języka C/C++, przechodząc do: {0}.", + "check.the.schema": "Dowiedz się więcej o właściwościach C/C++, przechodząc do: {0}.", "cpp.properties.schema.reference": "Odwołanie do schematu właściwości C/C++", "view.schema.reference": "Odwołanie do schematu właściwości", "intellisense.configurations": "Konfiguracje funkcji IntelliSense", diff --git a/Extension/i18n/ptb/src/LanguageServer/configurations.i18n.json b/Extension/i18n/ptb/src/LanguageServer/configurations.i18n.json index 856135f5f..c7d53cfe6 100644 --- a/Extension/i18n/ptb/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/ptb/src/LanguageServer/configurations.i18n.json @@ -10,11 +10,10 @@ "unknown.properties.version": "Número de versão desconhecido encontrado em c_cpp_properties.json. Alguns recursos podem não funcionar como esperado.", "update.properties.failed": "Falha na tentativa de atualizar \"{0}\" (você tem acesso de gravação?)", "failed.to.parse.properties": "Falha ao analisar \"{0}\"", - "path.with.spaces": "Faltam aspas duplas \" ao redor do caminho do compilador com espaços e argumentos.", + "path.with.spaces": "Não foi possível encontrar o caminho do compilador com espaços. Se a intenção era incluir argumentos do compilador, coloque o caminho do compilador entre aspas duplas ({0}).", "cannot.find": "Não é possível localizar: {0}", - "cannot.resolve.compiler.path": "Entrada inválida. Não é possível resolver o caminho do compilador", "path.is.not.a.file": "O caminho não é um arquivo: {0}", - "wrapped.with.quotes": "Do not add extra quotes around paths.", + "wrapped.with.quotes": "Não adicione aspas extras ao redor de caminhos.", "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.", diff --git a/Extension/i18n/rus/src/LanguageServer/configurations.i18n.json b/Extension/i18n/rus/src/LanguageServer/configurations.i18n.json index 758c606bc..adcfa9960 100644 --- a/Extension/i18n/rus/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/rus/src/LanguageServer/configurations.i18n.json @@ -10,11 +10,10 @@ "unknown.properties.version": "В c_cpp_properties.json найден неизвестный номер версии. Некоторые функции могут работать не так, как ожидалось.", "update.properties.failed": "Сбой при попытке обновления \"{0}\" (у вас есть доступ на запись?)", "failed.to.parse.properties": "Не удалось проанализировать \"{0}\"", - "path.with.spaces": "Путь компилятора с пробелами и аргументами не содержит двойные кавычки (\") вокруг пути.", + "path.with.spaces": "Не удалось найти путь компилятора с пробелами. Если предполагается включение аргументов компилятора, заключите путь компилятора в двойные кавычки ({0}).", "cannot.find": "Не удается найти: {0}", - "cannot.resolve.compiler.path": "Недопустимые входные данные; не удается разрешить путь компилятора", "path.is.not.a.file": "Путь не является файлом: {0}", - "wrapped.with.quotes": "Do not add extra quotes around paths.", + "wrapped.with.quotes": "Не добавляйте лишние кавычки вокруг путей.", "path.is.not.a.directory": "Путь не является каталогом: {0}", "duplicate.name": "{0} является дубликатом. Имя конфигурации должно быть уникальным.", "multiple.paths.not.allowed": "Запрещено использовать несколько путей.", diff --git a/Extension/i18n/trk/package.i18n.json b/Extension/i18n/trk/package.i18n.json index d36424816..9b0406680 100644 --- a/Extension/i18n/trk/package.i18n.json +++ b/Extension/i18n/trk/package.i18n.json @@ -429,8 +429,8 @@ "c_cpp.walkthrough.create.cpp.file.title": "C++ dosyası oluşturun", "c_cpp.walkthrough.create.cpp.file.description": "Bir C++ dosyasını [açın](command:toSide:workbench.action.files.openFile) veya C++ dosyası [oluşturun](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D). Dosyayı \".cpp\" uzantısıyla (ör. \"helloworld.cpp\".) kaydetmeyi unutmayın.\n[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": "VS için Developer Command Prompt'tan başlat", - "c_cpp.walkthrough.command.prompt.description": "Microsoft Visual Studio C++ derleyicisini kullanırken, C++ uzantısı, VS için Developer Command Prompt'tan 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": "Developer Command Prompt for VS'tan başlat", + "c_cpp.walkthrough.command.prompt.description": "Microsoft Visual Studio C++ derleyicisini kullanırken, C++ uzantısı, Developer Command Prompt for VS'tan 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/LanguageServer/configurations.i18n.json b/Extension/i18n/trk/src/LanguageServer/configurations.i18n.json index 1f1a6369b..e0f009e6f 100644 --- a/Extension/i18n/trk/src/LanguageServer/configurations.i18n.json +++ b/Extension/i18n/trk/src/LanguageServer/configurations.i18n.json @@ -10,11 +10,10 @@ "unknown.properties.version": "c_cpp_properties.json dosyasında bilinmeyen sürüm numarası bulundu. Bazı özellikler beklendiği gibi çalışmayabilir.", "update.properties.failed": "\"{0}\" öğesini güncelleştirme girişimi başarısız oldu (yazma erişiminiz var mı?)", "failed.to.parse.properties": "\"{0}\" ayrıştırılamadı", - "path.with.spaces": "Boşluk ve bağımsız değişkenler içeren derleyici yolunun etrafında çift tırnak işareti eksik.", + "path.with.spaces": "Boşluk içeren derleyici yolu bulunamadı. Eğer bunun, derleyici bağımsız değişkenlerini içermesi amaçlandıysa, derleyici yolunu çift tırnak ({0}) ile çevreleyin.", "cannot.find": "{0} bulunamıyor", - "cannot.resolve.compiler.path": "Giriş geçersiz, derleyici yolu çözümlenemiyor", "path.is.not.a.file": "Yol bir dosya değil: {0}", - "wrapped.with.quotes": "Do not add extra quotes around paths.", + "wrapped.with.quotes": "Yolların etrafına fazladan tırnak işareti eklemeyin.", "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.", diff --git a/Extension/package.json b/Extension/package.json index 147cd685c..7ebbf3966 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.25.2-main", + "version": "1.26.0-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", @@ -821,13 +821,15 @@ "c++17", "c++20", "c++23", + "c++26", "gnu++98", "gnu++03", "gnu++11", "gnu++14", "gnu++17", "gnu++20", - "gnu++23" + "gnu++23", + "gnu++26" ], "markdownDescription": "%c_cpp.configuration.default.cppStandard.markdownDescription%", "scope": "resource" @@ -6549,7 +6551,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$/)" + "when": "(config.C_Cpp.experimental.configuration_lmtool =~ /^[eE]nabled$/)" } ] }, @@ -6625,7 +6627,7 @@ "xml2js": "^0.6.2" }, "dependencies": { - "@github/copilot-language-server": "^1.266.0", + "@github/copilot-language-server": "^1.316.0", "@vscode/extension-telemetry": "^0.9.6", "chokidar": "^3.6.0", "comment-json": "^4.2.3", @@ -6641,7 +6643,7 @@ "shell-quote": "^1.8.1", "ssh-config": "^4.4.4", "tmp": "^0.2.3", - "vscode-cpptools": "^6.1.0", + "vscode-cpptools": "^6.3.0", "vscode-languageclient": "^8.1.0", "vscode-nls": "^5.2.0", "vscode-tas-client": "^0.1.84", diff --git a/Extension/package.nls.json b/Extension/package.nls.json index 262dd3f26..bdafcfe89 100644 --- a/Extension/package.nls.json +++ b/Extension/package.nls.json @@ -1011,7 +1011,7 @@ "c_cpp.walkthrough.no.compilers.description": { "message": "We could not find a C++ compiler on your machine, which is required to use the C++ extension. Either select “Install a C++ Compiler” to have a compiler installed for you or follow the instructions on the right to install one, then click “Find my new Compiler” below.\n[Install a C++ Compiler](command:C_Cpp.InstallCompiler?%22walkthrough%22)\n[Find my new Compiler](command:C_Cpp.RescanCompilers?%22walkthrough%22)", "comment": [ - "{Locked=\"C++\"} {Locked=\"\\\n[\"} {Locked=\"](command:C_Cpp.InstallCompiler?%22walkthrough%22)\\\n[\"} {Locked=\"](command:C_Cpp.RescanCompilers?%22walkthrough%22)\"}" + "{Locked=\"C++\"} {Locked=\"\n[\"} {Locked=\"](command:C_Cpp.InstallCompiler?%22walkthrough%22)\n[\"} {Locked=\"](command:C_Cpp.RescanCompilers?%22walkthrough%22)\"}" ] }, "c_cpp.walkthrough.compilers.found.description": "The C++ extension works with a C++ compiler. Select one from those already on your machine by clicking the button below.\n[Select my Default Compiler](command:C_Cpp.SelectIntelliSenseConfiguration?%22walkthrough%22)", @@ -1020,7 +1020,7 @@ "c_cpp.walkthrough.create.cpp.file.description": { "message": "[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)", "comment": [ - "{Locked=\"](command:toSide:workbench.action.files.openFile)\"} {Locked=\"](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)\"} {Locked=\"C++\"} {Locked=\".cpp\"} {Locked=\"\\\n[\"} {Locked=\"](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)\"}" + "{Locked=\"](command:toSide:workbench.action.files.openFile)\"} {Locked=\"](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)\"} {Locked=\"C++\"} {Locked=\".cpp\"} {Locked=\"\n[\"} {Locked=\"](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.", @@ -1033,7 +1033,7 @@ "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": [ - "{Locked=\"Visual Studio\"} {Locked=\"C++\"} {Locked=\"VS Code\"} {Locked=\"Developer Command Prompt for VS\"} {Locked=\"\\\n[\"} {Locked=\"](command:workbench.action.reloadWindow)\"}" + "{Locked=\"Visual Studio\"} {Locked=\"C++\"} {Locked=\"VS Code\"} {Locked=\"Developer Command Prompt for VS\"} {Locked=\"\n[\"} {Locked=\"](command:workbench.action.reloadWindow)\"}" ] }, "c_cpp.walkthrough.run.debug.title": "Run and debug your C++ file", diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 44b537d1e..fdd0eb737 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -2742,7 +2742,8 @@ export class DefaultClient implements Client { util.setProgress(util.getProgressExecutableSuccess()); const testHook: TestHook = getTestHook(); if (message.endsWith("Idle")) { - // nothing to do + const status: IntelliSenseStatus = { status: Status.Idle }; + testHook.updateStatus(status); } else if (message.endsWith("Parsing")) { this.model.isParsingWorkspace.Value = true; this.model.isInitializingWorkspace.Value = false; diff --git a/Extension/src/LanguageServer/configurations.ts b/Extension/src/LanguageServer/configurations.ts index 26bbd86ec..91268b499 100644 --- a/Extension/src/LanguageServer/configurations.ts +++ b/Extension/src/LanguageServer/configurations.ts @@ -63,7 +63,7 @@ export interface ConfigurationJson { export interface Configuration { name: string; compilerPathInCppPropertiesJson?: string | null; - compilerPath?: string | null; + compilerPath?: string; // Can be set to null based on the schema, but it will be fixed in parsePropertiesFile. compilerPathIsExplicit?: boolean; compilerArgs?: string[]; compilerArgsLegacy?: string[]; @@ -982,14 +982,13 @@ export class CppProperties { } else { // However, if compileCommands are used and compilerPath is explicitly set, it's still necessary to resolve variables in it. if (configuration.compilerPath === "${default}") { - configuration.compilerPath = settings.defaultCompilerPath; - } - if (configuration.compilerPath === null) { + configuration.compilerPath = settings.defaultCompilerPath ?? undefined; configuration.compilerPathIsExplicit = true; - } else if (configuration.compilerPath !== undefined) { + } + if (configuration.compilerPath) { configuration.compilerPath = util.resolveVariables(configuration.compilerPath, env); configuration.compilerPathIsExplicit = true; - } else { + } else if (configuration.compilerPathIsExplicit === undefined) { configuration.compilerPathIsExplicit = false; } } @@ -1444,10 +1443,17 @@ 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. + // Special sanitization of the newly parsed configuration file happens here: for (let i: number = 0; i < newJson.configurations.length; i++) { + // 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. newJson.configurations[i].compileCommands = this.forceCompileCommandsAsArray(newJson.configurations[i].compileCommands); + + // `compilerPath` is allowed to be set to null in the schema so that empty string is not the default value (which has another meaning). + // If we detect this, we treat it as undefined. + if (newJson.configurations[i].compilerPath === null) { + delete newJson.configurations[i].compilerPath; + } } this.configurationJson = newJson; @@ -1596,92 +1602,98 @@ export class CppProperties { return result; } - private getErrorsForConfigUI(configIndex: number): ConfigurationErrors { - const errors: ConfigurationErrors = {}; - if (!this.configurationJson) { - return errors; - } - const isWindows: boolean = os.platform() === 'win32'; - const config: Configuration = this.configurationJson.configurations[configIndex]; - - // Check if config name is unique. - errors.name = this.isConfigNameUnique(config.name); - let resolvedCompilerPath: string | undefined | null; - // Validate compilerPath - if (config.compilerPath) { - resolvedCompilerPath = which.sync(config.compilerPath, { nothrow: true }); - } - + /** + * Get the compilerPath and args from a compilerPath string that has already passed through + * `this.resolvePath`. If there are errors processing the path, those will also be returned. + * + * @param resolvedCompilerPath a compilerPath string that has already been resolved. + * @param rootUri the workspace folder URI, if any. + */ + public static validateCompilerPath(resolvedCompilerPath: string, rootUri?: vscode.Uri): util.CompilerPathAndArgs { if (!resolvedCompilerPath) { - resolvedCompilerPath = this.resolvePath(config.compilerPath); + return { compilerName: '', allCompilerArgs: [], compilerArgsFromCommandLineInPath: [] }; } - const settings: CppSettings = new CppSettings(this.rootUri); - const compilerPathAndArgs: util.CompilerPathAndArgs = util.extractCompilerPathAndArgs(!!settings.legacyCompilerArgsBehavior, resolvedCompilerPath); + resolvedCompilerPath = resolvedCompilerPath.trim(); - // compilerPath + args in the same string isn't working yet. - const skipFullCommandString = !compilerPathAndArgs.compilerName && resolvedCompilerPath.includes(" "); - if (resolvedCompilerPath - && !skipFullCommandString - // Don't error cl.exe paths because it could be for an older preview build. - && compilerPathAndArgs.compilerName.toLowerCase() !== "cl.exe" - && compilerPathAndArgs.compilerName.toLowerCase() !== "cl") { - resolvedCompilerPath = resolvedCompilerPath.trim(); - - // Error when the compiler's path has spaces without quotes but args are used. - // Except, exclude cl.exe paths because it could be for an older preview build. - const compilerPathNeedsQuotes: boolean = - (compilerPathAndArgs.compilerArgsFromCommandLineInPath && compilerPathAndArgs.compilerArgsFromCommandLineInPath.length > 0) && - !resolvedCompilerPath.startsWith('"') && - compilerPathAndArgs.compilerPath !== undefined && - compilerPathAndArgs.compilerPath !== null && - compilerPathAndArgs.compilerPath.includes(" "); + const settings = new CppSettings(rootUri); + const compilerPathAndArgs = util.extractCompilerPathAndArgs(!!settings.legacyCompilerArgsBehavior, resolvedCompilerPath, undefined, rootUri?.fsPath); + const compilerLowerCase: string = compilerPathAndArgs.compilerName.toLowerCase(); + const isCl: boolean = compilerLowerCase === "cl" || compilerLowerCase === "cl.exe"; + const telemetry: { [key: string]: number } = {}; - const compilerPathErrors: string[] = []; - if (compilerPathNeedsQuotes) { - compilerPathErrors.push(localize("path.with.spaces", 'Compiler path with spaces and arguments is missing double quotes " around the path.')); - } - - // Get compiler path without arguments before checking if it exists - resolvedCompilerPath = compilerPathAndArgs.compilerPath ?? undefined; - if (resolvedCompilerPath) { - let pathExists: boolean = true; - const existsWithExeAdded: (path: string) => boolean = (path: string) => isWindows && !path.startsWith("/") && fs.existsSync(path + ".exe"); - if (!fs.existsSync(resolvedCompilerPath)) { - if (existsWithExeAdded(resolvedCompilerPath)) { - resolvedCompilerPath += ".exe"; - } else if (!this.rootUri) { - pathExists = false; - } else { - // Check again for a relative path. - const relativePath: string = this.rootUri.fsPath + path.sep + resolvedCompilerPath; - if (!fs.existsSync(relativePath)) { - if (existsWithExeAdded(resolvedCompilerPath)) { - resolvedCompilerPath += ".exe"; + // Don't error cl.exe paths because it could be for an older preview build. + if (!isCl && compilerPathAndArgs.compilerPath) { + const compilerPathMayNeedQuotes: boolean = !resolvedCompilerPath.startsWith('"') && resolvedCompilerPath.includes(" ") && compilerPathAndArgs.compilerArgsFromCommandLineInPath.length > 0; + let pathExists: boolean = true; + const existsWithExeAdded: (path: string) => boolean = (path: string) => isWindows && !path.startsWith("/") && fs.existsSync(path + ".exe"); + + resolvedCompilerPath = compilerPathAndArgs.compilerPath; + if (!fs.existsSync(resolvedCompilerPath)) { + if (existsWithExeAdded(resolvedCompilerPath)) { + resolvedCompilerPath += ".exe"; + } else { + const pathLocation = which.sync(resolvedCompilerPath, { nothrow: true }); + if (pathLocation) { + resolvedCompilerPath = pathLocation; + compilerPathAndArgs.compilerPath = pathLocation; + } else if (rootUri) { + // Test if it was a relative path. + const absolutePath: string = rootUri.fsPath + path.sep + resolvedCompilerPath; + if (!fs.existsSync(absolutePath)) { + if (existsWithExeAdded(absolutePath)) { + resolvedCompilerPath = absolutePath + ".exe"; } else { pathExists = false; } } else { - resolvedCompilerPath = relativePath; + resolvedCompilerPath = absolutePath; } } } + } - if (!pathExists) { - const message: string = localize('cannot.find', "Cannot find: {0}", resolvedCompilerPath); - compilerPathErrors.push(message); - } else if (compilerPathAndArgs.compilerPath === "") { - const message: string = localize("cannot.resolve.compiler.path", "Invalid input, cannot resolve compiler path"); - compilerPathErrors.push(message); - } else if (!util.checkExecutableWithoutExtensionExistsSync(resolvedCompilerPath)) { - const message: string = localize("path.is.not.a.file", "Path is not a file: {0}", resolvedCompilerPath); - compilerPathErrors.push(message); - } + const compilerPathErrors: string[] = []; + if (compilerPathMayNeedQuotes && !pathExists) { + compilerPathErrors.push(localize({ key: "path.with.spaces", comment: ["{Locked=\"{0}\"} The {0} is a double quote character \", and should be located next to the translation for \"double quotes\"."] }, + "Compiler path with spaces could not be found. If this was intended to include compiler arguments, surround the compiler path with double quotes ({0}).", '"')); + telemetry.CompilerPathMissingQuotes = 1; + } - if (compilerPathErrors.length > 0) { - errors.compilerPath = compilerPathErrors.join('\n'); - } + if (!pathExists) { + const message: string = localize('cannot.find', "Cannot find: {0}", resolvedCompilerPath); + compilerPathErrors.push(message); + telemetry.PathNonExistent = 1; + } else if (!util.checkExecutableWithoutExtensionExistsSync(resolvedCompilerPath)) { + const message: string = localize("path.is.not.a.file", "Path is not a file: {0}", resolvedCompilerPath); + compilerPathErrors.push(message); + telemetry.PathNotAFile = 1; } + + if (compilerPathErrors.length > 0) { + compilerPathAndArgs.error = compilerPathErrors.join('\n'); + } + } + compilerPathAndArgs.telemetry = telemetry; + return compilerPathAndArgs; + } + + private getErrorsForConfigUI(configIndex: number): ConfigurationErrors { + const errors: ConfigurationErrors = {}; + if (!this.configurationJson) { + return errors; + } + const isWindows: boolean = os.platform() === 'win32'; + const config: Configuration = this.configurationJson.configurations[configIndex]; + + // Check if config name is unique. + errors.name = this.isConfigNameUnique(config.name); + let resolvedCompilerPath: string | undefined | null; + // Validate compilerPath + if (!resolvedCompilerPath) { + resolvedCompilerPath = this.resolvePath(config.compilerPath, false, false); } + const compilerPathAndArgs: util.CompilerPathAndArgs = CppProperties.validateCompilerPath(resolvedCompilerPath, this.rootUri); + errors.compilerPath = compilerPathAndArgs.error; // Validate paths (directories) errors.includePath = this.validatePath(config.includePath, { globPaths: true }); @@ -1932,7 +1944,6 @@ export class CppProperties { // Check for path-related squiggles. const paths: string[] = []; - let compilerPath: string | undefined; for (const pathArray of [currentConfiguration.browse ? currentConfiguration.browse.path : undefined, currentConfiguration.includePath, currentConfiguration.macFrameworkPath]) { if (pathArray) { for (const curPath of pathArray) { @@ -1954,13 +1965,6 @@ export class CppProperties { 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. - compilerPath = currentConfiguration.compilerPath; - } - - compilerPath = this.resolvePath(compilerPath).trim(); - // Get the start/end for properties that are file-only. const forcedIncludeStart: number = curText.search(/\s*\"forcedInclude\"\s*:\s*\[/); const forcedeIncludeEnd: number = forcedIncludeStart === -1 ? -1 : curText.indexOf("]", forcedIncludeStart); @@ -1977,46 +1981,20 @@ export class CppProperties { const processedPaths: Set = new Set(); // Validate compiler paths - let compilerPathNeedsQuotes: boolean = false; - let compilerMessage: string | undefined; - const compilerPathAndArgs: util.CompilerPathAndArgs = util.extractCompilerPathAndArgs(!!settings.legacyCompilerArgsBehavior, compilerPath); - const compilerLowerCase: string = compilerPathAndArgs.compilerName.toLowerCase(); - const isClCompiler: boolean = compilerLowerCase === "cl" || compilerLowerCase === "cl.exe"; - // Don't squiggle for invalid cl and cl.exe paths. - if (compilerPathAndArgs.compilerPath && !isClCompiler) { - // Squiggle when the compiler's path has spaces without quotes but args are used. - compilerPathNeedsQuotes = (compilerPathAndArgs.compilerArgsFromCommandLineInPath && compilerPathAndArgs.compilerArgsFromCommandLineInPath.length > 0) - && !compilerPath.startsWith('"') - && compilerPathAndArgs.compilerPath.includes(" "); - compilerPath = compilerPathAndArgs.compilerPath; - // Don't squiggle if compiler path is resolving with environment path. - if (compilerPathNeedsQuotes || (compilerPath && !which.sync(compilerPath, { nothrow: true }))) { - if (compilerPathNeedsQuotes) { - compilerMessage = localize("path.with.spaces", 'Compiler path with spaces and arguments is missing double quotes " around the path.'); - newSquiggleMetrics.CompilerPathMissingQuotes++; - } else if (!util.checkExecutableWithoutExtensionExistsSync(compilerPath)) { - compilerMessage = localize("path.is.not.a.file", "Path is not a file: {0}", compilerPath); - newSquiggleMetrics.PathNotAFile++; - } - } - } - let compilerPathExists: boolean = true; - if (this.rootUri && !isClCompiler) { - const checkPathExists: any = util.checkPathExistsSync(compilerPath, this.rootUri.fsPath + path.sep, isWindows, true); - compilerPathExists = checkPathExists.pathExists; - compilerPath = checkPathExists.path; - } - if (!compilerPathExists) { - compilerMessage = localize('cannot.find', "Cannot find: {0}", compilerPath); - newSquiggleMetrics.PathNonExistent++; - } - if (compilerMessage) { + const resolvedCompilerPath = this.resolvePath(currentConfiguration.compilerPath, false, false); + const compilerPathAndArgs: util.CompilerPathAndArgs = CppProperties.validateCompilerPath(resolvedCompilerPath, this.rootUri); + if (compilerPathAndArgs.error) { const diagnostic: vscode.Diagnostic = new vscode.Diagnostic( - new vscode.Range(document.positionAt(curTextStartOffset + compilerPathValueStart), - document.positionAt(curTextStartOffset + compilerPathEnd)), - compilerMessage, vscode.DiagnosticSeverity.Warning); + new vscode.Range(document.positionAt(curTextStartOffset + compilerPathValueStart), document.positionAt(curTextStartOffset + compilerPathEnd)), + compilerPathAndArgs.error, + vscode.DiagnosticSeverity.Warning); diagnostics.push(diagnostic); } + if (compilerPathAndArgs.telemetry) { + for (const o of Object.keys(compilerPathAndArgs.telemetry)) { + newSquiggleMetrics[o] = compilerPathAndArgs.telemetry[o]; + } + } // validate .config path let dotConfigPath: string | undefined; diff --git a/Extension/src/LanguageServer/copilotCompletionContextProvider.ts b/Extension/src/LanguageServer/copilotCompletionContextProvider.ts index d255f24a3..cdf75308f 100644 --- a/Extension/src/LanguageServer/copilotCompletionContextProvider.ts +++ b/Extension/src/LanguageServer/copilotCompletionContextProvider.ts @@ -79,8 +79,8 @@ export class CopilotCompletionContextProvider implements ContextResolver"}:${copilotCompletionContext.caretOffset} `; + logMessage += `(response.featureFlag:${copilotCompletionContext.featureFlag})`; + logMessage += `(response.uri:${copilotCompletionContext.sourceFileUri || ""}:${copilotCompletionContext.caretOffset})`; } telemetry.addResponseMetadata(copilotCompletionContext.areSnippetsMissing, copilotCompletionContext.snippets.length, @@ -181,7 +180,7 @@ response.uri:${copilotCompletionContext.sourceFileUri || ""}:${copilotC } catch (e: any) { if (e instanceof vscode.CancellationError || e.message === CancellationError.Canceled) { telemetry.addInternalCanceled(CopilotCompletionContextProvider.getRoundedDuration(startTime)); - logMessage += ` (internal cancellation) `; + logMessage += `(internal cancellation)`; throw InternalCancellationError; } @@ -194,7 +193,7 @@ response.uri:${copilotCompletionContext.sourceFileUri || ""}:${copilotC return undefined; } finally { this.logger. - appendLineAtLevel(7, logMessage); + appendLineAtLevel(7, `[${new Date().toISOString().replace('T', ' ').replace('Z', '')}] ${logMessage}`); telemetry.send("cache"); } } @@ -338,9 +337,18 @@ response.uri:${copilotCompletionContext.sourceFileUri || ""}:${copilotC } else { return [defaultValue, defaultValue ? CopilotCompletionKind.GotFromCache : CopilotCompletionKind.MissingCacheMiss]; } } + private static isStaleCacheHit(caretOffset: number, cacheCaretOffset: number, maxCaretDistance: number): boolean { + return Math.abs(caretOffset - caretOffset) > maxCaretDistance; + } + + private static createContextItems(copilotCompletionContext: CopilotCompletionContextResult | undefined): SupportedContextItem[] { + return [...copilotCompletionContext?.snippets ?? [], ...copilotCompletionContext?.traits ?? []] as SupportedContextItem[]; + } + public async resolve(context: ResolveRequest, copilotCancel: vscode.CancellationToken): Promise { + const proposedEdits = context.documentContext.proposedEdits; const resolveStartTime = performance.now(); - let logMessage = `Copilot: resolve(${context.documentContext.uri}: ${context.documentContext.offset}):`; + let logMessage = `Copilot: resolve(${context.documentContext.uri}:${context.documentContext.offset}):`; const cppTimeBudgetMs = await this.fetchTimeBudgetMs(context); const maxCaretDistance = await this.fetchMaxDistanceToCaret(context); const maxSnippetCount = await this.fetchMaxSnippetCount(context); @@ -355,40 +363,55 @@ response.uri:${copilotCompletionContext.sourceFileUri || ""}:${copilotC try { featureFlag = await this.getEnabledFeatureFlag(context); telemetry.addRequestMetadata(context.documentContext.uri, context.documentContext.offset, - context.completionId, context.documentContext.languageId, { featureFlag, timeBudgetMs: cppTimeBudgetMs, maxCaretDistance }); + context.completionId, context.documentContext.languageId, { + featureFlag, timeBudgetMs: cppTimeBudgetMs, maxCaretDistance, + maxSnippetCount, maxSnippetLength, doAggregateSnippets + }); if (featureFlag === undefined) { return []; } const cacheEntry: CacheEntry | undefined = this.completionContextCache.get(docUri.toString()); - const defaultValue = cacheEntry?.[1]; - [copilotCompletionContext, copilotCompletionContextKind] = await this.resolveResultAndKind(context, featureFlag, - telemetry.fork(), defaultValue, resolveStartTime, cppTimeBudgetMs, maxSnippetCount, maxSnippetLength, doAggregateSnippets, copilotCancel); + if (proposedEdits) { + const defaultValue = cacheEntry?.[1]; + const isStaleCache = defaultValue !== undefined ? CopilotCompletionContextProvider.isStaleCacheHit(docOffset, defaultValue.caretOffset, maxCaretDistance) : true; + const contextItems = isStaleCache ? [] : CopilotCompletionContextProvider.createContextItems(defaultValue); + copilotCompletionContext = isStaleCache ? undefined : defaultValue; + copilotCompletionContextKind = isStaleCache ? CopilotCompletionKind.StaleCacheHit : CopilotCompletionKind.GotFromCache; + telemetry.addSpeculativeRequestMetadata(proposedEdits.length); + if (cacheEntry?.[0]) { + telemetry.addCacheHitEntryGuid(cacheEntry[0]); + } + return contextItems; + } + const [resultContext, resultKind] = await this.resolveResultAndKind(context, featureFlag, + telemetry.fork(), cacheEntry?.[1], resolveStartTime, cppTimeBudgetMs, maxSnippetCount, maxSnippetLength, doAggregateSnippets, copilotCancel); + copilotCompletionContext = resultContext; + copilotCompletionContextKind = resultKind; + logMessage += `(id: ${copilotCompletionContext?.requestId})`; // Fix up copilotCompletionContextKind accounting for stale-cache-hits. if (copilotCompletionContextKind === CopilotCompletionKind.GotFromCache && copilotCompletionContext && cacheEntry) { telemetry.addCacheHitEntryGuid(cacheEntry[0]); const cachedData = cacheEntry[1]; - if (Math.abs(cachedData.caretOffset - context.documentContext.offset) > maxCaretDistance) { + if (CopilotCompletionContextProvider.isStaleCacheHit(docOffset, cachedData.caretOffset, maxCaretDistance)) { copilotCompletionContextKind = CopilotCompletionKind.StaleCacheHit; copilotCompletionContext.snippets = []; } } - telemetry.addCompletionContextKind(copilotCompletionContextKind); // Handle cancellation. if (copilotCompletionContextKind === CopilotCompletionKind.Canceled) { const duration: number = CopilotCompletionContextProvider.getRoundedDuration(resolveStartTime); telemetry.addCopilotCanceled(duration); throw new CopilotCancellationError(); } - logMessage += ` (id: ${copilotCompletionContext?.requestId})`; - return [...copilotCompletionContext?.snippets ?? [], ...copilotCompletionContext?.traits ?? []] as SupportedContextItem[]; + return CopilotCompletionContextProvider.createContextItems(copilotCompletionContext); } catch (e: any) { if (e instanceof CopilotCancellationError) { telemetry.addCopilotCanceled(CopilotCompletionContextProvider.getRoundedDuration(resolveStartTime)); - logMessage += ` (copilot cancellation)`; + logMessage += `(copilot cancellation)`; throw e; } if (e instanceof InternalCancellationError) { telemetry.addInternalCanceled(CopilotCompletionContextProvider.getRoundedDuration(resolveStartTime)); - logMessage += ` (internal cancellation) `; + logMessage += `(internal cancellation)`; throw e; } if (e instanceof CancellationError) { throw e; } @@ -398,20 +421,22 @@ response.uri:${copilotCompletionContext.sourceFileUri || ""}:${copilotC throw e; } finally { const duration: number = CopilotCompletionContextProvider.getRoundedDuration(resolveStartTime); - logMessage += `featureFlag:${featureFlag?.toString()}, `; + logMessage += `(featureFlag:${featureFlag?.toString()})`; + if (proposedEdits) { logMessage += `(speculative request, proposedEdits:${proposedEdits.length})`; } if (copilotCompletionContext === undefined) { logMessage += `result is undefined and no code snippets provided(${copilotCompletionContextKind.toString()}), elapsed time:${duration} ms`; } else { logMessage += `for ${docUri}:${docOffset} provided ${copilotCompletionContext.snippets.length} code snippet(s)(${copilotCompletionContextKind.toString()}\ - ${copilotCompletionContext?.areSnippetsMissing ? ", missing code snippets" : ""}) and ${copilotCompletionContext.traits.length} trait(s), elapsed time:${duration} ms`; +${copilotCompletionContext?.areSnippetsMissing ? "(missing code snippets)" : ""}) and ${copilotCompletionContext.traits.length} trait(s), elapsed time:${duration} ms`; } + telemetry.addCompletionContextKind(copilotCompletionContextKind); telemetry.addResponseMetadata(copilotCompletionContext?.areSnippetsMissing ?? true, copilotCompletionContext?.snippets.length, copilotCompletionContext?.traits.length, copilotCompletionContext?.caretOffset, copilotCompletionContext?.featureFlag); telemetry.addResolvedElapsed(duration); telemetry.addCacheSize(this.completionContextCache.size); telemetry.send(); - this.logger.appendLineAtLevel(7, logMessage); + this.logger.appendLineAtLevel(7, `[${new Date().toISOString().replace('T', ' ').replace('Z', '')}] ${logMessage}`); } } @@ -442,4 +467,3 @@ response.uri:${copilotCompletionContext.sourceFileUri || ""}:${copilotC } } } - diff --git a/Extension/src/LanguageServer/copilotCompletionContextTelemetry.ts b/Extension/src/LanguageServer/copilotCompletionContextTelemetry.ts index 802204e9c..e1451007a 100644 --- a/Extension/src/LanguageServer/copilotCompletionContextTelemetry.ts +++ b/Extension/src/LanguageServer/copilotCompletionContextTelemetry.ts @@ -76,6 +76,11 @@ export class CopilotCompletionContextTelemetry { this.addMetric('getClientForElapsedMs', duration); } + public addSpeculativeRequestMetadata(proposedEditsCount: number): void { + this.addProperty('request.isSpeculativeRequest', 'true'); + this.addMetric('request.proposedEditsCount', proposedEditsCount); + } + public addResponseMetadata(areSnippetsMissing: boolean, codeSnippetsCount?: number, traitsCount?: number, caretOffset?: number, featureFlag?: CopilotCompletionContextFeatures): void { this.addProperty('response.areCodeSnippetsMissing', areSnippetsMissing.toString()); diff --git a/Extension/src/LanguageServer/copilotProviders.ts b/Extension/src/LanguageServer/copilotProviders.ts index 32a63013e..e0551edcb 100644 --- a/Extension/src/LanguageServer/copilotProviders.ts +++ b/Extension/src/LanguageServer/copilotProviders.ts @@ -31,7 +31,7 @@ export interface CopilotApi { uri: vscode.Uri, context: { flags: Record }, cancellationToken: vscode.CancellationToken - ) => Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] }> + ) => Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] } | undefined> ): Disposable; getContextProviderAPI(version: string): Promise; } @@ -91,15 +91,18 @@ export async function registerRelatedFilesProvider(): Promise { 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)); + // Avoid logging the error message if it is a cancellation error. + if (exception instanceof vscode.CancellationError) { + telemetryProperties["error"] = "cancellation"; + telemetryProperties["cancellation"] = "true"; + throw exception; // Rethrow the cancellation error to be handled by the caller. + } else if (exception instanceof Error) { + telemetryProperties["error"] = "true"; + logger.getOutputChannelLogger().appendLine(localize("copilot.relatedfilesprovider.error", "Error while retrieving result. Reason: {0}", exception.message)); } - catch { - // Intentionally swallow any exception. - } - telemetryProperties["error"] = "true"; - throw exception; // Throw the exception for auto-retry. + + // In case of error retrieving the include files, we signal the caller of absence of the results by returning undefined. + return undefined; } finally { telemetryMetrics['duration'] = performance.now() - start; telemetry.logCopilotEvent('RelatedFilesProvider', telemetryProperties, telemetryMetrics); diff --git a/Extension/src/LanguageServer/cppBuildTaskProvider.ts b/Extension/src/LanguageServer/cppBuildTaskProvider.ts index 014d2316c..de08d6e43 100644 --- a/Extension/src/LanguageServer/cppBuildTaskProvider.ts +++ b/Extension/src/LanguageServer/cppBuildTaskProvider.ts @@ -98,7 +98,7 @@ export class CppBuildTaskProvider implements TaskProvider { // Get user compiler path. const userCompilerPathAndArgs: util.CompilerPathAndArgs | undefined = await activeClient.getCurrentCompilerPathAndArgs(); - let userCompilerPath: string | undefined | null; + let userCompilerPath: string | undefined; if (userCompilerPathAndArgs) { userCompilerPath = userCompilerPathAndArgs.compilerPath; if (userCompilerPath && userCompilerPathAndArgs.compilerName) { diff --git a/Extension/src/LanguageServer/lmTool.ts b/Extension/src/LanguageServer/lmTool.ts index 1802034e1..8cc7cd3bb 100644 --- a/Extension/src/LanguageServer/lmTool.ts +++ b/Extension/src/LanguageServer/lmTool.ts @@ -38,6 +38,7 @@ const knownValues: { [Property in keyof ChatContextResult]?: { [id: string]: str 'c++17': 'C++17', 'c++20': 'C++20', 'c++23': 'C++23', + 'c++26': 'C++26', 'c89': "C89", 'c99': "C99", 'c11': "C11", diff --git a/Extension/src/common.ts b/Extension/src/common.ts index fba6c3ac3..a48326eae 100644 --- a/Extension/src/common.ts +++ b/Extension/src/common.ts @@ -1092,74 +1092,66 @@ export function isCl(compilerPath: string): boolean { /** CompilerPathAndArgs retains original casing of text input for compiler path and args */ export interface CompilerPathAndArgs { - compilerPath?: string | null; + compilerPath?: string; compilerName: string; compilerArgs?: string[]; compilerArgsFromCommandLineInPath: string[]; allCompilerArgs: string[]; + error?: string; + telemetry?: { [key: string]: number }; } -export function extractCompilerPathAndArgs(useLegacyBehavior: boolean, inputCompilerPath?: string | null, compilerArgs?: string[]): CompilerPathAndArgs { - let compilerPath: string | undefined | null = inputCompilerPath; +/** + * Parse the compiler path input into a compiler path and compiler args. If there are no args in the input string, this function will have + * verified that the compiler exists. (e.g. `compilerArgsFromCommandLineInPath` will be empty) + * + * @param useLegacyBehavior - If true, use the legacy behavior of separating the compilerPath from the args. + * @param inputCompilerPath - The compiler path input from the user. + * @param compilerArgs - The compiler args input from the user. + * @param cwd - The directory used to resolve relative paths. + */ +export function extractCompilerPathAndArgs(useLegacyBehavior: boolean, inputCompilerPath?: string, compilerArgs?: string[], cwd?: string): CompilerPathAndArgs { + let compilerPath: string | undefined = inputCompilerPath; let compilerName: string = ""; let compilerArgsFromCommandLineInPath: string[] = []; + const trimLegacyQuotes = (compilerPath?: string): string | undefined => { + if (compilerPath && useLegacyBehavior) { + // Try to trim quotes from compiler path. + const tempCompilerPath: string[] = extractArgs(compilerPath); + if (tempCompilerPath.length > 0) { + return tempCompilerPath[0]; + } + } + return compilerPath; + }; if (compilerPath) { compilerPath = compilerPath.trim(); if (isCl(compilerPath) || checkExecutableWithoutExtensionExistsSync(compilerPath)) { // If the path ends with cl, or if a file is found at that path, accept it without further validation. compilerName = path.basename(compilerPath); + } else if (cwd && checkExecutableWithoutExtensionExistsSync(path.join(cwd, compilerPath))) { + // If the path is relative and a file is found at that path, accept it without further validation. + compilerPath = path.join(cwd, compilerPath); + compilerName = path.basename(compilerPath); } else if (compilerPath.startsWith("\"") || (os.platform() !== 'win32' && compilerPath.startsWith("'"))) { // If the string starts with a quote, treat it as a command line. // Otherwise, a path with a leading quote would not be valid. - if (useLegacyBehavior) { - compilerArgsFromCommandLineInPath = legacyExtractArgs(compilerPath); - if (compilerArgsFromCommandLineInPath.length > 0) { - compilerPath = compilerArgsFromCommandLineInPath.shift(); - if (compilerPath) { - // Try to trim quotes from compiler path. - const tempCompilerPath: string[] | undefined = extractArgs(compilerPath); - if (tempCompilerPath && compilerPath.length > 0) { - compilerPath = tempCompilerPath[0]; - } - compilerName = path.basename(compilerPath); - } - } - } else { - compilerArgsFromCommandLineInPath = extractArgs(compilerPath); - if (compilerArgsFromCommandLineInPath.length > 0) { - compilerPath = compilerArgsFromCommandLineInPath.shift(); - if (compilerPath) { - compilerName = path.basename(compilerPath); - } - } + compilerArgsFromCommandLineInPath = useLegacyBehavior ? legacyExtractArgs(compilerPath) : extractArgs(compilerPath); + if (compilerArgsFromCommandLineInPath.length > 0) { + compilerPath = trimLegacyQuotes(compilerArgsFromCommandLineInPath.shift()); + compilerName = path.basename(compilerPath ?? ''); } } else { - const spaceStart: number = compilerPath.lastIndexOf(" "); - if (spaceStart !== -1) { - // There is no leading quote, but a space suggests it might be a command line. - // Try processing it as a command line, and validate that by checking for the executable. + if (compilerPath.includes(' ')) { + // There is no leading quote, but there is a space so we'll treat it as a command line. const potentialArgs: string[] = useLegacyBehavior ? legacyExtractArgs(compilerPath) : extractArgs(compilerPath); - let potentialCompilerPath: string | undefined = potentialArgs.shift(); - if (useLegacyBehavior) { - if (potentialCompilerPath) { - const tempCompilerPath: string[] | undefined = extractArgs(potentialCompilerPath); - if (tempCompilerPath && compilerPath.length > 0) { - potentialCompilerPath = tempCompilerPath[0]; - } - } - } - if (potentialCompilerPath) { - if (isCl(potentialCompilerPath) || checkExecutableWithoutExtensionExistsSync(potentialCompilerPath)) { - compilerArgsFromCommandLineInPath = potentialArgs; - compilerPath = potentialCompilerPath; - compilerName = path.basename(compilerPath); - } - } + compilerPath = trimLegacyQuotes(potentialArgs.shift()); + compilerArgsFromCommandLineInPath = potentialArgs; } + compilerName = path.basename(compilerPath ?? ''); } } - let allCompilerArgs: string[] = !compilerArgs ? [] : compilerArgs; - allCompilerArgs = allCompilerArgs.concat(compilerArgsFromCommandLineInPath); + const allCompilerArgs: string[] = (compilerArgs ?? []).concat(compilerArgsFromCommandLineInPath); return { compilerPath, compilerName, compilerArgs, compilerArgsFromCommandLineInPath, allCompilerArgs }; } diff --git a/Extension/test/scenarios/SimpleCppProject/assets/b i n/clang++ b/Extension/test/scenarios/SimpleCppProject/assets/b i n/clang++ new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/test/scenarios/SimpleCppProject/assets/b i n/clang++.exe b/Extension/test/scenarios/SimpleCppProject/assets/b i n/clang++.exe new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/test/scenarios/SimpleCppProject/assets/bin/cl.exe b/Extension/test/scenarios/SimpleCppProject/assets/bin/cl.exe new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/test/scenarios/SimpleCppProject/assets/bin/clang-cl.exe b/Extension/test/scenarios/SimpleCppProject/assets/bin/clang-cl.exe new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/test/scenarios/SimpleCppProject/assets/bin/gcc b/Extension/test/scenarios/SimpleCppProject/assets/bin/gcc new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/test/scenarios/SimpleCppProject/assets/bin/gcc.exe b/Extension/test/scenarios/SimpleCppProject/assets/bin/gcc.exe new file mode 100644 index 000000000..e69de29bb diff --git a/Extension/test/scenarios/SimpleCppProject/tests/compilerPath.test.ts b/Extension/test/scenarios/SimpleCppProject/tests/compilerPath.test.ts new file mode 100644 index 000000000..c4ee7a633 --- /dev/null +++ b/Extension/test/scenarios/SimpleCppProject/tests/compilerPath.test.ts @@ -0,0 +1,272 @@ +/* -------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All Rights Reserved. + * See 'LICENSE' in the project root for license information. + * ------------------------------------------------------------------------------------------ */ + +import { describe, it } from 'mocha'; +import { deepEqual, equal, ok } from 'node:assert'; +import * as path from 'path'; +import { Uri } from 'vscode'; +import { extractCompilerPathAndArgs } from '../../../../src/common'; +import { isWindows } from '../../../../src/constants'; +import { CppProperties } from '../../../../src/LanguageServer/configurations'; + +const assetsFolder = Uri.file(path.normalize(path.join(__dirname.replace(/dist[\/\\]/, ''), '..', 'assets'))); +const assetsFolderFsPath = assetsFolder.fsPath; + +// A simple test counter for the tests that loop over several cases. +// This is to make it easier to see which test failed in the output. +// Start the counter with 1 instead of 0 since we're reporting on test cases, not arrays. +class Counter { + private count: number = 1; + public next(): void { + this.count++; + } + public get str(): string { + return `(test ${this.count})`; + } +} + +if (isWindows) { + describe('extractCompilerPathAndArgs', () => { + // [compilerPath, useLegacyBehavior, additionalArgs, result.compilerName, result.allCompilerArgs] + const nonArgsTests: [string, boolean, string[] | undefined, string, string[]][] = [ + ['cl', false, undefined, 'cl', []], + ['cl.exe', false, undefined, 'cl.exe', []], + [path.join(assetsFolderFsPath, 'bin', 'cl.exe'), false, undefined, 'cl.exe', []], + [path.join(assetsFolderFsPath, 'bin', 'gcc.exe'), false, undefined, 'gcc.exe', []], + [path.join(assetsFolderFsPath, 'b i n', 'clang++.exe'), false, undefined, 'clang++.exe', []], + [path.join(assetsFolderFsPath, 'b i n', 'clang++'), false, undefined, 'clang++', []], + [path.join('bin', 'gcc.exe'), false, undefined, 'gcc.exe', []], + [path.join('bin', 'gcc'), false, undefined, 'gcc', []] + ]; + it('Verify various compilerPath strings without args', () => { + const c = new Counter(); + nonArgsTests.forEach(test => { + const result = extractCompilerPathAndArgs(test[1], test[0], test[2], assetsFolderFsPath); + ok(result.compilerPath?.endsWith(test[0]), `${c.str} compilerPath should end with ${test[0]}`); + equal(result.compilerName, test[3], `${c.str} compilerName should match`); + deepEqual(result.compilerArgs, test[2], `${c.str} compilerArgs should match`); + deepEqual(result.compilerArgsFromCommandLineInPath, [], `${c.str} compilerArgsFromCommandLineInPath should be empty`); + deepEqual(result.allCompilerArgs, test[4], `${c.str} allCompilerArgs should match`); + + // errors and telemetry are set by validateCompilerPath + equal(result.error, undefined, `${c.str} error should be undefined`); + equal(result.telemetry, undefined, `${c.str} telemetry should be undefined`); + c.next(); + }); + }); + + const argsTests: [string, boolean, string[] | undefined, string, string[]][] = [ + ['cl.exe /c /Fo"test.obj" test.cpp', false, undefined, 'cl.exe', ['/c', '/Fotest.obj', 'test.cpp']], // extra quotes missing, but not needed. + ['cl.exe /c /Fo"test.obj" test.cpp', true, undefined, 'cl.exe', ['/c', '/Fo"test.obj"', 'test.cpp']], + ['cl.exe /c /Fo"test.obj" test.cpp', false, ['/O2'], 'cl.exe', ['/O2', '/c', '/Fotest.obj', 'test.cpp']], + ['cl.exe /c /Fo"test.obj" test.cpp', true, ['/O2'], 'cl.exe', ['/O2', '/c', '/Fo"test.obj"', 'test.cpp']], + [`"${path.join(assetsFolderFsPath, 'b i n', 'clang++.exe')}" -std=c++20`, false, undefined, 'clang++.exe', ['-std=c++20']], + [`"${path.join(assetsFolderFsPath, 'b i n', 'clang++.exe')}" -std=c++20`, true, undefined, 'clang++.exe', ['-std=c++20']], + [`"${path.join(assetsFolderFsPath, 'b i n', 'clang++.exe')}" -std=c++20`, false, ['-O2'], 'clang++.exe', ['-O2', '-std=c++20']], + [`"${path.join(assetsFolderFsPath, 'b i n', 'clang++.exe')}" -std=c++20`, true, ['-O2'], 'clang++.exe', ['-O2', '-std=c++20']], + [`${path.join('bin', 'gcc.exe')} -O2`, false, undefined, 'gcc.exe', ['-O2']], + [`${path.join('bin', 'gcc.exe')} -O2`, true, undefined, 'gcc.exe', ['-O2']] + ]; + it('Verify various compilerPath strings with args', () => { + const c = new Counter(); + argsTests.forEach(test => { + const result = extractCompilerPathAndArgs(test[1], test[0], test[2]); + const cp = test[0].substring(test[0].at(0) === '"' ? 1 : 0, test[0].indexOf(test[3]) + test[3].length); + ok(result.compilerPath?.endsWith(cp), `${c.str} ${result.compilerPath} !endswith ${cp}`); + equal(result.compilerName, test[3], `${c.str} compilerName should match`); + deepEqual(result.compilerArgs, test[2], `${c.str} compilerArgs should match`); + deepEqual(result.compilerArgsFromCommandLineInPath, test[4].filter(a => !test[2]?.includes(a)), `${c.str} compilerArgsFromCommandLineInPath should match those from the command line`); + deepEqual(result.allCompilerArgs, test[4], `${c.str} allCompilerArgs should match`); + + // errors and telemetry are set by validateCompilerPath + equal(result.error, undefined, `${c.str} error should be undefined`); + equal(result.telemetry, undefined, `${c.str} telemetry should be undefined`); + c.next(); + }); + }); + + const negativeTests: [string, boolean, string[] | undefined, string, string[]][] = [ + [`${path.join(assetsFolderFsPath, 'b i n', 'clang++.exe')} -std=c++20`, false, undefined, 'b', ['i', 'n\\clang++.exe', '-std=c++20']] + ]; + it('Verify various compilerPath strings with args that should fail', () => { + const c = new Counter(); + negativeTests.forEach(test => { + const result = extractCompilerPathAndArgs(test[1], test[0], test[2]); + ok(result.compilerPath?.endsWith(test[3]), `${c.str} ${result.compilerPath} !endswith ${test[3]}`); + equal(result.compilerName, test[3], `${c.str} compilerName should match`); + deepEqual(result.compilerArgs, test[2], `${c.str} compilerArgs should match`); + deepEqual(result.compilerArgsFromCommandLineInPath, test[4], `${c.str} allCompilerArgs should match`); + deepEqual(result.allCompilerArgs, test[4], `${c.str} allCompilerArgs should match`); + + // errors and telemetry are set by validateCompilerPath + equal(result.error, undefined, `${c.str} error should be undefined`); + equal(result.telemetry, undefined, `${c.str} telemetry should be undefined`); + c.next(); + }); + }); + }); +} else { + describe('extractCompilerPathAndArgs', () => { + // [compilerPath, useLegacyBehavior, additionalArgs, result.compilerName, result.allCompilerArgs] + const tests: [string, boolean, string[] | undefined, string, string[]][] = [ + ['clang', false, undefined, 'clang', []], + [path.join(assetsFolderFsPath, 'bin', 'gcc'), false, undefined, 'gcc', []], + [path.join(assetsFolderFsPath, 'b i n', 'clang++'), false, undefined, 'clang++', []], + [path.join('bin', 'gcc'), false, undefined, 'gcc', []] + ]; + it('Verify various compilerPath strings without args', () => { + const c = new Counter(); + tests.forEach(test => { + const result = extractCompilerPathAndArgs(test[1], test[0], test[2]); + equal(result.compilerName, test[3], `${c.str} compilerName should match`); + deepEqual(result.allCompilerArgs, test[4], `${c.str} allCompilerArgs should match`); + equal(result.error, undefined, `${c.str} error should be undefined`); + equal(result.telemetry, undefined, `${c.str} telemetry should be undefined`); + c.next(); + }); + }); + + const argsTests: [string, boolean, string[] | undefined, string, string[]][] = [ + ['clang -O2 -Wall', false, undefined, 'clang', ['-O2', '-Wall']], + ['clang -O2 -Wall', true, undefined, 'clang', ['-O2', '-Wall']], + ['clang -O2 -Wall', false, ['-O3'], 'clang', ['-O3', '-O2', '-Wall']], + ['clang -O2 -Wall', true, ['-O3'], 'clang', ['-O3', '-O2', '-Wall']], + [`"${path.join(assetsFolderFsPath, 'b i n', 'clang++')}" -std=c++20`, false, undefined, 'clang++', ['-std=c++20']], + [`"${path.join(assetsFolderFsPath, 'b i n', 'clang++')}" -std=c++20`, true, undefined, 'clang++', ['-std=c++20']], + [`"${path.join(assetsFolderFsPath, 'b i n', 'clang++')}" -std=c++20`, false, ['-O2'], 'clang++', ['-O2', '-std=c++20']], + [`"${path.join(assetsFolderFsPath, 'b i n', 'clang++')}" -std=c++20`, true, ['-O2'], 'clang++', ['-O2', '-std=c++20']], + [`${path.join('bin', 'gcc')} -O2`, false, undefined, 'gcc', ['-O2']], + [`${path.join('bin', 'gcc')} -O2`, true, undefined, 'gcc', ['-O2']] + ]; + it('Verify various compilerPath strings with args', () => { + const c = new Counter(); + argsTests.forEach(test => { + const result = extractCompilerPathAndArgs(test[1], test[0], test[2]); + equal(result.compilerName, test[3], `${c.str} compilerName should match`); + deepEqual(result.allCompilerArgs, test[4], `${c.str} allCompilerArgs should match`); + equal(result.error, undefined, `${c.str} error should be undefined`); + equal(result.telemetry, undefined, `${c.str} telemetry should be undefined`); + c.next(); + }); + }); + + const negativeTests: [string, boolean, string[] | undefined, string, string[]][] = [ + [`${path.join(assetsFolderFsPath, 'b i n', 'clang++')} -std=c++20`, false, undefined, 'b', ['i', 'n/clang++', '-std=c++20']] + ]; + it('Verify various compilerPath strings with args that should fail', () => { + const c = new Counter(); + negativeTests.forEach(test => { + const result = extractCompilerPathAndArgs(test[1], test[0], test[2]); + equal(result.compilerName, test[3], `${c.str} compilerName should match`); + deepEqual(result.allCompilerArgs, test[4], `${c.str} allCompilerArgs should match`); + + // errors and telemetry are set by validateCompilerPath + equal(result.error, undefined, `${c.str} error should be undefined`); + equal(result.telemetry, undefined, `${c.str} telemetry should be undefined`); + c.next(); + }); + }); + }); +} + +describe('validateCompilerPath', () => { + // [compilerPath, cwd, result.compilerName, result.allCompilerArgs, result.error, result.telemetry] + const tests: [string, Uri, string, string[]][] = [ + ['cl.exe', assetsFolder, 'cl.exe', []], + ['cl', assetsFolder, 'cl', []], + ['clang', assetsFolder, 'clang', []], + [path.join(assetsFolderFsPath, 'bin', 'cl'), assetsFolder, 'cl', []], + [path.join(assetsFolderFsPath, 'bin', 'clang-cl'), assetsFolder, 'clang-cl', []], + [path.join(assetsFolderFsPath, 'bin', 'gcc'), assetsFolder, 'gcc', []], + [path.join(assetsFolderFsPath, 'b i n', 'clang++'), assetsFolder, 'clang++', []], + [path.join('bin', 'gcc'), assetsFolder, 'gcc', []], + [path.join('bin', 'clang-cl'), assetsFolder, 'clang-cl', []], + ['', assetsFolder, '', []], + [' cl.exe ', assetsFolder, 'cl.exe', []] + ]; + it('Verify various compilerPath strings without args', () => { + const c = new Counter(); + tests.forEach(test => { + // Skip the clang-cl test on non-Windows. That test is for checking the addition of .exe to the compiler name on Windows only. + if (isWindows || !test[0].includes('clang-cl')) { + const result = CppProperties.validateCompilerPath(test[0], test[1]); + equal(result.compilerName, test[2], `${c.str} compilerName should match`); + deepEqual(result.allCompilerArgs, test[3], `${c.str} allCompilerArgs should match`); + equal(result.error, undefined, `${c.str} error should be undefined`); + deepEqual(result.telemetry, test[0] === '' ? undefined : {}, `${c.str} telemetry should be empty`); + } + c.next(); + }); + }); + + const argsTests: [string, Uri, string, string[]][] = [ + ['cl.exe /std:c++20 /O2', assetsFolder, 'cl.exe', ['/std:c++20', '/O2']], // issue with /Fo"test.obj" argument + [`"${path.join(assetsFolderFsPath, 'b i n', 'clang++')}" -std=c++20 -O2`, assetsFolder, 'clang++', ['-std=c++20', '-O2']], + [`${path.join('bin', 'gcc')} -std=c++20 -Wall`, assetsFolder, 'gcc', ['-std=c++20', '-Wall']], + ['clang -O2 -Wall', assetsFolder, 'clang', ['-O2', '-Wall']] + ]; + it('Verify various compilerPath strings with args', () => { + const c = new Counter(); + argsTests.forEach(test => { + const result = CppProperties.validateCompilerPath(test[0], test[1]); + equal(result.compilerName, test[2], `${c.str} compilerName should match`); + deepEqual(result.allCompilerArgs, test[3], `${c.str} allCompilerArgs should match`); + equal(result.error, undefined, `${c.str} error should be undefined`); + deepEqual(result.telemetry, {}, `${c.str} telemetry should be empty`); + c.next(); + }); + }); + + it('Verify errors with invalid relative compiler path', async () => { + const result = CppProperties.validateCompilerPath(path.join('assets', 'bin', 'gcc'), assetsFolder); + equal(result.compilerName, 'gcc', 'compilerName should be found'); + equal(result.allCompilerArgs.length, 0, 'Should not have any args'); + ok(result.error?.includes('Cannot find'), 'Should have an error for relative paths'); + equal(result.telemetry?.PathNonExistent, 1, 'Should have telemetry for relative paths'); + equal(result.telemetry?.PathNotAFile, undefined, 'Should not have telemetry for invalid paths'); + equal(result.telemetry?.CompilerPathMissingQuotes, undefined, 'Should not have telemetry for missing quotes'); + }); + + it('Verify errors with invalid absolute compiler path', async () => { + const result = CppProperties.validateCompilerPath(path.join(assetsFolderFsPath, 'assets', 'bin', 'gcc'), assetsFolder); + equal(result.compilerName, 'gcc', 'compilerName should be found'); + equal(result.allCompilerArgs.length, 0, 'Should not have any args'); + ok(result.error?.includes('Cannot find'), 'Should have an error for absolute paths'); + equal(result.telemetry?.PathNonExistent, 1, 'Should have telemetry for absolute paths'); + equal(result.telemetry?.PathNotAFile, undefined, 'Should not have telemetry for invalid paths'); + equal(result.telemetry?.CompilerPathMissingQuotes, undefined, 'Should not have telemetry for missing quotes'); + }); + + it('Verify errors with non-file compilerPath', async () => { + const result = CppProperties.validateCompilerPath('bin', assetsFolder); + equal(result.compilerName, 'bin', 'compilerName should be found'); + equal(result.allCompilerArgs.length, 0, 'Should not have any args'); + ok(result.error?.includes('Path is not a file'), 'Should have an error for non-file paths'); + equal(result.telemetry?.PathNonExistent, undefined, 'Should not have telemetry for relative paths'); + equal(result.telemetry?.PathNotAFile, 1, 'Should have telemetry for invalid paths'); + equal(result.telemetry?.CompilerPathMissingQuotes, undefined, 'Should not have telemetry for missing quotes'); + }); + + it('Verify errors with unknown compiler not in Path', async () => { + const result = CppProperties.validateCompilerPath('icc', assetsFolder); + equal(result.compilerName, 'icc', 'compilerName should be found'); + equal(result.allCompilerArgs.length, 0, 'Should not have any args'); + equal(result.telemetry?.PathNonExistent, 1, 'Should have telemetry for relative paths'); + equal(result.telemetry?.PathNotAFile, undefined, 'Should not have telemetry for invalid paths'); + equal(result.telemetry?.CompilerPathMissingQuotes, undefined, 'Should not have telemetry for missing quotes'); + }); + + it('Verify errors with unknown compiler not in Path with args', async () => { + const result = CppProperties.validateCompilerPath('icc -O2', assetsFolder); + equal(result.compilerName, 'icc', 'compilerName should be found'); + deepEqual(result.allCompilerArgs, ['-O2'], 'args should match'); + ok(result.error?.includes('Cannot find'), 'Should have an error for unknown compiler'); + ok(result.error?.includes('surround the compiler path with double quotes'), 'Should have an error for missing double quotes'); + equal(result.telemetry?.PathNonExistent, 1, 'Should have telemetry for relative paths'); + equal(result.telemetry?.PathNotAFile, undefined, 'Should not have telemetry for invalid paths'); + equal(result.telemetry?.CompilerPathMissingQuotes, 1, 'Should have telemetry for missing quotes'); + }); + +}); diff --git a/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts b/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts index ba466323d..4a5c2c824 100644 --- a/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts +++ b/Extension/test/scenarios/SingleRootProject/tests/copilotProviders.test.ts @@ -24,7 +24,7 @@ describe('copilotProviders Tests', () => { let getClientsStub: sinon.SinonStub; let activeClientStub: sinon.SinonStubbedInstance; let vscodeGetExtensionsStub: sinon.SinonStub; - let callbackPromise: Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] }> | undefined; + let callbackPromise: Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] } | undefined> | undefined; let vscodeExtension: vscode.Extension; let telemetryStub: sinon.SinonStub; @@ -52,7 +52,7 @@ describe('copilotProviders Tests', () => { uri: vscode.Uri, context: { flags: Record }, cancellationToken: vscode.CancellationToken - ) => Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] }> + ) => Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] } | undefined> ): vscode.Disposable & { [Symbol.dispose](): void } { return { dispose: () => { }, @@ -88,13 +88,13 @@ describe('copilotProviders Tests', () => { }); 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: {} } + { 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); 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[] }>) => { + mockCopilotApi.registerRelatedFilesProvider.callsFake((_providerId: { extensionId: string; languageId: string }, callback: (uri: vscode.Uri, context: { flags: Record }, cancellationToken: vscode.CancellationToken) => Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] } | undefined>) => { if (_providerId.languageId === 'cpp') { const tokenSource = new vscode.CancellationTokenSource(); try { diff --git a/Extension/ui/settings.html b/Extension/ui/settings.html index 53029ed70..001feecc6 100644 --- a/Extension/ui/settings.html +++ b/Extension/ui/settings.html @@ -600,6 +600,7 @@
The version of the C++ language standard to use for IntelliSense. Note: GNU standards are only used to query the set compiler to get GNU defines, and IntelliSense will emulate the equivalent C++ standard version.