diff --git a/.github/actions/package-lock.json b/.github/actions/package-lock.json index 3950c767c7..48d0651936 100644 --- a/.github/actions/package-lock.json +++ b/.github/actions/package-lock.json @@ -5,9 +5,23 @@ "requires": true, "dependencies": { "@actions/core": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.6.tgz", - "integrity": "sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==" + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz", + "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==", + "requires": { + "@actions/http-client": "^2.0.1", + "uuid": "^8.3.2" + }, + "dependencies": { + "@actions/http-client": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz", + "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", + "requires": { + "tunnel": "^0.0.6" + } + } + } }, "@actions/github": { "version": "2.2.0", @@ -1126,6 +1140,11 @@ "punycode": "^2.1.0" } }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", diff --git a/.github/actions/package.json b/.github/actions/package.json index 53dd48b834..c6f09f9063 100644 --- a/.github/actions/package.json +++ b/.github/actions/package.json @@ -10,7 +10,7 @@ "keywords": [], "author": "", "dependencies": { - "@actions/core": "^1.2.6", + "@actions/core": "^1.9.1", "@actions/github": "^2.1.1", "axios": "^0.21.4" }, diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index f6109f56d9..8afad58116 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,14 +1,61 @@ -# C/C++ for Visual Studio Code Change Log +# C/C++ for Visual Studio Code Changelog + +## Version 1.12.3: August 29, 2022 +### New Features +* Add Doxygen comment generation via command, context menu, code action, or typing. [#5683](https://github.com/microsoft/vscode-cpptools/issues/5683) +* Add auto-complete of Doxygen keywords in comments. + +### Enhancements +* Add auto-formatting of lines that are changed by code analysis fixes. [#9322](https://github.com/microsoft/vscode-cpptools/issues/9322) +* Add compile arguments to enable colorized output in cppBuild tasks for clang. [#9643](https://github.com/microsoft/vscode-cpptools/issues/9643) +* Cache and reuse SSH passwords in the current remote debugging session. [PR #9654](https://github.com/microsoft/vscode-cpptools/pull/9654) +* Fix "natvis collections only show the first 50 elements". [MIEngine#821](https://github.com/microsoft/MIEngine/issues/821) + * Related [#9377](https://github.com/microsoft/vscode-cpptools/issues/9377) +* Fix "cppdbg doesn't support array view of char* buf". [MIEngine#1258](https://github.com/microsoft/MIEngine/issues/1258) +* Support explicit `this` references in natvis files. + * @Trass3r [PR MIEngine#1163](https://github.com/microsoft/MIEngine/pull/1163) +* Do std fallback when compiler querying, even when explicitly specified via a compiler arg. + +### Bug Fixes +* Fix several IntelliSense parsing bugs. [#3683](https://github.com/microsoft/vscode-cpptools/issues/3683), [#6659](https://github.com/microsoft/vscode-cpptools/issues/6659), [#7446](https://github.com/microsoft/vscode-cpptools/issues/7446), [#9215](https://github.com/microsoft/vscode-cpptools/issues/9215) +* Fix crash when tag parsing files containing certain string literals. [#9538](https://github.com/microsoft/vscode-cpptools/issues/9538) +* Fix incorrect semantic tokens with templated operator overloads. [#9556](https://github.com/microsoft/vscode-cpptools/issues/9556) +* Fix `.` to `->` completion in functions defined in the class/struct definition. [#9599](https://github.com/microsoft/vscode-cpptools/issues/9599) +* Fix inlay hint filtering not working with some cases of whitespace. [#9606](https://github.com/microsoft/vscode-cpptools/issues/9606) +* Fix Chinese translation mistakes. + * kouhe3 (@kouhe3) [PR #9624](https://github.com/microsoft/vscode-cpptools/pull/9624) +* Fix IntelliSense error with ARM register declarations. [#9627](https://github.com/microsoft/vscode-cpptools/issues/9627) +* Fix files with a `.c` extension not using a C++ `std` version passed in the `compilerArgs` or `compilerFragments`. [#9628](https://github.com/microsoft/vscode-cpptools/issues/9628) +* Fix unnecessary IntelliSense process restarting on file creation handling. [#9630](https://github.com/microsoft/vscode-cpptools/issues/9630) +* Fix tag parsing of classes and enums with attributes. [#9672](https://github.com/microsoft/vscode-cpptools/issues/9672) +* Add PID to the extended remote process picker. [PR #9673](https://github.com/microsoft/vscode-cpptools/pull/9673) +* Fix tag parser crash. [#9679](https://github.com/microsoft/vscode-cpptools/issues/9679), [#9695](https://github.com/microsoft/vscode-cpptools/issues/9695) +* Fix code analysis fixes generating invalid code when the fix has escaped characters. [#9683](https://github.com/microsoft/vscode-cpptools/issues/9683) +* Fix unintended generation of `nul.d` file when querying clang or gcc, when compiler arguments include dependency generation arguments. [#9707](https://github.com/microsoft/vscode-cpptools/issues/9707) +* Fix code analysis fixes not being available when more than one check is associated with a fix. [#9755](https://github.com/microsoft/vscode-cpptools/issues/9755) +* Fix error when debugging is started without a launch.json and IntelliSense is disabled. [#9762](https://github.com/microsoft/vscode-cpptools/issues/9762) +* Fix "The result of GDB -exec evaluate request in all contexts is printed in debug console." [MIEngine #1236](https://github.com/microsoft/MIEngine/issues/1236) +* Fix "Evaluating a variable after a failed Step Out causes a fatal error, leaving debug session unusable". [MIEngine#1336](https://github.com/microsoft/MIEngine/issues/1336) + * Gareth Rees (@gareth-rees) [PR MIEngine#1337](https://github.com/microsoft/MIEngine/pull/1337) +* Fix deadlock in HandleStackTraceRequestAsync where lock was hold too long. + * GeorgeMay (@JoergMeier106) [PR MIEngine#1309](https://github.com/microsoft/MIEngine/pull/1309) +* Fix potential crashes on shutdown. + +## Version 1.11.5: August 9, 2022 +### Bug Fixes +* Fix crash when tag parsing files containing certain string literals. [#9538](https://github.com/microsoft/vscode-cpptools/issues/9538) +* Fix `llvm-project` parser crash on file: `clang/test/parser/parser_overflow.c`. [#9653](https://github.com/microsoft/vscode-cpptools/issues/9653) +* Fix `llvm-project` parser crash on file: `libcxx/test/support/test.support/make_string_header.pass.cpp`. [#9679](https://github.com/microsoft/vscode-cpptools/issues/9679) ## Version 1.11.4: July 21, 2022 -## New Features +### New Features * Add inlay hints for parameters and auto types. [#5845](https://github.com/microsoft/vscode-cpptools/issues/5845) * Add extended remote support for debugging. [#8497](https://github.com/microsoft/vscode-cpptools/issues/8497), [#9195](https://github.com/microsoft/vscode-cpptools/issues/9195), [#9491](https://github.com/microsoft/vscode-cpptools/discussions/9491), [#9505](https://github.com/microsoft/vscode-cpptools/issues/9505) -## Enhancements +### Enhancements * Add deploySteps and variables to cppdbg. [PR #9418](https://github.com/microsoft/vscode-cpptools/pull/9418) -## Bug Fixes +### Bug Fixes * Fix "unknown register name" IntelliSense error. [#4382](https://github.com/microsoft/vscode-cpptools/issues/4382) * Fix performance issue with tag parsing a file with a lot of defines. [#6454](https://github.com/microsoft/vscode-cpptools/issues/6454) * Fix IntelliSense with gcc vector extension types. [#6890](https://github.com/microsoft/vscode-cpptools/issues/6890) @@ -68,7 +115,7 @@ * Fix several IntelliSense bugs. [#6226](https://github.com/microsoft/vscode-cpptools/issues/6226), [#8294](https://github.com/microsoft/vscode-cpptools/issues/8294), [#8530](https://github.com/microsoft/vscode-cpptools/issues/8530), [#8725](https://github.com/microsoft/vscode-cpptools/issues/8725), [#8751](https://github.com/microsoft/vscode-cpptools/issues/8751), [#9076](https://github.com/microsoft/vscode-cpptools/issues/9076), [#9224](https://github.com/microsoft/vscode-cpptools/issues/9224), [#9336](https://github.com/microsoft/vscode-cpptools/issues/9336). * Fix issue with shell processing incorrectly occurring for `arguments` fields in `compile_commands.json` files. [#8649](https://github.com/microsoft/vscode-cpptools/issues/8649) * Fix handling of `@response` files for clang-tidy on Windows. [#8843](https://github.com/microsoft/vscode-cpptools/issues/8843), [#9032](https://github.com/microsoft/vscode-cpptools/issues/9032), [#9102](https://github.com/microsoft/vscode-cpptools/issues/9102) -* Fix issue with inconsistent handling of shell escaping in compiler arg fields. All compiler arg array fields are now assumed to not include shell quoting, escaping or shell variables. Added a `C_Cpp.legacyCompilerArgsBehavior` to restore the legacy behavior. [#8963](https://github.com/microsoft/vscode-cpptools/issues/8963) +* Fix issue with inconsistent handling of shell escaping in compiler arg fields. All compiler arg array fields are now assumed to not include shell quoting, escaping or shell variables. Added a `C_Cpp.legacyCompilerArgsBehavior` to restore the legacy behavior. [#8963](https://github.com/microsoft/vscode-cpptools/issues/8963) * Add localized strings for build tasks. [#9051](https://github.com/microsoft/vscode-cpptools/issues/9051) * Fix Go to Definition with C for identifiers that are C++ keywords. [#9081](https://github.com/microsoft/vscode-cpptools/issues/9081) * Fix the new Run/Debug Code button not working with a modified program location. [#9082](https://github.com/microsoft/vscode-cpptools/issues/9082) @@ -113,9 +160,9 @@ * Add a "More Info" option when an incompatible VSIX is encountered. [PR #8920](https://github.com/microsoft/vscode-cpptools/pull/8920) * Add `;` to `break` and `continue` completion keywords. [#8932](https://github.com/microsoft/vscode-cpptools/issues/8932) * Prevent stripping of format specifiers from -exec commands. - * Gareth Rees (@gareth-rees) [MIEngine#1277](https://github.com/microsoft/MIEngine/pull/1278) + * Gareth Rees (@gareth-rees) [PR MIEngine#1277](https://github.com/microsoft/MIEngine/pull/1278) * Improve messages for unknown breakpoints and watchpoints. - * Gareth Rees (@gareth-rees) [MIEngine#1282](https://github.com/microsoft/MIEngine/pull/1283) + * Gareth Rees (@gareth-rees) [PR MIEngine#1282](https://github.com/microsoft/MIEngine/pull/1283) ### Bug Fixes * Fix some IntelliSense parsing bugs. [#5117](https://github.com/microsoft/vscode-cpptools/issues/5117) @@ -222,7 +269,7 @@ ### New Features * Add a command to restart IntelliSense for a specific file. [#3727](https://github.com/microsoft/vscode-cpptools/issues/3727) * Add support for macOS app bundles [#6726](https://github.com/microsoft/vscode-cpptools/issues/6726) - * [MIEngine#1091](https://github.com/microsoft/MIEngine/pull/1091) + * [PR MIEngine#1091](https://github.com/microsoft/MIEngine/pull/1091) * Add support for Go To / Peek Type Definition. [#7999](https://github.com/microsoft/vscode-cpptools/issues/7999) ### Enhancements @@ -246,10 +293,10 @@ * Fix an issue related to arg parsing in build tasks. [#7891](https://github.com/microsoft/vscode-cpptools/issues/7891) * Add a check when cppbuild task is used when the active file is not a source file. [#7892](https://github.com/microsoft/vscode-cpptools/issues/7892) * Fix a cpptools crash [#8055](https://github.com/microsoft/vscode-cpptools/issues/8055) -* Fix issue "LogPoint stopped working v1.6.0". [#8065](https://github.com/microsoft/vscode-cpptools/issues/8065) - * [MIEngine#1208](https://github.com/microsoft/MIEngine/pull/1208) +* Fix issue "LogPoint stopped working v1.6.0". [#8065](https://github.com/microsoft/vscode-cpptools/issues/8065) + * [PR MIEngine#1208](https://github.com/microsoft/MIEngine/pull/1208) * Fix issue "Debugger won't read/write from/to stdio". [#8075](https://github.com/microsoft/vscode-cpptools/issues/8075) - * [MIEngine#1209](https://github.com/microsoft/MIEngine/pull/1209) + * [PR MIEngine#1209](https://github.com/microsoft/MIEngine/pull/1209) * Fix an issue with VC 14.0 headers not being found. [#8078](https://github.com/microsoft/vscode-cpptools/issues/8078) * Fix an issue with CUDA support with `compile_commands.json`. [#8091](https://github.com/microsoft/vscode-cpptools/issues/8091) * Fix an issue with `/kernel` arg to `cl.exe` for C files. [#8158](https://github.com/microsoft/vscode-cpptools/issues/8158) @@ -258,9 +305,9 @@ ## Version 1.6.0: August 24, 2021 ### New Features * Added support for standard `.editorconfig` entries when using vcFormat. [#7920](https://github.com/microsoft/vscode-cpptools/issues/7920) -* Debug Step Granularity for cppdbg [MIEngine#1169](https://github.com/microsoft/MIEngine/pull/1169) +* Debug Step Granularity for cppdbg [PR MIEngine#1169](https://github.com/microsoft/MIEngine/pull/1169) * Thank you for the contribution @Trass3r -* InstructionBreakpoints for cppdbg [MIEgnine#1192](https://github.com/microsoft/MIEngine/pull/1192) +* InstructionBreakpoints for cppdbg [PR MIEgnine#1192](https://github.com/microsoft/MIEngine/pull/1192) ### Enhancements * Debugger now runs on .NET 5 [#7858](https://github.com/microsoft/vscode-cpptools/pull/7858) @@ -289,7 +336,7 @@ * Fix an issue with cppdbg debugging on Windows x64. [#7971](https://github.com/microsoft/vscode-cpptools/issues/7971) * Fix an issue with VS `` header causing IntelliSense process crash. [#7972](https://github.com/microsoft/vscode-cpptools/issues/7972) * Fix insiders update install loop for remote scenarios. [#8000](https://github.com/microsoft/vscode-cpptools/issues/8000) -* Fix MacOS unable to use external terminal to debug [#8008](https://github.com/microsoft/vscode-cpptools/issues/8008) +* Fix macOS unable to use external terminal to debug [#8008](https://github.com/microsoft/vscode-cpptools/issues/8008) ## Version 1.5.1: July 9, 2021 ### Bug Fixes @@ -349,7 +396,7 @@ * Update to clang-format 12. [#6434](https://github.com/microsoft/vscode-cpptools/issues/6434) * Add `private` or `protected` scope labels to class symbols. [#7120](https://github.com/microsoft/vscode-cpptools/issues/7120) * Fix file:line path for $FILEPOS [#7193](https://github.com/microsoft/vscode-cpptools/issues/7193) - * [#1124](https://github.com/microsoft/MIEngine/pull/1124) + * [PR MIEngine#1124](https://github.com/microsoft/MIEngine/pull/1124) * Add `stopAtConnect` and `hardwareBreakpoints` launch options [PR #7449](https://github.com/microsoft/vscode-cpptools/pull/7449) * `stopAtConnect` stops the debugger on connection to a remote target [PR MIEngine#1109](https://github.com/microsoft/MIEngine/pull/1109) * `hardwareBreakpoints` controls usage and number of remote hardware breakpoints [PR MIEngine#1128](https://github.com/microsoft/MIEngine/pull/1128) @@ -366,7 +413,7 @@ * Fix an IntelliSense crash with `#pragma GCC target`. [#6698](https://github.com/microsoft/vscode-cpptools/issues/6698), [#7377](https://github.com/microsoft/vscode-cpptools/issues/7377) * Fix bitness detection for compilers targeting esp32. [#7034](https://github.com/microsoft/vscode-cpptools/issues/7034) * Fix -idirafter directories being included too early. [#7129](https://github.com/microsoft/vscode-cpptools/issues/7129) -* Fix issue with the cpptools process lingering when no longer needed. [#7262](https://github.com/microsoft/vscode-cpptools/issues/7262) +* Fix issue with the cpptools process lingering when no longer needed. [#7262](https://github.com/microsoft/vscode-cpptools/issues/7262) * Filter out C++ std when querying the compiler as C (and vice versa). [#7269](https://github.com/microsoft/vscode-cpptools/issues/7269) * Fix `files.exclude` ending with `/folder/**` not excluding `/folder`. [#7331](https://github.com/microsoft/vscode-cpptools/issues/7331) * Fix VS Code UI freezing when hovering over very large literals. [#7334](https://github.com/microsoft/vscode-cpptools/issues/7334), [#7577](https://github.com/microsoft/vscode-cpptools/issues/7577) @@ -694,7 +741,7 @@ * The way comments are formatted is controlled by the `C_Cpp.simplifyStructuredComments` setting. * Auto-convert `.` to `->` when the type is a pointer. [#862](https://github.com/microsoft/vscode-cpptools/issues/862) * Switch to using the VS Code Semantic Tokens API for semantic colorization (works with remoting). [PR #5401](https://github.com/microsoft/vscode-cpptools/pull/5401), [#3932](https://github.com/microsoft/vscode-cpptools/issues/3932), [#3933](https://github.com/microsoft/vscode-cpptools/issues/3933), [#3942](https://github.com/microsoft/vscode-cpptools/issues/3942) -* Add support for LogMessage Breakpoints for debug type `cppdbg`. [MIEngine#1013](https://github.com/microsoft/MIEngine/pull/1013) +* Add support for LogMessage Breakpoints for debug type `cppdbg`. [PR MIEngine#1013](https://github.com/microsoft/MIEngine/pull/1013) ### Enhancements * Automatically add `"${default}"` to the default `includePath` in `c_cpp_properties.json` if `C_Cpp.default.includePath` is set. [#3733](https://github.com/microsoft/vscode-cpptools/issues/3733) @@ -835,7 +882,7 @@ * Fix failure to detect CL.exe if VS Installer files are stored on a drive other than the system drive. [#4929](https://github.com/microsoft/vscode-cpptools/issues/4929) * Fix extension randomly getting stuck while communicating with the IntelliSense process on Mac. [#4989](https://github.com/microsoft/vscode-cpptools/issues/4989) * Fix completion results appearing after numeric literals. [#5019](https://github.com/microsoft/vscode-cpptools/issues/5019) -* Fix issue with cancellation of a `Rename` operation causing subsequent `Find All References` and `Rename` operations to fail. [#5022](https://github.com/microsoft/vscode-cpptools/issues/5022) +* Fix issue with cancellation of a `Rename` operation causing subsequent `Find All References` and `Rename` operations to fail. [#5022](https://github.com/microsoft/vscode-cpptools/issues/5022) * Fix some settings not being editable in the UI. [PR #5126](https://github.com/microsoft/vscode-cpptools/pull/5126) * Fix `cpp_properties.json` error squiggles not appearing. [#5131](https://github.com/microsoft/vscode-cpptools/issues/5131) * Fix `search.exclude` not applying if there are > 1 symbols matching in the excluded file. [#5152](https://github.com/microsoft/vscode-cpptools/issues/5152) diff --git a/Extension/README.md b/Extension/README.md index 9cc9aeb5bc..b7d2904ada 100644 --- a/Extension/README.md +++ b/Extension/README.md @@ -4,10 +4,30 @@ [![Badge](https://aka.ms/vsls-badge)](https://aka.ms/vsls) -The C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging. +The C/C++ extension adds language support for C/C++ to Visual Studio Code, including [editing (IntelliSense)](https://code.visualstudio.com/docs/cpp/cpp-ide) and [debugging](https://code.visualstudio.com/docs/cpp/cpp-debug) features. + +## Pre-requisites +C++ is a compiled language meaning your program's source code must be translated (compiled) before it can be run on your computer. VS Code is first and foremost an editor, and relies on command-line tools to do much of the development workflow. The C/C++ extension **does not include a C++ compiler or debugger**. You will need to install these tools or use those already installed on your computer. + * C++ compiler pre-installed + * C++ debugger pre-installed + +
+ +Here is a list of compilers and architectures per platform officially supported by the extension. These are reflected by the available [IntelliSense modes](https://code.visualstudio.com/docs/cpp/configure-intellisense-crosscompilation#_intellisense-mode) from the extension's IntelliSense configuration. Note that support for other compilers may be limited. + +Platform | Compilers | Architectures +:--- | :--- | :--- +Windows | MSVC, Clang, GCC | x64, x86, arm64, arm +Linux | Clang, GCC | x64, x86, arm64, arm +macOS | Clang, GCC | x64, x86, arm64 + +For more information about installing the required tools or setting up the extension, please follow the tutorials below. +
+
## Overview and tutorials * [C/C++ extension overview](https://code.visualstudio.com/docs/languages/cpp) +* [Introductory Videos](https://code.visualstudio.com/docs/cpp/introvideos-cpp) C/C++ extension tutorials per compiler and platform * [Microsoft C++ compiler (MSVC) on Windows](https://code.visualstudio.com/docs/cpp/config-msvc) diff --git a/Extension/bin/messages/cs/messages.json b/Extension/bin/messages/cs/messages.json index 695aa42072..3235f675fa 100644 --- a/Extension/bin/messages/cs/messages.json +++ b/Extension/bin/messages/cs/messages.json @@ -3423,7 +3423,7 @@ "Pro oddíl %sq2 se požádalo o pozici v souboru %d1 (relativní pozice %d2) v modulu %sq1, pozice ale předchází začátek oddílu.", "Pro oddíl %sq2 se požádalo o pozici v souboru %d1 (relativní pozice %d2) v modulu %sq1, pozice ale přetéká konec svého oddílu.", "Pro oddíl %sq2 se požádalo o pozici v souboru %d1 (relativní pozice %d2) v modulu %sq1, pozice ale není zarovnaná s elementy oddílu.", - "Z podpole %sq", + "z dílčího pole %sq (relativní pozice k uzlu %d)", "Z oddílu %sq, elementu %d1 (pozice v souboru %d2, relativní pozice %d3)", "Atributy výrazu lambda tady nejsou standardní.", "Identifikátor %sq by bylo možné zaměnit za vizuálně podobné %p.", @@ -3461,5 +3461,11 @@ "kvalifikovaný typ je pro anonymní bitová pole nestandardní.", "typ elementu vektorové podmínky (%t1) musí mít stejnou velikost jako typ elementu výsledku (%t2).", "typ operandu vektoru s plovoucí desetinnou čárkou (%t) nemá žádný odpovídající celočíselný vektorový typ.", - "mangling pro výrazy requires ještě není implementovaný." + "mangling pro výrazy requires ještě není implementovaný.", + "kvůli atributu „není k dispozici“", + "došlo k pokusu o vytvoření elementu z oddílu IFC %sq pomocí indexu do oddílu IFC %sq.", + "oddíl %sq určil svou velikost položky jako %d1, když bylo očekáváno %d2.", + "při zpracování modulu %sq1 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ě" ] \ No newline at end of file diff --git a/Extension/bin/messages/de/messages.json b/Extension/bin/messages/de/messages.json index 5bee36d7bc..791a392cea 100644 --- a/Extension/bin/messages/de/messages.json +++ b/Extension/bin/messages/de/messages.json @@ -3461,5 +3461,6 @@ "ein qualifizierter Typ ist kein Standard für anonyme Bitfelder", "der Elementtyp der Vektorbedingung (%t1) muss dieselbe Größe haben wie der Elementtyp des Ergebnisses (%t2)", "der Gleitkomma-Vektoroperandentyp (%t) hat keinen übereinstimmenden ganzzahligen Vektortyp", - "das Mangling für 'requires'-Ausdrücke ist noch nicht implementiert" + "das Mangling für 'requires'-Ausdrücke ist noch nicht implementiert", + "aufgrund eines „nicht verfügbaren“ Attributs" ] \ No newline at end of file diff --git a/Extension/bin/messages/es/messages.json b/Extension/bin/messages/es/messages.json index 882d16b33b..566309c30d 100644 --- a/Extension/bin/messages/es/messages.json +++ b/Extension/bin/messages/es/messages.json @@ -3423,7 +3423,7 @@ "módulo %sq1, posición de archivo %d1 (posición relativa %d2) solicitada para la partición %sq2, que es anterior al inicio de la partición", "módulo %sq1, posición de archivo %d1 (posición relativa %d2) solicitada para la partición %sq2, que desborda el final de su partición", "módulo %sq1 posición de archivo %d1 (posición relativa %d2) solicitada para la partición %sq2, que está mal alineada con sus elementos de particiones", - "del subcampo %sq", + "desde el subcampo %sq (posición relativa al nodo %d)", "de la partición %sq elemento %d1 (posición de archivo %d2, posición relativa %d3)", "los atributos lambda no son estándar aquí", "el identificador %sq podría confundirse con uno visualmente similar que aparece %p", @@ -3461,5 +3461,11 @@ "un tipo calificado no es estándar para campos de bits anónimos", "el tipo de elemento de la condición de vector (%t1) debe tener el mismo tamaño que el tipo de elemento del resultado (%t2)", "el tipo de operando de vector de punto flotante (%t) no tiene ningún tipo de vector entero coincidente", - "aún no se ha implementado la limpieza de expresiones \"requires\"" + "aún no se ha implementado la limpieza de expresiones \"requires\"", + "debido a un atributo “no disponible”", + "intentó construir un elemento a partir de la partición IFC %sq mediante un índice en la partición IFC %sq", + "la partición %sq especificó su tamaño de entrada como %d1 cuando se esperaba %d2", + "se encontró un requisito IFC inesperado al procesar el módulo %sq1", + "error de condición en la línea %d en %s1: %sq2", + "la restricción atómica depende de sí misma" ] \ No newline at end of file diff --git a/Extension/bin/messages/fr/messages.json b/Extension/bin/messages/fr/messages.json index b05724bd7a..4cf820d7f6 100644 --- a/Extension/bin/messages/fr/messages.json +++ b/Extension/bin/messages/fr/messages.json @@ -3423,7 +3423,7 @@ "module %sq1 position de fichier %d1 (position relative %d2) demandée pour la partition %sq2, qui précède le début de la partition", "module %sq1 position de fichier %d1 (position relative %d2) demandée pour la partition %sq2, qui dépasse la fin de sa partition", "module %sq1 position de fichier %d1 (position relative %d2) demandée pour la partition %sq2, qui est mal alignée avec ses éléments de partitions", - "à partir du sous-champ %sq", + "à partir du sous-champ %sq (position relative par rapport au nœud %d)", "à partir de la partition %sq, élément %d1 (position de fichier %d2, position relative %d3)", "les attributs lambda ne sont pas standard ici", "l’identificateur %sq peut être confondu avec un identificateur visuellement similaire qui apparaît %p", @@ -3461,5 +3461,11 @@ "un type qualifié n’est pas standard pour les champs de bits anonymes.", "le type d’élément de la condition vectorielle (%t1) doit avoir la même taille que le type d’élément du résultat (%t2).", "le type d’opérande vectoriel à virgule flottante (%t) n’a pas de type de vecteur entier correspondant.", - "La gestion des expressions \"requires\" n'est pas encore implémentée." + "La gestion des expressions \"requires\" n'est pas encore implémentée.", + "en raison d’un attribut 'unavailable'", + "a tenté de construire un élément à partir d’une partition IFC %sq à l’aide d’un index dans la partition IFC %sq.", + "le %sq de partition a spécifié sa taille d’entrée %d1 alors que %d2 était attendu.", + "une exigence IFC inattendue s’est produite lors du traitement du module %sq1.", + "échec de la condition à la ligne %d dans %s1 : %sq2", + "la contrainte atomique dépend d’elle-même." ] \ No newline at end of file diff --git a/Extension/bin/messages/it/messages.json b/Extension/bin/messages/it/messages.json index 9da4899e5c..c593f0cf21 100644 --- a/Extension/bin/messages/it/messages.json +++ b/Extension/bin/messages/it/messages.json @@ -3461,5 +3461,6 @@ "un tipo qualificato non è conforme allo standard per i campi di bit anonimi", "il tipo di elemento della condizione vettoriale (%t1) deve avere le stesse dimensioni del tipo di elemento del risultato (%t2)", "il tipo di operando di vettore a virgola mobile (%t) non ha un tipo di vettore intero corrispondente", - "il mangling per le espressioni 'requires' non è ancora implementato" + "il mangling per le espressioni 'requires' non è ancora implementato", + "a causa di un attributo 'non disponibile'" ] \ No newline at end of file diff --git a/Extension/bin/messages/ja/messages.json b/Extension/bin/messages/ja/messages.json index 04c8d6096a..0f7af8fba1 100644 --- a/Extension/bin/messages/ja/messages.json +++ b/Extension/bin/messages/ja/messages.json @@ -3423,7 +3423,7 @@ "モジュール %sq1 ファイル位置 %d1 (相対位置 %d2) がパーティション %sq2 に対して要求されました - これはパーティションの始点より前です", "モジュール %sq1 ファイル位置 %d1 (相対位置 %d2) がパーティション %sq2 に対して要求されました - これはそのパーティションの終点をオーバーフローしています", "モジュール %sq1 ファイル位置 %d1 (相対位置 %d2) がパーティション %sq2 に対して要求されました - これはそのパーティション要素の整列誤りです", - "サブフィールド %sq の始点", + "サブフィールド %sq から (ノード %d への相対位置)", "パーティション元 %sq 要素 %d1 (ファイル位置 %d2、相対位置 %d3)", "ラムダ属性はここでは非標準です", "識別子 %sq は、%p に表示される視覚的に類似したものと混同される可能性があります", @@ -3461,5 +3461,11 @@ "修飾された型は匿名ビット フィールドでは非標準です", "ベクトル条件 (%t1) の要素型は、結果の要素型 (%t2) と同じサイズである必要があります", "浮動小数点ベクトル オペランド型 (%t) に一致する整数ベクトル型がありません", - "'requires' 式のためのマングリングは、まだ実装されていません" + "'requires' 式のためのマングリングは、まだ実装されていません", + "'unavailable' 属性が原因です", + "IFC パーティション %sq へのインデックスを使用して、IFC パーティション %sq から要素を構築しようとしました", + "パーティション %sq は、%d2 が予期されたときにエントリ サイズを %d1 として指定しました", + "モジュール %sq1 の処理中に予期しない IFC 要件が発生しました", + null, + "アトミック制約は、それ自体に依存します" ] \ No newline at end of file diff --git a/Extension/bin/messages/ko/messages.json b/Extension/bin/messages/ko/messages.json index 8bacaf0b8d..706ffc9859 100644 --- a/Extension/bin/messages/ko/messages.json +++ b/Extension/bin/messages/ko/messages.json @@ -3423,7 +3423,7 @@ "%sq1 모듈 파일 위치 %d1(상대 위치 %d2)이(가) 파티션 %sq2에 대해 요청되었습니다. 이는 파티션의 시작을 선행합니다.", "모듈 %sq1 파일 위치 %d1(상대 위치 %d2)이(가) 파티션의 끝을 오버플로하는 파티션 %sq2에 대해 요청되었습니다.", "모듈 %sq1 파일 위치 %d1(상대 위치 %d2)이(가) 파티션 요소가 잘못 정렬된 파티션 %sq2에 대해 요청되었습니다.", - "하위 필드 %sq에서", + "하위 필드 %sq(노드 %d에 대한 상대 위치)에서", "파티션 %sq 요소 %d1(파일 위치 %d2, 상대 위치 %d3)에서", "여기서 람다 특성은 표준이 아닙니다.", "식별자 %sq은(는) 시각적으로 유사한 식별자와 혼동될 수 있습니다. %p", @@ -3461,5 +3461,11 @@ "정규화된 형식이 익명 비트 필드에 대해 표준이 아닙니다.", "벡터 조건의 요소 유형(%t1)은 결과의 요소 유형(%t2)과 크기가 같아야 합니다.", "부동 소수점 벡터 피연산자 유형(%t)에 일치하는 정수 벡터 유형이 없습니다.", - "'requires' 식에 대한 mangling이 아직 구현되지 않았습니다." + "'requires' 식에 대한 mangling이 아직 구현되지 않았습니다.", + "'unavailable' 특성 때문에", + "IFC 파티션 %sq에 대한 인덱스를 사용하여 IFC 파티션 %sq에서 요소를 구성하려고 했습니다.", + "파티션 %sq는 %d2가 예상될 때 항목 크기를 %d1로 지정했습니다.", + "모듈 %sq1을(를) 처리하는 동안 예기치 않은 IFC 요구 사항이 발생했습니다.", + null, + "원자성 제약 조건은 자체에 따라 달라집니다." ] \ No newline at end of file diff --git a/Extension/bin/messages/pl/messages.json b/Extension/bin/messages/pl/messages.json index 4afdcc17ab..64edde6a7b 100644 --- a/Extension/bin/messages/pl/messages.json +++ b/Extension/bin/messages/pl/messages.json @@ -3423,7 +3423,7 @@ "zażądano modułu %sq1 pozycji pliku %d1 (względna pozycja %d2) dla partycji %sq2, która poprzedza rozpoczęcie partycji", "zażądano modułu %sq1 pozycji pliku %d1 (pozycja względna %d2) dla partycji %sq2, która powoduje przepełnienie końca partycji", "zażądano modułu %sq1 pozycji pliku %d1 (pozycja względna %d2) dla partycji %sq2, która jest nieprawidłowo wyrównana do jej elementów partycji", - "z podpola %sq", + "z podpola %sq (względne położenie w stosunku do węzła %d)", "z partycji %sq element %d1 (pozycja pliku %d2, względna pozycja %d3)", "atrybuty lambda są niestandardowe w tym miejscu", "identyfikator %sq można pomylić z widocznym wizualnie identyfikatorem %p", @@ -3461,5 +3461,11 @@ "kwalifikowany typ jest niestandardowy dla anonimowych pól bitowych", "typ elementu warunku wektora (%t1) musi mieć taki sam rozmiar jak typ elementu wyniku (%t2)", "typ operandu wektora zmiennoprzecinkowego (%t) nie ma zgodnego typu wektora liczb całkowitych", - "nie jest jeszcze zaimplementowane dekorowanie wyrażeń typu „requires”." + "nie jest jeszcze zaimplementowane dekorowanie wyrażeń typu „requires”.", + "z powodu atrybutu „unavailable”", + "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 %d1, gdy oczekiwano wartości %d2", + "napotkano nieoczekiwane wymaganie IFC podczas przetwarzania modułu %sq1", + "warunek nie powiódł się w wierszu %d w %s1: %sq2", + "niepodzielne ograniczenie zależy od samego siebie" ] \ 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 49eb6b49db..2a97be9679 100644 --- a/Extension/bin/messages/pt-br/messages.json +++ b/Extension/bin/messages/pt-br/messages.json @@ -3423,7 +3423,7 @@ "módulo %sq1 posição de arquivo %d1 (posição relativa %d2) solicitada para a partição %sq2 - que impede o início da partição", "módulo %sq1 posição de arquivo %d1 (posição relativa %d2) solicitada para a partição %sq2 - que estoura o final de sua partição", "módulo %sq1 posição de arquivo %d1 (posição relativa %d2) solicitada para a partição %sq2 - que está desalinhada com seus elementos de partições", - "do subcampo %sq", + "do subcampo %sq (posição relativa ao nó %d)", "da partição %sq elemento %d1 (posição do arquivo %d2, posição relativa %d3)", "os atributos lambda não são padrão aqui", "O identificador %sq pode ser confundido com um visualmente semelhante ao que aparece %p", @@ -3461,5 +3461,11 @@ "um tipo qualificado não é padrão para campos de bits anônimos", "o tipo de elemento da condição de vetor (%t1) deve ter o mesmo tamanho que o tipo de elemento do resultado (%t2)", "o tipo de operando vetorial de ponto flutuante (%t) não tem nenhum tipo de vetor inteiro correspondente", - "a estruturação para expressões 'requires' ainda não foi implementada" + "a estruturação para expressões 'requires' ainda não foi implementada", + "devido a um atributo 'indisponível'", + "tentou construir um elemento da partição IFC %sq usando um índice na partição IFC %sq", + "a partição %sq especificou seu tamanho de entrada como %d1 quando %d2 era esperado", + "um requisito IFC inesperado foi encontrado durante o processamento do módulo %sq1", + "condição falhou na linha %d em %s1: %sq2", + "restrição atômica depende de si mesma" ] \ No newline at end of file diff --git a/Extension/bin/messages/ru/messages.json b/Extension/bin/messages/ru/messages.json index 6425685982..f742c3417b 100644 --- a/Extension/bin/messages/ru/messages.json +++ b/Extension/bin/messages/ru/messages.json @@ -3423,7 +3423,7 @@ "модуль %sq1, позиция файла %d1 (относительная позиция %d2) запрошена для раздела %sq2, который находится перед началом раздела", "модуль %sq1, позиция файла %d1 (относительная позиция %d2) для раздела %sq2, который переполняет окончание этого раздела", "модуль %sq1, позиция файла %d1 (относительная позиция %d2) запрошена для раздела %sq2, который не выровнен по элементам разделов", - "из подполя %sq", + "из подполя %sq (относительное положение к узлу %d)", "из раздела %sq, элемент %d1 (позиция файла %d2, относительная позиция %d3)", "здесь нестандартные лямбда-атрибуты", "идентификатор %sq можно перепутать с визуально похожим %p", @@ -3461,5 +3461,11 @@ "нестандартный тип с квалификатором для анонимных битовых полей", "тип элемента векторного условия (%t1) должен иметь тот же размер, что и тип элемента результата (%t2)", "тип векторного операнда с плавающей запятой (%t) не имеет соответствующего целочисленного векторного типа", - "искажение для выражений \"requires\" еще не реализовано" + "искажение для выражений \"requires\" еще не реализовано", + "из-за атрибута \"unavailable\"", + "попытка создать элемент из раздела IFC %sq с использованием индекса в разделе IFC %sq", + "раздел %sq указал размер своей записи как %d1, в то время как ожидалось %d2", + "При обработке модуля %sq1 было обнаружено неожиданное требование IFC", + "сбой условия в строке %d в %s1: %sq2", + "атомарное ограничение зависит от самого себя" ] \ No newline at end of file diff --git a/Extension/bin/messages/tr/messages.json b/Extension/bin/messages/tr/messages.json index 47e99715e2..03df172520 100644 --- a/Extension/bin/messages/tr/messages.json +++ b/Extension/bin/messages/tr/messages.json @@ -3423,7 +3423,7 @@ "%sq1 modülünün %d1 dosya konumu (%d2 göreli konumu) bölümün başlangıcından önce gelen %sq2 bölümü için istekte bulundu", "%sq1 modülünün %d1 dosya konumu (%d2 göreli konumu) bölümünün sonundan taşan %sq2 bölümü için istekte bulundu", "%sq1 modülünün %d1 dosya konumu (%d2 göreli konumu) bölüm öğeleriyle yanlış hizalanan %sq2 bölümü için istekte bulundu", - "%sq alt alanından", + "%sq alt alanından (%d düğümüne göreli olan konum)", "%sq bölümündeki %d1 öğesinden (%d2 dosya konumu, %d3 göreli konumu)", "lambda öznitelikleri burada standart dışı", "%sq tanımlayıcısı görsel olarak %p gibi görünen tanımlayıcıyla karıştırılabilir", @@ -3461,5 +3461,11 @@ "nitelenmiş bir tür adı anonim bit alanları için standart dışı", "vektör koşulunun öğe türü (%t1), sonucun öğe türü (%t2) ile aynı boyuta sahip olmalıdır", "kayan nokta vektörü işlenen türü (%t) eşleşen bir tamsayı vektörü türü içermiyor", - "'requires' ifadeleri için değiştirme henüz uygulanmadı" + "'requires' ifadeleri için değiştirme henüz uygulanmadı", + "'kullanılamayan' bir öznitelik nedeniyle", + "%sq 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ü, %d2 beklenirken girdi boyutunu %d1 olarak belirtti", + "%sq1 modülü işlenirken beklenmeyen bir IFC gereksinimiyle karşılaşıldı", + null, + "atomik kısıtlama kendisine bağımlı" ] \ 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 9315cada73..133d8354f0 100644 --- a/Extension/bin/messages/zh-cn/messages.json +++ b/Extension/bin/messages/zh-cn/messages.json @@ -3423,7 +3423,7 @@ "已请求模块 %sq1 文件位置 %d1 (相对位置 %d2),针对分区 %sq2 请求 - 分区开始前", "已请求模块 %sq1 文件位置 %d1 (相对位置 %d2),针对分区 %sq2 请求 - 溢出其分区的末尾", "已请求模块 %sq1 文件位置 %d1 (相对位置 %d2),针对分区 %sq2 - 与其分区元素不一致", - "从子字段 %sq", + "从子域 %sq (相对于节点 %d 的位置)", "从分区 %sq 元素 %d1 (文件位置 %d2,相对位置 %d3)", "lambda 属性在此处为非标准属性", "标识符 %sq 可能与显示 %p 的视觉上相似的标识符混淆", @@ -3461,5 +3461,11 @@ "限定类型对于匿名位字段是非标准的", "向量条件的元素类型(%t1)的大小必须与结果的元素类型相同(%t2)", "浮点向量操作数类型(%t)没有匹配的整数向量类型", - "尚未实现 “requires” 表达式的变量名压缩" + "尚未实现 “requires” 表达式的变量名压缩", + "因为“不可用”属性", + "已尝试使用索引将一个元素从 IFC 分区 %sq 构造到 IFC 分区 %sq", + null, + "处理模块 %sq1 时遇到意外的 IFC 要求", + null, + "原子约束依赖于自身" ] \ 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 fc14c4221f..af37a7f1d1 100644 --- a/Extension/bin/messages/zh-tw/messages.json +++ b/Extension/bin/messages/zh-tw/messages.json @@ -3461,5 +3461,6 @@ "限定類型對匿名位欄位而言不是標準類型", "向量條件 (%t1) 的元素類型大小必須與結果的元素類型相同 (%t2)", "浮點向量運算元類型 (%t) 沒有相符的整數向量類型", - "尚未實作 'requires' 運算式的重整" + "尚未實作 'requires' 運算式的重整", + "因為 'unavailable' 屬性" ] \ No newline at end of file diff --git a/Extension/i18n/chs/package.i18n.json b/Extension/i18n/chs/package.i18n.json index 4d7b8c9cf8..8af68c5e98 100644 --- a/Extension/i18n/chs/package.i18n.json +++ b/Extension/i18n/chs/package.i18n.json @@ -33,6 +33,7 @@ "c_cpp.command.BuildAndDebugFile.title": "调试 C/C++ 文件", "c_cpp.command.BuildAndRunFile.title": "运行 C/C++ 文件", "c_cpp.command.AddDebugConfiguration.title": "添加调试配置", + "c_cpp.command.GenerateDoxygenComment.title": "生成 Doxygen 注释", "c_cpp.configuration.maxConcurrentThreads.markdownDescription": "用于语言服务处理的最大并发线程数。该值是一个提示,且不能始终使用。默认值 `null` (空)使用可用的逻辑处理器数。", "c_cpp.configuration.maxCachedProcesses.markdownDescription": "用于语言服务处理的最大缓存进程数。默认值 `null` (空)使用可用逻辑处理器数的两倍。", "c_cpp.configuration.maxMemory.markdownDescription": "可用于语言服务处理的最大内存(以 MB 为单位)。超过此内存使用量后,将缓存且并发运行较少的进程。默认值 `null` (空)使用系统的空闲内存。", @@ -49,12 +50,13 @@ "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "对匹配文件同辈进行其他检查。将 `$(basename)` 用作匹配文件名变量。", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "如果为 `true`,则代码分析将在文件打开或保存后自动在文件上运行。", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription": "如果为`true`,`禁用'代码操作将在可用时显示(下次运行代码分析时)。使用`禁用'代码操作时,它会将警告代码添加到 `C_Cpp.codeAnalysis.clangTidy.checks.disabled`设置。", - "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription": "如果为`true`,“显示文档”代码操作将在可用时显示(下次运行代码分析时)。", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription": "如果为 `true`,“显示文档”代码操作将在可用时显示(下次运行代码分析时)。", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.description": "控制哪些“清除”代码分析问题代码操作选项可用。更改设置以显示更多选项可能需要重新运行代码分析。", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.None.description": "不显示“清除”代码操作。", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "仅显示“全部清除”代码操作(如果只有一种类型,则显示“清除所有”,如果只有一个问题,则显示“清除此项”)。", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "如果存在多个问题类型,显示“全部清除”代码操作和“清除所有 ”代码操作(或如果只有一个问题,显示“清除此项”)", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "如果有多个问题类型,显示“全部清除”,如果有多个 问题,显示“清除所有 ”以及显示“清除此项”代码操作", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "如果为 `true`,则在 `修复` 代码操作更改的行上运行格式设置。", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "如果为 `true`,则在 `#C_Cpp.codeAnalysis.runAutomatically#` 为 `true` (默认值)时,将启用并自动运行使用 `clang-tidy` 的代码分析。", "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` 可执行文件的完整路径。如果未指定,并且 `clang-tidy` 在环境路径中可用,则使用该路径。如果在环境路径中找不到,则将使用与扩展捆绑的 `clang-tidy`。", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "指定 YAML/JSON 格式的 `clang-tidy` 配置: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{键: x, 值: y}]}`。当值为空时,`clang-tidy` 将尝试为其父目录中的每个源文件查找名为 `.clang-tidy` 的文件。", @@ -171,13 +173,13 @@ "c_cpp.configuration.inactiveRegionOpacity.markdownDescription": "控制非活动预处理器块的不透明度。在 `0.1` 和 `1.0` 之间进行缩放。仅当启用非活动区域暗化时,此设置才适用。", "c_cpp.configuration.inactiveRegionForegroundColor.description": "控制非活动预处理程序块的字体颜色。输入的格式为十六进制颜色代码或有效的主题颜色。如果未设置,则默认为编辑器的语法颜色方案。此设置仅在启用非活动区域变暗时适用。", "c_cpp.configuration.inactiveRegionBackgroundColor.description": "控制非活动预处理程序块的背景颜色。输入的格式为十六进制颜色代码或有效的主题颜色。如果未设置,则默认为透明。此设置仅在启用了非活动区域变暗时适用。", - "c_cpp.configuration.inlayHints.autoDeclarationTypes.enabled.markdownDescription": "在声明中使用 `auto` 时显示推导类型的内嵌提示:\n```cpp \n\n 自动索引 /* : int */ = 0;\n```", + "c_cpp.configuration.inlayHints.autoDeclarationTypes.enabled.markdownDescription": "在声明中使用 `auto` 时显示推导类型的内嵌提示:\n```cpp \n\n auto index /* : int */ = 0;\n```", "c_cpp.configuration.inlayHints.autoDeclarationTypes.showOnLeft.markdownDescription": "在标识符左侧声明中使用 `auto` 时显示推导类型的内嵌提示:\n```cpp \n\n auto /* int */ index = 0;\n```", "c_cpp.configuration.inlayHints.parameterNames.enabled.markdownDescription": "显示参数名称的内嵌提示:\n```cpp \n\n int a = getArea(/* width: */ x, /* height: */ y);\n```", - "c_cpp.configuration.inlayHints.parameterNames.hideLeadingUnderscores.markdownDescription": "在参数名称提示中隐藏开头的`_`。", + "c_cpp.configuration.inlayHints.parameterNames.hideLeadingUnderscores.markdownDescription": "在参数名称提示中隐藏开头的 `_`。", "c_cpp.configuration.inlayHints.parameterNames.suppressWhenArgumentContainsName.markdownDescription": "当参数文本或内联注释包含参数名称时,抑制参数名称提示:\n```cpp \n\n int a = getArea(width, /* height: */ y);\n```", - "c_cpp.configuration.inlayHints.referenceOperator.enabled.markdownDescription": "显示非常量引用传递的参数的内嵌提示引用运算符 `&`:\n```cpp \n\n 交换(/* &first: */ str1, /* &last: */ str2);\n```", - "c_cpp.configuration.inlayHints.referenceOperator.showSpace.markdownDescription": "控制在 `&` 后是否显示非常量引用传递的参数的空格:\n```cpp \n\n 交换(/* & first: */ str1, /* & last: */ str2);\n```", + "c_cpp.configuration.inlayHints.referenceOperator.enabled.markdownDescription": "显示非常量引用传递的参数的内嵌提示引用运算符 `&`:\n```cpp \n\n swap(/* &first: */ str1, /* &last: */ str2);\n```", + "c_cpp.configuration.inlayHints.referenceOperator.showSpace.markdownDescription": "控制在 `&` 后是否显示非常量引用传递的参数的空格:\n```cpp \n\n swap(/* & first: */ str1, /* & last: */ str2);\n```", "c_cpp.configuration.loggingLevel.markdownDescription": "输出面板中日志记录的详细程度。从最不详细到最详细的级别顺序为: `None` < `Error` < `Warning` < `Information` < `Debug`。", "c_cpp.configuration.autoAddFileAssociations.markdownDescription": "控制当文件为 C/C++ 文件中导航操作的目标时,其是否自动添加到 `#files.associations#`。", "c_cpp.configuration.workspaceParsingPriority.markdownDescription": "控制分析非活动工作区文件是否使用睡眠以避免使用 100% CPU。值 `highest`/`high`/`medium`/`low` 对应于约 100/75/50/25% 的 CPU 使用率。", @@ -187,6 +189,8 @@ "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "将针对每个遇到的文件和文件夹评估排除筛选器。", "c_cpp.configuration.preferredPathSeparator.markdownDescription": "用作 `#include` 自动完成结果的路径分隔符的字符。", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "如果为 `true`,则悬停和自动完成的工具提示将仅显示结构化注释的某些标签。否则,将显示所有注释。", + "c_cpp.configuration.doxygen.generateOnType.description": "控制在键入所选注释样式后是否自动插入 Doxygen 注释。", + "c_cpp.configuration.doxygen.generatedStyle.description": "用作 Doxygen 注释起始行的字符串。", "c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "开始多行或单行注释块的模式。多行注释块的延续模式默认为 ` * `,或单行注释块默认为此字符串。", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "开启一个多行或单行注释块的模式。", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "在多行或单行注释块内按下 Enter 键时要插入到下一行的文本。", @@ -277,6 +281,7 @@ "c_cpp.debuggers.miDebuggerPath.description": "MI 调试程序(如 gdb)的路径。如果未指定,将首先在路径中搜索调试程序。", "c_cpp.debuggers.miDebuggerArgs.description": "MI 调试程序(如 gdb)的其他参数。", "c_cpp.debuggers.miDebuggerServerAddress.description": "要连接到的 MI 调试程序服务器的网络地址(示例: localhost:1234)。", + "c_cpp.debuggers.useExtendedRemote.description": "使用目标扩展远程模式连接到 MI 调试器服务器。", "c_cpp.debuggers.stopAtEntry.description": "可选参数。如果为 true,则调试程序应在目标的入口点处停止。如果传递了 processId,则不起任何作用。", "c_cpp.debuggers.debugServerPath.description": "到要启动的调试服务器的可选完整路径。默认值为 null。该路径与 “miDebugServerAddress” 或带有运行 “-target-select remote ” 的 “customSetupCommand” 的自有服务器配合使用。", "c_cpp.debuggers.debugServerArgs.description": "可选调试服务器参数。默认为 null。", diff --git a/Extension/i18n/chs/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/chs/src/Debugger/attachToProcess.i18n.json index adc1e1ac36..8f51657a68 100644 --- a/Extension/i18n/chs/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/chs/src/Debugger/attachToProcess.i18n.json @@ -4,9 +4,12 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "no.pipetransport": "所选的调试配置不包含 {0}", + "debugger.path.and.server.address.required": "调试配置中的 {0} 需要 {1} 和 {2}", + "no.pipetransport.useextendedremote": "所选的调试配置不包含 {0} 或 {1}", "select.process.attach": "选择要附加到的进程", "process.not.selected": "未选择进程。", "pipe.failed": "管道传输未能获取 OS 和进程。", - "no.process.list": "传输附加无法获取进程列表。" + "no.process.list": "传输附加无法获取进程列表。", + "failed.to.make.gdb.connection": "无法建立 GDB 连接:“{0}”。", + "failed.to.parse.processes": "无法分析进程:“{0}”。" } \ No newline at end of file diff --git a/Extension/i18n/chs/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/chs/src/Debugger/configurationProvider.i18n.json index 9b6f379ec6..05a60cf765 100644 --- a/Extension/i18n/chs/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/chs/src/Debugger/configurationProvider.i18n.json @@ -12,6 +12,7 @@ "lldb.framework.not.found": "找不到用于 lldb-mi 的 \"LLDB.framework\"。请安装 XCode 或 XCode 命令行工具。", "debugger.launchConfig": "启动配置:", "vs.code.1.69+.required": "\"deploySteps\" 需要 VS Code 1.69+。", + "running.deploy.steps": "正在运行部署步骤...", "pre.Launch.Task": "preLaunchTask: {0}", "build.and.debug.active.file": "生成和调试活动文件", "cl.exe.not.available": "仅当从 VS 开发人员命令提示符处运行 VS Code 时,{0} 生成和调试才可用。", diff --git a/Extension/i18n/chs/src/LanguageServer/extension.i18n.json b/Extension/i18n/chs/src/LanguageServer/extension.i18n.json index 09e06f4033..ed5a7bca33 100644 --- a/Extension/i18n/chs/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/chs/src/LanguageServer/extension.i18n.json @@ -6,6 +6,7 @@ { "learn.how.to.install.a.library": "了解如何使用 vcpkg 为此标头安装库", "copy.vcpkg.command": "将用于安装“{0}”的 vcpkg 命令复制到剪贴板", + "on.disabled.command": "当 `C_Cpp.intelliSenseEngine` 设置为 `Disabled` 时,无法执行与 IntelliSense 相关的命令。", "client.not.found": "未找到客户端", "configuration.select.first": "首先打开一个文件夹以选择配置", "configuration.provider.select.first": "首先打开一个文件夹以选择配置提供程序", diff --git a/Extension/i18n/chs/src/nativeStrings.i18n.json b/Extension/i18n/chs/src/nativeStrings.i18n.json index 8cc3afa0b6..a31f5347a5 100644 --- a/Extension/i18n/chs/src/nativeStrings.i18n.json +++ b/Extension/i18n/chs/src/nativeStrings.i18n.json @@ -221,5 +221,6 @@ "folder_tag": "文件夹", "file_tag": "文件", "compiler_default_language_standard_version_old": "编译器返回默认语言标准版本:{0}。由于此版本是旧版本,因此将尝试使用较新版本 {1} 作为默认版本。", - "unexpected_output_from_clang_tidy": "来自 clang-tidy 的意外输出:{0}。应为:{1}。" + "unexpected_output_from_clang_tidy": "来自 clang-tidy 的意外输出:{0}。应为:{1}。", + "generate_doxygen_comment": "生成 Doxygen 注释" } \ No newline at end of file diff --git a/Extension/i18n/cht/package.i18n.json b/Extension/i18n/cht/package.i18n.json index 55e50ea109..0560ed930f 100644 --- a/Extension/i18n/cht/package.i18n.json +++ b/Extension/i18n/cht/package.i18n.json @@ -33,6 +33,7 @@ "c_cpp.command.BuildAndDebugFile.title": "偵錯 C/C++ 檔案", "c_cpp.command.BuildAndRunFile.title": "執行 C/C++ 檔案", "c_cpp.command.AddDebugConfiguration.title": "新增偵錯設定", + "c_cpp.command.GenerateDoxygenComment.title": "產生 Doxygen 註解", "c_cpp.configuration.maxConcurrentThreads.markdownDescription": "用於語言服務處理的並行執行緒數目上限。該值是提示,且可能不會一律使用。預設的 `null` (空白) 會使用可用的邏輯處理器數目。", "c_cpp.configuration.maxCachedProcesses.markdownDescription": "用於語言服務處理的快取處理序數目上限。預設的 `null` (空白) 使用的邏輯處理器數目是可用邏輯處理器的兩倍。", "c_cpp.configuration.maxMemory.markdownDescription": "記憶體上限 (MB) 可供語言服務處理。超過此記憶體使用量之後,同時快取及執行的處理序將會減少。預設的 `null` (空白) 會使用系統的可用記憶體。", @@ -48,20 +49,21 @@ "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "要符合檔案路徑的 Glob 模式。設為 `true` 或 `false` 可啟用或停用模式。", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "對相符檔案同層級進行額外檢查。請使用 `$(basename)` 作為相符檔案名稱的變數。", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "若為 `true`,則程式碼分析將會在檔案開啟或儲存之後,自動在該檔案上執行。", - "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription": "如果為 `true`,則在可用時 (下次執行程式碼分析時),將會顯示 '禁用' 程式碼動作。使用 '禁用' 程式碼動作時,它會將警告碼新增到 `C_Cpp.codeAnalysis.clangTidy.checks.disabled` 設定。", - "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription": "如果為 `true`,則在可用時 (下次執行程式碼分析時),將會顯示 '顯示 的文件' 程式碼動作。", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription": "如果為`true`,則在可用時 (下次執行程式碼分析時),將會顯示 '停用' 程式碼動作。使用 '停用' 程式碼動作時,它會將警告碼新增到 `C_Cpp.codeAnalysis.clangTidy.checks.disabled` 設定。", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription": "如果為 `true`,則在可用時 (下次執行程式碼分析時),將會顯示 '顯示的文件' 程式碼動作。", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.description": "控制可使用哪些 '清除' 程式碼分析問題程式碼動作選項。變更設定以顯示更多選項可能需要重新執行程式碼分析。", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.None.description": "不顯示 '清除' 程式碼動作。", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "如果只有一種類型,則只顯示 '清除所有' 程式碼動作 (如果只有一種類型,則顯示 '清除所有 ,或如果只有一個問題,則顯示 '清除此')。", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "顯示 '清除所有' 程式碼動作 (如果有多種問題類型) 和 '清除所有 ' 程式碼動作 (如果 只有一個問題,則顯示 '清除此')", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "顯示 '清除所有' (如果有多個問題類型)、'清除所有 ' (如果 有多個問題) 和 '清除此' 程式碼動作", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "如果為 `true`,格式就會在由 '修正' 程式碼動作變更的行上執行。", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "若為 `true`,則會啟用使用 `clang-tidy` 的程式碼分析,並在 `#C_Cpp.codeAnalysis.runAutomatically#` 為 `true` 時自動執行 (預設)。", "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` 可執行檔的完整路徑。若未指定可執行檔,且可在環境路徑中使用 `clang-tidy`,則會加以使用。若在環境路徑中找不到可執行檔,則會使用與延伸模組搭配的 `clang-tidy`。", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "以 YAML/JSON 格式指定 `clang-tidy` 組態: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{索引鍵: x, 值: y}]}`。當值為空白時,`clang-tidy` 將會嘗試為其父目錄中的每個來源檔案尋找名為 `.clang-tidy` 的檔案。", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "當 `#C_Cpp.codeAnalysis.clangTidy.config#` 未設定且找不到 `.clang-tidy` 檔案時,指定 YAML/JSON 格式的 `clang-tidy` 組態用作遞補: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{索引鍵: x, 值: y}]}`。", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "符合輸出診斷來源之標頭名稱的 POSIX 擴充規則運算式 (ERE)。來自每個編譯單位之主要檔案的診斷將一律顯示。支援 `${workspaceFolder}` 變數 (如果沒有 `.clang-tidy` 檔案,則作為預設後援值)。若此選項並非 `null` (空白),則會覆寫 `.clang-tidy` 檔案中的 `HeaderFilterRegex` 選項 (如果有的話)。", "c_cpp.configuration.codeAnalysis.clangTidy.args.markdownDescription": "要傳遞給 `clang-tidy` 的其他命令列引數。這些命令列引數會比對等的 `C_Cpp.codeAnalysis.clangTidy.*` 設定優先考慮。", - "c_cpp.configuration.codeAnalysis.clangTidy.useBuildPath.markdownDescription": "如果設定了 `true` 和 'compileCommands',則 `-p=` 引數會傳遞至 `clang-tidy`,而非在 `--` 之後傳遞組建引數。若未設定環境變數以找到系統包含的環境變數,可能無法運作。", + "c_cpp.configuration.codeAnalysis.clangTidy.useBuildPath.markdownDescription": "如果設定了 `true` 和 `compileCommands`,則 `-p=` 引數會傳遞至 `clang-tidy`,而非在 `--` 之後傳遞組建引數。若未設定環境變數以找到系統包含的環境變數,可能無法運作。", "c_cpp.configuration.codeAnalysis.clangTidy.checks.enabled.markdownDescription": "已啟用的 `clang-tidy` 檢查清單。值會附加到 `.clang-tidy` 檔案中的 `Checks` 或 `#C_Cpp.codeAnalysis.clangTidy.config#` (如果有的話)。除非明確地停用,否則一律使用預設檢查 `clang-analyzer-*`。", "c_cpp.configuration.codeAnalysis.clangTidy.checks.disabled.markdownDescription": "已停用的 `clang-tidy` 檢查清單。值會附加到 `.clang-tidy` 檔案中的 `Checks` 或 `#C_Cpp.codeAnalysis.clangTidy.config#` (如果有的話)。", "c_cpp.configuration.formatting.description": "選擇格式設定引擎。", @@ -187,6 +189,8 @@ "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "將會針對每個遇到的檔案和資料夾評估排除篩選。", "c_cpp.configuration.preferredPathSeparator.markdownDescription": "用作 `#include` 自動完成結果路徑分隔符號的字元。", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "若為 `true`,暫留與自動完成的工具提示只會顯示特定結構化註解標籤,否則將會顯示所有註解。", + "c_cpp.configuration.doxygen.generateOnType.description": "控制是否在輸入選擇的註解樣式後自動插入 Doxygen 註解。", + "c_cpp.configuration.doxygen.generatedStyle.description": "作為 Doxygen 註解起始行的字元字串。", "c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "開始多行或單行註解區塊的模式。對於多行註解區塊,接續模式預設為 ` * `,或此字串表示單行註解區塊。", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "開始多行或單行註解區塊的模式。", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "在多行或單行註解區塊中按下 ENTER 時,將在下一行插入的文字。", @@ -277,6 +281,7 @@ "c_cpp.debuggers.miDebuggerPath.description": "MI 偵錯工具 (例如 gdb) 的路徑。若未指定,會先搜尋偵錯工具的路徑。", "c_cpp.debuggers.miDebuggerArgs.description": "MI 偵錯工具 (例如 gdb) 的其他引數。", "c_cpp.debuggers.miDebuggerServerAddress.description": "MI 偵錯工具伺服器要連線至的網路位址 (範例: localhost:1234)。", + "c_cpp.debuggers.useExtendedRemote.description": "使用目標延伸的遠端模式連線到 MI 偵錯工具伺服器。", "c_cpp.debuggers.stopAtEntry.description": "選擇性參數。若為 true,則偵錯工具應該在目標的進入點停止。如果已傳遞 processId。就沒有效果。", "c_cpp.debuggers.debugServerPath.description": "要啟動的偵錯伺服器選用完整路徑。預設為 Null。使用時,會將 \"miDebugServerAddress\" 或您自己的伺服器與 \"customSetupCommand\" 連接,以執行 \"-target-select remote <伺服器:連接埠>\"。", "c_cpp.debuggers.debugServerArgs.description": "選擇性偵錯伺服器引數。預設為 null。", diff --git a/Extension/i18n/cht/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/cht/src/Debugger/attachToProcess.i18n.json index 28cacbdec2..5b8b1cfdb6 100644 --- a/Extension/i18n/cht/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/cht/src/Debugger/attachToProcess.i18n.json @@ -4,9 +4,12 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "no.pipetransport": "選擇的偵錯組態未包含 {0}", + "debugger.path.and.server.address.required": "偵錯設定中的 {0} 需要 {1} 和 {2}", + "no.pipetransport.useextendedremote": "選擇的偵錯設定未包含 {0} 或 {1}", "select.process.attach": "選取要附加至的目標處理序", "process.not.selected": "未選取處理序。", "pipe.failed": "管道傳輸無法取得 OS 和處理序。", - "no.process.list": "傳輸附加無法取得處理序清單。" + "no.process.list": "傳輸附加無法取得處理序清單。", + "failed.to.make.gdb.connection": "無法建立 GDB 連線: \"{0}\"。", + "failed.to.parse.processes": "無法剖析處理式: \"{0}\"。" } \ No newline at end of file diff --git a/Extension/i18n/cht/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/cht/src/Debugger/configurationProvider.i18n.json index c309ad84fb..11242b9648 100644 --- a/Extension/i18n/cht/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/cht/src/Debugger/configurationProvider.i18n.json @@ -12,6 +12,7 @@ "lldb.framework.not.found": "找不到 lldb-mi 的 'LLDB.framework'。請安裝 XCode 或 XCode 命令列工具。", "debugger.launchConfig": "啟動設定:", "vs.code.1.69+.required": "'deploySteps' 需要 VS Code 1.69+。", + "running.deploy.steps": "正在執行部署步驟...", "pre.Launch.Task": "preLaunchTask: {0}", "build.and.debug.active.file": "建置及偵錯使用中的檔案", "cl.exe.not.available": "只有從 VS 的開發人員命令提示字元執行 VS Code 時,才可使用 {0} 組建和偵錯。", diff --git a/Extension/i18n/cht/src/LanguageServer/extension.i18n.json b/Extension/i18n/cht/src/LanguageServer/extension.i18n.json index e88887b9d9..91057c12c4 100644 --- a/Extension/i18n/cht/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/cht/src/LanguageServer/extension.i18n.json @@ -6,6 +6,7 @@ { "learn.how.to.install.a.library": "了解如何使用 vcpkg 安裝此標頭的程式庫", "copy.vcpkg.command": "將用於安裝 '{0}' 的 vcpkg 命令複製到剪貼簿", + "on.disabled.command": "當 `C_Cpp.intelliSenseEngine` 設為 `Disabled` 時,無法執行 IntelliSense 的相關命令。", "client.not.found": "找不到用戶端", "configuration.select.first": "先開啟資料夾以選取組態", "configuration.provider.select.first": "先開啟資料夾以選取組態提供者", diff --git a/Extension/i18n/cht/src/nativeStrings.i18n.json b/Extension/i18n/cht/src/nativeStrings.i18n.json index cf9ab65d2b..442d5d1530 100644 --- a/Extension/i18n/cht/src/nativeStrings.i18n.json +++ b/Extension/i18n/cht/src/nativeStrings.i18n.json @@ -221,5 +221,6 @@ "folder_tag": "資料夾", "file_tag": "檔案", "compiler_default_language_standard_version_old": "編譯器傳回預設語言標準版本: {0}。因為此版本為舊版本,將嘗試使用較新的版本 {1} 為預設版本。", - "unexpected_output_from_clang_tidy": "來自 clang-tidy 的未預期輸出: {0}。預期是: {1}。" + "unexpected_output_from_clang_tidy": "來自 clang-tidy 的未預期輸出: {0}。預期是: {1}。", + "generate_doxygen_comment": "產生 Doxygen 註解" } \ No newline at end of file diff --git a/Extension/i18n/csy/package.i18n.json b/Extension/i18n/csy/package.i18n.json index 6be9589766..f96f613ba8 100644 --- a/Extension/i18n/csy/package.i18n.json +++ b/Extension/i18n/csy/package.i18n.json @@ -33,6 +33,7 @@ "c_cpp.command.BuildAndDebugFile.title": "Ladit soubor C/C++", "c_cpp.command.BuildAndRunFile.title": "Spustit soubor C/C++", "c_cpp.command.AddDebugConfiguration.title": "Přidat konfiguraci ladění", + "c_cpp.command.GenerateDoxygenComment.title": "Vygenerovat komentář Doxygenu", "c_cpp.configuration.maxConcurrentThreads.markdownDescription": "Maximální počet souběžných vláken, která se mají použít pro zpracování služby jazyka. Hodnota je nápověda a nemusí být vždy použita. Výchozí hodnota `null` (prázdná) používá počet dostupných logických procesorů.", "c_cpp.configuration.maxCachedProcesses.markdownDescription": "Maximální počet procesů uložených v mezipaměti, které se mají použít pro zpracování služby jazyka. Výchozí hodnota `null` (prázdná) používá dvojnásobek dostupného počtu logických procesorů.", "c_cpp.configuration.maxMemory.markdownDescription": "Maximální paměť (v MB), která je k dispozici pro zpracování služby jazyka. Po překročení tohoto využití paměti bude uloženo do mezipaměti méně procesů, které budou spuštěny souběžně. Výchozí hodnota `null` (prázdná) používá volnou paměť systému.", @@ -55,6 +56,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "Zobrazit jenom akci kódu Vymazat vše (nebo Vymazat vše , pokud existuje jenom jeden typ, nebo Vymazat toto, pokud je jenom jeden problém).", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "Zobrazit akci kódu Vymazat vše (pokud existuje více typů problémů) a akci kódu Vymazat vše (nebo Vymazat toto, pokud u dochází pouze k jednomu problému)", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Zobrazení možnosti Vymazat vše (pokud existuje více typů problémů), Vymazat všechny (pokud existuje více problémů pro ) a Vymazat tento kód", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "Pokud je hodnota `true`, formátování se spustí na řádcích změněných akcemi kódu 'Opravit'.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "Pokud `true`, bude analýza kódu pomocí `clang-tidy` povolena a spuštěna automaticky, pokud je `#C_Cpp.codeAnalysis.runAutomatically#` `true` (výchozí).", "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Úplná cesta ke spustitelnému souboru `clang-tidy`. Pokud se nespecifikuje a `clang-tidy` je k dispozici na cestě prostředí, použije se. Pokud se na cestě prostředí nenajde, použije se kopie `clang-tidy`, která se dodává spolu s rozšířením.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Určuje konfiguraci `clang-tidy` ve formátu YAML/JSON: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{key: x, value: y}]}`. Když je hodnota prázdná, `clang-tidy` se pokusí najít soubor s názvem `.clang-tidy` pro každý zdrojový soubor v jeho nadřazených adresářích.", @@ -187,6 +189,8 @@ "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Filtry vyloučení se vyhodnotí pro každý soubor a složku, které se vyskytnou.", "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Znak, který se použije jako oddělovač cest pro výsledky automatického dokončení direktiv `#include`", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "Když se tato možnost nastaví na `true`, popisky ovládacích prvků po najetí myší a automatické dokončování budou zobrazovat jen určité popisky strukturovaných komentářů. Jinak se budou zobrazovat všechny komentáře.", + "c_cpp.configuration.doxygen.generateOnType.description": "Určuje, jestli se má po zadání zvoleného stylu komentáře automaticky vložit komentář Doxygen.", + "c_cpp.configuration.doxygen.generatedStyle.description": "Řetězec znaků použitý jako počáteční řádek komentáře Doxygen.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "Vzor, který zahájí víceřádkový nebo jednořádkový blok komentáře. Výchozí vzor pro pokračování je pro víceřádkové bloky komentářů ` * `, nebo tento řetězec pro jednořádkové bloky.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "Vzor, který zahájí víceřádkový nebo jednořádkový blok komentáře", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "Text, který se vloží na další řádek, když se ve víceřádkovém nebo jednořádkovém bloku komentáře stiskne klávesa Enter.", @@ -277,6 +281,7 @@ "c_cpp.debuggers.miDebuggerPath.description": "Cesta k ladicímu programu MI (třeba gdb). Pokud se nezadá, vyhledá se pro ladicí program nejdříve cesta.", "c_cpp.debuggers.miDebuggerArgs.description": "Další argumenty pro ladicí program MI (třeba gdb)", "c_cpp.debuggers.miDebuggerServerAddress.description": "Síťová adresa MI Debugger Serveru, ke kterému se má připojit (příklad: localhost:1234)", + "c_cpp.debuggers.useExtendedRemote.description": "Připojení k serveru ladicího programu MI přes cílový rozšířený vzdálený režim.", "c_cpp.debuggers.stopAtEntry.description": "Nepovinný parametr. Když se nastaví na true, ladicí program by se měl zastavit u vstupního bodu cíle. Pokud se předá processId, nemá parametr žádný vliv.", "c_cpp.debuggers.debugServerPath.description": "Volitelná úplná cesta k ladicímu serveru, který se má spustit. Výchozí hodnota je null. Používá se ve spojení buď s miDebugServerAddress, nebo s vlastním serverem s customSetupCommand, na kterém běží \"-target-select remote \".", "c_cpp.debuggers.debugServerArgs.description": "Volitelné argumenty ladicího serveru. Výchozí hodnota je null.", diff --git a/Extension/i18n/csy/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/csy/src/Debugger/attachToProcess.i18n.json index a769493093..f0ad4e7900 100644 --- a/Extension/i18n/csy/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/csy/src/Debugger/attachToProcess.i18n.json @@ -4,9 +4,12 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "no.pipetransport": "Zvolená konfigurace ladění neobsahuje {0}.", + "debugger.path.and.server.address.required": "{0} v konfiguraci ladění vyžaduje {1} a {2}", + "no.pipetransport.useextendedremote": "Zvolená konfigurace ladění neobsahuje {0} nebo {1}", "select.process.attach": "Vyberte proces, ke kterému se má program připojit.", "process.not.selected": "Proces se nevybral.", "pipe.failed": "Operaci přenosu přes kanál se nepovedlo získat operační systém a procesy.", - "no.process.list": "Operaci připojení přenosu se nepovedlo získat seznam procesů." + "no.process.list": "Operaci připojení přenosu se nepovedlo získat seznam procesů.", + "failed.to.make.gdb.connection": "Nepodařilo se vytvořit připojení GDB: {0}.", + "failed.to.parse.processes": "Nepodařilo se parsovat procesy: {0}." } \ No newline at end of file diff --git a/Extension/i18n/csy/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/csy/src/Debugger/configurationProvider.i18n.json index b101a39342..673ae56b2d 100644 --- a/Extension/i18n/csy/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/csy/src/Debugger/configurationProvider.i18n.json @@ -12,6 +12,7 @@ "lldb.framework.not.found": "Nepovedlo se najít LLDB.framework pro lldb-mi. Nainstalujte prosím XCode nebo jeho nástroje příkazového řádku.", "debugger.launchConfig": "Spustit konfiguraci:", "vs.code.1.69+.required": "DeploySteps vyžaduje VS Code 1.69+.", + "running.deploy.steps": "Spouští se kroky nasazení...", "pre.Launch.Task": "preLaunchTask: {0}", "build.and.debug.active.file": "sestavit a ladit aktivní soubor", "cl.exe.not.available": "Sestavení a ladění {0} je k dispozici jen v případě, že se nástroj VS Code spustil z nástroje Developer Command Prompt pro VS.", diff --git a/Extension/i18n/csy/src/LanguageServer/extension.i18n.json b/Extension/i18n/csy/src/LanguageServer/extension.i18n.json index fb3edfaffb..fcfa5cf9bf 100644 --- a/Extension/i18n/csy/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/csy/src/LanguageServer/extension.i18n.json @@ -6,6 +6,7 @@ { "learn.how.to.install.a.library": "Jak nainstalovat knihovnu pro tuto hlavičku pomocí vcpkg", "copy.vcpkg.command": "Zkopírovat příkaz vcpkg pro instalaci {0} do schránky", + "on.disabled.command": "Příkazy související s IntelliSense se nedají spustit, když je `C_Cpp.intelliSenseEngine` nastavené na `Disabled`.", "client.not.found": "klient se nenašel", "configuration.select.first": "Pokud chcete vybrat konfiguraci, otevřete nejdříve složku.", "configuration.provider.select.first": "Pokud chcete vybrat poskytovatele konfigurace, otevřete nejdříve složku.", diff --git a/Extension/i18n/csy/src/nativeStrings.i18n.json b/Extension/i18n/csy/src/nativeStrings.i18n.json index ae55990840..79e77ed517 100644 --- a/Extension/i18n/csy/src/nativeStrings.i18n.json +++ b/Extension/i18n/csy/src/nativeStrings.i18n.json @@ -221,5 +221,6 @@ "folder_tag": "Složka", "file_tag": "Soubor", "compiler_default_language_standard_version_old": "Kompilátor vrátil standardní verzi výchozího jazyka: {0}. Protože je tato verze stará, pokusí se použít novější verzi {1} jako výchozí.", - "unexpected_output_from_clang_tidy": "Neočekávaný výstup z clang-tidy: {0}. Očekáváno: {1}." + "unexpected_output_from_clang_tidy": "Neočekávaný výstup z clang-tidy: {0}. Očekáváno: {1}.", + "generate_doxygen_comment": "Vygenerovat komentář Doxygenu" } \ No newline at end of file diff --git a/Extension/i18n/deu/package.i18n.json b/Extension/i18n/deu/package.i18n.json index 0756567d00..e4756c5e01 100644 --- a/Extension/i18n/deu/package.i18n.json +++ b/Extension/i18n/deu/package.i18n.json @@ -33,6 +33,7 @@ "c_cpp.command.BuildAndDebugFile.title": "C/C++-Datei debuggen", "c_cpp.command.BuildAndRunFile.title": "C/C++-Datei ausführen", "c_cpp.command.AddDebugConfiguration.title": "Debugkonfiguration hinzufügen", + "c_cpp.command.GenerateDoxygenComment.title": "Doxygenkommentar generieren", "c_cpp.configuration.maxConcurrentThreads.markdownDescription": "Die maximale Anzahl gleichzeitiger Threads, die für die Sprachdienstverarbeitung verwendet werden sollen. Der Wert ist ein Hinweis und kann unter Umständen nicht immer verwendet werden. Mit dem Standardwert `null` (leer) werden doppelt so viele logische Prozessoren wie verfügbar verwendet.", "c_cpp.configuration.maxCachedProcesses.markdownDescription": "Die maximale Anzahl zwischengespeicherter Prozesse, die für die Sprachdienstverarbeitung verwendet werden sollen. Mit dem Standardwert `null` (leer) werden doppelt so viele logische Prozessoren wie verfügbar verwendet.", "c_cpp.configuration.maxMemory.markdownDescription": "Der maximale Arbeitsspeicher (in MB), der für die Sprachdienstverarbeitung verfügbar ist. Weniger Prozesse werden zwischengespeichert und gleichzeitig ausgeführt, nachdem diese Speicherauslastung überschritten wurde. Beim Standardwert `null` (leer) wird der freie Arbeitsspeicher des Systems verwendet.", @@ -48,20 +49,21 @@ "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "Das Globmuster, mit dem Dateipfade verglichen werden sollen. Legen Sie diesen Wert auf `true` oder `false` fest, um das Muster zu aktivieren bzw. zu deaktivieren.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "Zusätzliche Überprüfung der gleichgeordneten Elemente einer entsprechenden Datei. Verwenden Sie `$(basename)` als Variable für den entsprechenden Dateinamen.", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "Bei `true` wird die Codeanalyse automatisch für eine Datei ausgeführt, nachdem sie geöffnet oder gespeichert wurde.", - "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription": "`True` gibt an, dass die Codeaktion „Deaktivieren“ angezeigt wird, wenn sie verfügbar ist (bei der nächsten Ausführung der Codeanalyse). Wenn die Codeaktion „Deaktivieren“ verwendet wird, wird der Warnungscode der Einstellung `C_Cpp.codeAnalysis.clangTidy.checks.disabled` hinzugefügt.", - "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription": "Bei `true` wird die Codeaktion „Dokumentation anzeigen für“ angezeigt, wenn sie verfügbar ist (bei der nächsten Ausführung der Codeanalyse).", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription": "`true` gibt an, dass die Codeaktion \"Deaktivieren\" angezeigt wird, wenn sie verfügbar ist (bei der nächsten Ausführung der Codeanalyse). Wenn die Codeaktion \"Deaktivieren\" verwendet wird, wird der Warnungscode der Einstellung `C_Cpp.codeAnalysis.clangTidy.checks.disabled` hinzugefügt.", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription": "Bei `true` wird die Codeaktion \"Dokumentation anzeigen für\" angezeigt, wenn sie verfügbar ist (bei der nächsten Ausführung der Codeanalyse).", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.description": "Steuert, welche Codeaktionsoptionen für „Löschen“-Codeanalyseprobleme verfügbar sind. Wenn Sie die Einstellung ändern, um weitere Optionen anzuzeigen, muss die Codeanalyse möglicherweise erneut ausgeführt werden.", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.None.description": "Keine „Löschen“-Codeaktionen anzeigen.", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "Zeigen Sie nur die Codeaktion „Alle löschen“ an (oder „Alle löschen“, wenn nur ein Typ vorhanden ist, oder „Diese löschen“, wenn nur ein Problem vorliegt).", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "Zeigen Sie die Codeaktion „Alle löschen“ (wenn mehrere Problemtypen vorhanden sind) und die Codeaktion „Alle löschen“ (oder „Diese löschen“, wenn nur ein Problem für den vorliegt)", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Zeigen Sie die Codeaktionen „Alle löschen“ (wenn mehrere Problemtypen vorhanden sind), „Alle löschen“ (wenn mehrere Probleme für den vorhanden sind) und „Diese löschen“ an.", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "Bei `true` wird die Formatierung in den Zeilen ausgeführt, die durch Codeaktionen vom Typ \"Korrigieren\" geändert wurden.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "Bei `true` wird die Codeanalyse mit `clang-tidy` aktiviert und automatisch ausgeführt, wenn `#C_Cpp.codeAnalysis.runAutomatically#` gleich `true` (Standardeinstellung) ist.", "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Der vollständige Pfad der ausführbaren Datei `clang-tidy`. Wenn nicht angegeben, ist `clang-tidy` im verwendeten Umgebungspfad verfügbar. Wenn der Umgebungspfad nicht gefunden wird, wird die `clang-tidy` verwendet, die mit der Erweiterung gebündelt ist.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Gibt eine `clang-tidy`-Konfiguration im YAML-/JSON-Format an: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{Schlüssel: x, Wert: y}]}`. Wenn der Wert leer ist, versucht `clang-tidy`, eine Datei namens `.clang-tidy` für jede Quelldatei in den übergeordneten Verzeichnissen zu finden.", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "Gibt eine `clang-tidy`-Konfiguration im YAML-/JSON-Format an, die als Fallback verwendet werden soll, wenn `#C_Cpp.codeAnalysis.clangTidy.config#` nicht festgelegt ist und keine `.clang-tidy`-Datei gefunden wird: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{Schlüssel: x, Wert: y}]}`.", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "Ein erweiterter regulärer POSIX-Ausdruck (Extended Regular Expression/ERE), der dem Namen der Header entspricht, aus denen die Diagnose ausgegeben werden soll. Diagnosen aus der Hauptdatei jeder Übersetzungseinheit werden immer angezeigt. Die Variable `${workspaceFolder}` wird unterstützt (und als standardmäßiger Fallbackwert benutzt, wenn keine `.clang-tidy`-Datei vorhanden ist). Wenn diese Option nicht `null` (leer) ist, überschreibt sie die Option `HeaderFilterRegex` in einer `.clang-tidy`-Datei, sofern vorhanden.", "c_cpp.configuration.codeAnalysis.clangTidy.args.markdownDescription": "Zusätzliche Befehlszeilenargumente, die an `clang-tidy` übergeben werden sollen. Diese haben Vorrang vor den entsprechenden Einstellungen für `C_Cpp.codeAnalysis.clangTidy.*`.", - "c_cpp.configuration.codeAnalysis.clangTidy.useBuildPath.markdownDescription": "Wenn `true` und `compileCommands` festgelegt sind, wird das Argument `-p=` an `clang-tidy` übergeben, anstatt nach `--` Buildargumente zu übergeben. Dies funktioniert möglicherweise nicht, wenn Umgebungsvariablen nicht so festgelegt sind, dass vom System eingeschlossene Elemente gefunden werden können.", + "c_cpp.configuration.codeAnalysis.clangTidy.useBuildPath.markdownDescription": "Wenn `true` und `compileCommands` festgelegt sind, wird das Argument `-p=` an `clang-tidy` übergeben, anstatt Buildargumente hinter `--` zu übergeben. Dies funktioniert möglicherweise nicht, wenn Umgebungsvariablen nicht so festgelegt sind, dass vom System eingeschlossene Elemente gefunden werden können.", "c_cpp.configuration.codeAnalysis.clangTidy.checks.enabled.markdownDescription": "Liste der aktivierten `clang-tidy`-Überprüfungen. Die Werte werden an `Checks` in einer `.clang-tidy`-Datei oder (falls vorhanden) an `#C_Cpp.codeAnalysis.clangTidy.config#` angefügt. Die Standardüberprüfung `clang-analyzer-*` wird immer verwendet, es sei denn, sie ist explizit deaktiviert.", "c_cpp.configuration.codeAnalysis.clangTidy.checks.disabled.markdownDescription": "Liste der aktivierten `clang-tidy`-Überprüfungen. Die Werte werden an `Checks` in einer `.clang-tidy`-Datei oder (falls vorhanden) an `#C_Cpp.codeAnalysis.clangTidy.config#` angefügt.", "c_cpp.configuration.formatting.description": "Konfiguriert das Formatierungsmodul.", @@ -175,7 +177,7 @@ "c_cpp.configuration.inlayHints.autoDeclarationTypes.showOnLeft.markdownDescription": "Zeigt Einlegehinweise für den abgeleiteten Typ an, wenn `auto` in einer Deklaration links vom Bezeichner verwendet wird:\n```cpp \n\n auto /* int */ index = 0;\n```", "c_cpp.configuration.inlayHints.parameterNames.enabled.markdownDescription": "Inlayhinweise für Parameternamen anzeigen:\n```cpp \n\n int a = getArea(/* width: */ x, /* height: */ y);\n```", "c_cpp.configuration.inlayHints.parameterNames.hideLeadingUnderscores.markdownDescription": "Blendet führendes `_` in Parameternamenshinweisen aus.", - "c_cpp.configuration.inlayHints.parameterNames.suppressWhenArgumentContainsName.markdownDescription": "Parameternamenhinweise unterdrücken, wenn der Argumenttext oder der Inlinekommentar den Parameternamen enthält:\n```cpp \n\nint a = getArea(width, /* height: */ y);\n```", + "c_cpp.configuration.inlayHints.parameterNames.suppressWhenArgumentContainsName.markdownDescription": "Parameternamenhinweise unterdrücken, wenn der Argumenttext oder der Inlinekommentar den Parameternamen enthält:\n```cpp \n\n int a = getArea(width, /* height: */ y);\n```", "c_cpp.configuration.inlayHints.referenceOperator.enabled.markdownDescription": "Zeigen Sie den Inlayhinweis-Verweisoperator `&` für Parameter an, die von einem nicht konstanten Verweis übergeben werden:\n```cpp \n\n swap(/* &first: */ str1, /* &last: */ str2);\n```", "c_cpp.configuration.inlayHints.referenceOperator.showSpace.markdownDescription": "Steuert, ob nach `&` ein Leerzeichen für Parameter angezeigt wird, die von einem nicht konstanten Verweis übergeben werden:\n```cpp \n\n swap(/* & first: */ str1, /* & last: */ str2);\n```", "c_cpp.configuration.loggingLevel.markdownDescription": "Die Ausführlichkeit der Protokollierung im Ausgabebereich. Die Reihenfolge der Ebenen von \"am wenigsten ausführlich\" bis \"am ausführlichsten\" lautet: `None` < `Error` < `Warning` < `Information` < `Debug`.", @@ -187,6 +189,8 @@ "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Die Ausschlussfilter werden für jede gefundene Datei und jeden gefundenen Ordner ausgewertet.", "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Das Zeichen, das als Pfadtrennzeichen für die Ergebnisse der automatischen Vervollständigung `#include` verwendet wird.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "Wenn `true` festgelegt ist, zeigen die QuickInfos für Draufzeigen und AutoVervollständigen nur bestimmte Bezeichnungen strukturierter Kommentare an. Andernfalls werden alle Kommentare angezeigt.", + "c_cpp.configuration.doxygen.generateOnType.description": "Steuert, ob der Doxygenkommentar nach Eingabe des ausgewählten Kommentarstils automatisch eingefügt wird.", + "c_cpp.configuration.doxygen.generatedStyle.description": "Die Zeichenfolge von Zeichen, die als Startzeile des Doxygen-Kommentars verwendet wird.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "Muster, mit dem ein mehrzeiliger oder einzeiliger Kommentarblock beginnt. Das Fortsetzungsmuster wird standardmäßig auf ` * ` für mehrzeilige Kommentarblöcke oder auf diese Zeichenfolge für einzeilige Kommentarblöcke festgelegt.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "Das Muster, mit dem ein mehrzeiliger oder einzeiliger Kommentarblock beginnt.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "Der Text, der in der nächsten Zeile eingefügt wird, wenn in einem mehrzeiligen oder einzeiligen Kommentarblock die EINGABETASTE gedrückt wird.", @@ -277,6 +281,7 @@ "c_cpp.debuggers.miDebuggerPath.description": "Der Pfad zum MI-Debugger (z. B. gdb). Ist die Option nicht angegeben, wird zuerst nach dem Pfad für den Debugger gesucht.", "c_cpp.debuggers.miDebuggerArgs.description": "Zusätzliche Argumente für den MI-Debugger (z. B. gdb).", "c_cpp.debuggers.miDebuggerServerAddress.description": "Netzwerkadresse des MI-Debugger-Servers, mit dem eine Verbindung hergestellt werden soll (Beispiel: localhost:1234).", + "c_cpp.debuggers.useExtendedRemote.description": "Stellen Sie eine Verbindung mit dem MI-Debuggerserver mit dem erweiterten Remotemodus des Ziels her.", "c_cpp.debuggers.stopAtEntry.description": "Optionaler Parameter. Wenn dieser Wert auf TRUE festgelegt ist, sollte der Debugger am Einstiegspunkt des Ziels anhalten. Wenn die processId übergeben wird, hat dies keine Auswirkungen.", "c_cpp.debuggers.debugServerPath.description": "Optionaler vollständiger Pfad zum Debugserver, der gestartet werden soll. Der Standardwert ist NULL. Dies wird in Verbindung mit \"miDebugServerAddress\" oder Ihrem eigenen Server mit \"customSetupCommand\" verwendet, auf dem \"-target-select remote \" ausgeführt wird.", "c_cpp.debuggers.debugServerArgs.description": "Optionale Debugserverargumente. Der Standardwert ist \"null\".", @@ -287,7 +292,7 @@ "c_cpp.debuggers.coreDumpPath.description": "Optionaler vollständiger Pfad zu einer Kern-Speicherabbilddatei für das angegebene Programm. Der Standardwert ist \"NULL\".", "c_cpp.debuggers.cppdbg.externalConsole.description": "Wenn dieser Wert auf TRUE festgelegt ist, wird eine Konsole für die zu debuggende Komponente gestartet. Bei FALSE wird die Komponente unter Linux und Windows in der integrierten Konsole angezeigt.", "c_cpp.debuggers.cppvsdbg.externalConsole.description": "[Veraltet für \"console\"] Wenn dieser Wert auf TRUE festgelegt ist, wird eine Konsole für die zu debuggende Komponente gestartet. Bei FALSE wird keine Konsole gestartet.", - "c_cpp.debuggers.cppvsdbg.console.description": "Gibt an, wo das Debugziel gestartet wird. Wenn keine Angabe vorliegt, wird standardmäßig \"internalConsole\" verwendet.", + "c_cpp.debuggers.cppvsdbg.console.description": "Gibt an, wo das Debugziel gestartet wird. Wenn keine Angabe vorliegt, wird standardmäßig „internalConsole“ verwendet.", "c_cpp.debuggers.cppvsdbg.console.internalConsole.description": "Die Ausgabe an die Debugging-Konsole von VS Code. Das Lesen von Konsoleneingaben (z. B. `std::cin` oder `scanf`) wird nicht unterstützt.", "c_cpp.debuggers.cppvsdbg.console.integratedTerminal.description": "Das integrierte Terminal von VS Code.", "c_cpp.debuggers.cppvsdbg.console.externalTerminal.description": "Konsolenanwendungen werden in einem externen Terminalfenster gestartet. Das Fenster wird in Neustartszenarien erneut verwendet und beim Beenden der Anwendung nicht automatisch ausgeblendet.", diff --git a/Extension/i18n/deu/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/deu/src/Debugger/attachToProcess.i18n.json index 0978109d0a..bc59c8c193 100644 --- a/Extension/i18n/deu/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/deu/src/Debugger/attachToProcess.i18n.json @@ -4,9 +4,12 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "no.pipetransport": "\"{0}\" ist in der ausgewählten Debugkonfiguration nicht enthalten.", + "debugger.path.and.server.address.required": "{0} in der Debugkonfiguration erfordert {1} und {2}.", + "no.pipetransport.useextendedremote": "{0} oder {1} ist in der ausgewählten Debugkonfiguration nicht enthalten.", "select.process.attach": "Prozess auswählen, an den angefügt werden soll", "process.not.selected": "Der Prozess wurde nicht ausgewählt.", "pipe.failed": "Der Pipetransport konnte das Betriebssystem und die Prozesse nicht abrufen.", - "no.process.list": "Beim Anhängen an den Transport konnte die Prozessliste nicht abgerufen werden." + "no.process.list": "Beim Anhängen an den Transport konnte die Prozessliste nicht abgerufen werden.", + "failed.to.make.gdb.connection": "Fehler beim Herstellen einer GDB-Verbindung: „{0}“.", + "failed.to.parse.processes": "Fehler beim Analysieren von Prozessen: „{0}“." } \ No newline at end of file diff --git a/Extension/i18n/deu/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/deu/src/Debugger/configurationProvider.i18n.json index 2aa99be562..5037215c40 100644 --- a/Extension/i18n/deu/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/deu/src/Debugger/configurationProvider.i18n.json @@ -12,6 +12,7 @@ "lldb.framework.not.found": "\"LLDB.framework\" wurde für LLDB-Mi nicht gefunden. Installieren Sie XCode oder die XCode-Befehlszeilentools.", "debugger.launchConfig": "Startkonfiguration:", "vs.code.1.69+.required": "„deploySteps“ erfordert VS Code 1.69 oder höher.", + "running.deploy.steps": "Bereitstellungsschritte werden ausgeführt...", "pre.Launch.Task": "preLaunchTask: {0}", "build.and.debug.active.file": "Aktive Datei erstellen und debuggen", "cl.exe.not.available": "{0}-Build und -Debuggen können nur verwendet werden, wenn VS Code von der Developer-Eingabeaufforderung für VS ausgeführt wird.", diff --git a/Extension/i18n/deu/src/LanguageServer/extension.i18n.json b/Extension/i18n/deu/src/LanguageServer/extension.i18n.json index 599dcbc9a8..03ca8cc5f0 100644 --- a/Extension/i18n/deu/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/deu/src/LanguageServer/extension.i18n.json @@ -6,6 +6,7 @@ { "learn.how.to.install.a.library": "Erfahren Sie, wie Sie mit vcpkg eine Bibliothek für diesen Header installieren.", "copy.vcpkg.command": "vcpkg-Befehl zum Installieren von \"{0}\" in die Zwischenablage kopieren", + "on.disabled.command": "IntelliSense-bezogene Befehle können nicht ausgeführt werden, wenn `C_Cpp.intelliSenseEngine` auf `Disabled` festgelegt ist.", "client.not.found": "Client nicht gefunden.", "configuration.select.first": "Zum Auswählen einer Konfiguration zuerst einen Ordner öffnen", "configuration.provider.select.first": "Zum Auswählen eines Konfigurationsanbieters zuerst einen Ordner öffnen", diff --git a/Extension/i18n/deu/src/nativeStrings.i18n.json b/Extension/i18n/deu/src/nativeStrings.i18n.json index d33dbf90f0..162ee23fd8 100644 --- a/Extension/i18n/deu/src/nativeStrings.i18n.json +++ b/Extension/i18n/deu/src/nativeStrings.i18n.json @@ -221,5 +221,6 @@ "folder_tag": "Ordner", "file_tag": "Datei", "compiler_default_language_standard_version_old": "Der Compiler hat die Standardversion der Standardsprache zurückgegeben: {0}. Da diese Version alt ist, wird versucht, eine neuere Version {1} als Standard zu verwenden.", - "unexpected_output_from_clang_tidy": "Unerwartete Ausgabe von „clang-tidy“: {0}. Erwartet: {1}." + "unexpected_output_from_clang_tidy": "Unerwartete Ausgabe von „clang-tidy“: {0}. Erwartet: {1}.", + "generate_doxygen_comment": "Doxygenkommentar generieren" } \ No newline at end of file diff --git a/Extension/i18n/esn/package.i18n.json b/Extension/i18n/esn/package.i18n.json index 0a41834ac4..aebeae0c75 100644 --- a/Extension/i18n/esn/package.i18n.json +++ b/Extension/i18n/esn/package.i18n.json @@ -33,19 +33,20 @@ "c_cpp.command.BuildAndDebugFile.title": "Depurar archivo C/C++", "c_cpp.command.BuildAndRunFile.title": "Ejecutar archivo C/C++", "c_cpp.command.AddDebugConfiguration.title": "Agregar configuración de depuración", + "c_cpp.command.GenerateDoxygenComment.title": "Generar comentario de Doxygen", "c_cpp.configuration.maxConcurrentThreads.markdownDescription": "Número máximo de subprocesos simultáneos que se usarán para el procesamiento del servicio de lenguaje. El valor es una sugerencia y no se puede usar siempre. El valor predeterminado de `null` (vacío) usa el número de procesadores lógicos disponibles.", "c_cpp.configuration.maxCachedProcesses.markdownDescription": "Número máximo de procesos almacenados en caché que se usarán para el procesamiento del servicio de lenguaje. El valor predeterminado de `null` (vacío) usa el doble de procesadores lógicos disponibles.", "c_cpp.configuration.maxMemory.markdownDescription": "Memoria máxima (en MB) disponible para el procesamiento del servicio de lenguaje. Menos procesos se almacenarán en caché y se ejecutarán simultáneamente después de que se supere el uso de memoria. El valor predeterminado de `null` (vacío) usa la memoria libre del sistema.", "c_cpp.configuration.intelliSense.maxCachedProcesses.markdownDescription": "Número máximo de procesos de IntelliSense que se van a seguir ejecutando. El valor predeterminado `null` (vacío) usa el valor heredado de `#C_Cpp.maxCachedProcesses#`.", "c_cpp.configuration.intelliSense.maxMemory.markdownDescription": "Los procesos anteriores de IntelliSense se cerrarán antes de que se creen nuevos procesos después de superar este uso de memoria (en MB). El valor predeterminado de `null` (vacío) usa el valor heredado de `#C_Cpp.maxMemory#`.", - "c_cpp.configuration.references.maxConcurrentThreads.markdownDescription": "Número máximo de subprocesos simultáneos que se usarán para `Find all references` y `Rename`. El valor predeterminado de `null` (vacío) usa el valor heredado de `#C_Cpp.maxConcurrentThreads#`.", + "c_cpp.configuration.references.maxConcurrentThreads.markdownDescription": "Número máximo de subprocesos simultáneos que se usarán para 'Buscar todas las referencias' y 'Cambiar nombre'. El valor predeterminado de `null` (vacío) usa el valor heredado de `#C_Cpp.maxConcurrentThreads#`.", "c_cpp.configuration.references.maxCachedProcesses.markdownDescription": "Número máximo de procesos que se mantendrán en memoria para `Find All References` y `Rename`. El valor `0` deshabilita esta característica. El valor `null` (vacío) usa el valor heredado de `#C_Cpp.maxCachedProcesses#`.", - "c_cpp.configuration.references.maxMemory.markdownDescription": "Menos procesos de `Find All References` y `Rename` se ejecutarán simultáneamente después de superar este uso de memoria (en MB). El valor predeterminado de `null` (vacío) usa el valor heredado de `#C_Cpp.maxMemory#`.", + "c_cpp.configuration.references.maxMemory.markdownDescription": "Menos procesos de 'Buscar todas las referencias' y 'Cambiar nombre' se ejecutarán simultáneamente después de superar este uso de memoria (en MB). El valor predeterminado de `null` (vacío) usa el valor heredado de `#C_Cpp.maxMemory#`.", "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "Número máximo de subprocesos simultáneos que se usarán para análisis de código. El valor predeterminado de `null` (vacío) usa la mitad del valor heredado de `#C_Cpp.maxConcurrentThreads#`.", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "Menos procesos de análisis de código se ejecutarán simultáneamente después de superar este uso de memoria (en MB). El valor predeterminado de `null` (vacío) usa el valor heredado de `#C_Cpp.maxMemory#`.", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "Controla el retraso en milisegundos antes de que el análisis de código empiece a procesarse después de que se desencadene un guardado desde una edición cuando `#files.autoSave#` es `afterDelay` y `#C_Cpp.codeAnalysis.runAutomatically#` es `true`.", "c_cpp.configuration.codeAnalysis.exclude.markdownDescription": "Configure patrones globales para excluir carpetas y archivos para el análisis de código. Los archivos que no estén en la carpeta del área de trabajo siempre se excluyen. Hereda valores de `#files.exclude#` y `#C_Cpp.files.exclude#`. Más información sobre los patrones globales [aquí](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", - "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "El patrón global con el que se van a comparar las rutas de acceso de los archivos. Establézcalo en `true` o `false` para habilitarlo o deshabilitarlo.", + "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "El patrón global con el que se van a comparar las rutas de acceso de los archivos. Establézcalo en`true` o `false` para habilitarlo o deshabilitarlo.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "Comprobación adicional de los elementos del mismo nivel de un archivo coincidente. Usa `$(basename)` como variable para el nombre del archivo coincidente.", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "Si es `true`, el análisis de código se ejecutará automáticamente en un archivo después de abrirlo o guardarlo.", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription": "Si es `true`, la acción de código 'Deshabilitar' se mostrará cuando esté disponible (la próxima vez que se ejecute el análisis de código). Cuando se usa la acción de código 'Deshabilitar', agrega el código de advertencia a la configuración `C_Cpp.codeAnalysis.clangTidy.checks.disabled`.", @@ -55,6 +56,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "Mostrar solo la acción de código 'Borrar todo' (o 'Borrar todos los ' si solo hay un tipo o 'Borrar esto' si solo hay un problema).", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "Mostrar la acción de código 'Borrar todo' (si hay varios tipos de problema) y la acción de código 'Borrar todos los ' (o 'Borrar esto' si solo hay un problema para el )", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Mostrar las acciones de código 'Borrar todo' (si hay varios tipos de problema), 'Borrar todos los ' (si hay varios problemas para el ) y 'Borrar este'", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "Si es `true`, el formato se ejecutará en las líneas modificadas por las acciones de código \"Corregir\".", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "Si es `true`, el análisis de código que usa `clang-tidy` se habilitará y se ejecutará automáticamente si `#C_Cpp.codeAnalysis.runAutomatically#` es `true` (valor predeterminado).", "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Ruta de acceso completa del archivo ejecutable de `clang-tidy`. Si no se especifica y `clang-tidy` está disponible en la ruta de acceso del entorno, se usará este. Si no se encuentra en la ruta de acceso del entorno, se usará el `clang-tidy` incluido con la extensión.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Especifica una configuración `clang-tidy` en formato YAML/JSON: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{clave: x, valor: y}]}`. Cuando el valor está vacío, `clang-tidy` intentará encontrar un archivo denominado `.clang-tidy` para cada archivo de origen en sus directorios primarios.", @@ -173,7 +175,7 @@ "c_cpp.configuration.inactiveRegionBackgroundColor.description": "Controla el color de fondo de los bloques de preprocesador inactivos. La entrada se realiza en forma de código de color hexadecimal o de un color para temas válido. Si no se establece, el valor predeterminado es transparente. Esta configuración solo se aplica cuando está habilitada la atenuación de regiones inactivas.", "c_cpp.configuration.inlayHints.autoDeclarationTypes.enabled.markdownDescription": "Mostrar sugerencias de incrustación para el tipo deducido cuando se usa `auto` en una declaración:\n```cpp \n\n auto index /* : int */ = 0;\n```", "c_cpp.configuration.inlayHints.autoDeclarationTypes.showOnLeft.markdownDescription": "Mostrar sugerencias de incrustación para el tipo deducido cuando se usa `auto` en una declaración:\n```cpp \n\n auto /* int */ index = 0;\n```", - "c_cpp.configuration.inlayHints.parameterNames.enabled.markdownDescription": "Mostrar sugerencias de incrustación para nombres de parámetros:\n```cpp \n\nint a = getArea(/* width: */ x, /* height: */ y);\n```", + "c_cpp.configuration.inlayHints.parameterNames.enabled.markdownDescription": "Mostrar sugerencias de incrustación para nombres de parámetros:\n```cpp \n\n int a = getArea(/* width: */ x, /* height: */ y);\n```", "c_cpp.configuration.inlayHints.parameterNames.hideLeadingUnderscores.markdownDescription": "Ocultar el `_` inicial en las sugerencias de nombre de parámetro.", "c_cpp.configuration.inlayHints.parameterNames.suppressWhenArgumentContainsName.markdownDescription": "Suprima las sugerencias de nombre de parámetro cuando el texto del argumento o el comentario insertado contenga el nombre del parámetro:\n```cpp \n\n int a = getArea(width, /* height: */ y);\n```", "c_cpp.configuration.inlayHints.referenceOperator.enabled.markdownDescription": "Muestra el operador de referencia de sugerencia de incrustación `&` para los parámetros pasados por una referencia no const:\n```cpp \n\n swap(/* &first: */ str1, /* &last: */ str2);\n```", @@ -187,6 +189,8 @@ "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Los filtros de exclusión se evaluarán con cada archivo y carpeta encontrados.", "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Carácter usado como separador de ruta de acceso para los resultados de finalización automática de instrucciones `#include`.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "Si es `true`, la información sobre herramientas al mantener el puntero y autocompletar solo mostrará ciertas etiquetas de comentarios estructurados. De lo contrario, se muestran todos los comentarios.", + "c_cpp.configuration.doxygen.generateOnType.description": "Controla si se va a insertar automáticamente el comentario de Doxygen después de escribir el estilo de comentario elegido.", + "c_cpp.configuration.doxygen.generatedStyle.description": "La cadena de caracteres utilizada como línea de inicio del comentario de Doxygen.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "Patrón que comienza un bloque de comentario de una o varias líneas. El valor predeterminado del patrón de continuación es ` * ` para los bloques de comentario multilínea o esta cadena para los bloques de comentario de una línea.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "Patrón que comienza un bloque de comentario de una o varias líneas.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "Texto que se insertará en la línea siguiente cuando se presione Entrar dentro de un bloque de comentario de una o varias líneas.", @@ -224,7 +228,7 @@ "c_cpp.configuration.codeFolding.description": "Si está habilitada, el servidor de lenguaje proporciona intervalos de plegado de código.", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "Habilita los servicios de integración para el [administrador de dependencias de vcpkgs](https://aka.ms/vcpkg/).", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Agrega rutas de acceso de inclusión de `nan` y `node-addon-api` cuando sean dependencias.", - "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Si es `true`, 'Rename Symbol' requerirá un identificador de C/C++ válido.", + "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Si es `true`, 'Cambiar nombre de símbolo' requerirá un identificador de C/C++ válido.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Si es `true`, la opción de autocompletar agregará `(` de forma automática después de las llamadas a funciones, en cuyo caso puede que también se agregue `)`, en función del valor de la configuración de `editor.autoClosingBrackets`.", "c_cpp.configuration.filesExclude.markdownDescription": "Configura patrones globales para excluir carpetas (y archivos si se cambia `#C_Cpp.exclusionPolicy#`). Estos son específicos de la extensión de C/C++ y se agregan a `#files.exclude#`, pero a diferencia de `#files.exclude#` también se aplican a rutas fuera de la carpeta del área de trabajo actual y no se quitan de la Vista del explorador. Más información acerca de los patrones de globales [aquí](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "El patrón global con el que se van a comparar las rutas de acceso de los archivos. Establézcalo en `true` o `false` para habilitarlo o deshabilitarlo.", @@ -277,6 +281,7 @@ "c_cpp.debuggers.miDebuggerPath.description": "Ruta de acceso del depurador MI (como gdb). Si no se especifica, se busca primero el depurador donde indica la instrucción path.", "c_cpp.debuggers.miDebuggerArgs.description": "Argumentos adicionales para el depurador MI (como gdb).", "c_cpp.debuggers.miDebuggerServerAddress.description": "Dirección de red del servidor del depurador MI al que debe conectarse (ejemplo: localhost:1234).", + "c_cpp.debuggers.useExtendedRemote.description": "Conéctese al servidor del depurador de Instancia administrada con el modo extendido-remoto de destino.", "c_cpp.debuggers.stopAtEntry.description": "Parámetro opcional. Si se establece en true, el depurador debe detenerse en el punto de entrada del destino. Si se pasa processId, no tiene efecto.", "c_cpp.debuggers.debugServerPath.description": "Ruta de acceso completa opcional al servidor de depuración que se va a iniciar. El valor predeterminado es null. Se usa junto con \"miDebugServerAddress\" o su servidor propio con un comando \"customSetupCommand\" que ejecuta \"-target-select remote \".", "c_cpp.debuggers.debugServerArgs.description": "Argumentos opcionales del servidor de depuración. El valor predeterminado es NULL.", diff --git a/Extension/i18n/esn/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/esn/src/Debugger/attachToProcess.i18n.json index edfae81df6..f41c06c401 100644 --- a/Extension/i18n/esn/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/esn/src/Debugger/attachToProcess.i18n.json @@ -4,9 +4,12 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "no.pipetransport": "La configuración de depuración elegida no contiene {0}", + "debugger.path.and.server.address.required": "{0} en la configuración de depuración requiere {1} y {2}", + "no.pipetransport.useextendedremote": "La configuración de depuración elegida no contiene {0} ni {1}", "select.process.attach": "Seleccione el proceso al que debe asociarse", "process.not.selected": "No se ha seleccionado el proceso.", "pipe.failed": "El transporte de canalización no pudo obtener el sistema operativo y los procesos.", - "no.process.list": "La asociación de transporte no puede obtener la lista de procesos." + "no.process.list": "La asociación de transporte no puede obtener la lista de procesos.", + "failed.to.make.gdb.connection": "No se pudo establecer la conexión GDB: \"{0}\".", + "failed.to.parse.processes": "No se pudieron analizar los procesos: \"{0}\"." } \ No newline at end of file diff --git a/Extension/i18n/esn/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/esn/src/Debugger/configurationProvider.i18n.json index 4173983d30..cbd885b525 100644 --- a/Extension/i18n/esn/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/esn/src/Debugger/configurationProvider.i18n.json @@ -12,6 +12,7 @@ "lldb.framework.not.found": "No se encuentra \"LLDB.framework\" para lldb-mi. Instale XCode o las herramientas de línea de comandos de XCode.", "debugger.launchConfig": "Configuración de inicio:", "vs.code.1.69+.required": "\"deploySteps\" requiere VS Code 1.69 ó posterior.", + "running.deploy.steps": "Ejecutando pasos de implementación...", "pre.Launch.Task": "preLaunchTask: {0}", "build.and.debug.active.file": "Compilar y depurar el archivo activo", "cl.exe.not.available": "La compilación y depuración de {0} solo se puede usar cuando VS Code se ejecuta desde el Símbolo del sistema para desarrolladores de Visual Studio.", diff --git a/Extension/i18n/esn/src/LanguageServer/extension.i18n.json b/Extension/i18n/esn/src/LanguageServer/extension.i18n.json index 22f1d8813d..85fb973976 100644 --- a/Extension/i18n/esn/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/esn/src/LanguageServer/extension.i18n.json @@ -6,6 +6,7 @@ { "learn.how.to.install.a.library": "Más información sobre el modo de instalar una biblioteca para este encabezado con vcpkg", "copy.vcpkg.command": "Copie el comando vcpkg para instalar \"{0}\" en el Portapapeles", + "on.disabled.command": "Los comandos relacionados con IntelliSense no se pueden ejecutar cuando `C_Cpp.intelliSenseEngine` está establecido en `Disabled`.", "client.not.found": "No se encuentra el cliente", "configuration.select.first": "Abra una carpeta primero para seleccionar una configuración", "configuration.provider.select.first": "Abra una carpeta primero para seleccionar un proveedor de configuración", diff --git a/Extension/i18n/esn/src/nativeStrings.i18n.json b/Extension/i18n/esn/src/nativeStrings.i18n.json index c25285390b..5f18efb33d 100644 --- a/Extension/i18n/esn/src/nativeStrings.i18n.json +++ b/Extension/i18n/esn/src/nativeStrings.i18n.json @@ -221,5 +221,6 @@ "folder_tag": "Carpeta", "file_tag": "Archivo", "compiler_default_language_standard_version_old": "El compilador devolvió la versión estándar del lenguaje predeterminado: {0}. Dado que esta versión es antigua, se intentará usar la versión {1}, más reciente, como predeterminada.", - "unexpected_output_from_clang_tidy": "Salida inesperada de Clang-Tidy: {0}. Se esperaba: {1}." + "unexpected_output_from_clang_tidy": "Salida inesperada de Clang-Tidy: {0}. Se esperaba: {1}.", + "generate_doxygen_comment": "Generar comentario de Doxygen" } \ No newline at end of file diff --git a/Extension/i18n/fra/package.i18n.json b/Extension/i18n/fra/package.i18n.json index 44c0ced7eb..9a714c13e9 100644 --- a/Extension/i18n/fra/package.i18n.json +++ b/Extension/i18n/fra/package.i18n.json @@ -33,6 +33,7 @@ "c_cpp.command.BuildAndDebugFile.title": "Déboguer le fichier C/C++", "c_cpp.command.BuildAndRunFile.title": "Exécuter le fichier C/C++", "c_cpp.command.AddDebugConfiguration.title": "Ajouter une configuration de débogage", + "c_cpp.command.GenerateDoxygenComment.title": "Générer un commentaire Doxygen", "c_cpp.configuration.maxConcurrentThreads.markdownDescription": "Nombre maximal de threads simultanés à utiliser pour le traitement du service de langage. La valeur est un indicateur et ne peut pas toujours être utilisée. La valeur par défaut de `null` (vide) utilise le nombre de processeurs logiques disponibles.", "c_cpp.configuration.maxCachedProcesses.markdownDescription": "Nombre maximal de processus mis en cache à utiliser pour le traitement du service de langage. La valeur par défaut de `null` (vide) utilise deux fois plus de processeurs logiques disponibles.", "c_cpp.configuration.maxMemory.markdownDescription": "Mémoire maximale (en Mo) disponible pour le traitement du service de langage. Moins de processus seront mis en cache et exécutés simultanément après le dépassement de cette utilisation de la mémoire. La valeur par défaut de `null` (vide) utilise la mémoire libre du système.", @@ -55,6 +56,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "Affichez uniquement l’action de code « Effacer tout » (ou « Effacer tous les » s’il n’y a qu’un seul type ou « Effacer ceci » s’il n’y a qu’un seul problème).", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "Afficher l’action de code « Effacer tout » (s’il existe plusieurs types de problèmes) et l’action de code « Effacer tous les » (ou « Effacer ceci » s’il n’y a qu’un seul problème pour le )", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Afficher l’option « Effacer tout » (s’il existe plusieurs types de problèmes), « Effacer tous les » (s’il existe plusieurs problèmes pour le ) et les actions de code « Effacer ceci »", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "Si la valeur est `true`, la mise en forme est exécutée sur les lignes modifiées par les actions de code 'Corriger'.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "Si la valeur est `true`, l’analyse du code à l’aide de `clang-tidy` est activée et s’exécute automatiquement si `#C_Cpp.codeAnalysis.runAutomatically#` a la valeur `true` (valeur par défaut).", "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Le chemin complet de l'exécutable `clang-tidy`. S'il n'est pas spécifié, et que `clang-tidy` est disponible dans le chemin de l'environnement, il sera utilisé. S'il n'est pas trouvé dans le chemin de l'environnement, le `clang-tidy` fourni avec l'extension sera utilisé.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Spécifie une configuration `clang-tidy` au format YAML/JSON : `{Checks: '-*,clang-analyzer-*', CheckOptions: [{clé : x, valeur : y}]}`. Quand la valeur est vide, `clang-tidy` tente de trouver un fichier nommé `.clang-tidy` pour chaque fichier source dans ses répertoires parents.", @@ -175,7 +177,7 @@ "c_cpp.configuration.inlayHints.autoDeclarationTypes.showOnLeft.markdownDescription": "Afficher les indicateurs d’inlay pour le type déduit quand `auto` est utilisé dans une déclaration à gauche de l’identificateur :\n```cpp \n\n auto /* int */ index = 0;\n```", "c_cpp.configuration.inlayHints.parameterNames.enabled.markdownDescription": "Afficher des indicateurs d’inlay pour les noms de paramètres :\n```cpp \n\n int a = getArea(/* width: */ x, /* height: */ y);\n```", "c_cpp.configuration.inlayHints.parameterNames.hideLeadingUnderscores.markdownDescription": "Masquez `_` principal dans les indicateurs de nom de paramètre.", - "c_cpp.configuration.inlayHints.parameterNames.suppressWhenArgumentContainsName.markdownDescription": "Supprimez les indicateurs de nom de paramètre lorsque le texte de l’argument ou le commentaire inline contient le nom du paramètre :\n```cpp \n\n int a = getArea(width, /* height: */ y);\n``", + "c_cpp.configuration.inlayHints.parameterNames.suppressWhenArgumentContainsName.markdownDescription": "Supprimez les indicateurs de nom de paramètre lorsque le texte de l’argument ou le commentaire inline contient le nom du paramètre :\n```cpp \n\n int a = getArea(width, /* height: */ y);\n```", "c_cpp.configuration.inlayHints.referenceOperator.enabled.markdownDescription": "Afficher l’opérateur de référence d’indicateur d’inlay `&` pour les paramètres passés par une référence non const :\n```cpp \n\n swap(/* &first: */ str1, /* &last: */ str2);\n```", "c_cpp.configuration.inlayHints.referenceOperator.showSpace.markdownDescription": "Contrôle si un espace est affiché après `&` pour les paramètres passés par référence non-const.\n```cpp \n\n swap(/* & first: */ str1, /* & last: */ str2);\n```", "c_cpp.configuration.loggingLevel.markdownDescription": "La verbosité de la journalisation dans le panneau de sortie. L'ordre des niveaux du moins verbeux au plus verbeux est : `None` < `Error` < `Warning` < `Information` < `Debug`.", @@ -187,6 +189,8 @@ "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Les filtres d'exclusion seront évalués pour chaque fichier et dossier rencontré.", "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Caractère utilisé comme séparateur de chemin dans les résultats d'autocomplétion de `#include`.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "Si la valeur est `true`, les info-bulles de pointage et d'autocomplétion affichent uniquement certaines étiquettes de commentaires structurés. Sinon, tous les commentaires sont affichés.", + "c_cpp.configuration.doxygen.generateOnType.description": "Contrôle s’il faut insérer automatiquement le commentaire Doxygen après avoir tapé le style de commentaire choisi.", + "c_cpp.configuration.doxygen.generatedStyle.description": "Chaîne de caractères utilisée comme ligne de départ du commentaire Doxygen.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "Modèle qui commence un bloc de commentaires multiligne ou monoligne. Le modèle consécutif a la valeur par défaut ` * ` pour les blocs de commentaires multilignes ou cette chaîne pour les blocs de commentaires monolignes.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "Modèle qui commence un bloc de commentaires multiligne ou monoligne.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "Texte à insérer sur la ligne suivante quand vous appuyez sur la touche Entrée dans un bloc de commentaires multiligne ou monoligne.", @@ -277,6 +281,7 @@ "c_cpp.debuggers.miDebuggerPath.description": "Chemin du débogueur MI (par exemple gdb). Si aucune valeur n'est spécifiée, le chemin du débogueur est recherché en premier lieu.", "c_cpp.debuggers.miDebuggerArgs.description": "Arguments supplémentaires pour le débogueur MI (par exemple gdb).", "c_cpp.debuggers.miDebuggerServerAddress.description": "Adresse réseau du serveur du débogueur MI auquel se connecter (par exemple : localhost:1234).", + "c_cpp.debuggers.useExtendedRemote.description": "Connectez-vous au serveur débogueur MI avec le mode étendu-distant cible.", "c_cpp.debuggers.stopAtEntry.description": "Paramètre facultatif. Si la valeur est true, le débogueur doit s'arrêter au point d'entrée de la cible. Si processId est passé, le paramètre n'a aucun effet.", "c_cpp.debuggers.debugServerPath.description": "Chemin complet facultatif au serveur de débogage à lancer (valeur par défaut : null). Utilisé conjointement avec \"miDebugServerAddress\" ou votre propre serveur avec \"customSetupCommand\" qui exécute \"-target-select remote \".", "c_cpp.debuggers.debugServerArgs.description": "Arguments facultatifs du serveur de débogage. La valeur par défaut est null.", diff --git a/Extension/i18n/fra/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/fra/src/Debugger/attachToProcess.i18n.json index add1343802..9ce1774624 100644 --- a/Extension/i18n/fra/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/fra/src/Debugger/attachToProcess.i18n.json @@ -4,9 +4,12 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "no.pipetransport": "La configuration de débogage choisie ne contient pas {0}", + "debugger.path.and.server.address.required": "{0} dans la configuration de débogage requiert {1} et {2}", + "no.pipetransport.useextendedremote": "La configuration de débogage choisie ne contient ni {0} ni {1}", "select.process.attach": "Sélectionner le processus à attacher", "process.not.selected": "Processus non sélectionné.", "pipe.failed": "Le transport de canal n'a pas pu obtenir le système d'exploitation et les processus.", - "no.process.list": "L'attachement de transport n'a pas pu obtenir la liste des processus." + "no.process.list": "L'attachement de transport n'a pas pu obtenir la liste des processus.", + "failed.to.make.gdb.connection": "Échec de la connexion GDB : «{0}».", + "failed.to.parse.processes": "Échec de l’analyse des processus : «{0}»." } \ No newline at end of file diff --git a/Extension/i18n/fra/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/fra/src/Debugger/configurationProvider.i18n.json index b20eb95da2..add3b808f0 100644 --- a/Extension/i18n/fra/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/fra/src/Debugger/configurationProvider.i18n.json @@ -12,6 +12,7 @@ "lldb.framework.not.found": "Impossible de localiser 'LLDB.framework' pour lldb-mi. Installez XCode ou les outils en ligne de commande XCode.", "debugger.launchConfig": "Lancer la configuration :", "vs.code.1.69+.required": "'deploySteps' nécessite VS Code 1.69+.", + "running.deploy.steps": "Exécution des étapes de déploiement...", "pre.Launch.Task": "tâche de prélancement : {0}", "build.and.debug.active.file": "Générer et déboguer le fichier actif", "cl.exe.not.available": "La génération et le débogage de {0} peuvent être utilisés uniquement quand VS Code est exécuté à partir de l'invite de commandes développeur pour VS.", diff --git a/Extension/i18n/fra/src/LanguageServer/extension.i18n.json b/Extension/i18n/fra/src/LanguageServer/extension.i18n.json index 0af4b82730..b0afae422c 100644 --- a/Extension/i18n/fra/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/fra/src/LanguageServer/extension.i18n.json @@ -6,6 +6,7 @@ { "learn.how.to.install.a.library": "Découvrir comment installer une bibliothèque pour cet en-tête avec vcpkg", "copy.vcpkg.command": "Copier la commande vcpkg pour installer '{0}' dans le Presse-papiers", + "on.disabled.command": "Les commandes liées à IntelliSense ne peuvent pas être exécutées quand `C_Cpp.intelliSenseEngine` a la valeur `Disabled`.", "client.not.found": "client introuvable", "configuration.select.first": "Commencer par ouvrir un dossier pour sélectionner une configuration", "configuration.provider.select.first": "Commencer par ouvrir un dossier pour sélectionner un fournisseur de configuration", diff --git a/Extension/i18n/fra/src/nativeStrings.i18n.json b/Extension/i18n/fra/src/nativeStrings.i18n.json index d5f7bd4612..94e1c1f455 100644 --- a/Extension/i18n/fra/src/nativeStrings.i18n.json +++ b/Extension/i18n/fra/src/nativeStrings.i18n.json @@ -221,5 +221,6 @@ "folder_tag": "Dossier", "file_tag": "Fichier", "compiler_default_language_standard_version_old": "Le compilateur a retourné la version standard du langage par défaut : {0}. Étant donné que cette version est ancienne, essaiera d’utiliser une version plus récente {1} par défaut.", - "unexpected_output_from_clang_tidy": "Sortie inattendue de clang-tidy : {0}. Attendu : {1}." + "unexpected_output_from_clang_tidy": "Sortie inattendue de clang-tidy : {0}. Attendu : {1}.", + "generate_doxygen_comment": "Générer un commentaire Doxygen" } \ No newline at end of file diff --git a/Extension/i18n/ita/package.i18n.json b/Extension/i18n/ita/package.i18n.json index 61e46316ee..e09046dde0 100644 --- a/Extension/i18n/ita/package.i18n.json +++ b/Extension/i18n/ita/package.i18n.json @@ -33,6 +33,7 @@ "c_cpp.command.BuildAndDebugFile.title": "Debug file C/C++", "c_cpp.command.BuildAndRunFile.title": "Esegui file C/C++", "c_cpp.command.AddDebugConfiguration.title": "Aggiungere configurazione di debug", + "c_cpp.command.GenerateDoxygenComment.title": "Genera commento Doxygen", "c_cpp.configuration.maxConcurrentThreads.markdownDescription": "Numero massimo di thread simultanei da utilizzare per l'elaborazione del servizio di linguaggio. Il valore è un suggerimento e non può essere sempre utilizzato. Il valore predefinito di `null` (vuoto) utilizza il numero di processori logici disponibili.", "c_cpp.configuration.maxCachedProcesses.markdownDescription": "Numero massimo di processi memorizzati nella cache da utilizzare per l'elaborazione del servizio di linguaggio. Il valore predefinito di `null` (vuoto) utilizza il doppio del numero di processori logici disponibili.", "c_cpp.configuration.maxMemory.markdownDescription": "Memoria massima (in MB) disponibile per l'elaborazione del servizio di linguaggio. Un numero minore di processi verrà memorizzato nella cache ed eseguito contemporaneamente dopo il superamento dell'utilizzo della memoria. Il valore predefinito di `null` (vuoto) utilizza la memoria disponibile del sistema.", @@ -55,6 +56,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "Mostrare solo l'azione codice 'Cancella tutto' (o 'Cancella tutti ' se è presente un solo tipo o 'Cancella questo' se è presente un solo problema).", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "Mostrare l'azione codice 'Cancella tutto' (se sono presenti più tipi di problema) e l'azione codice 'Cancella tutti ' (o 'Cancella questo' se è presente un solo problema per )", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Mostrare le azioni codice 'Cancella tutto' (se sono presenti più tipi di problema), 'Cancella tutti ' (se sono presenti più problemi per ) e 'Cancella questo'", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "Se `true`, la formattazione verrà eseguita nelle righe modificate dalle azioni del codice 'Correggi'.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "Se è `true`, l'analisi del codice che usa `clang-tidy` verrà abilitata ed eseguita automaticamente se `#C_Cpp.codeAnalysis.runAutomatically#` è `true` (impostazione predefinita).", "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Percorso completo dell'eseguibile `clang-tidy`. Se non è specificato, `clang-tidy` è disponibile nel percorso dell'ambiente usato. Se non viene trovato nel percorso dell'ambiente, verrà usato `clang-tidy` in bundle con l'estensione.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Specifica una configurazione `clang-tidy` in formato YAML/JSON: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{chiave: x, valore: y}]}`. Quando il valore è vuoto, `clang-tidy` tenterà di trovare un file denominato `.clang-tidy` per ogni file di origine nelle directory padre.", @@ -187,6 +189,8 @@ "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "I filtri di esclusione verranno valutati in base a ogni file e cartella rilevati.", "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Carattere usato come separatore di percorso per i risultati di completamento automatico di `#include`.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "Se è `true`, le descrizioni comando al passaggio del mouse e del completamento automatico visualizzeranno solo alcune etichette di commenti strutturati. In caso contrario, vengono visualizzati tutti i commenti.", + "c_cpp.configuration.doxygen.generateOnType.description": "Controlla se inserire automaticamente il commento Doxygen dopo aver digitato lo stile di commento scelto.", + "c_cpp.configuration.doxygen.generatedStyle.description": "Stringa di caratteri utilizzata come riga iniziale del commento Doxygen.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "Criterio con cui inizia un blocco di commento su più righe o su una sola riga. Il criterio di continuazione è impostato su `* ` per i blocchi di commento su più righe o su questa stringa per i blocchi di commento su una sola riga.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "Criterio con cui inizia un blocco di commento su più righe o su una sola riga.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "Testo che verrà inserito alla riga successiva quando si preme INVIO all'interno di un blocco di commento su più righe o su una sola riga.", @@ -277,6 +281,7 @@ "c_cpp.debuggers.miDebuggerPath.description": "Percorso del debugger MI, ad esempio gdb. Se non viene specificato, il debugger verrà cercato prima in PATH.", "c_cpp.debuggers.miDebuggerArgs.description": "Argomenti aggiuntivi per il debugger MI, ad esempio gdb.", "c_cpp.debuggers.miDebuggerServerAddress.description": "Indirizzo di rete del server del debugger MI a cui connettersi. Esempio: localhost:1234.", + "c_cpp.debuggers.useExtendedRemote.description": "Connettersi al server del debugger MI con la modalità estesa-remota di destinazione.", "c_cpp.debuggers.stopAtEntry.description": "Parametro facoltativo. Se è true, il debugger deve arrestarsi in corrispondenza del punto di ingresso della destinazione. Se viene passato ProcessId, non ha alcun effetto.", "c_cpp.debuggers.debugServerPath.description": "Percorso completo facoltativo del server di debug da avviare. L'impostazione predefinita è Null. Viene usata insieme a \"miDebugServerAddress\" o al proprio server con un comando \"customSetupCommand\" che esegue \"-target-select remote \".", "c_cpp.debuggers.debugServerArgs.description": "Argomenti facoltativi del server di debug. L'impostazione predefinita è null.", diff --git a/Extension/i18n/ita/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/ita/src/Debugger/attachToProcess.i18n.json index 36c8a6f0ce..4431156923 100644 --- a/Extension/i18n/ita/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/ita/src/Debugger/attachToProcess.i18n.json @@ -4,9 +4,12 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "no.pipetransport": "La configurazione di debug scelta non contiene {0}", + "debugger.path.and.server.address.required": "{0} nella configurazione di debug richiede {1} e {2}", + "no.pipetransport.useextendedremote": "La configurazione di debug scelta non contiene {0} o {1}", "select.process.attach": "Selezionare il processo a cui collegarsi", "process.not.selected": "Processo non selezionato.", "pipe.failed": "Il trasporto pipe non è riuscito a ottenere il sistema operativo e i processi.", - "no.process.list": "Il collegamento del trasporto non è riuscito a ottenere l'elenco dei processi." + "no.process.list": "Il collegamento del trasporto non è riuscito a ottenere l'elenco dei processi.", + "failed.to.make.gdb.connection": "Non è stato possibile creare la connessione GDB: \"{0}\".", + "failed.to.parse.processes": "Non è stato possibile analizzare i processi: \"{0}\"." } \ No newline at end of file diff --git a/Extension/i18n/ita/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/ita/src/Debugger/configurationProvider.i18n.json index 61041e962d..fa13572d19 100644 --- a/Extension/i18n/ita/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/ita/src/Debugger/configurationProvider.i18n.json @@ -12,6 +12,7 @@ "lldb.framework.not.found": "Non è possibile trovare 'LLDB.framework' per lldb-mi. Installare Xcode o gli strumenti da riga di comando Xcode.", "debugger.launchConfig": "Configurazione di avvio:", "vs.code.1.69+.required": "'deploySteps' richiede VS Code 1.69+.", + "running.deploy.steps": "Esecuzione dei passaggi di distribuzione in corso...", "pre.Launch.Task": "preLaunchTask: {0}", "build.and.debug.active.file": "compilare ed eseguire il debug del file attivo", "cl.exe.not.available": "La compilazione e il debug di {0} sono utilizzabili solo quando VS Code viene eseguito da Prompt dei comandi per gli sviluppatori per Visual Studio.", diff --git a/Extension/i18n/ita/src/LanguageServer/extension.i18n.json b/Extension/i18n/ita/src/LanguageServer/extension.i18n.json index b962744aad..6433205865 100644 --- a/Extension/i18n/ita/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/ita/src/LanguageServer/extension.i18n.json @@ -6,6 +6,7 @@ { "learn.how.to.install.a.library": "Informazioni su come installare una libreria per questa intestazione con vcpkg", "copy.vcpkg.command": "Copiare il comando vcpkg per installare '{0}' negli Appunti", + "on.disabled.command": "Non è possibile eseguire comandi correlati a IntelliSense quando `C_Cpp.intelliSenseEngine` è impostato su `Disabled`.", "client.not.found": "client non trovato", "configuration.select.first": "Aprire prima una cartella per selezionare una configurazione", "configuration.provider.select.first": "Aprire prima una cartella per selezionare un provider di configurazione", diff --git a/Extension/i18n/ita/src/nativeStrings.i18n.json b/Extension/i18n/ita/src/nativeStrings.i18n.json index 11844f4ccf..ec488e72ac 100644 --- a/Extension/i18n/ita/src/nativeStrings.i18n.json +++ b/Extension/i18n/ita/src/nativeStrings.i18n.json @@ -221,5 +221,6 @@ "folder_tag": "Cartella", "file_tag": "File", "compiler_default_language_standard_version_old": "Il compilatore ha restituito la versione standard del linguaggio predefinito: {0}. Poiché questa versione è obsoleta, verrà eseguito un tentativo di utilizzare la versione più recente {1} come predefinita.", - "unexpected_output_from_clang_tidy": "Output imprevisto da clang-tidy: {0}. Previsto: {1}." + "unexpected_output_from_clang_tidy": "Output imprevisto da clang-tidy: {0}. Previsto: {1}.", + "generate_doxygen_comment": "Genera commento Doxygen" } \ No newline at end of file diff --git a/Extension/i18n/jpn/package.i18n.json b/Extension/i18n/jpn/package.i18n.json index fae02e8891..c255c4625b 100644 --- a/Extension/i18n/jpn/package.i18n.json +++ b/Extension/i18n/jpn/package.i18n.json @@ -33,6 +33,7 @@ "c_cpp.command.BuildAndDebugFile.title": "C/C++ ファイルのデバッグ", "c_cpp.command.BuildAndRunFile.title": "C/C++ ファイルの実行", "c_cpp.command.AddDebugConfiguration.title": "デバッグ構成の追加", + "c_cpp.command.GenerateDoxygenComment.title": "Doxygen コメントの生成", "c_cpp.configuration.maxConcurrentThreads.markdownDescription": "言語サービスの処理に使用する同時実行スレッドの最大数。値はヒントであり、常に使用されるとは限りません。既定値の `null` (空) では、使用可能な論理プロセッサの数が使用されます。", "c_cpp.configuration.maxCachedProcesses.markdownDescription": "言語サービスの処理に使用するキャッシュされたプロセスの最大数。既定値の `null` (空) では、使用可能な論理プロセッサの数の 2 倍が使用されます。", "c_cpp.configuration.maxMemory.markdownDescription": "言語サービスの処理に使用できる最大メモリ (MB 単位)。このメモリ使用量を超えると、キャッシュされ、同時に実行されるプロセスの数が少なくなります。既定値の `null` (空) では、システムの空きメモリが使用されます。", @@ -40,7 +41,7 @@ "c_cpp.configuration.intelliSense.maxMemory.markdownDescription": "古い IntelliSense プロセスは、このメモリ使用量 (MB) を超えた後に新しいプロセスが作成される前にシャットダウンされます。既定値の `null` (空) では、`#C_Cpp.maxMemory#` から継承された値が使用されます。", "c_cpp.configuration.references.maxConcurrentThreads.markdownDescription": "[すべての参照の検索] と [名前の変更] に使用する同時実行スレッドの最大数。既定値の `null` (空) では、`#C_Cpp.maxConcurrentThreads#` から継承された値が使用されます。", "c_cpp.configuration.references.maxCachedProcesses.markdownDescription": "[すべての参照の検索] と [名前の変更] のメモリ内に保持するプロセスの最大数。既定値の `0` は、この機能を無効にします。`null` 値 (空) は、`#C_Cpp.maxCachedProcesses#` から継承された値を使用します。", - "c_cpp.configuration.references.maxMemory.markdownDescription": "このメモリ使用量 (MB 単位) を超えると、キャッシュされ、同時に実行される 'すべての参照の検索' プロセスと '名前の変更' プロセスの数が少なくなります。既定値の `null` (空) では、`#C_Cpp.maxMemory#` から継承された値が使用されます。", + "c_cpp.configuration.references.maxMemory.markdownDescription": "このメモリ使用量 (MB 単位) を超えると、キャッシュされ、同時に実行される 'すべての参照の検索' プロセスと '名前の変更' プロセスの数が少なくなります。既定値の `null` (空) では、`#C_Cpp.maxMemory#` から継承された値が使用されます。", "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": "コード分析に使用する同時実行スレッドの最大数。既定値の `null` (空) では、`#C_Cpp.maxConcurrentThreads#` から継承された値の半分が使用されます。", "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": "このメモリ使用量 (MB 単位) を超えると、同時に実行されるコード分析プロセスの数が減少します。既定値の `null` (空) では、`#C_Cpp.maxMemory#` から継承された値が使用されます。", "c_cpp.configuration.codeAnalysis.updateDelay.markdownDescription": "`#files.autoSave#` が `afterDelay` で `#C_Cpp.codeAnalysis.runAutomatically#` が `true` の場合に、編集から保存がトリガーされてからコード分析が処理を開始するまでの遅延をミリ秒単位で制御します。", @@ -48,18 +49,19 @@ "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "ファイル パスの照合基準となる glob パターン。これを `true` または `false` に設定すると、パターンがそれぞれ有効/無効になります。", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "一致するファイルの兄弟をさらにチェックします。一致するファイル名の変数として `$(basename)` を使用します。", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "`true` の場合、ファイルを開いたり保存したりすると、コード分析が自動的に実行されます。", - "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription": "`true` の場合、使用可能な場合 (次回コード分析が実行される時) に 'Disable' コード アクションが表示されます。'Disable' コード アクションを使用すると、警告コードが `C_Cpp.codeAnalysis.clangTidy.checks.disabled` 設定に追加されます。", - "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription": "`true` の場合、使用可能な場合 (次回コード分析が実行されるときに) [ドキュメントの表示] コード アクションが表示されます。", - "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.description": "使用可能な 'Clear' コード分析の問題コード アクション オプションを制御します。その他のオプションを表示するように設定を変更すると、コード分析を再び実行することが必要になる場合があります。", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription": "`true` の場合、使用可能な場合 (次回コード分析が実行される時) に '無効' コード アクションが表示されます。'無効' コード アクションを使用すると、警告コードが `C_Cpp.codeAnalysis.clangTidy.checks.disabled` 設定に追加されます。", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription": "`true` の場合、使用可能な場合 (次回コード分析が実行されるときに) [ドキュメントの表示] コード アクションが表示されます。", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.description": "使用可能な 'クリア' コード分析の問題コード アクション オプションを制御します。その他のオプションを表示するように設定を変更すると、コード分析を再び実行することが必要になる場合があります。", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.None.description": "'クリア' コード アクションを表示しません。", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "[すべてクリア] コード アクションのみを表示します (型が 1 つだけの場合は [すべてクリア] ' を、問題が 1 つしかない場合は [クリア] を選択します)。", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "[すべてクリア] コード アクション (複数の問題の種類がある場合) と [すべてのをクリアする] コード アクションを表示する (または、に問題が 1 つだけある場合は [これをクリア] を表示する)", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "[すべてクリア] (複数の問題の種類がある場合)、[すべてののクリア] (に複数の問題がある場合)、'これをクリア' コード アクションを表示する", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "`true` の場合、'修正' コード アクションによって変更された行に対して書式設定が実行されます。", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "`true` の場合、 `clang-tidy` を使用したコード分析が有効になり、`#C_Cpp.codeAnalysis.runAutomatically#` が `true` (既定値) の場合に自動的に実行されます。", "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` の実行可能ファイルの完全なパスです。指定されておらず、`clang-tidy` が環境パスに置かれている場合は、それが使用されます。環境パスに見つからない場合は、拡張機能にバンドルされている `clang-tidy` が使用されます。", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "YAML/JSON 形式の `clang-tidy` 構成を指定します: `{Checks: '-*,clang-analyzer-*',CheckOptions: [{キー: x, 値: y}]}`。値が空の場合、`clang-tidy` は親ディレクトリ内の各ソース ファイルの `.clang-tidy` という名前のファイルの検索を試みます。", - "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "`#C_Cpp.codeAnalysis.clangTidy.config#` が設定されておらず、`clang-tidy` ファイルが見つからない場合に、フォールバックとして使用する YAML/JSON 形式の `clang-tidy` 構成を指定します: `{Checks: '-*,clang-analyzer-*',CheckOptions: [{キー: x, 値: y}]}`。", - "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "診断を出力するヘッダーの名前と一致する POSIX 拡張正規表現 (ERE)。各翻訳単位のメイン ファイルからの診断は常に表示されます。`${workspaceFolder}` 変数はサポートされています (`.clang-tidy` ファイルが存在しない場合は、既定のフォールバック値として使用されます)。このオプションが `null` (空) でない場合は、`.clang-tidy` ファイルの `HeaderFilterRegex` オプションがオーバーライドされます (存在する場合)。", + "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "`#C_Cpp.codeAnalysis.clangTidy.config#` が設定されておらず、`clang-tidy` ファイルが見つからない場合に、フォールバックとして使用する YAML/JSON 形式の `clang-tidy` 構成を指定します: `{Checks: '-*,clang-analyzer-*',CheckOptions: [{キー: x, 値: y}]}`。", + "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "診断を出力するヘッダーの名前と一致する POSIX 拡張正規表現 (ERE)。各翻訳単位のメイン ファイルからの診断は常に表示されます。`${workspaceFolder}` 変数はサポートされています (`.clang-tidy` ファイルが存在しない場合は、既定のフォールバック値として使用されます)。このオプションが `null` (空) でない場合は、`.clang-tidy` ファイルの `HeaderFilterRegex` オプションがオーバーライドされます (存在する場合)。", "c_cpp.configuration.codeAnalysis.clangTidy.args.markdownDescription": "`clang-tidy` に渡す追加のコマンド ライン引数。これらは、同等の `C_Cpp.codeAnalysis.clangTidy.*` 設定よりも優先されます。", "c_cpp.configuration.codeAnalysis.clangTidy.useBuildPath.markdownDescription": "`true` および `compileCommands` が設定されている場合、ビルド引数が `--` の後に渡されるのではなく、`-p=` 引数が `clang-tidy` に渡されます。システム インクルードを見つけることができるように環境変数が設定されていない場合には、機能しない可能性があります。", "c_cpp.configuration.codeAnalysis.clangTidy.checks.enabled.markdownDescription": "有効な `clang-tidy` チェックの一覧。値は、`.clang-tidy` ファイルの `Checks` または `#C_Cpp.codeAnalysis.clangTidy.config#` (存在する場合) に追加されます。既定のチェック `clang-analyzer-*` は、明示的に無効にされていない限り、常に使用されます。", @@ -156,7 +158,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "コード ブロックは、常に `C_Cpp.vcFormat.newLine.*` 設定の値に基づいて書式設定されます。", "c_cpp.configuration.clang_format_path.markdownDescription": "`clang-format` の実行可能ファイルの完全なパスです。指定されておらず、`clang-format` が環境パスに置かれている場合は、それが使用されます。環境パスに見つからない場合は、拡張機能にバンドルされている `clang-format` が使用されます。", "c_cpp.configuration.clang_format_style.markdownDescription": "次のコーディング スタイルが現在サポートされています: `Visual Studio`、`LLVM`、`Google`、`Chromium`、`Mozilla`、`WebKit`、`Microsoft`、`GNU`、`file` を使用して、現在のディレクトリまたは親ディレクトリにある `.clang-format` ファイルからスタイルを読み込みます。特定のパラメーターを設定するには、`{キー: 値, ...}` を使用します。たとえば、`Visual Studio` のスタイルは次のようになります: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`。", - "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "`clang-format` が `file` スタイルで呼び出されたものの `.clang-format` ファイルが見つからない場合に、フォールバックとして使用される定義済みスタイルの名前。使用可能な値は、`Visual Studio`、`LLVM`、`Google、Chromium`、`Mozilla、WebKit`、`Microsoft`、`GNU`、`none` です。または、{キー: 値, ...} を使用して特定のパラメーターを設定することもできます。たとえば、\"Visual Studio\" スタイルは次のようになります: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`。", + "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "`clang-format` が `file` スタイルで呼び出されたものの `.clang-format` ファイルが見つからない場合に、フォールバックとして使用される定義済みスタイルの名前。使用可能な値は、`Visual Studio`、`LLVM`、`Google、Chromium`、`Mozilla、WebKit`、`Microsoft`、`GNU`、`none` です。または、{キー: 値, ...} を使用して特定のパラメーターを設定することもできます。たとえば、\"Visual Studio\" スタイルは次のようになります: `{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifierOffset: -4, NamespaceIndentation: All, FixNamespaceComments: false }`。", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "設定されている場合、`SortIncludes` パラメーターによって決定されるインクルードの並べ替え動作がオーバーライドされます。", "c_cpp.configuration.intelliSenseEngine.description": "IntelliSense プロバイダーを制御します。", "c_cpp.configuration.intelliSenseEngine.default.description": "独立した IntelliSense プロセスを使用してコンテキストを認識する結果を提供します。", @@ -187,6 +189,8 @@ "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "除外フィルターは、検出されたすべてのファイルとフォルダーに対して評価されます。", "c_cpp.configuration.preferredPathSeparator.markdownDescription": "`#include` のオートコンプリート結果でパス区切り記号として使用される文字です。", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "`true` の場合、ホバーおよびオートコンプリートのヒントに、構造化されたコメントの特定のラベルのみが表示されます。それ以外の場合は、すべてのコメントが表示されます。", + "c_cpp.configuration.doxygen.generateOnType.description": "選択したコメント スタイルを入力した後に、Doxygen コメントを自動的に挿入するかどうかを制御します。", + "c_cpp.configuration.doxygen.generatedStyle.description": "Doxygen コメントの開始行として使用される文字列です。", "c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "複数行または単一行のコメント ブロックの先頭に置くパターン。継続のパターンの既定値は、複数行コメント ブロックの場合は ` * `、単一行コメント ブロックの場合はこの文字列です。", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "複数行または単一行のコメント ブロックの先頭に置くパターン。", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "複数行または単一行のコメント ブロック内で Enter を押したときに、次の行に挿入されるテキストです。", @@ -277,6 +281,7 @@ "c_cpp.debuggers.miDebuggerPath.description": "MI デバッガー (gdb など) へのパス。これを指定しないと、デバッガーの検索はパスから開始されます。", "c_cpp.debuggers.miDebuggerArgs.description": "MI デバッガー (gdb など) の追加の引数。", "c_cpp.debuggers.miDebuggerServerAddress.description": "接続先の MI デバッガー サーバーのネットワークアドレスです (例: localhost: 1234)。", + "c_cpp.debuggers.useExtendedRemote.description": "ターゲットの拡張リモート モードで MI デバッガー サーバーに接続します。", "c_cpp.debuggers.stopAtEntry.description": "オプションのパラメーターです。true の場合、デバッガーはターゲットのエントリポイントで停止します。processId が渡された場合は効果はありません。", "c_cpp.debuggers.debugServerPath.description": "起動するデバッグ サーバーの完全なパス (省略可能)。既定値は null です。これは、\"miDebugServerAddress\"、または \"-target-select remote \" を実行する \"customSetupCommand\" を含む独自のサーバーのいずれかと接合して使用されます。", "c_cpp.debuggers.debugServerArgs.description": "デバッグ サーバー引数 (省略可能)。既定値は null です。", diff --git a/Extension/i18n/jpn/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/jpn/src/Debugger/attachToProcess.i18n.json index c96baa71d0..b92a94f821 100644 --- a/Extension/i18n/jpn/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/jpn/src/Debugger/attachToProcess.i18n.json @@ -4,9 +4,12 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "no.pipetransport": "選択されたデバッグ構成に {0} が含まれていません", + "debugger.path.and.server.address.required": "デバッグ構成の{0}には、{1}と {2} が必要です", + "no.pipetransport.useextendedremote": "選択されたデバッグ構成には {0} または {1} は含まれません", "select.process.attach": "アタッチするプロセスを選択する", "process.not.selected": "プロセスが選択されていません。", "pipe.failed": "パイプ トランスポートで OS とプロセスを取得できませんでした。", - "no.process.list": "転送アタッチでプロセス一覧を取得できませんでした。" + "no.process.list": "転送アタッチでプロセス一覧を取得できませんでした。", + "failed.to.make.gdb.connection": "GDB 接続を作成できませんでした: \"{0}\"。", + "failed.to.parse.processes": "プロセスを解析できませんでした: \"{0}\"。" } \ No newline at end of file diff --git a/Extension/i18n/jpn/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/jpn/src/Debugger/configurationProvider.i18n.json index 5875870e67..9d88c1a537 100644 --- a/Extension/i18n/jpn/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/jpn/src/Debugger/configurationProvider.i18n.json @@ -12,6 +12,7 @@ "lldb.framework.not.found": "lldb-mi の 'LLDB.framework' が見つかりません。XCode または XCode コマンド ライン ツールをインストールしてください。", "debugger.launchConfig": "起動の構成:", "vs.code.1.69+.required": "'deploySteps' にはVS Code 1.69 以降が必要です。", + "running.deploy.steps": "配置ステップを実行しています...", "pre.Launch.Task": "preLaunchTask: {0}", "build.and.debug.active.file": "アクティブ ファイルのビルドとデバッグ", "cl.exe.not.available": "{0} のビルドとデバッグを使用できるのは、VS 用開発者コマンド プロンプトから VS Code を実行する場合のみです。", diff --git a/Extension/i18n/jpn/src/LanguageServer/extension.i18n.json b/Extension/i18n/jpn/src/LanguageServer/extension.i18n.json index 52819411cb..70a8fae9b1 100644 --- a/Extension/i18n/jpn/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/jpn/src/LanguageServer/extension.i18n.json @@ -6,6 +6,7 @@ { "learn.how.to.install.a.library": "このヘッダーのライブラリを vcpkg でインストールする方法の詳細", "copy.vcpkg.command": "'{0}' をインストールするための vcpkg コマンドをクリップボードにコピーする", + "on.disabled.command": "`C_Cpp.intelliSenseEngine` が `Disabled` に設定されている場合、IntelliSense 関連のコマンドは実行できません。", "client.not.found": "クライアントが見つかりませんでした", "configuration.select.first": "構成を選択するには、まずフォルダーを開いてください", "configuration.provider.select.first": "構成プロバイダーを選択するには、まずフォルダーを開いてください", diff --git a/Extension/i18n/jpn/src/LanguageServer/settings.i18n.json b/Extension/i18n/jpn/src/LanguageServer/settings.i18n.json index ca3a87f893..15f69e856a 100644 --- a/Extension/i18n/jpn/src/LanguageServer/settings.i18n.json +++ b/Extension/i18n/jpn/src/LanguageServer/settings.i18n.json @@ -4,5 +4,5 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "editorconfig.default.behavior": "コードのフォーマットでは、.clang-format ではなく .editorconfig の設定を使用しています。詳細については、'C_Cpp.formatting' 設定の 'Default' 値に関するドキュメントを参照してください。" + "editorconfig.default.behavior": "コードのフォーマットでは、.clang-format ではなく .editorconfig の設定を使用しています。詳細については、'C_Cpp.formatting' 設定の 'Default' 値に関するドキュメントを参照してください。" } \ No newline at end of file diff --git a/Extension/i18n/jpn/src/nativeStrings.i18n.json b/Extension/i18n/jpn/src/nativeStrings.i18n.json index ce76213358..16a3cfa11b 100644 --- a/Extension/i18n/jpn/src/nativeStrings.i18n.json +++ b/Extension/i18n/jpn/src/nativeStrings.i18n.json @@ -221,5 +221,6 @@ "folder_tag": "フォルダー", "file_tag": "ファイル", "compiler_default_language_standard_version_old": "コンパイラから既定の言語の標準バージョンが返されました: {0}。このバージョンは古いため、より新しいバージョン {1} をデフォルトとして使用しようとします。", - "unexpected_output_from_clang_tidy": "clang-tidy からの予期しない出力: {0}。期待値: {1}。" + "unexpected_output_from_clang_tidy": "clang-tidy からの予期しない出力: {0}。期待値: {1}。", + "generate_doxygen_comment": "Doxygen コメントの生成" } \ No newline at end of file diff --git a/Extension/i18n/jpn/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json b/Extension/i18n/jpn/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json index 2ac1da16d2..5c0a78dc96 100644 --- a/Extension/i18n/jpn/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json +++ b/Extension/i18n/jpn/walkthrough/debugconfig/run-and-debug-project-mac.md.i18n.json @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "walkthrough.mac.title.run.and.debug.your.file": "MacOS でお使いの C++ ファイルを実行してデバッグする", + "walkthrough.mac.title.run.and.debug.your.file": "macOS でお使いの C++ ファイルを実行してデバッグする", "walkthrough.mac.run.and.debug.your.file": "VS Code でお使いの C++ ファイルを実行およびデバッグするには、次の操作に従います。", "walkthrough.mac.instructions1": "実行してデバッグする C++ ソース ファイルを開きます。エディターで、このファイルがアクティブ (現在表示され、選択されている) であることを確認してください。", "walkthrough.mac.press.f5": "{0} を押します。あるいは、メイン メニューで {1} を選択します。", diff --git a/Extension/i18n/kor/package.i18n.json b/Extension/i18n/kor/package.i18n.json index e951f8e488..39f599eb8e 100644 --- a/Extension/i18n/kor/package.i18n.json +++ b/Extension/i18n/kor/package.i18n.json @@ -33,6 +33,7 @@ "c_cpp.command.BuildAndDebugFile.title": "C/C++ 파일 디버그", "c_cpp.command.BuildAndRunFile.title": "C/C++ 파일 실행", "c_cpp.command.AddDebugConfiguration.title": "디버그 구성 추가", + "c_cpp.command.GenerateDoxygenComment.title": "Doxygen 주석 생성", "c_cpp.configuration.maxConcurrentThreads.markdownDescription": "언어 서비스 처리에 사용할 최대 동시 스레드 수입니다. 값은 힌트이며 항상 사용되는 것은 아닙니다. 기본값 `null`(비어 있음)은 사용 가능한 논리 프로세서 수를 사용합니다.", "c_cpp.configuration.maxCachedProcesses.markdownDescription": "언어 서비스 처리에 사용할 최대 캐시 프로세스 수입니다. 기본값인 `null`(비어 있음)은 사용 가능한 논리 프로세서 수의 두 배를 사용합니다.", "c_cpp.configuration.maxMemory.markdownDescription": "언어 서비스 처리에 사용할 수 있는 최대 메모리(MB)입니다. 이 메모리 사용량이 초과되면 더 적은 수의 프로세스가 캐시되고 동시에 실행됩니다. 기본값 `null`(비어 있음)은 시스템의 여유 메모리를 사용합니다.", @@ -48,13 +49,14 @@ "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "파일 경로를 일치시킬 GLOB 패턴입니다. 패턴을 사용하거나 사용하지 않도록 설정하려면 `true` 또는 `false`로 설정하세요.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "일치하는 파일의 형제에 대한 추가 검사입니다. `$(basename)`을 일치하는 파일 이름에 대한 변수로 사용하세요.", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "`true`인 경우 파일을 열거나 저장한 후 코드 분석이 자동으로 실행됩니다.", - "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription": "`true`이면 사용 가능한 경우 '비활성화' 코드 작업이 표시됩니다(다음 번에 코드 분석이 실행될 때). 'Disable' 코드 액션을 사용하면 `C_Cpp.codeAnalysis.clangTidy.checks.disabled` 설정에 경고 코드를 추가합니다.", - "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription": "`true`인 경우 사용 가능한 경우 '다음에 대한 문서 표시' 코드 작업이 표시됩니다(다음 코드 분석이 실행될 때).", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription": "`true`이면 사용 가능한 경우 '비활성화' 코드 작업이 표시됩니다(다음 번에 코드 분석이 실행될 때). '비활성화' 코드 액션을 사용하면 `C_Cpp.codeAnalysis.clangTidy.checks.disabled` 설정에 경고 코드를 추가합니다.", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription": "`true`이면 사용 가능한 경우 '다음에 대한 문서 표시' 코드 작업이 표시됩니다(다음 번에 코드 분석이 실행될 때).", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.description": "사용 가능한 '지우기' 코드 분석 문제 코드 작업 옵션을 제어합니다. 더 많은 옵션을 표시하도록 설정을 변경하려면 코드 분석을 다시 실행해야 할 수 있습니다.", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.None.description": "'지우기' 코드 작업을 표시하지 않습니다.", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "'모두 지우기' 코드 작업만 표시합니다(또는 유형이 하나뿐인 경우 '모두 지우기 ' 또는 문제가 하나만 있는 경우 '이것 지우기').", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "'모두 지우기' 코드 작업(여러 문제 유형이 있는 경우) 및 '모두 지우기 ' 코드 작업 표시(또는 에 대한 문제가 하나만 있는 경우 '이 항목 지우기')", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "'모두 지우기'(여러 문제 유형이 있는 경우), '모두 지우기 '(에 대해 여러 문제가 있는 경우) 및 '이 항목 지우기' 코드 작업 표시", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "`true`이면 '수정' 코드 동작에 의해 변경된 줄에서 서식이 실행됩니다.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "`true`인 경우 `#C_Cpp.codeAnalysis.runAutomatically#`가 `true`(기본값)인 경우 `clang-tidy`를 사용한 코드 분석이 사용하도록 설정되고 자동으로 실행됩니다.", "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` 실행 파일의 전체 경로입니다. 지정하지 않은 경우 `clang-tidy`를 환경 경로에서 사용할 수 있으면 해당 실행 파일이 사용됩니다. 환경 경로에 없는 경우에는 확장과 함께 제공된 `clang-tidy`가 사용됩니다.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "YAML/JSON 형식의 `clang-tidy` 구성을 지정합니다. `{Checks: '-*,clang-analyzer-*', CheckOptions: [{키: x, 값: y}]}`. 값이 비어 있으면 `clang-tidy`는 상위 디렉터리의 각 소스 파일에 대해 `.clang-tidy`라는 파일을 찾으려고 시도합니다.", @@ -187,6 +189,8 @@ "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "제외 필터는 발생한 모든 파일 및 폴더에 대해 평가됩니다.", "c_cpp.configuration.preferredPathSeparator.markdownDescription": "`#include` 자동 완성 결과의 경로 구분 기호로 사용되는 문자입니다.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "`true`인 경우 가리키기 및 자동 완성 도구 설명에 구조적 주석의 특정 레이블만 표시됩니다. 그렇지 않으면 모든 주석이 표시됩니다.", + "c_cpp.configuration.doxygen.generateOnType.description": "선택한 주석 스타일을 입력한 후 Doxygen 주석을 자동으로 삽입할지 여부를 제어합니다.", + "c_cpp.configuration.doxygen.generatedStyle.description": "Doxygen 주석의 시작 줄로 사용되는 문자 문자열입니다.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "여러 줄 또는 한 줄 주석 블록을 시작하는 패턴입니다. 기본적으로 여러 줄 주석 블록의 계속 패턴은 ` * `로 설정되고, 한 줄 주석 블록의 경우 이 문자열로 설정됩니다.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "여러 줄 또는 한 줄 주석 블록을 시작하는 패턴입니다.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "여러 줄 또는 한 줄 주석 블록 내부에서 키를 누를 때 다음 줄에 삽입할 텍스트입니다.", @@ -277,6 +281,7 @@ "c_cpp.debuggers.miDebuggerPath.description": "MI 디버거(예: gdb)의 경로입니다. 지정되지 않은 디버거 확장은 먼저 경로에서 디버거를 검색합니다.", "c_cpp.debuggers.miDebuggerArgs.description": "MI 디버거(예: gdb)의 추가 인수입니다.", "c_cpp.debuggers.miDebuggerServerAddress.description": "연결할 MI 디버거 서버의 네트워크 주소입니다(예: localhost:1234).", + "c_cpp.debuggers.useExtendedRemote.description": "대상 확장 원격 모드를 사용하여 MI 디버거 서버에 연결합니다.", "c_cpp.debuggers.stopAtEntry.description": "선택적 매개 변수입니다. True이면 디버거가 대상의 진입점에서 중지됩니다. processId가 전달되는 경우 영향을 주지 않습니다.", "c_cpp.debuggers.debugServerPath.description": "시작할 디버그 서버의 전체 경로입니다(선택 사항). 기본값은 null입니다. 이 옵션은 \"miDebugServerAddress\"와 함께 사용되거나 \"-target-select remote \"를 실행하는 \"customSetupCommand\"와 자체 서버와 함께 사용됩니다.", "c_cpp.debuggers.debugServerArgs.description": "선택적 디버그 서버 인수입니다. 기본값은 null입니다.", diff --git a/Extension/i18n/kor/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/kor/src/Debugger/attachToProcess.i18n.json index b3d9288472..7f73c5da24 100644 --- a/Extension/i18n/kor/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/kor/src/Debugger/attachToProcess.i18n.json @@ -4,9 +4,12 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "no.pipetransport": "선택한 디버그 구성에 {0}이(가) 포함되어 있지 않습니다.", + "debugger.path.and.server.address.required": "디버그 구성에서 {0}을 사용하려면 {1} 및 {2}이(가) 있어야 합니다.", + "no.pipetransport.useextendedremote": "선택한 디버그 구성에 {0} 또는 {1}이(가) 포함되어 있지 않습니다.", "select.process.attach": "연결할 프로세스 선택", "process.not.selected": "프로세스가 선택되지 않았습니다.", "pipe.failed": "파이프 전송이 OS 및 프로세스를 가져오지 못했습니다.", - "no.process.list": "전송 연결이 프로세스 목록을 가져올 수 없습니다." + "no.process.list": "전송 연결이 프로세스 목록을 가져올 수 없습니다.", + "failed.to.make.gdb.connection": "다음 GDB 연결을 만들지 못했습니다. \"{0}\"", + "failed.to.parse.processes": "다음 프로세스를 구문 분석하지 못했습니다. \"{0}\"" } \ No newline at end of file diff --git a/Extension/i18n/kor/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/kor/src/Debugger/configurationProvider.i18n.json index 55bb4c728f..c840f5b299 100644 --- a/Extension/i18n/kor/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/kor/src/Debugger/configurationProvider.i18n.json @@ -12,6 +12,7 @@ "lldb.framework.not.found": "lldb-mi에 대한 'LLDB.framework'를 찾을 수 없습니다. XCode 또는 XCode 명령줄 도구를 설치하세요.", "debugger.launchConfig": "시작 구성:", "vs.code.1.69+.required": "'deploySteps'에는 VS Code 1.69 이상이 필요합니다.", + "running.deploy.steps": "배포 단계 실행 중...", "pre.Launch.Task": "preLaunchTask: {0}", "build.and.debug.active.file": "활성 파일 빌드 및 디버그", "cl.exe.not.available": "{0} 빌드 및 디버그는 VS의 개발자 명령 프롬프트에서 VS Code를 실행하는 경우에만 사용할 수 있습니다.", diff --git a/Extension/i18n/kor/src/LanguageServer/extension.i18n.json b/Extension/i18n/kor/src/LanguageServer/extension.i18n.json index 5ac44ee56c..d58bf85cb5 100644 --- a/Extension/i18n/kor/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/kor/src/LanguageServer/extension.i18n.json @@ -6,6 +6,7 @@ { "learn.how.to.install.a.library": "vcpkg를 사용하여 이 헤더의 라이브러리를 설치하는 방법 알아보기", "copy.vcpkg.command": "'{0}'을(를) 설치할 vcpkg 명령을 클립보드에 복사", + "on.disabled.command": "IntelliSense 관련 명령은 `C_Cpp.intelliSenseEngine`이 `Disabled`로 설정된 경우 실행할 수 없습니다.", "client.not.found": "클라이언트를 찾을 수 없음", "configuration.select.first": "먼저 구성을 선택할 폴더 열기", "configuration.provider.select.first": "먼저 구성 공급자를 선택할 폴더 열기", diff --git a/Extension/i18n/kor/src/nativeStrings.i18n.json b/Extension/i18n/kor/src/nativeStrings.i18n.json index 8fb247ac7f..b3156f9374 100644 --- a/Extension/i18n/kor/src/nativeStrings.i18n.json +++ b/Extension/i18n/kor/src/nativeStrings.i18n.json @@ -221,5 +221,6 @@ "folder_tag": "폴더", "file_tag": "파일", "compiler_default_language_standard_version_old": "컴파일러가 기본 언어 표준 버전 {0}을(를) 반환했습니다. 이 버전은 이전 버전이므로 새 버전 {1}을(를) 기본으로 사용하려고 합니다.", - "unexpected_output_from_clang_tidy": "clang-tidy에서 예기치 않은 출력: {0}. 예상: {1}." + "unexpected_output_from_clang_tidy": "clang-tidy에서 예기치 않은 출력: {0}. 예상: {1}.", + "generate_doxygen_comment": "Doxygen 주석 생성" } \ No newline at end of file diff --git a/Extension/i18n/plk/Reinstalling the Extension.md.i18n.json b/Extension/i18n/plk/Reinstalling the Extension.md.i18n.json index 8f63c8a193..bf6faeeda7 100644 --- a/Extension/i18n/plk/Reinstalling the Extension.md.i18n.json +++ b/Extension/i18n/plk/Reinstalling the Extension.md.i18n.json @@ -10,7 +10,7 @@ "bug.report.link.title": "Zgłoś problem", "reinstalling.extension.heading": "Ponowne instalowanie rozszerzenia C/C++", "reinstall.extension.text1": "Podczas ponownego instalowania równoważnej wersji rozszerzenia, program VS Code może ponownie użyć istniejącego katalogu rozszerzeń. Aby temu zapobiec, podczas ponownej instalacji rozszerzenia C/C++, może być konieczne wstępne usunięcie istniejącego katalogu rozszerzeń.", - "reinstall.extension.text2": "Zainstalowane katalogi rozszerzeń można znaleźć w jednej z następujących ścieżek w katalogu użytkownika („%USERPROFILE%“ w systemie Windows lub „$HOME“ w systemach Linux i MacOS)", + "reinstall.extension.text2": "Zainstalowane katalogi rozszerzeń można znaleźć w jednej z następujących ścieżek w katalogu użytkownika („%USERPROFILE%“ w systemie Windows lub „$HOME“ w systemach Linux i macOS)", "reinstall.extension.text3": "W połączeniu zdalnym:", "reinstall.extension.text4": "Przykładowe ścieżki do zainstalowanych katalogów rozszerzeń C/C++:", "reinstall.extension.text5": "W systemie Windows:", diff --git a/Extension/i18n/plk/package.i18n.json b/Extension/i18n/plk/package.i18n.json index 15659bafe2..c97b0ba35c 100644 --- a/Extension/i18n/plk/package.i18n.json +++ b/Extension/i18n/plk/package.i18n.json @@ -33,6 +33,7 @@ "c_cpp.command.BuildAndDebugFile.title": "Debuguj plik C/C++", "c_cpp.command.BuildAndRunFile.title": "Uruchom plik C/C++", "c_cpp.command.AddDebugConfiguration.title": "Dodaj konfigurację debugowania", + "c_cpp.command.GenerateDoxygenComment.title": "Generuj komentarz Doxygen", "c_cpp.configuration.maxConcurrentThreads.markdownDescription": "Maksymalna liczba współbieżnych wątków do użycia na potrzeby przetwarzania usług językowych. Wartość jest wskazówką i nie zawsze może być używana. Wartość domyślna `null` (pusta) używa liczby dostępnych procesorów logicznych.", "c_cpp.configuration.maxCachedProcesses.markdownDescription": "Maksymalna liczba buforowanych procesów do użycia na potrzeby przetwarzania usług językowych. Wartość domyślna `null` (pusta) używa podwójnej liczby dostępnych procesorów logicznych.", "c_cpp.configuration.maxMemory.markdownDescription": "Maksymalna ilość pamięci (w MB) dostępna na potrzeby przetwarzania usług językowych. Mniej procesów będzie buforowanych i uruchamianych współbieżnie po przekroczeniu tego użycia pamięci. Wartość domyślna `null` (pusta) używa wolnej pamięci systemu.", @@ -55,6 +56,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "Pokaż tylko działanie kodu „Wyczyść wszystko” (lub pozycję „Wyczyść wszystkie ”, jeśli istnieje tylko jeden typ, lub pozycję \"Wyczyść to\", jeśli występuje tylko jeden problem).", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "Pokaż działanie kodu „Wyczyść wszystko” (jeśli istnieje wiele typów problemów) i akcję kodu „Wyczyść wszystkie ” (lub pozycję „Wyczyść to”, jeśli istnieje tylko jeden problem z )", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Pokaż polecenie „Wyczyść wszystko” (jeśli istnieje wiele typów problemów), „Wyczyść wszystkie ” (jeśli istnieje wiele problemów dotyczących ), a także działanie kodu „Wyczyść to”", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "W przypadku wartości `true` formatowanie będzie uruchamiane w wierszach zmienionych przez akcje kodu „Rozwiąż”.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "W przypadku wartości `true` analiza kodu przy użyciu elementu `clang-tidy` zostanie włączona i będzie uruchamiana automatycznie, jeśli parametr `#C_Cpp.codeAnalysis.runAutomatically#` ma wartość `true` (wartość domyślna).", "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Pełna ścieżka pliku wykonywalnego `clang-tidy`. Jeśli nie zostanie określony, a element `clang-tidy` jest dostępny w ścieżce środowiska, jest używany. Jeśli ścieżka środowiska nie zostanie znaleziona, zostanie użyty element `clang-tidy` w pakiecie z rozszerzeniem.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Określa konfigurację `clang-tidy` w formacie YAML/JSON: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{klucz: x, wartość: y}]}`. Gdy wartość jest pusta, element `clang-tidy` podejmie próbę znalezienia pliku o nazwie `clang-tidy` dla każdego pliku źródłowego w jego katalogach nadrzędnych.", @@ -187,6 +189,8 @@ "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Filtry wykluczeń będą oceniane w stosunku do każdego napotkanego pliku lub folderu.", "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Znak używany jako separator ścieżki na potrzeby wyników automatycznego uzupełniania dyrektywy `#include`.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "W przypadku wartości `true` etykietki narzędzi najechania kursorem oraz automatycznego uzupełniania będą wyświetlać tylko określone etykiety komentarzy ze strukturą. W przeciwnym razie wyświetlane będą wszystkie komentarze.", + "c_cpp.configuration.doxygen.generateOnType.description": "Określa, czy komentarz Doxygen ma być wstawiany automatycznie po wpisaniu wybranego stylu komentarza.", + "c_cpp.configuration.doxygen.generatedStyle.description": "Ciąg znaków używany jako wiersz początkowy komentarza Doxygen.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "Wzorzec, który rozpoczyna wielowierszowy lub jednowierszowy blok komentarza. Wartość domyślna wzorca kontynuacji to ` * ` w przypadku wielowierszowych bloków komentarzy lub ten ciąg w przypadku jednowierszowych bloków komentarza.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "Wzorzec, który rozpoczyna wielowierszowy lub jednowierszowy blok komentarza.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "Tekst, który będzie wstawiany w następnym wierszu po naciśnięciu klawisza Enter w wielowierszowym lub jednowierszowym bloku komentarza.", @@ -224,9 +228,9 @@ "c_cpp.configuration.codeFolding.description": "Jeśli ta opcja jest włączona, zakresy składania kodu są dostarczane przez serwer języka.", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "Włącz usługi integracji dla elementu [vcpkg dependency manager](https://aka.ms/vcpkg/).", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Dodaj ścieżki dołączania z plików `nan` i `node-addon-api`, jeśli są one zależnościami.", - "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Jeśli ma wartość `true`, element „Rename Symbol” będzie wymagać prawidłowego identyfikatora C/C++.", + "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Jeśli ma wartość `true`, element „Symbol zmiany nazwy” będzie wymagać prawidłowego identyfikatora C/C++.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Jeśli ma wartość `true`, autouzupełnianie będzie automatycznie dodawać znak `(` po wywołaniach funkcji, a w niektórych przypadkach może również dodawać znak `)`, zależnie od ustawienia `#editor.autoClosingBrackets#`.", - "c_cpp.configuration.filesExclude.markdownDescription": "Skonfiguruj wzorce globalne na potrzeby wykluczania folderów (i plików w przypadku zmiany elementu `#C_Cpp.exclusionPolicy#`). Są one specyficzne dla rozszerzenia języka C/C++ i są dodatkiem do elementu „#files.exclude#”, ale w przeciwieństwie do tego elementu mają również zastosowanie do ścieżek spoza bieżącego folderu obszaru roboczego i nie są usuwane z widoku Eksploratora. Przeczytaj więcej o wzorcach globalnych [tutaj](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", + "c_cpp.configuration.filesExclude.markdownDescription": "Skonfiguruj wzorce globalne na potrzeby wykluczania folderów (i plików w przypadku zmiany elementu `#C_Cpp.exclusionPolicy#`). Są one specyficzne dla rozszerzenia języka C/C++ i są dodatkiem do elementu `#files.exclude#`, ale w przeciwieństwie do tego elementu mają również zastosowanie do ścieżek spoza bieżącego folderu obszaru roboczego i nie są usuwane z widoku Eksploratora. Przeczytaj więcej o wzorcach globalnych [tutaj](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "Wzorzec globalny do dopasowywania ścieżek do plików. Aby włączyć lub wyłączyć wzorzec, ustaw na wartość `true` lub `false`.", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "Dodatkowe sprawdzenie elementów równorzędnych pasującego pliku. Użyj ciągu `$(basename)` jako zmiennej dla nazwy pasującego pliku.", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "Jeśli `true`, to podstawianie komend powłoki debuggera będzie używało przestarzałego backticka ``(`)``.", @@ -277,6 +281,7 @@ "c_cpp.debuggers.miDebuggerPath.description": "Ścieżka do debugera MI (takiego jak gdb). Jeśli nie jest podana, najpierw zostanie przeszukana ścieżka debugera.", "c_cpp.debuggers.miDebuggerArgs.description": "Dodatkowe argumenty dla debugera MI (takiego jak gdb).", "c_cpp.debuggers.miDebuggerServerAddress.description": "Adres sieciowy serwera debugera MI, z którym ma zostać nawiązane połączenie (przykład: localhost:1234).", + "c_cpp.debuggers.useExtendedRemote.description": "Połącz się z wystąpieniem zarządzanym serwera debugera za pomocą docelowego rozszerzonego trybu zdalnego.", "c_cpp.debuggers.stopAtEntry.description": "Parametr opcjonalny. Jeśli wartość to true, debuger powinien zostać zatrzymany w punkcie wejścia obiektu docelowego. W przypadku przekazania identyfikatora procesu parametr ten nie ma żadnego efektu.", "c_cpp.debuggers.debugServerPath.description": "Opcjonalna pełna ścieżka do serwera debugowania, który ma zostać uruchomiony. Wartość domyślna to null. Jest ona używana w połączeniu z właściwością \"miDebugServerAddress\" lub Twoim własnym serwerem wraz z poleceniem \"customSetupCommand\", które uruchamia polecenie \"-target-select remote \".", "c_cpp.debuggers.debugServerArgs.description": "Opcjonalne argumenty serwera debugowania. Wartość domyślna to null.", diff --git a/Extension/i18n/plk/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/plk/src/Debugger/attachToProcess.i18n.json index e830cc4ea4..2c5c46ae2d 100644 --- a/Extension/i18n/plk/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/plk/src/Debugger/attachToProcess.i18n.json @@ -4,9 +4,12 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "no.pipetransport": "Wybrana konfiguracja debugowania nie zawiera elementu {0}", + "debugger.path.and.server.address.required": "{0} w konfiguracji debugowania wymaga {1} i {2}", + "no.pipetransport.useextendedremote": "Wybrana konfiguracja debugowania nie zawiera elementu {0} lub {1}", "select.process.attach": "Wybierz docelowy proces dołączania", "process.not.selected": "Nie wybrano procesu.", "pipe.failed": "Transport potokowy nie może pobrać systemu operacyjnego i procesów.", - "no.process.list": "Dołączanie transportu nie mogło uzyskać listy procesów." + "no.process.list": "Dołączanie transportu nie mogło uzyskać listy procesów.", + "failed.to.make.gdb.connection": "Nie można nawiązać połączenia GDB: „{0}”.", + "failed.to.parse.processes": "Nie można przeanalizować procesów: „{0}”." } \ No newline at end of file diff --git a/Extension/i18n/plk/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/plk/src/Debugger/configurationProvider.i18n.json index 95918cc7f5..7517ea503a 100644 --- a/Extension/i18n/plk/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/plk/src/Debugger/configurationProvider.i18n.json @@ -12,6 +12,7 @@ "lldb.framework.not.found": "Nie można zlokalizować elementu „LLDB.framework” dla narzędzia lldb-mi. Zainstaluj środowisko XCode lub narzędzia wiersza polecenia środowiska XCode.", "debugger.launchConfig": "Konfiguracja uruchamiania:", "vs.code.1.69+.required": "Instrukcja „deploySteps” wymaga edytora VS Code 1.69 lub nowszego.", + "running.deploy.steps": "Trwa uruchamianie kroków wdrażania...", "pre.Launch.Task": "preLaunchTask: {0}", "build.and.debug.active.file": "Kompiluj i debuguj aktywny plik", "cl.exe.not.available": "{0} — funkcji kompilacji i debugowania można używać tylko wtedy, gdy program VS Code został uruchomiony z wiersza polecenia dla deweloperów w programie VS.", diff --git a/Extension/i18n/plk/src/LanguageServer/extension.i18n.json b/Extension/i18n/plk/src/LanguageServer/extension.i18n.json index 43596db198..a5ce146b32 100644 --- a/Extension/i18n/plk/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/plk/src/LanguageServer/extension.i18n.json @@ -6,6 +6,7 @@ { "learn.how.to.install.a.library": "Dowiedz się, jak zainstalować bibliotekę dla tego nagłówka przy użyciu menedżera vcpkg", "copy.vcpkg.command": "Skopiuj polecenie vcpkg, aby zainstalować element „{0}” w schowku", + "on.disabled.command": "Nie można wykonywać poleceń związanych z funkcją IntelliSense, gdy właściwość `C_Cpp.intelliSenseEngine` ma wartość `Disabled`.", "client.not.found": "nie znaleziono klienta", "configuration.select.first": "Otwórz najpierw folder, aby wybrać konfigurację", "configuration.provider.select.first": "Otwórz najpierw folder, aby wybrać dostawcę konfiguracji", diff --git a/Extension/i18n/plk/src/LanguageServer/settings.i18n.json b/Extension/i18n/plk/src/LanguageServer/settings.i18n.json index 0a6d227e34..3dc140ce11 100644 --- a/Extension/i18n/plk/src/LanguageServer/settings.i18n.json +++ b/Extension/i18n/plk/src/LanguageServer/settings.i18n.json @@ -4,5 +4,5 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "editorconfig.default.behavior": "Formatowanie kodu używa ustawień z pliku .editorconfig zamiast .clang-format. Aby uzyskać więcej informacji, zobacz dokumentację dotyczącą wartości 'Default' ustawienia „C_Cpp.formatting”." + "editorconfig.default.behavior": "Formatowanie kodu używa ustawień z pliku .editorconfig zamiast .clang-format. Aby uzyskać więcej informacji, zobacz dokumentację dotyczącą wartości „Default” ustawienia „C_Cpp.formatting”." } \ No newline at end of file diff --git a/Extension/i18n/plk/src/nativeStrings.i18n.json b/Extension/i18n/plk/src/nativeStrings.i18n.json index 129a8a71e2..47db5561a9 100644 --- a/Extension/i18n/plk/src/nativeStrings.i18n.json +++ b/Extension/i18n/plk/src/nativeStrings.i18n.json @@ -221,5 +221,6 @@ "folder_tag": "Folder", "file_tag": "Plik", "compiler_default_language_standard_version_old": "Kompilator zwrócił domyślną wersję standardową języka: {0}. Ponieważ ta wersja jest stara, spróbuje użyć nowszej wersji {1} jako domyślnej.", - "unexpected_output_from_clang_tidy": "Nieoczekiwane dane wyjściowe z narzędzia Clang-Tidy: {0}. Oczekiwano: {1}." + "unexpected_output_from_clang_tidy": "Nieoczekiwane dane wyjściowe z narzędzia Clang-Tidy: {0}. Oczekiwano: {1}.", + "generate_doxygen_comment": "Generuj komentarz Doxygen" } \ No newline at end of file diff --git a/Extension/i18n/ptb/package.i18n.json b/Extension/i18n/ptb/package.i18n.json index 71f4e1b9ac..08515a1226 100644 --- a/Extension/i18n/ptb/package.i18n.json +++ b/Extension/i18n/ptb/package.i18n.json @@ -33,6 +33,7 @@ "c_cpp.command.BuildAndDebugFile.title": "Depurar Arquivo C/C++", "c_cpp.command.BuildAndRunFile.title": "Executar Arquivo C/C++", "c_cpp.command.AddDebugConfiguration.title": "Adicionar a Configuração de Depuração", + "c_cpp.command.GenerateDoxygenComment.title": "Gerar Comentário do Doxygen", "c_cpp.configuration.maxConcurrentThreads.markdownDescription": "O número máximo de threads simultâneos a serem usado para processamento de serviço de linguagem. O valor é uma dica e nem sempre pode ser usado. O padrão de `null` (vazio) usa o número de processadores lógicos disponíveis.", "c_cpp.configuration.maxCachedProcesses.markdownDescription": "O número máximo de processos armazenados em cache a serem usado para o processamento do serviço de linguagem. O padrão `null` (vazio) usa duas vezes o número de processadores lógicos disponíveis.", "c_cpp.configuration.maxMemory.markdownDescription": "A memória máxima (em MB) disponível para processamento do serviço de idioma. Menos processos serão armazenados em cache e executados simultaneamente depois que esse uso de memória for excedido. O padrão `null` (vazio) usa a memória livre do sistema.", @@ -55,14 +56,15 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "Mostrar apenas a ação de código 'Limpar tudo' (ou 'Limpar todos ' se houver apenas um tipo ou 'Limpar isso' se houver apenas um problema).", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "Mostrar a ação de código 'Limpar tudo' (se houver vários tipos de problema) e a ação de código 'Limpar tudo ' código de ação (ou 'Limpar isso' se houver apenas um problema para o )", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Mostrar 'Limpar tudo' (se houver vários tipos de problema), 'Limpar todos os ' (se houver vários problemas para o ), e 'Limpar isso' para código de ações", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "Se for `true`, a formatação será executada nas linhas alteradas pelas ações de código 'Corrigir'.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "Se for `true`, a análise de código usando `clang-tidy` será habilitada e executada automaticamente se `#C_Cpp.codeAnalysis.runAutomatically#` for `true` (o padrão).", "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "O caminho completo do executável `clang-tidy`. Se não for especificado, o `clang-tidy` estará disponível no caminho do ambiente usado. Se não for encontrado no caminho do ambiente, o `clang-tidy` empacotado com a extensão será usado.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Especifica uma configuração `clang-tidy` no formato YAML/JSON: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{chave: x, valor: y}]}`. Quando o valor estiver vazio, `clang-tidy` tentará localizar um arquivo chamado `.clang-tidy` para cada arquivo de origem em seus diretórios pai.", "c_cpp.configuration.codeAnalysis.clangTidy.fallbackConfig.markdownDescription": "Especifica uma configuração `clang-tidy` no formato YAML/JSON a ser usada como fallback quando `#C_Cpp.codeAnalysis.clangTidy.config#` não estiver definido e nenhum arquivo `.clang-tidy` for encontrado: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{chave: x, valor: y}]}`.", "c_cpp.configuration.codeAnalysis.clangTidy.headerFilter.markdownDescription": "Uma expressão regular estendida (ERE) que corresponde ao nome do cabeçalho a partir do qual o diagnóstico deve ser gerado. Os diagnósticos do arquivo principal de cada unidade de tradução são sempre exibidos. A variável `${workspaceFolder}` é suportada (e será usada como o valor de fallback padrão se o arquivo `.clang-tidy` não existir). Se esta opção não for `null` (vazia), ela substituirá a opção `HeaderFilterRegex` em um arquivo `.clang-tidy`, se houver.", "c_cpp.configuration.codeAnalysis.clangTidy.args.markdownDescription": "Argumentos de linha de comando adicionais a serem passados para `clang-tidy`. Elas têm precedência sobre as configurações `C_Cpp.codeAnalysis.clangTidy.*` equivalentes.", - "c_cpp.configuration.codeAnalysis.clangTidy.useBuildPath.markdownDescription": "Se `true` e `compileCommands` estiver definido, o argumento `-p=` será passado para `clang-tidy` em vez dos argumentos de compilação que estão sendo passados após `--`. Isso pode não funcionar se as variáveis de ambiente não estão definidas para que as insições do sistema possam ser encontradas.", - "c_cpp.configuration.codeAnalysis.clangTidy.checks.enabled.markdownDescription": "Lista de verificações `clang-tidy` habilitadas. Os valores são acrescentados às `Checks` em um arquivo `.clang-tidy` ou `#C_Cpp.codeAnalysis.clangTidy.config#`, se houver. A verificação padrão `clang-analyzer-*` é sempre usada, a menos que seja explicitamente desabilitada.", + "c_cpp.configuration.codeAnalysis.clangTidy.useBuildPath.markdownDescription": "Se `true` e `compileCommands` estiver definido, o argumento `-p=` será passado para `clang-tidy` em vez dos argumentos de compilação que estão sendo passados após `--`. Isso pode não funcionar se as variáveis de ambiente não estão definidas para que as inscrições do sistema possam ser encontradas.", + "c_cpp.configuration.codeAnalysis.clangTidy.checks.enabled.markdownDescription": "Lista de verificações `clang-tidy` habilitadas. Os valores são acrescentados às `Checks` em um arquivo `.clang-tidy` ou\n`#C_Cpp.codeAnalysis.clangTidy.config#`, se houver. A verificação padrão `clang-analyzer-*` é sempre usada, a menos que seja explicitamente desabilitada.", "c_cpp.configuration.codeAnalysis.clangTidy.checks.disabled.markdownDescription": "Lista de verificações `clang-tidy` desabilitadas. Os valores são acrescentados às `Checks` em um arquivo `.clang-tidy` ou `#C_Cpp.codeAnalysis.clangTidy.config#`, se houver.", "c_cpp.configuration.formatting.description": "Configura o mecanismo de formatação.", "c_cpp.configuration.formatting.clangFormat.markdownDescription": "`clang-format` será usado para formatar o código.", @@ -156,7 +158,7 @@ "c_cpp.configuration.vcFormat.wrap.preserveBlocks.never.markdownDescription": "Os blocos de código são sempre formatados com base nos valores das configurações `C_Cpp.vcFormat.newLine. *`.", "c_cpp.configuration.clang_format_path.markdownDescription": "O caminho completo do executável `clang-format`. Se não for especificado, o `clang-format` estará disponível no caminho do ambiente usado. Se não for encontrado no caminho do ambiente, o `clang-format` empacotado com a extensão será usado.", "c_cpp.configuration.clang_format_style.markdownDescription": "Estilo de codificação, atualmente suporta: `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`. Use `file` para carregar o estilo de um arquivo `.clang-format` no diretório atual ou pai. Use `{key: value, ...}` para definir parâmetros específicos. Por exemplo, o estilo `Visual Studio` é semelhante a: `{BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifier: - 4, NamespaceIndentation: All, FixNamespaceComments: false}`.", - "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "Nome do estilo predefinido usado como fallback no caso de `clang-format` ser invocado com o estilo `file`, mas o arquivo `.clang-format` não for encontrado. Os valores possíveis são `Visual Studio`, `LLVM`, `Google`, `Chromium`, `Mozilla`, `WebKit`, `Microsoft`, `GNU`, `none` ou use `{key: value, .. .}` para definir parâmetros específicos. Por exemplo, o estilo `Visual Studio` é semelhante a:`{BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifier: - 4, NamespaceIndentation: All, FixNamespaceComments: false}`.", + "c_cpp.configuration.clang_format_fallbackStyle.markdownDescription": "Nome do estilo predefinido usado como fallback no caso de `clang-format` ser invocado com o estilo `file`, mas o arquivo `.clang-format` não for encontrado. Os valores possíveis são `Visual Studio`,`LLVM`, `Google`,`Chromium`, `Mozilla`,`WebKit`, `Microsoft`, `GNU`, `none` ou use `{key: value, .. .}` para definir parâmetros específicos. Por exemplo, o estilo `Visual Studio` é semelhante a: `{BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 4, TabWidth: 4, BreakBeforeBraces: Allman, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: false, ColumnLimit: 0, AccessModifier: - 4, NamespaceIndentation: All, FixNamespaceComments: false}`.", "c_cpp.configuration.clang_format_sortIncludes.markdownDescription": "Se definido, substitui o comportamento de classificação de inclusão determinado pelo parâmetro `SortIncludes`.", "c_cpp.configuration.intelliSenseEngine.description": "Controla o provedor IntelliSense.", "c_cpp.configuration.intelliSenseEngine.default.description": "Fornece resultados baseados no contextopor meio de um processo IntelliSense separado.", @@ -187,18 +189,20 @@ "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Os filtros de exclusão serão avaliados em relação a todos os arquivos e pastas encontrados.", "c_cpp.configuration.preferredPathSeparator.markdownDescription": "O caractere usado como separador de caminho para resultados de preenchimento automático de #include.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "Se for `true`, as dicas de passar o mouse e autocompletar exibirão apenas alguns rótulos de comentários estruturados. Caso contrário, todos os comentários serão exibidos.", + "c_cpp.configuration.doxygen.generateOnType.description": "Controle se o comentário Doxygen deve ser inserido automaticamente depois de digitar o estilo de comentário escolhido.", + "c_cpp.configuration.doxygen.generatedStyle.description": "A cadeia de caracteres usada como a linha inicial do comentário Doxygen.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "O padrão que inicia um bloco de comentário de várias linhas ou de uma linha. O padrão de continuação é `*` para blocos de comentários de várias linhas ou esta cadeia de caracteres para blocos de comentários de uma única linha.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "O padrão que inicia um bloco de comentário de linha única ou de várias linhas.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "O texto que será inserido na próxima linha quando Enter for pressionado dentro de um bloco de comentário de linha única ou de várias linhas.", "c_cpp.configuration.commentContinuationPatterns.description": "Define o comportamento do editor para quando a tecla Enter é pressionada dentro de um bloco de comentário de linha única ou de várias linhas.", "c_cpp.configuration.configurationWarnings.description": "Determina se as notificações pop-up serão mostradas quando uma extensão do provedor de configuração não puder fornecer uma configuração para um arquivo de origem.", - "c_cpp.configuration.intelliSenseCachePath.markdownDescription": "Define o caminho da pasta para cabeçalhos pré-compilados em cache usados ​​pelo IntelliSense. O caminho de cache padrão é `%LocalAppData%/Microsoft/vscode-cpptools` no Windows, `$XDG_CACHE_HOME/vscode-cpptools/` no Linux (ou `$HOME/.cache/vscode-cpptools/` se `XDG_CACHE_HOME` não é definido) e `$HOME/Library/Caches/vscode-cpptools/` no macOS. O caminho padrão será usado se nenhum caminho for especificado ou se um caminho especificado for inválido.", + "c_cpp.configuration.intelliSenseCachePath.markdownDescription": "Define o caminho da pasta para cabeçalhos pré-compilados em cache usados ​​pelo IntelliSense. O caminho de cache padrão é `%LocalAppData%/Microsoft/vscode-cpptools` no Windows,`$XDG_CACHE_HOME/vscode-cpptools/` no Linux (ou `$HOME/.cache/vscode-cpptools/` se`XDG_CACHE_HOME` não é definido) e `$HOME/Library/Caches/vscode-cpptools/` no macOS. O caminho padrão será usado se nenhum caminho for especificado ou se um caminho especificado for inválido.", "c_cpp.configuration.intelliSenseCacheSize.markdownDescription": "Tamanho máximo do espaço do disco rígido por espaço de trabalho em megabytes (MB) para cabeçalhos pré-compilados em cache; o uso real pode oscilar em torno desse valor. O tamanho padrão é `5120` MB. O cache de cabeçalho pré-compilado é desabilitado quando o tamanho é `0`.", "c_cpp.configuration.intelliSenseMemoryLimit.markdownDescription": "Limite de uso de memória em megabytes (MB) de um processo IntelliSense. O padrão é `4096` e o máximo é `16384`. A extensão será desligada e reiniciada um processo IntelliSense quando ele exceder o limite.", "c_cpp.configuration.intelliSenseUpdateDelay.description": "Controla o atraso em milissegundos até que o IntelliSense comece a ser atualizado após uma modificação.", "c_cpp.configuration.default.includePath.markdownDescription": "O valor a ser usado em uma configuração se `includePath` não for especificado em `c_cpp_properties.json`. Se `includePath` for especificado, adicione `${default}` ao array para inserir os valores desta configuração. Normalmente, isso não deve incluir inclusões de sistema; em vez disso, defina `#C_Cpp.default.compilerPath#`.", "c_cpp.configuration.default.defines.markdownDescription": "O valor a ser usado em uma configuração se `defines` não for especificado, ou os valores a serem inseridos se `${default}` estiver presente em `defines`.", - "c_cpp.configuration.default.macFrameworkPath.markdownDescription": "O valor a ser usado em uma configuração se `macFrameworkPath` não for especificado, ou os valores a serem inseridos se `${default}` estiver presente em `macFrameworkPath`.", + "c_cpp.configuration.default.macFrameworkPath.markdownDescription": "O valor a ser usado em uma configuração se `macFrameworkPath` não for especificado, ou os valores a serem inseridos se `${default}`estiver presente em `macFrameworkPath`.", "c_cpp.configuration.default.windowsSdkVersion.markdownDescription": "A versão do SDK do Windows inclui o caminho a ser usado no Windows, por exemplo, `10.0.17134.0`.", "c_cpp.configuration.default.compileCommands.markdownDescription": "O valor a ser usado em uma configuração se `compileCommands` não for especificado ou definido como `${default}`.", "c_cpp.configuration.default.forcedInclude.markdownDescription": "O valor a usar em uma configuração se `forcedInclude` não for especificado, ou os valores a inserir se `${default}` estiver presente em `forcedInclude`.", @@ -224,7 +228,7 @@ "c_cpp.configuration.codeFolding.description": "Se habilitado, os intervalos de dobramento de código serão fornecidos pelo servidor de idiomas.", "c_cpp.configuration.vcpkg.enabled.markdownDescription": "Habilitar os serviços de integração para o [gerenciador de dependências vcpkg](https://aka.ms/vcpkg/).", "c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Adicione caminhos de inclusão de `nan` e `node-addon-api` quando forem dependências.", - "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Se `true`, 'Rename Symbol' exigirá um identificador C/C++ válido.", + "c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Se `true`, 'Renomear Símbolo' exigirá um identificador C/C++ válido.", "c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Se `true`, autocomplete adicionará automaticamente `(` após chamadas de função, neste caso `)` também pode ser adicionado, dependendo do valor da configuração `#editor.autoClosingBrackets#`.", "c_cpp.configuration.filesExclude.markdownDescription": "Configure os padrões glob para excluir pastas (e arquivos se `#C_Cpp.exclusionPolicy#` for alterado). Eles são específicos para a extensão C/C++ e são adicionais a `#files.exclude#`, mas ao contrário de `#files.exclude#` eles também se aplicam a caminhos fora da pasta do espaço de trabalho atual e não são removidos da visualização do Explorer. Leia mais sobre padrões glob [aqui](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "O padrão glob para corresponder aos caminhos de arquivo. Defina como `true` ou `false` para habilitar ou desabilitar o padrão.", @@ -277,6 +281,7 @@ "c_cpp.debuggers.miDebuggerPath.description": "O caminho para o depurador de MI (como o gdb). Quando não for especificado, ele pesquisará primeiro o caminho para o depurador.", "c_cpp.debuggers.miDebuggerArgs.description": "Argumentos adicionais para o depurador MI (como o gdb).", "c_cpp.debuggers.miDebuggerServerAddress.description": "Endereço de rede do Servidor de Depurador MI ao qual se conectar (exemplo: localhost:1234).", + "c_cpp.debuggers.useExtendedRemote.description": "Conecte-se ao MI Debugger Server com o modo remoto estendido de destino.", "c_cpp.debuggers.stopAtEntry.description": "Parâmetro opcional. Se for true, o depurador deverá parar no ponto de entrada do destino. Se processId for passado, não terá efeito.", "c_cpp.debuggers.debugServerPath.description": "Caminho completo opcional para o servidor de depuração a ser lançado. O padrão é nulo. É usado em conjunto com \"miDebugServerAddress\" ou seu próprio servidor com um \"customSetupCommand\" que executa \"-target-select remote \".", "c_cpp.debuggers.debugServerArgs.description": "Args opcionais do servidor de depuração. O padrão é null.", diff --git a/Extension/i18n/ptb/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/ptb/src/Debugger/attachToProcess.i18n.json index 80b0453b7c..0ec97b1cd5 100644 --- a/Extension/i18n/ptb/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/ptb/src/Debugger/attachToProcess.i18n.json @@ -4,9 +4,12 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "no.pipetransport": "A configuração de depuração escolhida não contém {0}", + "debugger.path.and.server.address.required": "{0} na configuração de depuração requer {1} e {2}", + "no.pipetransport.useextendedremote": "A configuração de depuração escolhida não contém {0} ou {1}", "select.process.attach": "Selecione o processo ao qual anexar", "process.not.selected": "Processo não selecionado.", "pipe.failed": "O transporte de pipe falhou ao obter o SO e os processos.", - "no.process.list": "A anexação do transporte não pôde obter a lista de processos." + "no.process.list": "A anexação do transporte não pôde obter a lista de processos.", + "failed.to.make.gdb.connection": "Falha ao fazer conexão GDB: \"{0}\".", + "failed.to.parse.processes": "Falha ao analisar processos: \"{0}\"." } \ No newline at end of file diff --git a/Extension/i18n/ptb/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/ptb/src/Debugger/configurationProvider.i18n.json index 2c9cb58e48..312bdc8327 100644 --- a/Extension/i18n/ptb/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/ptb/src/Debugger/configurationProvider.i18n.json @@ -12,6 +12,7 @@ "lldb.framework.not.found": "Não é possível localizar 'LLDB.framework' para lldb-mi. Instale o XCode ou as Ferramentas de Linha de Comando do XCode.", "debugger.launchConfig": "Iniciar configuração:", "vs.code.1.69+.required": "'deploySteps' requer VS Code 1.69 ou superior.", + "running.deploy.steps": "Executando etapas de implantação...", "pre.Launch.Task": "preLaunchTask: {0}", "build.and.debug.active.file": "Compilar e depurar o arquivo ativo", "cl.exe.not.available": "A criação e a depuração de {0} só podem ser usadas quando o VS Code é executado por meio do Prompt de Comando do Desenvolvedor para VS.", diff --git a/Extension/i18n/ptb/src/LanguageServer/extension.i18n.json b/Extension/i18n/ptb/src/LanguageServer/extension.i18n.json index 013aa82479..bd054a55cf 100644 --- a/Extension/i18n/ptb/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/ptb/src/LanguageServer/extension.i18n.json @@ -6,6 +6,7 @@ { "learn.how.to.install.a.library": "Saiba como instalar uma biblioteca para este cabeçalho com vcpkg", "copy.vcpkg.command": "Copiar o comando vcpkg para instalar '{0}' para a área de transferência", + "on.disabled.command": "Comandos relacionados ao IntelliSense não podem ser executados quando `C_Cpp.intelliSenseEngine` está definido como `Disabled`.", "client.not.found": "o cliente não foi encontrado", "configuration.select.first": "Abrir uma pasta primeiro para selecionar uma configuração", "configuration.provider.select.first": "Abrir uma pasta primeiro para selecionar um provedor de configuração", diff --git a/Extension/i18n/ptb/src/nativeStrings.i18n.json b/Extension/i18n/ptb/src/nativeStrings.i18n.json index 12fcb922dc..e3f0b1e491 100644 --- a/Extension/i18n/ptb/src/nativeStrings.i18n.json +++ b/Extension/i18n/ptb/src/nativeStrings.i18n.json @@ -221,5 +221,6 @@ "folder_tag": "Pasta", "file_tag": "Arquivo", "compiler_default_language_standard_version_old": "O compilador retornou a versão padrão do idioma padrão: {0}. Como essa versão é antiga, tentaremos usar a versão {1} mais recente como padrão.", - "unexpected_output_from_clang_tidy": "Saída inesperada de clang-tidy: {0}. Esperado: {1}." + "unexpected_output_from_clang_tidy": "Saída inesperada de clang-tidy: {0}. Esperado: {1}.", + "generate_doxygen_comment": "Gerar Comentário do Doxygen" } \ No newline at end of file diff --git a/Extension/i18n/rus/package.i18n.json b/Extension/i18n/rus/package.i18n.json index dd9fe0e00b..1d2661f38a 100644 --- a/Extension/i18n/rus/package.i18n.json +++ b/Extension/i18n/rus/package.i18n.json @@ -33,6 +33,7 @@ "c_cpp.command.BuildAndDebugFile.title": "Выполнить отладку файла C/C++", "c_cpp.command.BuildAndRunFile.title": "Запустить файл C/C++", "c_cpp.command.AddDebugConfiguration.title": "Добавление конфигурации отладки", + "c_cpp.command.GenerateDoxygenComment.title": "Создать комментарий Doxygen", "c_cpp.configuration.maxConcurrentThreads.markdownDescription": "Максимальное число одновременных потоков, используемых для обработки задач языковой службы. Это значение является рекомендуемым и может использоваться не всегда. При заданном по умолчанию значении `null` (пусто) используется число доступных логических процессоров.", "c_cpp.configuration.maxCachedProcesses.markdownDescription": "Максимальное число кэшированных процессов, используемых для обработки задач языковой службы. При заданном по умолчанию значении `null` (пусто) используется число, вдвое большее количества доступных логических процессоров.", "c_cpp.configuration.maxMemory.markdownDescription": "Максимальный объем памяти (в МБ), доступный для обработки задач языковой службы. После превышения этого объема памяти будет кэшироваться и одновременно выполняться меньше процессов. При заданном по умолчанию значении `null` (пусто) используется свободная память системы.", @@ -55,6 +56,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "Отображение только действия кода \"Очистить все проблемы\", \"Очистить все проблемы типа <тип>\" (при единственном типе) или \"Очистить эту проблему\" (при единственной проблеме).", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "Отображение действия кода \"Очистить все проблемы\" (при множестве типов проблем), \"Очистить все проблемы типа <тип>\" или \"Очистить эту проблему\" (при единственной проблеме определенного <типа>).", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Отображение действий кода \"Очистить все проблемы\" (при множестве типов проблем), \"Очистить все проблемы типа <тип>\" (при множестве проблем определенного <типа>) и \"Очистить эту проблему\".", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "Если установлено значение `true`, форматирование будет выполняться в строках, измененных действиями кода \"Исправить\".", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "При значении `true` анализ кода с использованием `clang-tidy` будет включен, запускаясь автоматически при значении `true` (по умолчанию) для `#C_Cpp.codeAnalysis.runAutomatically#`.", "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "Полный путь к исполняемому файлу `clang-tidy`. Если значение не указано, а `clang-tidy` доступен в переменной среды PATH, используется именно он. Если `clang-tidy` не найден в переменной среды PATH, будет использоваться `clang-tidy`, связанный с расширением.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "Задает конфигурацию `clang-tidy` в формате YAML/JSON: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{ключ: x, значение: y}]}`. Если значение пусто, `clang-tidy` попытается найти файл с именем `.clang-tidy` для каждого исходного файла в его родительских каталогах.", @@ -187,6 +189,8 @@ "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Фильтры исключения будут вычисляться для каждого найденного файла и папки.", "c_cpp.configuration.preferredPathSeparator.markdownDescription": "Символ, используемый в качестве разделителя пути для результатов автозавершения `#include`.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "Если выбрано значение `true`, в подсказках при наведении указателя и автозавершении будут отображаться только определенные метки со структурированными комментариями. В противном случае отображаются все комментарии.", + "c_cpp.configuration.doxygen.generateOnType.description": "Определяет, следует ли автоматически вставлять комментарий Doxygen после ввода выбранного стиля комментария.", + "c_cpp.configuration.doxygen.generatedStyle.description": "Строка символов, используемая в качестве начальной строки комментария Doxygen.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "Шаблон, который начинается с многострочного или однострочного примечания. Шаблон продолжения по умолчанию имеет значение ` * ` для многострочных примечаний или соответствует этой строке для однострочных примечаний.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "Шаблон, который начинается с многострочного или однострочного примечания.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "Текст, который будет вставлен в следующую строку при нажатии клавиши ВВОД в многострочном или однострочном примечании.", @@ -277,6 +281,7 @@ "c_cpp.debuggers.miDebuggerPath.description": "Путь к отладчику MI (например, GDB). Если он не задан, сначала будет выполнен поиск пути для отладчика.", "c_cpp.debuggers.miDebuggerArgs.description": "Дополнительные аргументы для отладчика MI (например, GDB).", "c_cpp.debuggers.miDebuggerServerAddress.description": "Сетевой адрес сервера отладчика MI, к которому требуется подключиться (пример: localhost:1234).", + "c_cpp.debuggers.useExtendedRemote.description": "Подключение к серверу отладчика MI в целевом расширенном удаленном режиме.", "c_cpp.debuggers.stopAtEntry.description": "Необязательный параметр. Если задано значение true, отладчик должен остановиться на точке входа целевого объекта. Если передается идентификатор процесса (processId), он не оказывает никакого влияния.", "c_cpp.debuggers.debugServerPath.description": "Необязательный полный путь к запускаемому серверу отладки. Значение по умолчанию — NULL. Применяется с параметром miDebugServerAddress или с вашим собственным сервером через команду customSetupCommand, использующую -target-select remote .", "c_cpp.debuggers.debugServerArgs.description": "Необязательные аргументы сервера отладки. Значение по умолчанию: null.", diff --git a/Extension/i18n/rus/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/rus/src/Debugger/attachToProcess.i18n.json index 4cd1578d7a..69b3e064af 100644 --- a/Extension/i18n/rus/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/rus/src/Debugger/attachToProcess.i18n.json @@ -4,9 +4,12 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "no.pipetransport": "Выбранная конфигурация отладки не содержит {0}", + "debugger.path.and.server.address.required": "Для {0} в конфигурации отладки требуются {1} и {2}", + "no.pipetransport.useextendedremote": "Выбранная конфигурация отладки не содержит {0} или {1}", "select.process.attach": "Выберите процесс, к которому нужно выполнить подключение", "process.not.selected": "Процесс не выбран.", "pipe.failed": "Транспорту канала не удалось получить ОС и процессы.", - "no.process.list": "При подключении транспорта не удалось получить список процессов." + "no.process.list": "При подключении транспорта не удалось получить список процессов.", + "failed.to.make.gdb.connection": "Не удалось установить подключение GDB: \"{0}\".", + "failed.to.parse.processes": "Не удалось проанализировать процессы: \"{0}\"." } \ No newline at end of file diff --git a/Extension/i18n/rus/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/rus/src/Debugger/configurationProvider.i18n.json index 0d45d1ca95..393deb3ba7 100644 --- a/Extension/i18n/rus/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/rus/src/Debugger/configurationProvider.i18n.json @@ -12,6 +12,7 @@ "lldb.framework.not.found": "Не удается найти \"LLDB.framework\" для lldb-mi. Установите XCode или средства командной строки XCode.", "debugger.launchConfig": "Конфигурация запуска:", "vs.code.1.69+.required": "\"deploySteps\" требует VS Code 1.69+.", + "running.deploy.steps": "Выполнение действий развертывания...", "pre.Launch.Task": "ЗадачаПредварительногоЗапуска: {0}", "build.and.debug.active.file": "сборка и отладка активного файла", "cl.exe.not.available": "Сборку и отладку {0} можно использовать только при запуске VS Code из Командной строки разработчика для VS.", diff --git a/Extension/i18n/rus/src/LanguageServer/extension.i18n.json b/Extension/i18n/rus/src/LanguageServer/extension.i18n.json index c0589d52e0..1720099be1 100644 --- a/Extension/i18n/rus/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/rus/src/LanguageServer/extension.i18n.json @@ -6,6 +6,7 @@ { "learn.how.to.install.a.library": "Сведения об установке библиотеки для этого заголовка с помощью vcpkg", "copy.vcpkg.command": "Копировать команду vcpkg для установки \"{0}\" в буфер обмена", + "on.disabled.command": "Команды, связанные с IntelliSense, не могут быть выполнены, если для `C_Cpp.intelliSenseEngine` установлено значение `Disabled`.", "client.not.found": "Клиент не найден.", "configuration.select.first": "Сначала откройте папку, чтобы выбрать конфигурацию", "configuration.provider.select.first": "Сначала откройте папку, чтобы выбрать поставщик конфигурации", diff --git a/Extension/i18n/rus/src/LanguageServer/settings.i18n.json b/Extension/i18n/rus/src/LanguageServer/settings.i18n.json index fbb7b5f164..e4b9fbb8f8 100644 --- a/Extension/i18n/rus/src/LanguageServer/settings.i18n.json +++ b/Extension/i18n/rus/src/LanguageServer/settings.i18n.json @@ -4,5 +4,5 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "editorconfig.default.behavior": "Форматирование кода использует параметры из .editorconfig вместо .clang-format. Дополнительные сведения см. в документации, в которой приведено значение по умолчанию `Default` для параметра 'C_Cpp.formatting'." + "editorconfig.default.behavior": "Форматирование кода использует параметры из .editorconfig вместо .clang-format. Дополнительные сведения см. в документации, в которой приведено значение по умолчанию 'Default' для параметра 'C_Cpp.formatting'." } \ No newline at end of file diff --git a/Extension/i18n/rus/src/nativeStrings.i18n.json b/Extension/i18n/rus/src/nativeStrings.i18n.json index fbf06a3737..b046271b95 100644 --- a/Extension/i18n/rus/src/nativeStrings.i18n.json +++ b/Extension/i18n/rus/src/nativeStrings.i18n.json @@ -221,5 +221,6 @@ "folder_tag": "Папка", "file_tag": "Файл", "compiler_default_language_standard_version_old": "Компилятор вернул стандартную версию языка по умолчанию: {0}. Так как эта версия устарела, будет предпринята попытка использовать более новую версию {1} по умолчанию.", - "unexpected_output_from_clang_tidy": "Непредусмотренные выходные данные Clang-Tidy: {0}. Ожидалось: {1}." + "unexpected_output_from_clang_tidy": "Непредусмотренные выходные данные Clang-Tidy: {0}. Ожидалось: {1}.", + "generate_doxygen_comment": "Создать комментарий Doxygen" } \ No newline at end of file diff --git a/Extension/i18n/trk/package.i18n.json b/Extension/i18n/trk/package.i18n.json index 5aa673d32b..1e6f9613b5 100644 --- a/Extension/i18n/trk/package.i18n.json +++ b/Extension/i18n/trk/package.i18n.json @@ -33,6 +33,7 @@ "c_cpp.command.BuildAndDebugFile.title": "C/C++ Dosyasında Hata Ayıklama", "c_cpp.command.BuildAndRunFile.title": "C/C++ Dosyasını Çalıştırın", "c_cpp.command.AddDebugConfiguration.title": "Hata Ayıklama Yapılandırması Ekle", + "c_cpp.command.GenerateDoxygenComment.title": "Doxygen Açıklaması Oluştur", "c_cpp.configuration.maxConcurrentThreads.markdownDescription": "Dil hizmeti işleme için kullanılacak maksimum eşzamanlı iş parçacığı sayısı. Değer bir ipucudur ve her zaman kullanılamaz. `null` (boş) varsayılanı, mevcut mantıksal işlemcilerin sayısını kullanır.", "c_cpp.configuration.maxCachedProcesses.markdownDescription": "Dil hizmeti işleme için kullanılacak önbelleğe alınmış maksimum işlem sayısı. Varsayılan `null` (boş) değeri kullanılabilir mantıksal işlemci sayısının iki katını kullanıyor.", "c_cpp.configuration.maxMemory.markdownDescription": "Dil hizmeti işleme için kullanılabilen maksimum bellek (MB cinsinden). Bu bellek kullanımı aşıldıktan sonra daha az işlem önbelleğe alınacak ve eşzamanlı olarak çalıştırılacaktır. Varsayılan `null` (boş) sistemin boş belleğini kullanır.", @@ -48,13 +49,14 @@ "c_cpp.configuration.codeAnalysis.excludeBoolean.markdownDescription": "Dosya yollarıyla eşleşecek glob deseni. Deseni etkinleştirmek veya devre dışı bırakmak için `true` ya da `false` olarak ayarlayın.", "c_cpp.configuration.codeAnalysis.excludeWhen.markdownDescription": "Eşleşen bir dosyanın eşdüzey öğeleri üzerindeki ek denetim. Eşleşen dosya adı için değişken olarak `$(basename)` kullanın.", "c_cpp.configuration.codeAnalysis.runAutomatically.markdownDescription": "`true` ise, dosya açıldıktan veya kaydedildikten sonra kod analizi otomatik olarak çalışır.", - "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription": "`true` ise kullanılabilir olduğunda, 'Devre dışı bırak' kod eylemi gösterilir (bir sonraki kod analizi çalıştırıldığında). 'Devre dışı bırak' kod eylemi kullanıldığında, uyarı kodunu `C_Cpp.codeAnalysis.clangTidy.checks.disabled` ayarına ekler.", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDisable.markdownDescription": "`true`ise kullanılabilir olduğunda, 'Devre dışı bırak' kod eylemi gösterilir (bir sonraki kod analizi çalıştırıldığında). 'Devre dışı bırak' kod eylemi kullanıldığında, uyarı kodunu `C_Cpp.codeAnalysis.clangTidy.checks.disabled`ayarına ekler.", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showDocumentation.markdownDescription": "`true` ise, kullanılabilir olduğunda, 'için Belgeleri Göster' kod eylemi gösterilir (bir sonraki kod analizi çalıştırıldığında).", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.description": "Hangi 'Temizle' kod analizi sorun kodu eylem seçeneklerinin kullanılabilir olduğunu kontrol eder. Ayarın daha fazla seçenek göstermek için değiştirilmesi kod analizinin yeniden çalıştırılmasını gerektirebilir.", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.None.description": "'Temizle' kod eylemi gösterme.", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "Yalnızca 'Tümünü temizle' (veya yalnızca bir tür varsa, 'Tüm temizle' veya sadece tek bir sorun varsa 'Bunu temizle') kod eylemini göster.", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "'Tümünü temizle' (birden çok sorun türü varsa) ve 'Tüm temizle' (veya için sadece tek bir sorun varsa, 'Bunu temizle' kod eylemini göster)", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "'Tümünü temizle' (birden çok sorun türü varsa), 'Tüm temizle' ( için birden çok sorun varsa) ve 'Bunu temizle' kod eylemlerini göster", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": "`true` ise biçimlendirme 'Fix' kod eylemlerinin değiştirdiği satırlarda çalıştırılacaktır.", "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": "`True` ise `#C_Cpp.codeAnalysis.runAutomatically#` değeri `true` ise `clang-tidy` kullanan kod analizi etkinleştirilir ve otomatik olarak çalıştırılır.", "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": "`clang-tidy` yürütülebilir dosyasının tam yolu. Belirtilmemişse ve ortam yolunda `clang-tidy` mevcutsa, bu kullanılır. Ortam yolunda bulunamazsa, uzantıyla birlikte gelen `clang-tidy` kullanılacaktır.", "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": "YAML/JSON biçiminde bir `clang-tidy` yapılandırmasını belirtir: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{anahtar: x, değer: y}]}`. Değer boş olduğunda, `clang-tidy`, üst dizinlerinde her kaynak dosya için `clang-tidy` adlı bir dosya bulmayı dener.", @@ -106,7 +108,7 @@ "c_cpp.configuration.vcFormat.newLine.closeBraceSameLine.emptyFunction.description": "Boş işlev gövdeleri için kapatma küme ayracını açma küme ayracıyla aynı satıra taşıyın.", "c_cpp.configuration.vcFormat.newLine.beforeCatch.markdownDescription": "`catch` ve benzer anahtar sözcükleri yeni bir satıra yerleştirin.", "c_cpp.configuration.vcFormat.newLine.beforeElse.markdownDescription": "`else` ifadesini yeni bir satıra yerleştirin.", - "c_cpp.configuration.vcFormat.newLine.beforeWhileInDoWhile.markdownDescription": "`do`-`while` döngüsündeki `while` ifadesini yeni bir satıra yerleştirin.", + "c_cpp.configuration.vcFormat.newLine.beforeWhileInDoWhile.markdownDescription": "`do`-`while` döngüsündeki 'while' ifadesini yeni bir satıra yerleştirin.", "c_cpp.configuration.vcFormat.space.beforeFunctionOpenParenthesis.description": "İşlev adları arasındaki boşluklar ve bağımsız değişken listelerinin açma parantezleri.", "c_cpp.configuration.vcFormat.space.beforeFunctionOpenParenthesis.insert.description": "İşlevin açma parantezinden önce bir boşluk eklenir.", "c_cpp.configuration.vcFormat.space.beforeFunctionOpenParenthesis.remove.description": "İşleve ait sol ayraçtan önceki boşluklar kaldırıldı.", @@ -187,6 +189,8 @@ "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "Dışlama filtreleri, karşılaşılan her dosya ve klasörle değerlendirilecek.", "c_cpp.configuration.preferredPathSeparator.markdownDescription": "`#include` otomatik tamamlama sonuçları için yol ayırıcısı olarak kullanılan karakter.", "c_cpp.configuration.simplifyStructuredComments.markdownDescription": "`true` ise, üzerine gelme ve otomatik tamamlama araç ipuçları, yapılandırılmış açıklamaların yalnızca belirli etiketlerini görüntüler. Aksi halde tüm açıklamalar görüntülenir.", + "c_cpp.configuration.doxygen.generateOnType.description": "Seçilen açıklama stilini girdikten sonra Doxygen açıklamasının otomatik olarak eklenip eklenmeyeceğini kontrol eder.", + "c_cpp.configuration.doxygen.generatedStyle.description": "Doxygen açıklamasının başlangıç satırı olarak kullanılan karakter dizesi.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": "Çok satırlı veya tek satırlı açıklama bloğu başlatan desen. Devam deseni, çok satırlı açıklama blokları için varsayılan olarak ` * ` değerini veya tek satırlı açıklama blokları için bu dize değerini alır.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "Çok satırlı veya tek satırlı açıklama bloğu başlatan desen.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "Çok satırlı veya tek satırlı açıklama bloğu içinde ENTER tuşuna basıldığında sonraki satıra eklenecek metin.", @@ -229,7 +233,7 @@ "c_cpp.configuration.filesExclude.markdownDescription": "Klasörleri (ve `#C_Cpp.exclusionPolicy#` değiştirilirse dosyaları) hariç tutmak için glob desenlerini yapılandırın. Bunlar, C/C++ uzantısına özgüdür ve `#files.exclude#` öğesine ek olarak, ancak `#files.exclude#` öğesinden farklı olarak, geçerli çalışma alanı klasörünün dışındaki yollara da uygulanırlar ve Explorer görünümünden kaldırılmazlar. Glob desenleri ile ilgili daha fazla bilgiyi [buradan](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) okuyun.", "c_cpp.configuration.filesExcludeBoolean.markdownDescription": "Dosya yollarıyla eşleşecek glob deseni. Deseni etkinleştirmek veya devre dışı bırakmak için `true` ya da `false` olarak ayarlayın.", "c_cpp.configuration.filesExcludeWhen.markdownDescription": "Eşleşen bir dosyanın eşdüzey öğeleri üzerindeki ek denetim. Eşleşen dosya adı için değişken olarak `$(basename)` kullanın.", - "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "`true` ise, hata ayıklayıcı kabuk komut değiştirme eski kesme işaretini ``(`)`` kullanır.", + "c_cpp.configuration.debugger.useBacktickCommandSubstitution.markdownDescription": "`true`ise, hata ayıklayıcı kabuk komut değiştirme eski kesme işaretini ``(`)`` kullanır.", "c_cpp.configuration.legacyCompilerArgsBehavior.markdownDescription": "Derleyici bağımsız değişken ayarlarında kabuk kaçışı işleme şekli için v1.10.0 öncesi davranışı etkinleştirin. v1.10.0'da başlayan bağımsız değişken dizileri için kabuk kaçışı artık beklenmiyor veya varsayılan olarak desteklenmiyor.", "c_cpp.configuration.legacyCompilerArgsBehavior.deprecationMessage": "Bu ayar, v1.10.0'da düzeltilmiş davranışa geçişi geçici olarak destekliyor.", "c_cpp.contributes.views.cppReferencesView.title": "C/C++: Diğer başvuru sonuçları", @@ -277,6 +281,7 @@ "c_cpp.debuggers.miDebuggerPath.description": "MI hata ayıklayıcısının (gdb gibi) yolu. Belirtilmediğinde, ilk olarak hata ayıklayıcısı için yol araması yapar.", "c_cpp.debuggers.miDebuggerArgs.description": "MI hata ayıklayıcısı için ek bağımsız değişkenler (gdb gibi).", "c_cpp.debuggers.miDebuggerServerAddress.description": "Bağlanılacak MI Hata Ayıklayıcısı Sunucusunun ağ adresi (örnek: localhost:1234).", + "c_cpp.debuggers.useExtendedRemote.description": "Hedef genişletilmiş uzak modundayken MI Hata Ayıklayıcısı Sunucusuna bağlanın.", "c_cpp.debuggers.stopAtEntry.description": "İsteğe bağlı parametre. Değeri true ise, hata ayıklayıcısının hedefin giriş noktasında durması gerekir. processId geçirilirse hiçbir etkisi olmaz.", "c_cpp.debuggers.debugServerPath.description": "Başlatılacak sunucuda hata ayıklama için isteğe bağlı tam yol. Varsayılan değeri null. \"miDebugServerAddress\" veya kendi sunucunuzun \"-target-select remote \" çalıştıran bir \"customSetupCommand\" ile birlikte kullanılır.", "c_cpp.debuggers.debugServerArgs.description": "İsteğe bağlı hata ayıklama sunucusu bağımsız değişkenleri. Varsayılan olarak şu değeri alır: null.", diff --git a/Extension/i18n/trk/src/Debugger/attachToProcess.i18n.json b/Extension/i18n/trk/src/Debugger/attachToProcess.i18n.json index e86d48829c..766960e31b 100644 --- a/Extension/i18n/trk/src/Debugger/attachToProcess.i18n.json +++ b/Extension/i18n/trk/src/Debugger/attachToProcess.i18n.json @@ -4,9 +4,12 @@ *--------------------------------------------------------------------------------------------*/ // Do not edit this file. It is machine generated. { - "no.pipetransport": "Seçilen hata ayıklama yapılandırması {0} içermiyor", + "debugger.path.and.server.address.required": "Hata ayıklama yapılandırmasındaki {0}, {1} ve {2} gerektirir", + "no.pipetransport.useextendedremote": "Seçilen hata ayıklama yapılandırması {0} veya {1} içermiyor", "select.process.attach": "Eklenilecek işlemi seçin", "process.not.selected": "İşlem seçilmedi.", "pipe.failed": "Kanal aktarımı, işletim sistemini ve işlemleri alamadı.", - "no.process.list": "Aktarım ekleme, işlemler listesini alamadı." + "no.process.list": "Aktarım ekleme, işlemler listesini alamadı.", + "failed.to.make.gdb.connection": "GDB bağlantısı yapılamadı: \"{0}\".", + "failed.to.parse.processes": "İşlemler ayrıştırılamadı: \"{0}\"." } \ No newline at end of file diff --git a/Extension/i18n/trk/src/Debugger/configurationProvider.i18n.json b/Extension/i18n/trk/src/Debugger/configurationProvider.i18n.json index fbe2cc7141..0c9d94a42e 100644 --- a/Extension/i18n/trk/src/Debugger/configurationProvider.i18n.json +++ b/Extension/i18n/trk/src/Debugger/configurationProvider.i18n.json @@ -12,6 +12,7 @@ "lldb.framework.not.found": "lldb-mi için 'LLDB.framework' bulunamıyor. Lütfen XCode'u veya XCode Komut Satırı Araçları'nı yükleyin.", "debugger.launchConfig": "Yapılandırmayı başlat:", "vs.code.1.69+.required": "'deploySteps' 1.69+ VS Code gerektirir.", + "running.deploy.steps": "Dağıtım adımları çalıştırılıyor...", "pre.Launch.Task": "preLaunchTask: {0}", "build.and.debug.active.file": "etkin dosyayı derle ve dosyada hata ayıkla", "cl.exe.not.available": "{0} derlemesi ve hata ayıklama yalnızca VS Code, VS için Geliştirici Komut İstemi'nden çalıştırıldığında kullanılabilir.", diff --git a/Extension/i18n/trk/src/LanguageServer/extension.i18n.json b/Extension/i18n/trk/src/LanguageServer/extension.i18n.json index c956923538..caf036dc0a 100644 --- a/Extension/i18n/trk/src/LanguageServer/extension.i18n.json +++ b/Extension/i18n/trk/src/LanguageServer/extension.i18n.json @@ -6,6 +6,7 @@ { "learn.how.to.install.a.library": "vcpkg ile bu üst bilgi için bir kitaplık yüklemeyi öğrenin", "copy.vcpkg.command": "'{0}' yükleme vcpkg komutunu panoya kopyalayın", + "on.disabled.command": "`C_Cpp.intelliSenseEngine` `Disabled` olarak ayarlandığında IntelliSense ile ilgili komutlar yürütülemez.", "client.not.found": "istemci bulunamadı", "configuration.select.first": "Yapılandırma seçmek için önce bir klasör açın", "configuration.provider.select.first": "Yapılandırma sağlayıcısı seçmek için önce bir klasör açın", diff --git a/Extension/i18n/trk/src/nativeStrings.i18n.json b/Extension/i18n/trk/src/nativeStrings.i18n.json index 5d20608655..95833776ae 100644 --- a/Extension/i18n/trk/src/nativeStrings.i18n.json +++ b/Extension/i18n/trk/src/nativeStrings.i18n.json @@ -221,5 +221,6 @@ "folder_tag": "Klasör", "file_tag": "Dosya", "compiler_default_language_standard_version_old": "Derleyici varsayılan dil standart sürümünü döndürdü: {0}. Bu sürüm eski olduğundan daha yeni {1} sürümünü varsayılan olarak kullanmayı deneyeceğiz.", - "unexpected_output_from_clang_tidy": "Clang-tidy öğesinden beklenmeyen çıkış: {0}. Beklenen: {1}." + "unexpected_output_from_clang_tidy": "Clang-tidy öğesinden beklenmeyen çıkış: {0}. Beklenen: {1}.", + "generate_doxygen_comment": "Doxygen Açıklaması Oluştur" } \ No newline at end of file diff --git a/Extension/package.json b/Extension/package.json index a68fe4b837..8cd4818c6a 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.11.4-main", + "version": "1.12.3-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", @@ -11,7 +11,7 @@ }, "license": "SEE LICENSE IN LICENSE.txt", "engines": { - "vscode": "^1.65.0" + "vscode": "^1.67.0" }, "bugs": { "url": "https://github.com/Microsoft/vscode-cpptools/issues", @@ -419,6 +419,12 @@ }, "scope": "resource" }, + "C_Cpp.codeAnalysis.clangTidy.codeAction.formatFixes": { + "type": "boolean", + "description": "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription%", + "default": true, + "scope": "resource" + }, "C_Cpp.codeAnalysis.clangTidy.codeAction.showClear": { "type": "string", "description": "%c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.description%", @@ -2327,6 +2333,24 @@ "markdownDescription": "%c_cpp.configuration.simplifyStructuredComments.markdownDescription%", "scope": "application" }, + "C_Cpp.doxygen.generateOnType":{ + "type": "boolean", + "default": true, + "description": "%c_cpp.configuration.doxygen.generateOnType.description%", + "scope": "resource" + }, + "C_Cpp.doxygen.generatedStyle": { + "type": "string", + "enum":[ + "///", + "/**", + "/*!", + "//!" + ], + "default":"///", + "description": "%c_cpp.configuration.doxygen.generatedStyle.description%", + "scope": "resource" + }, "C_Cpp.commentContinuationPatterns": { "type": "array", "default": [ @@ -2682,7 +2706,8 @@ "type": "object", "markdownDescription": "%c_cpp.configuration.filesExclude.markdownDescription%", "default": { - "**/.vscode": true + "**/.vscode": true, + "**/.vs": true }, "additionalProperties": { "anyOf": [ @@ -2869,7 +2894,12 @@ "command": "C_Cpp.AddDebugConfiguration", "title": "%c_cpp.command.AddDebugConfiguration.title%", "category": "C/C++", - "icon": "$(debug-configure)" + "icon": "$(debug-configure)" + }, + { + "command": "C_Cpp.GenerateDoxygenComment", + "title": "%c_cpp.command.GenerateDoxygenComment.title%", + "category": "C/C++" } ], "keybindings": [ @@ -2890,7 +2920,7 @@ "rust" ], "_aiKeyComment": "Ignore 'Property aiKey is not allowed'. See https://github.com/microsoft/vscode/issues/76493", - "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217", + "aiKey": "0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255", "variables": { "pickProcess": "extension.pickNativeProcess", "pickRemoteProcess": "extension.pickRemoteNativeProcess" @@ -4420,7 +4450,7 @@ "rust" ], "_aiKeyComment": "Ignore 'Property aiKey is not allowed'. See https://github.com/microsoft/vscode/issues/76493", - "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217", + "aiKey": "0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255", "variables": { "pickProcess": "extension.pickNativeProcess" }, @@ -4894,6 +4924,11 @@ "command": "C_Cpp.AddDebugConfiguration", "when": "editorLangId == 'c' && config.C_Cpp.debugShortcut && BuildAndDebug.isSourceFile && BuildAndDebug.isFolderOpen || editorLangId == 'cpp' && config.C_Cpp.debugShortcut && BuildAndDebug.isSourceFile && BuildAndDebug.isFolderOpen || editorLangId == 'cuda-cpp' && config.C_Cpp.debugShortcut && BuildAndDebug.isSourceFile && BuildAndDebug.isFolderOpen", "group": "custom2@3" + }, + { + "command": "C_Cpp.GenerateDoxygenComment", + "when": "editorLangId == 'c' || editorLangId == 'cpp' || editorLangId == 'cuda-cpp'", + "group": "custom2@3" } ], "commandPalette": [ @@ -5434,7 +5469,7 @@ "tmp": "^0.2.1", "vscode-cpptools": "^6.1.0", "@vscode/extension-telemetry": "^0.6.2", - "vscode-languageclient": "^5.2.1", + "vscode-languageclient": "^8.0.1", "vscode-nls": "^5.0.0", "vscode-tas-client": "^0.1.27", "which": "^2.0.2", diff --git a/Extension/package.nls.json b/Extension/package.nls.json index ea83e79aa0..23cae98b06 100644 --- a/Extension/package.nls.json +++ b/Extension/package.nls.json @@ -28,6 +28,7 @@ "c_cpp.command.BuildAndDebugFile.title": "Debug C/C++ File", "c_cpp.command.BuildAndRunFile.title": "Run C/C++ File", "c_cpp.command.AddDebugConfiguration.title": "Add Debug Configuration", + "c_cpp.command.GenerateDoxygenComment.title": "Generate Doxygen Comment", "c_cpp.configuration.maxConcurrentThreads.markdownDescription": { "message": "The maximum number of concurrent threads to use for language service processing. The value is a hint and may not always be used. The default of `null` (empty) uses the number of logical processors available.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.maxCachedProcesses.markdownDescription": { "message": "The maximum number of cached processes to use for language service processing. The default of `null` (empty) uses twice the number of logical processors available.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.maxMemory.markdownDescription": { "message": "The maximum memory (in MB) available for language service processing. Fewer processes will be cached and run concurrently after this memory usage is exceeded. The default of `null` (empty) uses the system's free memory.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, @@ -50,6 +51,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllOnly.description": "Show only the 'Clear all' code action (or 'Clear all ' if there is only one type or 'Clear this' if there is only one problem).", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllType.description": "Show the 'Clear all' code action (if there are multiple problem types) and the 'Clear all ' code action (or 'Clear this' if there is only one problem for the )", "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.showClear.AllAndAllTypeAndThis.description": "Show the 'Clear all' (if there are multiple problem types), 'Clear all ' (if there are multiple problems for the ), and 'Clear this' code actions", + "c_cpp.configuration.codeAnalysis.clangTidy.codeAction.formatFixes.markdownDescription": { "message": "If `true`, formatting will be run on the lines changed by 'Fix' code actions.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.codeAnalysis.clangTidy.enabled.markdownDescription": { "message": "If `true`, code analysis using `clang-tidy` will be enabled and run automatically if `#C_Cpp.codeAnalysis.runAutomatically#` is `true` (the default).", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.codeAnalysis.clangTidy.path.markdownDescription": { "message": "The full path of the `clang-tidy` executable. If not specified, and `clang-tidy` is available in the environment path, that is used. If not found in the environment path, the `clang-tidy` bundled with the extension will be used.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.codeAnalysis.clangTidy.config.markdownDescription": { "message": "Specifies a `clang-tidy` configuration in YAML/JSON format: `{Checks: '-*,clang-analyzer-*', CheckOptions: [{key: x, value: y}]}`. When the value is empty, `clang-tidy` will attempt to find a file named `.clang-tidy` for each source file in its parent directories.", "comment": [ "Words 'key' and 'value' in '{key: value, ...}' should be translated, but all other 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." ] }, @@ -182,6 +184,8 @@ "c_cpp.configuration.exclusionPolicy.checkFilesAndFolders.description": "The exclusion filters will be evaluated against every file and folder encountered.", "c_cpp.configuration.preferredPathSeparator.markdownDescription": { "message": "The character used as a path separator for `#include` auto-completion results.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.simplifyStructuredComments.markdownDescription": { "message": "If `true`, tooltips of hover and auto-complete will only display certain labels of structured comments. Otherwise, all comments are displayed.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, + "c_cpp.configuration.doxygen.generateOnType.description": "Controls whether to automatically insert the Doxygen comment after typing the chosen comment style.", + "c_cpp.configuration.doxygen.generatedStyle.description": "The string of characters used as the starting line of the Doxygen comment.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.string.markdownDescription": { "message": "The pattern that begins a multiline or single line comment block. The continuation pattern defaults to ` * ` for multiline comment blocks or this string for single line comment blocks.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.begin.description": "The pattern that begins a multiline or single line comment block.", "c_cpp.configuration.commentContinuationPatterns.items.anyof.object.continue.description": "The text that will be inserted on the next line when Enter is pressed inside a multiline or single line comment block.", diff --git a/Extension/src/Debugger/attachToProcess.ts b/Extension/src/Debugger/attachToProcess.ts index 1754100faf..c063bd259a 100644 --- a/Extension/src/Debugger/attachToProcess.ts +++ b/Extension/src/Debugger/attachToProcess.ts @@ -221,7 +221,7 @@ export class RemoteAttachPicker { if (matches?.length === 3) { const id: string = matches[1]; const userCommand: string = matches[2]; - processes.push({ label: userCommand, id }); + processes.push({ label: userCommand, id, description: id }); } } } diff --git a/Extension/src/Debugger/configurationProvider.ts b/Extension/src/Debugger/configurationProvider.ts index ccbd2d4c94..bffa461215 100644 --- a/Extension/src/Debugger/configurationProvider.ts +++ b/Extension/src/Debugger/configurationProvider.ts @@ -332,7 +332,12 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv logger.getOutputChannelLogger().showErrorMessage(localize("vs.code.1.69+.required", "'deploySteps' require VS Code 1.69+.")); return undefined; } - const deploySucceeded: boolean = await this.deploySteps(config, token); + + const deploySucceeded: boolean = await vscode.window.withProgress({ + location: vscode.ProgressLocation.Notification, + title: localize("running.deploy.steps", "Running deploy steps...") + }, async () => this.deploySteps(config, token)); + if (!deploySucceeded || token?.isCancellationRequested) { return undefined; } @@ -378,106 +383,107 @@ export class DebugConfigurationProvider implements vscode.DebugConfigurationProv (!configuredBuildTasks.some(taskJson => (taskJson.definition.label === taskDetected.definition.label)))); buildTasks = buildTasks.concat(configuredBuildTasks, dedupDetectedBuildTasks); - if (buildTasks.length === 0) { - return []; - } - // Filter out build tasks that don't match the currently selected debug configuration type. - buildTasks = buildTasks.filter((task: CppBuildTask) => { - const command: string = task.definition.command as string; - if (!command) { - return false; - } - if (defaultTemplateConfig.name.startsWith("(Windows) ")) { - if (command.startsWith("cl.exe")) { - return true; + if (buildTasks.length !== 0) { + buildTasks = buildTasks.filter((task: CppBuildTask) => { + const command: string = task.definition.command as string; + if (!command) { + return false; } - } else { - if (!command.startsWith("cl.exe")) { - return true; + if (defaultTemplateConfig.name.startsWith("(Windows) ")) { + if (command.startsWith("cl.exe")) { + return true; + } + } else { + if (!command.startsWith("cl.exe")) { + return true; + } } - } - return false; - }); + return false; + }); + } // Generate new configurations for each build task. // Generating a task is async, therefore we must *await* *all* map(task => config) Promises to resolve. - let configs: CppDebugConfiguration[] = await Promise.all(buildTasks.map>(async task => { - const definition: CppBuildTaskDefinition = task.definition as CppBuildTaskDefinition; - const compilerPath: string = definition.command; - const compilerName: string = path.basename(compilerPath); - const newConfig: CppDebugConfiguration = { ...defaultTemplateConfig }; // Copy enumerables and properties - newConfig.existing = false; - - newConfig.name = configPrefix + compilerName + " " + this.buildAndDebugActiveFileStr(); - newConfig.preLaunchTask = task.name; - if (newConfig.type === DebuggerType.cppdbg) { - newConfig.externalConsole = false; - } else { - newConfig.console = "externalTerminal"; - } - const isWindows: boolean = platformInfo.platform === 'win32'; - // Extract the .exe path from the defined task. - const definedExePath: string | undefined = util.findExePathInArgs(task.definition.args); - newConfig.program = definedExePath ? definedExePath : util.defaultExePath(); - // Add the "detail" property to show the compiler path in QuickPickItem. - // This property will be removed before writing the DebugConfiguration in launch.json. - newConfig.detail = localize("pre.Launch.Task", "preLaunchTask: {0}", task.name); - newConfig.taskDetail = task.detail; - newConfig.taskStatus = task.existing ? - ((task.name === DebugConfigurationProvider.recentBuildTaskLabelStr) ? TaskStatus.recentlyUsed : TaskStatus.configured) : - TaskStatus.detected; - if (task.isDefault) { - newConfig.isDefault = true; - } - const isCl: boolean = compilerName === "cl.exe"; - newConfig.cwd = isWindows && !isCl && !process.env.PATH?.includes(path.dirname(compilerPath)) ? path.dirname(compilerPath) : "${fileDirname}"; - - return new Promise(resolve => { - if (platformInfo.platform === "darwin") { - return resolve(newConfig); + let configs: CppDebugConfiguration[] = []; + if (buildTasks.length !== 0) { + configs = await Promise.all(buildTasks.map>(async task => { + const definition: CppBuildTaskDefinition = task.definition as CppBuildTaskDefinition; + const compilerPath: string = definition.command; + const compilerName: string = path.basename(compilerPath); + const newConfig: CppDebugConfiguration = { ...defaultTemplateConfig }; // Copy enumerables and properties + newConfig.existing = false; + + newConfig.name = configPrefix + compilerName + " " + this.buildAndDebugActiveFileStr(); + newConfig.preLaunchTask = task.name; + if (newConfig.type === DebuggerType.cppdbg) { + newConfig.externalConsole = false; } else { - let debuggerName: string; - if (compilerName.startsWith("clang")) { - newConfig.MIMode = "lldb"; - debuggerName = "lldb-mi"; - // Search for clang-8, clang-10, etc. - if ((compilerName !== "clang-cl.exe") && (compilerName !== "clang-cpp.exe")) { - const suffixIndex: number = compilerName.indexOf("-"); - if (suffixIndex !== -1) { - const suffix: string = compilerName.substring(suffixIndex); - debuggerName += suffix; - } - } - newConfig.type = DebuggerType.cppdbg; - } else if (compilerName === "cl.exe") { - newConfig.miDebuggerPath = undefined; - newConfig.type = DebuggerType.cppvsdbg; - return resolve(newConfig); - } else { - debuggerName = "gdb"; - } - if (isWindows) { - debuggerName = debuggerName.endsWith(".exe") ? debuggerName : (debuggerName + ".exe"); - } - const compilerDirname: string = path.dirname(compilerPath); - const debuggerPath: string = path.join(compilerDirname, debuggerName); - if (isWindows) { - newConfig.miDebuggerPath = debuggerPath; + newConfig.console = "externalTerminal"; + } + const isWindows: boolean = platformInfo.platform === 'win32'; + // Extract the .exe path from the defined task. + const definedExePath: string | undefined = util.findExePathInArgs(task.definition.args); + newConfig.program = definedExePath ? definedExePath : util.defaultExePath(); + // Add the "detail" property to show the compiler path in QuickPickItem. + // This property will be removed before writing the DebugConfiguration in launch.json. + newConfig.detail = localize("pre.Launch.Task", "preLaunchTask: {0}", task.name); + newConfig.taskDetail = task.detail; + newConfig.taskStatus = task.existing ? + ((task.name === DebugConfigurationProvider.recentBuildTaskLabelStr) ? TaskStatus.recentlyUsed : TaskStatus.configured) : + TaskStatus.detected; + if (task.isDefault) { + newConfig.isDefault = true; + } + const isCl: boolean = compilerName === "cl.exe"; + newConfig.cwd = isWindows && !isCl && !process.env.PATH?.includes(path.dirname(compilerPath)) ? path.dirname(compilerPath) : "${fileDirname}"; + + return new Promise(resolve => { + if (platformInfo.platform === "darwin") { return resolve(newConfig); } else { - fs.stat(debuggerPath, (err, stats: fs.Stats) => { - if (!err && stats && stats.isFile()) { - newConfig.miDebuggerPath = debuggerPath; - } else { - newConfig.miDebuggerPath = path.join("/usr", "bin", debuggerName); + let debuggerName: string; + if (compilerName.startsWith("clang")) { + newConfig.MIMode = "lldb"; + debuggerName = "lldb-mi"; + // Search for clang-8, clang-10, etc. + if ((compilerName !== "clang-cl.exe") && (compilerName !== "clang-cpp.exe")) { + const suffixIndex: number = compilerName.indexOf("-"); + if (suffixIndex !== -1) { + const suffix: string = compilerName.substring(suffixIndex); + debuggerName += suffix; + } } + newConfig.type = DebuggerType.cppdbg; + } else if (compilerName === "cl.exe") { + newConfig.miDebuggerPath = undefined; + newConfig.type = DebuggerType.cppvsdbg; return resolve(newConfig); - }); + } else { + debuggerName = "gdb"; + } + if (isWindows) { + debuggerName = debuggerName.endsWith(".exe") ? debuggerName : (debuggerName + ".exe"); + } + const compilerDirname: string = path.dirname(compilerPath); + const debuggerPath: string = path.join(compilerDirname, debuggerName); + if (isWindows) { + newConfig.miDebuggerPath = debuggerPath; + return resolve(newConfig); + } else { + fs.stat(debuggerPath, (err, stats: fs.Stats) => { + if (!err && stats && stats.isFile()) { + newConfig.miDebuggerPath = debuggerPath; + } else { + newConfig.miDebuggerPath = path.join("/usr", "bin", debuggerName); + } + return resolve(newConfig); + }); + } } - } - }); - })); + }); + })); + } configs.push(defaultTemplateConfig); const existingConfigs: CppDebugConfiguration[] | undefined = this.getLaunchConfigs(folder, type)?.map(config => { if (!config.detail && config.preLaunchTask) { diff --git a/Extension/src/LanguageServer/Providers/codeActionProvider.ts b/Extension/src/LanguageServer/Providers/codeActionProvider.ts index bc163f149e..dabfd81bc2 100644 --- a/Extension/src/LanguageServer/Providers/codeActionProvider.ts +++ b/Extension/src/LanguageServer/Providers/codeActionProvider.ts @@ -24,8 +24,8 @@ interface CodeActionCommand { uri?: string; } -export const GetCodeActionsRequest: RequestType = - new RequestType('cpptools/getCodeActions'); +export const GetCodeActionsRequest: RequestType = + new RequestType('cpptools/getCodeActions'); export class CodeActionProvider implements vscode.CodeActionProvider { private client: DefaultClient; diff --git a/Extension/src/LanguageServer/Providers/documentFormattingEditProvider.ts b/Extension/src/LanguageServer/Providers/documentFormattingEditProvider.ts index 1a82337e07..f9f9491742 100644 --- a/Extension/src/LanguageServer/Providers/documentFormattingEditProvider.ts +++ b/Extension/src/LanguageServer/Providers/documentFormattingEditProvider.ts @@ -4,7 +4,7 @@ * ------------------------------------------------------------------------------------------ */ import * as vscode from 'vscode'; import { DefaultClient, FormatParams, FormatDocumentRequest } from '../client'; -import { CppSettings, getEditorConfigSettings } from '../settings'; +import { CppSettings, getEditorConfigSettings, OtherSettings } from '../settings'; import { makeVscodeTextEdits } from '../utils'; export class DocumentFormattingEditProvider implements vscode.DocumentFormattingEditProvider { @@ -16,6 +16,30 @@ export class DocumentFormattingEditProvider implements vscode.DocumentFormatting public async provideDocumentFormattingEdits(document: vscode.TextDocument, options: vscode.FormattingOptions, token: vscode.CancellationToken): Promise { await this.client.awaitUntilLanguageClientReady(); const filePath: string = document.uri.fsPath; + const onChanges: string | number | boolean = options.onChanges; + if (onChanges) { + let insertSpacesSet: boolean = false; + let tabSizeSet: boolean = false; + const editor: vscode.TextEditor = await vscode.window.showTextDocument(document, undefined, true); + if (editor.options.insertSpaces && typeof editor.options.insertSpaces === "boolean") { + options.insertSpaces = editor.options.insertSpaces; + insertSpacesSet = true; + } + if (editor.options.tabSize && typeof editor.options.tabSize === "number") { + options.tabSize = editor.options.tabSize; + tabSizeSet = true; + } + + if (!insertSpacesSet || !tabSizeSet) { + const settings: OtherSettings = new OtherSettings(this.client.RootUri); + if (!insertSpacesSet) { + options.insertSpaces = settings.editorInsertSpaces ?? true; + } + if (!tabSizeSet) { + options.tabSize = settings.editorTabSize ?? 4; + } + } + } const settings: CppSettings = new CppSettings(this.client.RootUri); const useVcFormat: boolean = settings.useVcFormat(document); const configCallBack = async (editorConfigSettings: any | undefined) => { @@ -35,7 +59,8 @@ export class DocumentFormattingEditProvider implements vscode.DocumentFormatting character: 0, line: 0 } - } + }, + onChanges: onChanges === true }; // We do not currently pass the CancellationToken to sendRequest // because there is not currently cancellation logic for formatting diff --git a/Extension/src/LanguageServer/Providers/documentRangeFormattingEditProvider.ts b/Extension/src/LanguageServer/Providers/documentRangeFormattingEditProvider.ts index 01ad323f16..2d9bfd38fe 100644 --- a/Extension/src/LanguageServer/Providers/documentRangeFormattingEditProvider.ts +++ b/Extension/src/LanguageServer/Providers/documentRangeFormattingEditProvider.ts @@ -35,7 +35,8 @@ export class DocumentRangeFormattingEditProvider implements vscode.DocumentRange character: range.end.character, line: range.end.line } - } + }, + onChanges: false }; // We do not currently pass the CancellationToken to sendRequest // because there is not currently cancellation logic for formatting diff --git a/Extension/src/LanguageServer/Providers/findAllReferencesProvider.ts b/Extension/src/LanguageServer/Providers/findAllReferencesProvider.ts index e4dc81ab21..403c080d67 100644 --- a/Extension/src/LanguageServer/Providers/findAllReferencesProvider.ts +++ b/Extension/src/LanguageServer/Providers/findAllReferencesProvider.ts @@ -73,7 +73,7 @@ export class FindAllReferencesProvider implements vscode.ReferenceProvider { // This is a preview (2nd or later preview) workspaceReferences.referencesRequestPending = true; workspaceReferences.setResultsCallback(resultCallback); - this.client.languageClient.sendNotification(RequestReferencesNotification, false); + this.client.languageClient.sendNotification(RequestReferencesNotification); } } token.onCancellationRequested(e => { diff --git a/Extension/src/LanguageServer/Providers/inlayHintProvider.ts b/Extension/src/LanguageServer/Providers/inlayHintProvider.ts index 90fdc34410..74f43a92ee 100644 --- a/Extension/src/LanguageServer/Providers/inlayHintProvider.ts +++ b/Extension/src/LanguageServer/Providers/inlayHintProvider.ts @@ -35,12 +35,12 @@ interface GetInlayHintsResult { type InlayHintsCacheEntry = { FileVersion: number; - TypeHints: vscode.InlayHint[]; + TypeHints: CppInlayHint[]; ParameterHints: CppInlayHint[]; }; -const GetInlayHintsRequest: RequestType = - new RequestType('cpptools/getInlayHints'); +const GetInlayHintsRequest: RequestType = + new RequestType('cpptools/getInlayHints'); export class InlayHintsProvider implements vscode.InlayHintsProvider { private client: DefaultClient; @@ -89,13 +89,33 @@ export class InlayHintsProvider implements vscode.InlayHintsProvider { let result: vscode.InlayHint[] = []; const settings: CppSettings = new CppSettings(); if (settings.inlayHintsAutoDeclarationTypes) { - result = result.concat(cacheEntry?.TypeHints); + const resolvedTypeHints: vscode.InlayHint[] = this.resolveTypeHints(cacheEntry.TypeHints); + result = result.concat(resolvedTypeHints); + } + if (settings.inlayHintsParameterNames || settings.inlayHintsReferenceOperator) { + const resolvedParameterHints: vscode.InlayHint[] = this.resolveParameterHints(cacheEntry.ParameterHints); + result = result.concat(resolvedParameterHints); } - const resolvedParameterHints: vscode.InlayHint[] = this.resolveParameterHints(cacheEntry.ParameterHints); - result = result.concat(resolvedParameterHints); return result; } + private resolveTypeHints(hints: CppInlayHint[]): vscode.InlayHint[] { + const resolvedHints: vscode.InlayHint[] = []; + const settings: CppSettings = new CppSettings(); + for (const hint of hints) { + const showOnLeft: boolean = settings.inlayHintsAutoDeclarationTypesShowOnLeft && hint.identifierLength > 0; + const inlayHint: vscode.InlayHint = new vscode.InlayHint( + new vscode.Position(hint.position.line, hint.position.character + + (showOnLeft ? 0 : hint.identifierLength)), + (showOnLeft ? hint.label : ": " + hint.label), + vscode.InlayHintKind.Type); + inlayHint.paddingRight = showOnLeft || hint.rightPadding; + inlayHint.paddingLeft = showOnLeft && hint.leftPadding; + resolvedHints.push(inlayHint); + } + return resolvedHints; + } + private resolveParameterHints(hints: CppInlayHint[]): vscode.InlayHint[] { const resolvedHints: vscode.InlayHint[] = []; const settings: CppSettings = new CppSettings(); @@ -137,21 +157,7 @@ export class InlayHintsProvider implements vscode.InlayHintsProvider { } private createCacheEntry(inlayHintsResults: GetInlayHintsResult): InlayHintsCacheEntry { - const typeHints: vscode.InlayHint[] = []; - const settings: CppSettings = new CppSettings(); - for (const h of inlayHintsResults.inlayHints) { - if (h.inlayHintKind === InlayHintKind.Type) { - const showOnLeft: boolean = settings.inlayHintsAutoDeclarationTypesShowOnLeft && h.identifierLength > 0; - const inlayHint: vscode.InlayHint = new vscode.InlayHint( - new vscode.Position(h.position.line, h.position.character + - (showOnLeft ? 0 : h.identifierLength)), - (showOnLeft ? h.label : ": " + h.label), - vscode.InlayHintKind.Type); - inlayHint.paddingRight = showOnLeft || h.rightPadding; - inlayHint.paddingLeft = showOnLeft && h.leftPadding; - typeHints.push(inlayHint); - } - } + const typeHints: CppInlayHint[] = inlayHintsResults.inlayHints.filter(h => h.inlayHintKind === InlayHintKind.Type); const paramHints: CppInlayHint[] = inlayHintsResults.inlayHints.filter(h => h.inlayHintKind === InlayHintKind.Parameter); const cacheEntry: InlayHintsCacheEntry = { FileVersion: inlayHintsResults.fileVersion, diff --git a/Extension/src/LanguageServer/Providers/onTypeFormattingEditProvider.ts b/Extension/src/LanguageServer/Providers/onTypeFormattingEditProvider.ts index b4747022f8..c301b11360 100644 --- a/Extension/src/LanguageServer/Providers/onTypeFormattingEditProvider.ts +++ b/Extension/src/LanguageServer/Providers/onTypeFormattingEditProvider.ts @@ -35,7 +35,8 @@ export class OnTypeFormattingEditProvider implements vscode.OnTypeFormattingEdit character: 0, line: 0 } - } + }, + onChanges: false }; // We do not currently pass the CancellationToken to sendRequest // because there is not currently cancellation logic for formatting diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 2ce8f32bec..1a1c2d4a66 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -21,7 +21,8 @@ import { CodeActionProvider } from './Providers/codeActionProvider'; import { InlayHintsProvider } from './Providers/inlayHintProvider'; // End provider imports -import { LanguageClient, LanguageClientOptions, ServerOptions, NotificationType, TextDocumentIdentifier, RequestType, ErrorAction, CloseAction, DidOpenTextDocumentParams, Range, Position, DocumentFilter } from 'vscode-languageclient'; +import { LanguageClientOptions, NotificationType, TextDocumentIdentifier, RequestType, ErrorAction, CloseAction, DidOpenTextDocumentParams, Range, Position, DocumentFilter } from 'vscode-languageclient'; +import { LanguageClient, ServerOptions } from 'vscode-languageclient/node'; import { SourceFileConfigurationItem, WorkspaceBrowseConfiguration, SourceFileConfiguration, Version } from 'vscode-cpptools'; import { Status, IntelliSenseStatus } from 'vscode-cpptools/out/testApi'; import { getLocaleId, getLocalizedString, LocalizeStringParams } from './localization'; @@ -59,6 +60,7 @@ const configProviderTimeout: number = 2000; // Data shared by all clients. let languageClient: LanguageClient; +let firstClientStarted: Promise; let languageClientCrashedNeedsRestart: boolean = false; const languageClientCrashTimes: number[] = []; let clientCollection: ClientCollection; @@ -92,7 +94,7 @@ function setupOutputHandlers(): void { } /** Note: We should not await on the following functions, - * or any funstion that returns a promise acquired from them, + * or any function that returns a promise acquired from them, * vscode.window.showInformationMessage, vscode.window.showWarningMessage, vscode.window.showErrorMessage */ function showMessageWindow(params: ShowMessageWindowParams): void { @@ -310,6 +312,7 @@ export interface FormatParams { tabSize: number; editorConfigSettings: any; useVcFormat: boolean; + onChanges: boolean; } export interface GetFoldingRangesParams { @@ -398,6 +401,22 @@ interface GoToDirectiveInGroupParams { next: boolean; }; +export interface GenerateDoxygenCommentParams { + uri: string; + position: Position; + isCodeAction: boolean; + isCursorAboveSignatureLine: boolean; +} + +export interface GenerateDoxygenCommentResult { + contents: string; + initPosition: Position; + finalInsertionLine: number; + finalCursorPosition: Position; + fileVersion: number; + isCursorAboveSignatureLine: boolean; +} + interface SetTemporaryTextDocumentLanguageParams { path: string; isC: boolean; @@ -411,6 +430,14 @@ enum CodeAnalysisScope { ClearSquiggles }; +interface CodeAnalysisParams { + scope: CodeAnalysisScope; +} + +interface FinishedRequestCustomConfigParams { + uri: string; +} + interface IntervalTimerParams { freeMemory: number; }; @@ -421,74 +448,77 @@ export interface TextDocumentWillSaveParams { } // Requests -const QueryCompilerDefaultsRequest: RequestType = new RequestType('cpptools/queryCompilerDefaults'); -const QueryTranslationUnitSourceRequest: RequestType = new RequestType('cpptools/queryTranslationUnitSource'); -const SwitchHeaderSourceRequest: RequestType = new RequestType('cpptools/didSwitchHeaderSource'); -const GetDiagnosticsRequest: RequestType = new RequestType('cpptools/getDiagnostics'); -export const GetDocumentSymbolRequest: RequestType = new RequestType('cpptools/getDocumentSymbols'); -export const GetSymbolInfoRequest: RequestType = new RequestType('cpptools/getWorkspaceSymbols'); -export const GetFoldingRangesRequest: RequestType = new RequestType('cpptools/getFoldingRanges'); -export const GetSemanticTokensRequest: RequestType = new RequestType('cpptools/getSemanticTokens'); -export const FormatDocumentRequest: RequestType = new RequestType('cpptools/formatDocument'); -export const FormatRangeRequest: RequestType = new RequestType('cpptools/formatRange'); -export const FormatOnTypeRequest: RequestType = new RequestType('cpptools/formatOnType'); -const GoToDirectiveInGroupRequest: RequestType = new RequestType('cpptools/goToDirectiveInGroup'); +const QueryCompilerDefaultsRequest: RequestType = new RequestType('cpptools/queryCompilerDefaults'); +const QueryTranslationUnitSourceRequest: RequestType = new RequestType('cpptools/queryTranslationUnitSource'); +const SwitchHeaderSourceRequest: RequestType = new RequestType('cpptools/didSwitchHeaderSource'); +const GetDiagnosticsRequest: RequestType = new RequestType('cpptools/getDiagnostics'); +export const GetDocumentSymbolRequest: RequestType = new RequestType('cpptools/getDocumentSymbols'); +export const GetSymbolInfoRequest: RequestType = new RequestType('cpptools/getWorkspaceSymbols'); +export const GetFoldingRangesRequest: RequestType = new RequestType('cpptools/getFoldingRanges'); +export const GetSemanticTokensRequest: RequestType = new RequestType('cpptools/getSemanticTokens'); +export const FormatDocumentRequest: RequestType = new RequestType('cpptools/formatDocument'); +export const FormatRangeRequest: RequestType = new RequestType('cpptools/formatRange'); +export const FormatOnTypeRequest: RequestType = new RequestType('cpptools/formatOnType'); +const GoToDirectiveInGroupRequest: RequestType = new RequestType('cpptools/goToDirectiveInGroup'); +const GenerateDoxygenCommentRequest: RequestType = new RequestType('cpptools/generateDoxygenComment'); // Notifications to the server -const DidOpenNotification: NotificationType = new NotificationType('textDocument/didOpen'); -const FileCreatedNotification: NotificationType = new NotificationType('cpptools/fileCreated'); -const FileChangedNotification: NotificationType = new NotificationType('cpptools/fileChanged'); -const FileDeletedNotification: NotificationType = new NotificationType('cpptools/fileDeleted'); -const ResetDatabaseNotification: NotificationType = new NotificationType('cpptools/resetDatabase'); -const PauseParsingNotification: NotificationType = new NotificationType('cpptools/pauseParsing'); -const ResumeParsingNotification: NotificationType = new NotificationType('cpptools/resumeParsing'); -const ActiveDocumentChangeNotification: NotificationType = new NotificationType('cpptools/activeDocumentChange'); -const RestartIntelliSenseForFileNotification: NotificationType = new NotificationType('cpptools/restartIntelliSenseForFile'); -const TextEditorSelectionChangeNotification: NotificationType = new NotificationType('cpptools/textEditorSelectionChange'); -const ChangeCppPropertiesNotification: NotificationType = new NotificationType('cpptools/didChangeCppProperties'); -const ChangeCompileCommandsNotification: NotificationType = new NotificationType('cpptools/didChangeCompileCommands'); -const ChangeSelectedSettingNotification: NotificationType = new NotificationType('cpptools/didChangeSelectedSetting'); -const IntervalTimerNotification: NotificationType = new NotificationType('cpptools/onIntervalTimer'); -const CustomConfigurationNotification: NotificationType = new NotificationType('cpptools/didChangeCustomConfiguration'); -const CustomBrowseConfigurationNotification: NotificationType = new NotificationType('cpptools/didChangeCustomBrowseConfiguration'); -const ClearCustomConfigurationsNotification: NotificationType = new NotificationType('cpptools/clearCustomConfigurations'); -const ClearCustomBrowseConfigurationNotification: NotificationType = new NotificationType('cpptools/clearCustomBrowseConfiguration'); -const RescanFolderNotification: NotificationType = new NotificationType('cpptools/rescanFolder'); -export const RequestReferencesNotification: NotificationType = new NotificationType('cpptools/requestReferences'); -export const CancelReferencesNotification: NotificationType = new NotificationType('cpptools/cancelReferences'); -const FinishedRequestCustomConfig: NotificationType = new NotificationType('cpptools/finishedRequestCustomConfig'); -const FindAllReferencesNotification: NotificationType = new NotificationType('cpptools/findAllReferences'); -const RenameNotification: NotificationType = new NotificationType('cpptools/rename'); -const DidChangeSettingsNotification: NotificationType = new NotificationType('cpptools/didChangeSettings'); - -const CodeAnalysisNotification: NotificationType = new NotificationType('cpptools/runCodeAnalysis'); -const PauseCodeAnalysisNotification: NotificationType = new NotificationType('cpptools/pauseCodeAnalysis'); -const ResumeCodeAnalysisNotification: NotificationType = new NotificationType('cpptools/resumeCodeAnalysis'); -const CancelCodeAnalysisNotification: NotificationType = new NotificationType('cpptools/cancelCodeAnalysis'); -const RemoveCodeAnalysisProblemsNotification: NotificationType = new NotificationType('cpptools/removeCodeAnalysisProblems'); +const DidOpenNotification: NotificationType = new NotificationType('textDocument/didOpen'); +const FileCreatedNotification: NotificationType = new NotificationType('cpptools/fileCreated'); +const FileChangedNotification: NotificationType = new NotificationType('cpptools/fileChanged'); +const FileDeletedNotification: NotificationType = new NotificationType('cpptools/fileDeleted'); +const ResetDatabaseNotification: NotificationType = new NotificationType('cpptools/resetDatabase'); +const PauseParsingNotification: NotificationType = new NotificationType('cpptools/pauseParsing'); +const ResumeParsingNotification: NotificationType = new NotificationType('cpptools/resumeParsing'); +const ActiveDocumentChangeNotification: NotificationType = new NotificationType('cpptools/activeDocumentChange'); +const RestartIntelliSenseForFileNotification: NotificationType = new NotificationType('cpptools/restartIntelliSenseForFile'); +const TextEditorSelectionChangeNotification: NotificationType = new NotificationType('cpptools/textEditorSelectionChange'); +const ChangeCppPropertiesNotification: NotificationType = new NotificationType('cpptools/didChangeCppProperties'); +const ChangeCompileCommandsNotification: NotificationType = new NotificationType('cpptools/didChangeCompileCommands'); +const ChangeSelectedSettingNotification: NotificationType = new NotificationType('cpptools/didChangeSelectedSetting'); +const IntervalTimerNotification: NotificationType = new NotificationType('cpptools/onIntervalTimer'); +const CustomConfigurationNotification: NotificationType = new NotificationType('cpptools/didChangeCustomConfiguration'); +const CustomBrowseConfigurationNotification: NotificationType = new NotificationType('cpptools/didChangeCustomBrowseConfiguration'); +const ClearCustomConfigurationsNotification: NotificationType = new NotificationType('cpptools/clearCustomConfigurations'); +const ClearCustomBrowseConfigurationNotification: NotificationType = new NotificationType('cpptools/clearCustomBrowseConfiguration'); +const RescanFolderNotification: NotificationType = new NotificationType('cpptools/rescanFolder'); +export const RequestReferencesNotification: NotificationType = new NotificationType('cpptools/requestReferences'); +export const CancelReferencesNotification: NotificationType = new NotificationType('cpptools/cancelReferences'); +const FinishedRequestCustomConfig: NotificationType = new NotificationType('cpptools/finishedRequestCustomConfig'); +const FindAllReferencesNotification: NotificationType = new NotificationType('cpptools/findAllReferences'); +const RenameNotification: NotificationType = new NotificationType('cpptools/rename'); +const DidChangeSettingsNotification: NotificationType = new NotificationType('cpptools/didChangeSettings'); + +const CodeAnalysisNotification: NotificationType = new NotificationType('cpptools/runCodeAnalysis'); +const PauseCodeAnalysisNotification: NotificationType = new NotificationType('cpptools/pauseCodeAnalysis'); +const ResumeCodeAnalysisNotification: NotificationType = new NotificationType('cpptools/resumeCodeAnalysis'); +const CancelCodeAnalysisNotification: NotificationType = new NotificationType('cpptools/cancelCodeAnalysis'); +const RemoveCodeAnalysisProblemsNotification: NotificationType = new NotificationType('cpptools/removeCodeAnalysisProblems'); // Notifications from the server -const ReloadWindowNotification: NotificationType = new NotificationType('cpptools/reloadWindow'); -const LogTelemetryNotification: NotificationType = new NotificationType('cpptools/logTelemetry'); -const ReportTagParseStatusNotification: NotificationType = new NotificationType('cpptools/reportTagParseStatus'); -const ReportStatusNotification: NotificationType = new NotificationType('cpptools/reportStatus'); -const DebugProtocolNotification: NotificationType = new NotificationType('cpptools/debugProtocol'); -const DebugLogNotification: NotificationType = new NotificationType('cpptools/debugLog'); -const InactiveRegionNotification: NotificationType = new NotificationType('cpptools/inactiveRegions'); -const CompileCommandsPathsNotification: NotificationType = new NotificationType('cpptools/compileCommandsPaths'); -const ReferencesNotification: NotificationType = new NotificationType('cpptools/references'); -const ReportReferencesProgressNotification: NotificationType = new NotificationType('cpptools/reportReferencesProgress'); -const RequestCustomConfig: NotificationType = new NotificationType('cpptools/requestCustomConfig'); -const PublishIntelliSenseDiagnosticsNotification: NotificationType = new NotificationType('cpptools/publishIntelliSenseDiagnostics'); -const ShowMessageWindowNotification: NotificationType = new NotificationType('cpptools/showMessageWindow'); -const ShowWarningNotification: NotificationType = new NotificationType('cpptools/showWarning'); -const ReportTextDocumentLanguage: NotificationType = new NotificationType('cpptools/reportTextDocumentLanguage'); -const SemanticTokensChanged: NotificationType = new NotificationType('cpptools/semanticTokensChanged'); -const InlayHintsChanged: NotificationType = new NotificationType('cpptools/inlayHintsChanged'); -const IntelliSenseSetupNotification: NotificationType = new NotificationType('cpptools/IntelliSenseSetup'); -const SetTemporaryTextDocumentLanguageNotification: NotificationType = new NotificationType('cpptools/setTemporaryTextDocumentLanguage'); -const ReportCodeAnalysisProcessedNotification: NotificationType = new NotificationType('cpptools/reportCodeAnalysisProcessed'); -const ReportCodeAnalysisTotalNotification: NotificationType = new NotificationType('cpptools/reportCodeAnalysisTotal'); +const ReloadWindowNotification: NotificationType = new NotificationType('cpptools/reloadWindow'); +const LogTelemetryNotification: NotificationType = new NotificationType('cpptools/logTelemetry'); +const ReportTagParseStatusNotification: NotificationType = new NotificationType('cpptools/reportTagParseStatus'); +const ReportStatusNotification: NotificationType = new NotificationType('cpptools/reportStatus'); +const DebugProtocolNotification: NotificationType = new NotificationType('cpptools/debugProtocol'); +const DebugLogNotification: NotificationType = new NotificationType('cpptools/debugLog'); +const InactiveRegionNotification: NotificationType = new NotificationType('cpptools/inactiveRegions'); +const CompileCommandsPathsNotification: NotificationType = new NotificationType('cpptools/compileCommandsPaths'); +const ReferencesNotification: NotificationType = new NotificationType('cpptools/references'); +const ReportReferencesProgressNotification: NotificationType = new NotificationType('cpptools/reportReferencesProgress'); +const RequestCustomConfig: NotificationType = new NotificationType('cpptools/requestCustomConfig'); +const PublishIntelliSenseDiagnosticsNotification: NotificationType = new NotificationType('cpptools/publishIntelliSenseDiagnostics'); +const ShowMessageWindowNotification: NotificationType = new NotificationType('cpptools/showMessageWindow'); +const ShowWarningNotification: NotificationType = new NotificationType('cpptools/showWarning'); +const ReportTextDocumentLanguage: NotificationType = new NotificationType('cpptools/reportTextDocumentLanguage'); +const SemanticTokensChanged: NotificationType = new NotificationType('cpptools/semanticTokensChanged'); +const InlayHintsChanged: NotificationType = new NotificationType('cpptools/inlayHintsChanged'); +const IntelliSenseSetupNotification: NotificationType = new NotificationType('cpptools/IntelliSenseSetup'); +const SetTemporaryTextDocumentLanguageNotification: NotificationType = new NotificationType('cpptools/setTemporaryTextDocumentLanguage'); +const ReportCodeAnalysisProcessedNotification: NotificationType = new NotificationType('cpptools/reportCodeAnalysisProcessed'); +const ReportCodeAnalysisTotalNotification: NotificationType = new NotificationType('cpptools/reportCodeAnalysisTotal'); +const DoxygenCommentGeneratedNotification: NotificationType = new NotificationType('cpptools/insertDoxygenComment'); + let failureMessageShown: boolean = false; export interface ReferencesCancellationState { @@ -613,7 +643,7 @@ export interface Client { queueTask(task: () => Thenable): Promise; requestWhenReady(request: () => Thenable): Thenable; notifyWhenLanguageClientReady(notify: () => void): void; - awaitUntilLanguageClientReady(): void; + awaitUntilLanguageClientReady(): Thenable; requestSwitchHeaderSource(rootPath: string, fileName: string): Thenable; activeDocumentChanged(document: vscode.TextDocument): Promise; restartIntelliSenseForFile(document: vscode.TextDocument): Promise; @@ -636,6 +666,7 @@ export interface Client { handleConfigurationEditUICommand(viewColumn?: vscode.ViewColumn): void; handleAddToIncludePathCommand(path: string): void; handleGoToDirectiveInGroup(next: boolean): Promise; + handleGenerateDoxygenComment(initCursorLine: number | undefined, initCursorColumn: number | undefined, line: number | undefined, column: number | undefined, insertNewLineAtBeginning: boolean | undefined): Promise; handleCheckForCompiler(): Promise; handleRunCodeAnalysisOnActiveFile(): Promise; handleRunCodeAnalysisOnOpenFiles(): Promise; @@ -803,7 +834,7 @@ export class DefaultClient implements Client { languageClient = this.createLanguageClient(allClients); clientCollection = allClients; languageClient.registerProposedFeatures(); - languageClient.start(); // This returns Disposable, but doesn't need to be tracked because we call .stop() explicitly in our dispose() + firstClientStarted = languageClient.start(); util.setProgress(util.getProgressExecutableStarted()); firstClient = true; } @@ -812,7 +843,7 @@ export class DefaultClient implements Client { // requests/notifications are deferred until this.languageClient is set. this.queueBlockingTask(async () => { - await languageClient.onReady(); + await firstClientStarted; try { const workspaceFolder: vscode.WorkspaceFolder | undefined = this.rootFolder; this.innerConfiguration = new configs.CppProperties(rootUri, workspaceFolder); @@ -911,7 +942,7 @@ export class DefaultClient implements Client { this.languageClient.sendNotification(FindAllReferencesNotification, params); } - public sendRenameNofication(params: RenameParams): void { + public sendRenameNotification(params: RenameParams): void { this.languageClient.sendNotification(RenameNotification, params); } @@ -966,6 +997,8 @@ export class DefaultClient implements Client { const settings_suggestSnippets: (boolean | undefined)[] = []; const settings_exclusionPolicy: (string | undefined)[] = []; const settings_preferredPathSeparator: (string | undefined)[] = []; + const settings_doxygenGeneratedCommentStyle: (string | undefined)[] = []; + const settings_doxygenGenerateOnType: (boolean | undefined)[] = []; const settings_defaultSystemIncludePath: (string[] | undefined)[] = []; const settings_intelliSenseCachePath: (string | undefined)[] = []; const settings_intelliSenseCacheSize: (number | undefined)[] = []; @@ -1133,6 +1166,8 @@ export class DefaultClient implements Client { settings_suggestSnippets.push(setting.suggestSnippets); settings_exclusionPolicy.push(setting.exclusionPolicy); settings_preferredPathSeparator.push(setting.preferredPathSeparator); + settings_doxygenGeneratedCommentStyle.push(setting.doxygenGeneratedCommentStyle); + settings_doxygenGenerateOnType.push(setting.doxygenGenerateOnType); settings_defaultSystemIncludePath.push(setting.defaultSystemIncludePath); settings_intelliSenseCachePath.push(util.resolveCachePath(setting.intelliSenseCachePath, this.AdditionalEnvironment)); settings_intelliSenseCacheSize.push(setting.intelliSenseCacheSize); @@ -1317,6 +1352,10 @@ export class DefaultClient implements Client { enhancedColorization: settings_enhancedColorization, suggestSnippets: settings_suggestSnippets, simplifyStructuredComments: workspaceSettings.simplifyStructuredComments, + doxygen: { + generatedStyle: settings_doxygenGeneratedCommentStyle, + generateOnType: settings_doxygenGenerateOnType + }, loggingLevel: workspaceSettings.loggingLevel, workspaceParsingPriority: workspaceSettings.workspaceParsingPriority, workspaceSymbols: workspaceSettings.workspaceSymbols, @@ -1334,7 +1373,7 @@ export class DefaultClient implements Client { }, middleware: createProtocolFilter(allClients), errorHandler: { - error: () => ErrorAction.Continue, + error: (error, message, count) => ({ action: ErrorAction.Continue }), closed: () => { languageClientCrashTimes.push(Date.now()); languageClientCrashedNeedsRestart = true; @@ -1351,7 +1390,7 @@ export class DefaultClient implements Client { allClients.recreateClients(); } } - return CloseAction.DoNotRestart; + return { action: CloseAction.DoNotRestart }; } } @@ -1424,6 +1463,9 @@ export class DefaultClient implements Client { }, space: vscode.workspace.getConfiguration("C_Cpp.vcFormat.space", this.RootUri), wrap: vscode.workspace.getConfiguration("C_Cpp.vcFormat.wrap", this.RootUri) + }, + doxygen: { + ...vscode.workspace.getConfiguration("C_Cpp.doxygen", this.RootUri) } }, editor: { @@ -1804,7 +1846,7 @@ export class DefaultClient implements Client { public async provideCustomConfiguration(docUri: vscode.Uri, requestFile?: string, replaceExisting?: boolean): Promise { const onFinished: () => void = () => { if (requestFile) { - this.languageClient.sendNotification(FinishedRequestCustomConfig, requestFile); + this.languageClient.sendNotification(FinishedRequestCustomConfig, { uri: requestFile }); } }; const providerId: string | undefined = this.configurationProvider; @@ -2120,6 +2162,7 @@ export class DefaultClient implements Client { this.languageClient.onNotification(SetTemporaryTextDocumentLanguageNotification, (e) => this.setTemporaryTextDocumentLanguage(e)); this.languageClient.onNotification(ReportCodeAnalysisProcessedNotification, (e) => this.updateCodeAnalysisProcessed(e)); this.languageClient.onNotification(ReportCodeAnalysisTotalNotification, (e) => this.updateCodeAnalysisTotal(e)); + this.languageClient.onNotification(DoxygenCommentGeneratedNotification, (e) => this.insertDoxygenComment(e)); setupOutputHandlers(); } @@ -2604,6 +2647,32 @@ export class DefaultClient implements Client { this.model.codeAnalysisTotal.Value = total; } + private async insertDoxygenComment(result: GenerateDoxygenCommentResult): Promise { + const editor: vscode.TextEditor | undefined = vscode.window.activeTextEditor; + if (!editor) { + return; + } + const currentFileVersion: number | undefined = openFileVersions.get(editor.document.uri.toString()); + // Insert the comment only if the cursor has not moved + if (result.fileVersion === currentFileVersion && + result.initPosition.line === editor.selection.active.line && + result.initPosition.character === editor.selection.active.character && + result.contents.length > 1) { + const workspaceEdit: vscode.WorkspaceEdit = new vscode.WorkspaceEdit(); + const edits: vscode.TextEdit[] = []; + const maxColumn: number = 99999999; + const newRange: vscode.Range = new vscode.Range(editor.selection.start.line, 0, editor.selection.end.line, maxColumn); + edits.push(new vscode.TextEdit(newRange, result?.contents)); + workspaceEdit.set(editor.document.uri, edits); + await vscode.workspace.applyEdit(workspaceEdit); + + // Set the cursor position after @brief + const newPosition: vscode.Position = new vscode.Position(result.finalCursorPosition.line, result.finalCursorPosition.character); + const newSelection: vscode.Selection = new vscode.Selection(newPosition, newPosition); + editor.selection = newSelection; + } + } + private doneInitialCustomBrowseConfigurationCheck: boolean = false; private onConfigurationsChanged(cppProperties: configs.CppProperties): void { @@ -2949,7 +3018,6 @@ export class DefaultClient implements Client { position: editor.selection.active, next: next }; - await this.awaitUntilLanguageClientReady(); const response: Position | undefined = await this.languageClient.sendRequest(GoToDirectiveInGroupRequest, params); if (response) { @@ -2966,6 +3034,75 @@ export class DefaultClient implements Client { } } + public async handleGenerateDoxygenComment(initCursorLine: number | undefined, initCursorColumn: number | undefined, adjustedLine: number | undefined, adjustedColmn: number | undefined, isCursorAboveSignatureLine: boolean): Promise { + const editor: vscode.TextEditor | undefined = vscode.window.activeTextEditor; + if (!editor) { + return; + } + + if (editor.document.uri.scheme !== "file") { + return; + } + + if (!(editor.document.languageId === "c" || editor.document.languageId === "cpp" || editor.document.languageId === "cuda-cpp")) { + return; + } + + const isCodeAction: boolean = (adjustedLine !== undefined && adjustedLine !== undefined); + const initCursorPosition: vscode.Position = isCodeAction ? new vscode.Position(initCursorLine ?? 0, initCursorColumn ?? 0) : editor.selection.active; + const params: GenerateDoxygenCommentParams = { + uri: editor.document.uri.toString(), + position: isCodeAction ? new vscode.Position(adjustedLine ?? 0, adjustedColmn ?? 0) : editor.selection.active, + isCodeAction: isCodeAction, + isCursorAboveSignatureLine: isCursorAboveSignatureLine + }; + await this.awaitUntilLanguageClientReady(); + const currentFileVersion: number | undefined = openFileVersions.get(params.uri); + if (currentFileVersion === undefined) { + return; + } + const result: GenerateDoxygenCommentResult | undefined = await this.languageClient.sendRequest(GenerateDoxygenCommentRequest, params); + // Insert the comment only if the comment has contents and the cursor has not moved + if (result !== undefined && + initCursorPosition.line === editor.selection.active.line && + initCursorPosition.character === editor.selection.active.character && + result.fileVersion !== undefined && + result.fileVersion === currentFileVersion && + result.contents && result.contents.length > 1) { + const workspaceEdit: vscode.WorkspaceEdit = new vscode.WorkspaceEdit(); + const edits: vscode.TextEdit[] = []; + const maxColumn: number = 99999999; + let newRange: vscode.Range; + const cursorOnEmptyLineAboveSignature: boolean = result.isCursorAboveSignatureLine; + // The reason why we need to set different range is because if cursor is immediately above the signature line, we want the comments to be inserted at the line of cursor and to replace everything on the line. + // If the cursor is on the signature line or is inside the boby, the comment will be inserted on the same line of the signature and it shouldn't replace the content of the signature line. + if (cursorOnEmptyLineAboveSignature) { + if (isCodeAction) { + // The reson why we cannot use finalInsertionLine is because the line number sent from the result is not correct. + // In most cases, the finalInsertionLine is the line of the signature line. + newRange = new vscode.Range(initCursorPosition.line, 0, initCursorPosition.line, maxColumn); + } else { + newRange = new vscode.Range(result.finalInsertionLine, 0, result.finalInsertionLine, maxColumn); + } + } else { + newRange = new vscode.Range(result.finalInsertionLine, 0, result.finalInsertionLine, 0); + } + edits.push(new vscode.TextEdit(newRange, result?.contents)); + workspaceEdit.set(editor.document.uri, edits); + await vscode.workspace.applyEdit(workspaceEdit); + // Set the cursor position after @brief + let newPosition: vscode.Position; + if (cursorOnEmptyLineAboveSignature && isCodeAction) { + newPosition = new vscode.Position(result.finalCursorPosition.line - 1, result.finalCursorPosition.character); + } else { + newPosition = new vscode.Position(result.finalCursorPosition.line, result.finalCursorPosition.character); + } + const newSelection: vscode.Selection = new vscode.Selection(newPosition, newPosition); + editor.selection = newSelection; + } + + } + public async handleCheckForCompiler(): Promise { await this.awaitUntilLanguageClientReady(); const compilers: configs.KnownCompiler[] | undefined = await this.getKnownCompilers(); @@ -2996,28 +3133,45 @@ export class DefaultClient implements Client { public async handleRunCodeAnalysisOnActiveFile(): Promise { await this.awaitUntilLanguageClientReady(); - this.languageClient.sendNotification(CodeAnalysisNotification, CodeAnalysisScope.ActiveFile); + this.languageClient.sendNotification(CodeAnalysisNotification, { scope: CodeAnalysisScope.ActiveFile }); } public async handleRunCodeAnalysisOnOpenFiles(): Promise { await this.awaitUntilLanguageClientReady(); - this.languageClient.sendNotification(CodeAnalysisNotification, CodeAnalysisScope.OpenFiles); + this.languageClient.sendNotification(CodeAnalysisNotification, { scope: CodeAnalysisScope.OpenFiles }); } public async handleRunCodeAnalysisOnAllFiles(): Promise { await this.awaitUntilLanguageClientReady(); - this.languageClient.sendNotification(CodeAnalysisNotification, CodeAnalysisScope.AllFiles); + this.languageClient.sendNotification(CodeAnalysisNotification, { scope: CodeAnalysisScope.AllFiles }); } public async handleRemoveAllCodeAnalysisProblems(): Promise { await this.awaitUntilLanguageClientReady(); if (removeAllCodeAnalysisProblems()) { - this.languageClient.sendNotification(CodeAnalysisNotification, CodeAnalysisScope.ClearSquiggles); + this.languageClient.sendNotification(CodeAnalysisNotification, { scope: CodeAnalysisScope.ClearSquiggles }); } } public async handleFixCodeAnalysisProblems(workspaceEdit: vscode.WorkspaceEdit, refreshSquigglesOnSave: boolean, identifiersAndUris: CodeAnalysisDiagnosticIdentifiersAndUri[]): Promise { if (await vscode.workspace.applyEdit(workspaceEdit)) { + const settings: CppSettings = new CppSettings(this.RootUri); + if (settings.clangTidyCodeActionFormatFixes) { + const editedFiles: Set = new Set(); + for (const entry of workspaceEdit.entries()) { + editedFiles.add(entry[0]); + } + const formatEdits: vscode.WorkspaceEdit = new vscode.WorkspaceEdit(); + for (const uri of editedFiles) { + const formatTextEdits: vscode.TextEdit[] | undefined = await vscode.commands.executeCommand("vscode.executeFormatDocumentProvider", uri, { onChanges: true }); + if (formatTextEdits && formatTextEdits.length > 0) { + formatEdits.set(uri, formatTextEdits); + } + } + if (formatEdits.size > 0) { + await vscode.workspace.applyEdit(formatEdits); + } + } return this.handleRemoveCodeAnalysisProblems(refreshSquigglesOnSave, identifiersAndUris); } } @@ -3109,7 +3263,7 @@ export class DefaultClient implements Client { } else { workspaceReferences.referencesRequestHasOccurred = true; workspaceReferences.referencesRequestPending = true; - this.languageClient.sendNotification(RequestReferencesNotification, false); + this.languageClient.sendNotification(RequestReferencesNotification); } } } @@ -3203,7 +3357,7 @@ class NullClient implements Client { queueTask(task: () => Thenable): Promise { return Promise.resolve(task()); } requestWhenReady(request: () => Thenable): Thenable { return request(); } notifyWhenLanguageClientReady(notify: () => void): void { } - awaitUntilLanguageClientReady(): void { } + awaitUntilLanguageClientReady(): Thenable { return Promise.resolve(); } requestSwitchHeaderSource(rootPath: string, fileName: string): Thenable { return Promise.resolve(""); } activeDocumentChanged(document: vscode.TextDocument): Promise { return Promise.resolve(); } restartIntelliSenseForFile(document: vscode.TextDocument): Promise { return Promise.resolve(); } @@ -3226,6 +3380,7 @@ class NullClient implements Client { handleConfigurationEditUICommand(viewColumn?: vscode.ViewColumn): void { } handleAddToIncludePathCommand(path: string): void { } handleGoToDirectiveInGroup(next: boolean): Promise { return Promise.resolve(); } + handleGenerateDoxygenComment(): Promise { return Promise.resolve(); } handleCheckForCompiler(): Promise { return Promise.resolve(); } handleRunCodeAnalysisOnActiveFile(): Promise { return Promise.resolve(); } handleRunCodeAnalysisOnOpenFiles(): Promise { return Promise.resolve(); } diff --git a/Extension/src/LanguageServer/codeAnalysis.ts b/Extension/src/LanguageServer/codeAnalysis.ts index c161bc8a5d..a55c9f55a7 100644 --- a/Extension/src/LanguageServer/codeAnalysis.ts +++ b/Extension/src/LanguageServer/codeAnalysis.ts @@ -4,7 +4,7 @@ * ------------------------------------------------------------------------------------------ */ 'use strict'; import * as vscode from 'vscode'; -import { LanguageClient, NotificationType, Range } from 'vscode-languageclient'; +import { LanguageClient, NotificationType, Range } from 'vscode-languageclient/node'; import { Location, WorkspaceEdit } from './commonTypes'; import { makeVscodeRange, makeVscodeLocation, makeVscodeTextEdits, rangeEquals } from './utils'; import {LocalizeStringParams, getLocalizedString } from './localization'; @@ -110,8 +110,8 @@ interface PublishCodeAnalysisDiagnosticsParams { diagnostics: CodeAnalysisDiagnostic[]; } -const PublishCodeAnalysisDiagnosticsNotification: NotificationType = new NotificationType('cpptools/publishCodeAnalysisDiagnostics'); -const PublishRemoveCodeAnalysisCodeActionFixesNotification: NotificationType = new NotificationType('cpptools/publishRemoveCodeAnalysisCodeActionFixes'); +const PublishCodeAnalysisDiagnosticsNotification: NotificationType = new NotificationType('cpptools/publishCodeAnalysisDiagnostics'); +const PublishRemoveCodeAnalysisCodeActionFixesNotification: NotificationType = new NotificationType('cpptools/publishRemoveCodeAnalysisCodeActionFixes'); export const codeAnalysisFileToCodeActions: Map = new Map(); export const codeAnalysisCodeToFixes: Map = new Map(); diff --git a/Extension/src/LanguageServer/cppBuildTaskProvider.ts b/Extension/src/LanguageServer/cppBuildTaskProvider.ts index d5da96b30e..74703cda7d 100644 --- a/Extension/src/LanguageServer/cppBuildTaskProvider.ts +++ b/Extension/src/LanguageServer/cppBuildTaskProvider.ts @@ -178,7 +178,12 @@ export class CppBuildTaskProvider implements TaskProvider { const taskLabel: string = ((appendSourceToName && !compilerPathBase.startsWith(ext.configPrefix)) ? ext.configPrefix : "") + compilerPathBase + " " + localize("build_active_file", "build active file"); const programName: string = util.defaultExePath(); - let args: string[] = isCl ? ['/Zi', '/EHsc', '/nologo', `/Fe${programName}`, '${file}'] : ['-fdiagnostics-color=always', '-g', '${file}', '-o', programName]; + const isClang: boolean = !isCl && compilerPathBase.toLowerCase().includes("clang"); + let args: string[] = isCl ? + ['/Zi', '/EHsc', '/nologo', `/Fe${programName}`, '${file}'] : + isClang ? + ['-fcolor-diagnostics', '-fansi-escape-codes', '-g', '${file}', '-o', programName] : + ['-fdiagnostics-color=always', '-g', '${file}', '-o', programName]; if (compilerArgs && compilerArgs.length > 0) { args = args.concat(compilerArgs); } diff --git a/Extension/src/LanguageServer/extension.ts b/Extension/src/LanguageServer/extension.ts index 9118ab0899..e6cef52cf6 100644 --- a/Extension/src/LanguageServer/extension.ts +++ b/Extension/src/LanguageServer/extension.ts @@ -38,6 +38,7 @@ let clients: ClientCollection; let activeDocument: string; let ui: UI; const disposables: vscode.Disposable[] = []; +const commandDisposables: vscode.Disposable[] = []; let languageConfigurations: vscode.Disposable[] = []; let intervalTimer: NodeJS.Timer; let codeActionProvider: vscode.Disposable; @@ -198,7 +199,7 @@ export async function activate(): Promise { intervalTimer = global.setInterval(onInterval, 2500); }); - registerCommands(); + registerCommands(true); vscode.tasks.onDidStartTask(event => { getActiveClient().PauseCodeAnalysis(); @@ -383,53 +384,68 @@ function onInterval(): void { /** * registered commands */ -export function registerCommands(): void { - disposables.push(vscode.commands.registerCommand('C_Cpp.SwitchHeaderSource', onSwitchHeaderSource)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ResetDatabase', onResetDatabase)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ConfigurationSelect', onSelectConfiguration)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ConfigurationProviderSelect', onSelectConfigurationProvider)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ConfigurationEditJSON', onEditConfigurationJSON)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ConfigurationEditUI', onEditConfigurationUI)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ConfigurationEdit', onEditConfiguration)); - disposables.push(vscode.commands.registerCommand('C_Cpp.AddToIncludePath', onAddToIncludePath)); - disposables.push(vscode.commands.registerCommand('C_Cpp.EnableErrorSquiggles', onEnableSquiggles)); - disposables.push(vscode.commands.registerCommand('C_Cpp.DisableErrorSquiggles', onDisableSquiggles)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ToggleIncludeFallback', onToggleIncludeFallback)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ToggleDimInactiveRegions', onToggleDimInactiveRegions)); - disposables.push(vscode.commands.registerCommand('C_Cpp.PauseParsing', onPauseParsing)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ResumeParsing', onResumeParsing)); - disposables.push(vscode.commands.registerCommand('C_Cpp.PauseCodeAnalysis', onPauseCodeAnalysis)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ResumeCodeAnalysis', onResumeCodeAnalysis)); - disposables.push(vscode.commands.registerCommand('C_Cpp.CancelCodeAnalysis', onCancelCodeAnalysis)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ShowParsingCommands', onShowParsingCommands)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ShowCodeAnalysisCommands', onShowCodeAnalysisCommands)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ShowReferencesProgress', onShowReferencesProgress)); - disposables.push(vscode.commands.registerCommand('C_Cpp.TakeSurvey', onTakeSurvey)); - disposables.push(vscode.commands.registerCommand('C_Cpp.LogDiagnostics', onLogDiagnostics)); - disposables.push(vscode.commands.registerCommand('C_Cpp.RescanWorkspace', onRescanWorkspace)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ShowReferenceItem', onShowRefCommand)); - disposables.push(vscode.commands.registerCommand('C_Cpp.referencesViewGroupByType', onToggleRefGroupView)); - disposables.push(vscode.commands.registerCommand('C_Cpp.referencesViewUngroupByType', onToggleRefGroupView)); - disposables.push(vscode.commands.registerCommand('C_Cpp.VcpkgClipboardInstallSuggested', onVcpkgClipboardInstallSuggested)); - disposables.push(vscode.commands.registerCommand('C_Cpp.VcpkgOnlineHelpSuggested', onVcpkgOnlineHelpSuggested)); - disposables.push(vscode.commands.registerCommand('C_Cpp.GenerateEditorConfig', onGenerateEditorConfig)); - disposables.push(vscode.commands.registerCommand('C_Cpp.GoToNextDirectiveInGroup', onGoToNextDirectiveInGroup)); - disposables.push(vscode.commands.registerCommand('C_Cpp.GoToPrevDirectiveInGroup', onGoToPrevDirectiveInGroup)); - disposables.push(vscode.commands.registerCommand('C_Cpp.CheckForCompiler', onCheckForCompiler)); - disposables.push(vscode.commands.registerCommand('C_Cpp.RunCodeAnalysisOnActiveFile', onRunCodeAnalysisOnActiveFile)); - disposables.push(vscode.commands.registerCommand('C_Cpp.RunCodeAnalysisOnOpenFiles', onRunCodeAnalysisOnOpenFiles)); - disposables.push(vscode.commands.registerCommand('C_Cpp.RunCodeAnalysisOnAllFiles', onRunCodeAnalysisOnAllFiles)); - disposables.push(vscode.commands.registerCommand('C_Cpp.RemoveCodeAnalysisProblems', onRemoveCodeAnalysisProblems)); - disposables.push(vscode.commands.registerCommand('C_Cpp.RemoveAllCodeAnalysisProblems', onRemoveAllCodeAnalysisProblems)); - disposables.push(vscode.commands.registerCommand('C_Cpp.FixThisCodeAnalysisProblem', onFixThisCodeAnalysisProblem)); - disposables.push(vscode.commands.registerCommand('C_Cpp.FixAllTypeCodeAnalysisProblems', onFixAllTypeCodeAnalysisProblems)); - disposables.push(vscode.commands.registerCommand('C_Cpp.FixAllCodeAnalysisProblems', onFixAllCodeAnalysisProblems)); - disposables.push(vscode.commands.registerCommand('C_Cpp.DisableAllTypeCodeAnalysisProblems', onDisableAllTypeCodeAnalysisProblems)); - disposables.push(vscode.commands.registerCommand('C_Cpp.ShowCodeAnalysisDocumentation', (uri) => vscode.env.openExternal(uri))); - disposables.push(vscode.commands.registerCommand('cpptools.activeConfigName', onGetActiveConfigName)); - disposables.push(vscode.commands.registerCommand('cpptools.activeConfigCustomVariable', onGetActiveConfigCustomVariable)); - disposables.push(vscode.commands.registerCommand('cpptools.setActiveConfigName', onSetActiveConfigName)); - disposables.push(vscode.commands.registerCommand('C_Cpp.RestartIntelliSenseForFile', onRestartIntelliSenseForFile)); +export function registerCommands(enabled: boolean): void { + commandDisposables.forEach(d => d.dispose()); + commandDisposables.length = 0; + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.SwitchHeaderSource', enabled ? onSwitchHeaderSource : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ResetDatabase', enabled ? onResetDatabase : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ConfigurationSelect', enabled ? onSelectConfiguration : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ConfigurationProviderSelect', enabled ? onSelectConfigurationProvider : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ConfigurationEditJSON', enabled ? onEditConfigurationJSON : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ConfigurationEditUI', enabled ? onEditConfigurationUI : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ConfigurationEdit', enabled ? onEditConfiguration : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.AddToIncludePath', enabled ? onAddToIncludePath : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.EnableErrorSquiggles', enabled ? onEnableSquiggles : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.DisableErrorSquiggles', enabled ? onDisableSquiggles : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ToggleIncludeFallback', enabled ? onToggleIncludeFallback : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ToggleDimInactiveRegions', enabled ? onToggleDimInactiveRegions : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.PauseParsing', enabled ? onPauseParsing : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ResumeParsing', enabled ? onResumeParsing : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.PauseCodeAnalysis', enabled ? onPauseCodeAnalysis : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ResumeCodeAnalysis', enabled ? onResumeCodeAnalysis : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.CancelCodeAnalysis', enabled ? onCancelCodeAnalysis : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ShowParsingCommands', enabled ? onShowParsingCommands : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ShowCodeAnalysisCommands', enabled ? onShowCodeAnalysisCommands : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ShowReferencesProgress', enabled ? onShowReferencesProgress : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.TakeSurvey', enabled ? onTakeSurvey : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.LogDiagnostics', enabled ? onLogDiagnostics : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.RescanWorkspace', enabled ? onRescanWorkspace : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ShowReferenceItem', enabled ? onShowRefCommand : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.referencesViewGroupByType', enabled ? onToggleRefGroupView : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.referencesViewUngroupByType', enabled ? onToggleRefGroupView : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.VcpkgClipboardInstallSuggested', enabled ? onVcpkgClipboardInstallSuggested : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.VcpkgOnlineHelpSuggested', enabled ? onVcpkgOnlineHelpSuggested : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.GenerateEditorConfig', enabled ? onGenerateEditorConfig : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.GoToNextDirectiveInGroup', enabled ? onGoToNextDirectiveInGroup : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.GoToPrevDirectiveInGroup', enabled ? onGoToPrevDirectiveInGroup : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.CheckForCompiler', enabled ? onCheckForCompiler : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.RunCodeAnalysisOnActiveFile', enabled ? onRunCodeAnalysisOnActiveFile : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.RunCodeAnalysisOnOpenFiles', enabled ? onRunCodeAnalysisOnOpenFiles : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.RunCodeAnalysisOnAllFiles', enabled ? onRunCodeAnalysisOnAllFiles : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.RemoveCodeAnalysisProblems', enabled ? onRemoveCodeAnalysisProblems : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.RemoveAllCodeAnalysisProblems', enabled ? onRemoveAllCodeAnalysisProblems : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.FixThisCodeAnalysisProblem', enabled ? onFixThisCodeAnalysisProblem : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.FixAllTypeCodeAnalysisProblems', enabled ? onFixAllTypeCodeAnalysisProblems : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.FixAllCodeAnalysisProblems', enabled ? onFixAllCodeAnalysisProblems : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.DisableAllTypeCodeAnalysisProblems', enabled ? onDisableAllTypeCodeAnalysisProblems : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.ShowCodeAnalysisDocumentation', enabled ? (uri) => vscode.env.openExternal(uri) : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('cpptools.activeConfigName', enabled ? onGetActiveConfigName : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('cpptools.activeConfigCustomVariable', enabled ? onGetActiveConfigCustomVariable : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('cpptools.setActiveConfigName', enabled ? onSetActiveConfigName : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.RestartIntelliSenseForFile', enabled ? onRestartIntelliSenseForFile : onDisabledCommand)); + commandDisposables.push(vscode.commands.registerCommand('C_Cpp.GenerateDoxygenComment', (cursorLine, cursorColumn, line, column, cursorOnEmptyLineAboveSignature) => getActiveClient().handleGenerateDoxygenComment(cursorLine, cursorColumn, line, column, cursorOnEmptyLineAboveSignature))); +} + +function onDisabledCommand(): void { + const message: string = localize( + { + key: "on.disabled.command", + comment: [ + "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." + ] + }, + "IntelliSense-related commands cannot be executed when `C_Cpp.intelliSenseEngine` is set to `Disabled`."); + vscode.window.showWarningMessage(message); } function onRestartIntelliSenseForFile(): void { @@ -986,6 +1002,7 @@ export function deactivate(): Thenable { console.log("deactivating extension"); telemetry.logLanguageServerEvent("LanguageServerShutdown"); clearInterval(intervalTimer); + commandDisposables.forEach(d => d.dispose()); disposables.forEach(d => d.dispose()); languageConfigurations.forEach(d => d.dispose()); ui.dispose(); diff --git a/Extension/src/LanguageServer/protocolFilter.ts b/Extension/src/LanguageServer/protocolFilter.ts index 9093d45464..2c5d357bcd 100644 --- a/Extension/src/LanguageServer/protocolFilter.ts +++ b/Extension/src/LanguageServer/protocolFilter.ts @@ -14,16 +14,16 @@ import { onDidChangeActiveTextEditor, processDelayedDidOpen } from './extension' export function createProtocolFilter(clients: ClientCollection): Middleware { // Disabling lint for invoke handlers - const defaultHandler: (data: any, callback: (data: any) => void) => void = (data, callback: (data: any) => void) => { clients.ActiveClient.notifyWhenLanguageClientReady(() => callback(data)); }; - // let invoke1 = (a, callback: (a) => any) => { if (clients.ActiveClient === me) { return me.requestWhenReady(() => callback(a)); } return null; }; - const invoke2 = (a: any, b: any, callback: (a: any, b: any) => any) => clients.ActiveClient.requestWhenReady(() => callback(a, b)); - const invoke3 = (a: any, b: any, c: any, callback: (a: any, b: any, c: any) => any) => clients.ActiveClient.requestWhenReady(() => callback(a, b, c)); - const invoke4 = (a: any, b: any, c: any, d: any, callback: (a: any, b: any, c: any, d: any) => any) => clients.ActiveClient.requestWhenReady(() => callback(a, b, c, d)); - const invoke5 = (a: any, b: any, c: any, d: any, e: any, callback: (a: any, b: any, c: any, d: any, e: any) => any) => clients.ActiveClient.requestWhenReady(() => callback(a, b, c, d, e)); + const defaultHandler: (data: any, callback: (data: any) => Promise) => Promise = async (data, callback: (data: any) => void) => { clients.ActiveClient.notifyWhenLanguageClientReady(() => callback(data)); }; + // const invoke1 = async (a: any, next: (a: any) => any) => { await clients.ActiveClient.awaitUntilLanguageClientReady(); return next(a); }; + const invoke2 = async (a: any, b: any, next: (a: any, b: any) => any) => { await clients.ActiveClient.awaitUntilLanguageClientReady(); return next(a, b); }; + const invoke3 = async (a: any, b: any, c: any, next: (a: any, b: any, c: any) => any) => { await clients.ActiveClient.awaitUntilLanguageClientReady(); return next(a, b, c); }; + const invoke4 = async (a: any, b: any, c: any, d: any, next: (a: any, b: any, c: any, d: any) => any) => { await clients.ActiveClient.awaitUntilLanguageClientReady(); return next(a, b, c, d); }; + // const invoke5 = async (a: any, b: any, c: any, d: any, e: any, next: (a: any, b: any, c: any, d: any, e: any) => any) => { await clients.ActiveClient.awaitUntilLanguageClientReady(); return next(a, b, c, d, e); }; /* tslint:enable */ return { - didOpen: (document, sendMessage) => { + didOpen: async (document, sendMessage) => { const editor: vscode.TextEditor | undefined = vscode.window.visibleTextEditors.find(e => e.document === document); if (editor) { // If the file was visible editor when we were activated, we will not get a call to @@ -74,7 +74,7 @@ export function createProtocolFilter(clients: ClientCollection): Middleware { // didOpen), and first becomes visible. } }, - didChange: (textDocumentChangeEvent, sendMessage) => { + didChange: async (textDocumentChangeEvent, sendMessage) => { const me: Client = clients.getClientFor(textDocumentChangeEvent.document.uri); if (!me.TrackedDocuments.has(textDocumentChangeEvent.document)) { processDelayedDidOpen(textDocumentChangeEvent.document); @@ -83,7 +83,7 @@ export function createProtocolFilter(clients: ClientCollection): Middleware { me.notifyWhenLanguageClientReady(() => sendMessage(textDocumentChangeEvent)); }, willSave: defaultHandler, - willSaveWaitUntil: (event, sendMessage) => { + willSaveWaitUntil: async (event, sendMessage) => { const me: Client = clients.getClientFor(event.document.uri); if (me.TrackedDocuments.has(event.document)) { // Don't use me.requestWhenReady or notifyWhenLanguageClientReady; @@ -93,7 +93,7 @@ export function createProtocolFilter(clients: ClientCollection): Middleware { return Promise.resolve([]); }, didSave: defaultHandler, - didClose: (document, sendMessage) => { + didClose: async (document, sendMessage) => { const me: Client = clients.getClientFor(document.uri); if (me.TrackedDocuments.has(document)) { me.onDidCloseTextDocument(document); @@ -111,23 +111,11 @@ export function createProtocolFilter(clients: ClientCollection): Middleware { } return null; }, - provideSignatureHelp: invoke3, + provideSignatureHelp: invoke4, provideDefinition: invoke3, provideReferences: invoke4, provideDocumentHighlights: invoke3, - provideDocumentSymbols: invoke2, - provideWorkspaceSymbols: invoke2, - provideCodeActions: invoke4, - provideCodeLenses: invoke2, - resolveCodeLens: invoke2, - provideDocumentFormattingEdits: invoke3, - provideDocumentRangeFormattingEdits: invoke4, - provideOnTypeFormattingEdits: invoke5, - provideRenameEdits: invoke4, - provideDocumentLinks: invoke2, - resolveDocumentLink: invoke2, provideDeclaration: invoke3 - // I believe the default handler will do the same thing. // workspace: { // didChangeConfiguration: (sections, sendMessage) => sendMessage(sections) diff --git a/Extension/src/LanguageServer/references.ts b/Extension/src/LanguageServer/references.ts index c638bbe32a..b3cfd5003b 100644 --- a/Extension/src/LanguageServer/references.ts +++ b/Extension/src/LanguageServer/references.ts @@ -195,7 +195,7 @@ export class ReferencesManager { private prevVisibleRangesLength: number = 0; private visibleRangesDecreased: boolean = false; private visibleRangesDecreasedTicks: number = 0; - private readonly ticksForDetectingPeek: number = 1000; // TODO: Might need tweeking? + private readonly ticksForDetectingPeek: number = 1000; // TODO: Might need tweaking? private resultsCallback?: ReferencesResultCallback; private currentUpdateProgressTimer?: NodeJS.Timeout; @@ -397,7 +397,7 @@ export class ReferencesManager { this.resultsCallback(null, true); } } else { - this.client.sendRenameNofication(params); + this.client.sendRenameNotification(params); } } diff --git a/Extension/src/LanguageServer/referencesModel.ts b/Extension/src/LanguageServer/referencesModel.ts index 237f1094c3..a9aae90b28 100644 --- a/Extension/src/LanguageServer/referencesModel.ts +++ b/Extension/src/LanguageServer/referencesModel.ts @@ -141,7 +141,7 @@ export enum NodeType { referenceType, // A node to group reference types. file, // File node that has reference nodes. fileWithPendingRef, // File node with pending references to find (e.g. it has no reference children yet). - reference // A reference node, which is either a string, comment, inactice reference, etc. + reference // A reference node, which is either a string, comment, inactive reference, etc. } export class TreeNode { diff --git a/Extension/src/LanguageServer/referencesTreeDataProvider.ts b/Extension/src/LanguageServer/referencesTreeDataProvider.ts index 2dd5b90463..1243bc3b5d 100644 --- a/Extension/src/LanguageServer/referencesTreeDataProvider.ts +++ b/Extension/src/LanguageServer/referencesTreeDataProvider.ts @@ -40,7 +40,7 @@ export class ReferencesTreeDataProvider implements vscode.TreeDataProvider("codeAnalysis.clangTidy.codeAction.showDisable"); } public get clangTidyCodeActionShowClear(): string { return super.Section.get("codeAnalysis.clangTidy.codeAction.showClear") ?? "AllAndAllType"; } public get clangTidyCodeActionShowDocumentation(): boolean | undefined { return super.Section.get("codeAnalysis.clangTidy.codeAction.showDocumentation"); } + public get clangTidyCodeActionFormatFixes(): boolean { return super.Section.get("codeAnalysis.clangTidy.codeAction.formatFixes") ?? true; } public addClangTidyChecksDisabled(value: string): void { const checks: string[] | undefined = this.clangTidyChecksDisabled; if (checks === undefined) { @@ -220,6 +221,8 @@ export class CppSettings extends Settings { public get workspaceSymbols(): string | undefined { return super.Section.get("workspaceSymbols"); } public get exclusionPolicy(): string | undefined { return super.Section.get("exclusionPolicy"); } public get simplifyStructuredComments(): boolean | undefined { return super.Section.get("simplifyStructuredComments"); } + public get doxygenGeneratedCommentStyle(): string | undefined { return super.Section.get("doxygen.generatedStyle"); } + public get doxygenGenerateOnType(): boolean | undefined { return super.Section.get("doxygen.generateOnType"); } public get commentContinuationPatterns(): (string | CommentPattern)[] | undefined { return super.Section.get<(string | CommentPattern)[]>("commentContinuationPatterns"); } public get configurationWarnings(): string | undefined { return super.Section.get("configurationWarnings"); } public get preferredPathSeparator(): string | undefined { return super.Section.get("preferredPathSeparator"); } @@ -808,6 +811,7 @@ export class OtherSettings { } public get editorTabSize(): number | undefined { return vscode.workspace.getConfiguration("editor", this.resource).get("tabSize"); } + public get editorInsertSpaces(): boolean | undefined { return vscode.workspace.getConfiguration("editor", this.resource).get("insertSpaces"); } public get editorAutoClosingBrackets(): string | undefined { return vscode.workspace.getConfiguration("editor", this.resource).get("autoClosingBrackets"); } public get filesEncoding(): string | undefined { return vscode.workspace.getConfiguration("files", { uri: this.resource, languageId: "cpp" }).get("encoding"); } public get filesAssociations(): any { return vscode.workspace.getConfiguration("files").get("associations"); } diff --git a/Extension/src/SSH/commandInteractors.ts b/Extension/src/SSH/commandInteractors.ts index c59021c0ea..c2fd54cac5 100644 --- a/Extension/src/SSH/commandInteractors.ts +++ b/Extension/src/SSH/commandInteractors.ts @@ -4,7 +4,14 @@ * ------------------------------------------------------------------------------------------ */ import * as vscode from 'vscode'; -import { stripEscapeSequences, isWindows, escapeStringForRegex } from '../common'; +import { stripEscapeSequences, isWindows, escapeStringForRegex, ISshHostInfo, getFullHostAddress, extensionContext } from '../common'; + +/** + * The users that we autofilled their passwords. + * If a user's password is already used and yet we still get the same prompt, we probably got a wrong password. + * Needs to be reset for each command. + */ +export const autoFilledPasswordForUsers: Set = new Set(); export type IDifferingHostConfirmationProvider = (message: string, cancelToken?: vscode.CancellationToken) => Promise; @@ -208,7 +215,7 @@ function getPasswordPrompt(data: string, details?: IInteractorDataDetails): { us export class PasswordInteractor implements IInteractor { static ID = 'password'; - constructor(private readonly passwordProvider: IStringProvider) { } + constructor(private readonly host: ISshHostInfo, private readonly passwordProvider: IStringProvider) { } get id(): string { return PasswordInteractor.ID; @@ -219,12 +226,23 @@ export class PasswordInteractor implements IInteractor { const pwPrompt: { user?: string; message?: string } | undefined = getPasswordPrompt(data, extraDetails); if (pwPrompt && typeof pwPrompt.user === 'string') { result.postAction = 'consume'; - const password: string | undefined = await this.passwordProvider(pwPrompt.user, pwPrompt.message, cancelToken); - if (typeof password === 'string') { - result.response = password; + const actualUser: string = pwPrompt.user === '' ? getFullHostAddress(this.host) : pwPrompt.user; + const passwordCacheKey: string = `SSH:${actualUser}`; + const cachedPassword: string | undefined = await extensionContext?.secrets?.get(passwordCacheKey); + if (cachedPassword !== undefined && !autoFilledPasswordForUsers.has(actualUser)) { + autoFilledPasswordForUsers.add(actualUser); + result.response = cachedPassword; result.isPassword = true; } else { - result.canceled = true; + const password: string | undefined = await this.passwordProvider(pwPrompt.user, pwPrompt.message, cancelToken); + if (typeof password === 'string') { + await extensionContext?.secrets?.store(passwordCacheKey, password); + autoFilledPasswordForUsers.add(actualUser); + result.response = password; + result.isPassword = true; + } else { + result.canceled = true; + } } } diff --git a/Extension/src/SSH/commands.ts b/Extension/src/SSH/commands.ts index 1e44758261..08378704e1 100644 --- a/Extension/src/SSH/commands.ts +++ b/Extension/src/SSH/commands.ts @@ -5,7 +5,7 @@ import * as vscode from 'vscode'; import * as nls from 'vscode-nls'; -import { ISshHostInfo, ISshLocalForwardInfo, ProcessReturnType } from '../common'; +import { getFullHostAddress, getFullHostAddressNoPort, ISshHostInfo, ISshLocalForwardInfo, ProcessReturnType } from '../common'; import { defaultSystemInteractor } from './commandInteractors'; import { runSshTerminalCommandWithLogin } from './sshCommandRunner'; @@ -86,13 +86,3 @@ function localForwardToArgs(localForward: ISshLocalForwardInfo): string[] { return ['-L', arg]; } - -/** user@host */ -function getFullHostAddressNoPort(host: ISshHostInfo): string { - return host.user ? `${host.user}@${host.hostName}` : `${host.hostName}`; -} - -function getFullHostAddress(host: ISshHostInfo): string { - const fullHostName: string = getFullHostAddressNoPort(host); - return host.port ? `${fullHostName}:${host.port}` : fullHostName; -} diff --git a/Extension/src/SSH/sshCommandRunner.ts b/Extension/src/SSH/sshCommandRunner.ts index 3a8bcea7a0..54f237e05c 100644 --- a/Extension/src/SSH/sshCommandRunner.ts +++ b/Extension/src/SSH/sshCommandRunner.ts @@ -18,7 +18,8 @@ import { TwoFacInteractor, ContinueOnInteractor, ISystemInteractor, - IInteraction + IInteraction, + autoFilledPasswordForUsers } from './commandInteractors'; import { isWindows, ISshHostInfo, splitLines, stripEscapeSequences, ProcessReturnType } from '../common'; import { getOutputChannelLogger } from '../logger'; @@ -194,12 +195,13 @@ export async function runSshTerminalCommandWithLogin( } if (!showLoginTerminal) { + autoFilledPasswordForUsers.clear(); interactors.push( new MitmInteractor(), new FingerprintInteractor(host.hostName, showHostKeyConfirmation), new PassphraseInteractor(showPassphraseInputBox), new DifferingHostKeyInteractor(showDifferingHostConfirmation), - new PasswordInteractor(showPasswordInputBox), + new PasswordInteractor(host, showPasswordInputBox), new TwoFacInteractor(showVerificationCodeInputBox), new DuoTwoFacInteractor(showVerificationCodeInputBox) ); diff --git a/Extension/src/common.ts b/Extension/src/common.ts index 929e3b762d..65a32fa908 100644 --- a/Extension/src/common.ts +++ b/Extension/src/common.ts @@ -1489,6 +1489,16 @@ export interface ISshHostInfo { port?: number | string; } +/** user@host */ +export function getFullHostAddressNoPort(host: ISshHostInfo): string { + return host.user ? `${host.user}@${host.hostName}` : `${host.hostName}`; +} + +export function getFullHostAddress(host: ISshHostInfo): string { + const fullHostName: string = getFullHostAddressNoPort(host); + return host.port ? `${fullHostName}:${host.port}` : fullHostName; +} + export interface ISshLocalForwardInfo { bindAddress?: string; port?: number | string; diff --git a/Extension/src/main.ts b/Extension/src/main.ts index 95ee0b5fdc..6c46663b4d 100644 --- a/Extension/src/main.ts +++ b/Extension/src/main.ts @@ -138,6 +138,7 @@ export async function activate(context: vscode.ExtensionContext): Promise | undefined; let experimentationTelemetry: ExperimentationTelemetry | undefined; -const appInsightsKey: string = "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217"; +const appInsightsKey: string = "0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255"; export function activate(): void { try { diff --git a/Extension/test/integrationTests/IntelliSenseFeatures/inlayhints.test.ts b/Extension/test/integrationTests/IntelliSenseFeatures/inlayhints.test.ts new file mode 100644 index 0000000000..f135efe0be --- /dev/null +++ b/Extension/test/integrationTests/IntelliSenseFeatures/inlayhints.test.ts @@ -0,0 +1,313 @@ +/* -------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All Rights Reserved. + * See 'LICENSE' in the project root for license information. + * ------------------------------------------------------------------------------------------ */ +import * as vscode from 'vscode'; +import * as assert from 'assert'; +import * as api from 'vscode-cpptools'; +import * as apit from 'vscode-cpptools/out/testApi'; +import * as testHelpers from '../testHelpers'; + +suite("[Inlay hints test]", function(): void { + // Settings + const inlayHintSettings: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration('C_Cpp.inlayHints'); + const autoDeclarationTypesEnabled: string = "autoDeclarationTypes.enabled"; + const autoDeclarationTypesShowOnLeft: string = "autoDeclarationTypes.showOnLeft"; + const parameterNamesEnabled: string = "parameterNames.enabled"; + const parameterNamesSuppress: string = "parameterNames.suppressWhenArgumentContainsName"; + const parameterNamesHideUnderScore: string = "parameterNames.hideLeadingUnderscores"; + const referenceOperatorEnabled: string = "referenceOperator.enabled"; + const referenceOperatorShowSpace: string = "referenceOperator.showSpace"; + const enabled: boolean = true; + const disabled: boolean = false; + let autoDeclarationTypesEnabledValue: any; + let autoDeclarationTypesShowOnLeftValue: any; + let parameterNamesEnabledValue: any; + let parameterNamesSuppressValue: any; + let parameterNamesHideUnderScoreValue: any; + let referenceOperatorEnabledValue: any; + let referenceOperatorShowSpaceValue: any; + // Test setup + const rootUri: vscode.Uri = vscode.workspace.workspaceFolders[0].uri; + const filePath: string | undefined = rootUri.fsPath + "/inlay_hints.cpp"; + const fileUri: vscode.Uri = vscode.Uri.file(filePath); + const disposables: vscode.Disposable[] = []; + let getIntelliSenseStatus: any; + + suiteSetup(async function(): Promise { + await testHelpers.activateCppExtension(); + + const cpptools = await apit.getCppToolsTestApi(api.Version.latest); + if (!cpptools) { + return; + } + const testHook: apit.CppToolsTestHook = cpptools.getTestHook(); + disposables.push(testHook); + + getIntelliSenseStatus = new Promise((resolve, reject) => { + disposables.push(testHook.IntelliSenseStatusChanged(result => { + result = result as apit.IntelliSenseStatus; + if (result.filename === "inlay_hints.cpp" && result.status === apit.Status.IntelliSenseReady) { + resolve(); + } + })); + setTimeout(() => { reject(new Error("Timeout: IntelliSenseStatusChanged event")); }, testHelpers.defaultTimeout); + }); + + // Start language server + console.log("Open file: " + fileUri.toString()); + const document: vscode.TextDocument = await vscode.workspace.openTextDocument(fileUri); + await vscode.window.showTextDocument(document) + await getIntelliSenseStatus; + saveOriginalSettings(); + await useDefaultSettings(); + }); + + suiteTeardown(async function(): Promise { + await restoreOriginalSettings(); + disposables.forEach(d => d.dispose()); + }); + + function saveOriginalSettings(): void { + autoDeclarationTypesEnabledValue = inlayHintSettings.inspect(autoDeclarationTypesEnabled).globalValue; + autoDeclarationTypesShowOnLeftValue = inlayHintSettings.inspect(autoDeclarationTypesShowOnLeft).globalValue; + parameterNamesEnabledValue = inlayHintSettings.inspect(parameterNamesEnabled).globalValue; + parameterNamesSuppressValue = inlayHintSettings.inspect(parameterNamesSuppress).globalValue; + parameterNamesHideUnderScoreValue = inlayHintSettings.inspect(parameterNamesHideUnderScore).globalValue; + referenceOperatorEnabledValue = inlayHintSettings.inspect(referenceOperatorEnabled).globalValue; + referenceOperatorShowSpaceValue = inlayHintSettings.inspect(referenceOperatorShowSpace).globalValue; + } + + async function restoreOriginalSettings(): Promise { + await changeInlayHintSetting(autoDeclarationTypesEnabled, autoDeclarationTypesEnabledValue); + await changeInlayHintSetting(autoDeclarationTypesShowOnLeft, autoDeclarationTypesShowOnLeftValue); + await changeInlayHintSetting(parameterNamesEnabled, parameterNamesEnabledValue); + await changeInlayHintSetting(parameterNamesSuppress, parameterNamesSuppressValue); + await changeInlayHintSetting(parameterNamesHideUnderScore, parameterNamesHideUnderScoreValue); + await changeInlayHintSetting(referenceOperatorEnabled, referenceOperatorEnabledValue); + await changeInlayHintSetting(referenceOperatorShowSpace, referenceOperatorShowSpaceValue); + } + + async function useDefaultSettings(): Promise { + await changeInlayHintSetting(autoDeclarationTypesEnabled, undefined); + await changeInlayHintSetting(autoDeclarationTypesShowOnLeft, undefined); + await changeInlayHintSetting(parameterNamesEnabled, undefined); + await changeInlayHintSetting(parameterNamesSuppress, undefined); + await changeInlayHintSetting(parameterNamesHideUnderScore, undefined); + await changeInlayHintSetting(referenceOperatorEnabled, undefined); + await changeInlayHintSetting(referenceOperatorShowSpace, undefined); + } + + test("[Inlay Hints - auto type]", async () => { + const range: vscode.Range = new vscode.Range(new vscode.Position(15, 0), new vscode.Position(31, 0)); + + await changeInlayHintSetting(autoDeclarationTypesEnabled, disabled); + await changeInlayHintSetting(autoDeclarationTypesShowOnLeft, disabled); + await getIntelliSenseStatus; + const result1 = await vscode.commands.executeCommand('vscode.executeInlayHintProvider', fileUri, range); + assert.strictEqual(result1.length, 0, "Incorrect number of results."); + + await changeInlayHintSetting(autoDeclarationTypesEnabled, enabled); + await getIntelliSenseStatus; + const result2 = await vscode.commands.executeCommand('vscode.executeInlayHintProvider', fileUri, range); + assert.strictEqual(result2.length, 12, "Incorrect number of results."); + const expectedKind = vscode.InlayHintKind.Type; + assertHintValues(result2, 0, 16, 16, ": int *const", expectedKind); + assertHintValues(result2, 1, 17, 17, ": const int *const", expectedKind); + assertHintValues(result2, 2, 18, 18, ": const int *const &", expectedKind); + assertHintValues(result2, 3, 19, 19, ": const int *const", expectedKind); + assertHintValues(result2, 4, 20, 17, ": const int", expectedKind); + assertHintValues(result2, 5, 21, 12, ": const int &", expectedKind); + assertHintValues(result2, 6, 22, 21, ": const int &", expectedKind); + assertHintValues(result2, 7, 23, 21, ": const int *", expectedKind); + assertHintValues(result2, 8, 24, 21, ": int *", expectedKind); + assertHintValues(result2, 9, 25, 21, ": const int *", expectedKind); + assertHintValues(result2, 10, 28, 14, ": int", expectedKind); + assertHintValues(result2, 11, 29, 15, ": int", expectedKind); + }); + + test("[Inlay Hints - auto type, show on left]", async () => { + const range: vscode.Range = new vscode.Range(new vscode.Position(15, 0), new vscode.Position(31, 0)); + + await changeInlayHintSetting(autoDeclarationTypesEnabled, disabled); + await changeInlayHintSetting(autoDeclarationTypesShowOnLeft, disabled); + await getIntelliSenseStatus; + const result1 = await vscode.commands.executeCommand('vscode.executeInlayHintProvider', fileUri, range); + assert.strictEqual(result1.length, 0, "Incorrect number of results."); + + await changeInlayHintSetting(autoDeclarationTypesEnabled, enabled); + await changeInlayHintSetting(autoDeclarationTypesShowOnLeft, enabled); + await getIntelliSenseStatus; + const result2 = await vscode.commands.executeCommand('vscode.executeInlayHintProvider', fileUri, range); + assert.strictEqual(result2.length, 12, "Incorrect number of results."); + const expectedKind = vscode.InlayHintKind.Type; + assertHintValues(result2, 0, 16, 15, "int *const", expectedKind); + assertHintValues(result2, 1, 17, 15, "const int *const", expectedKind); + assertHintValues(result2, 2, 18, 16, "const int *const &", expectedKind); + assertHintValues(result2, 3, 19, 17, "const int *const", expectedKind); + assertHintValues(result2, 4, 20, 15, "const int", expectedKind); + assertHintValues(result2, 5, 21, 10, "const int &", expectedKind); + assertHintValues(result2, 6, 22, 19, "const int &", expectedKind); + assertHintValues(result2, 7, 23, 19, "const int *", expectedKind); + assertHintValues(result2, 8, 24, 19, "int *", expectedKind); + assertHintValues(result2, 9, 25, 19, "const int *", expectedKind); + assertHintValues(result2, 10, 28, 9, "int", expectedKind); + assertHintValues(result2, 11, 29, 14, "int", expectedKind); + }); + + test("[Inlay Hints - parameter names]", async () => { + const range: vscode.Range = new vscode.Range(new vscode.Position(39, 0), new vscode.Position(78, 0)); + + await changeInlayHintSetting(parameterNamesEnabled, disabled); + await changeInlayHintSetting(referenceOperatorEnabled, disabled); + await getIntelliSenseStatus; + const result1 = await vscode.commands.executeCommand('vscode.executeInlayHintProvider', fileUri, range); + assert.strictEqual(result1.length, 0, "Incorrect number of results."); + + await changeInlayHintSetting(parameterNamesEnabled, enabled); + await changeInlayHintSetting(parameterNamesSuppress, enabled); + await getIntelliSenseStatus; + const result2 = await vscode.commands.executeCommand('vscode.executeInlayHintProvider', fileUri, range); + assert.strictEqual(result2.length, 16, "Incorrect number of results."); + const expectedKind = vscode.InlayHintKind.Parameter; + assertHintValues(result2, 0, 41, 17, "width:", expectedKind); + assertHintValues(result2, 1, 41, 20, "height:", expectedKind); + assertHintValues(result2, 2, 42, 17, "width:", expectedKind); + assertHintValues(result2, 3, 43, 17, "height:", expectedKind); + assertHintValues(result2, 4, 45, 17, "width:", expectedKind); + assertHintValues(result2, 5, 46, 17, "height:", expectedKind); + assertHintValues(result2, 6, 50, 20, "height:", expectedKind); + assertHintValues(result2, 7, 51, 26, "height:", expectedKind); + assertHintValues(result2, 8, 52, 29, "height:", expectedKind); + assertHintValues(result2, 9, 54, 13, "height:", expectedKind); + assertHintValues(result2, 10, 57, 13, "height:", expectedKind); + assertHintValues(result2, 11, 61, 13, "width:", expectedKind); + assertHintValues(result2, 12, 62, 13, "width:", expectedKind); + assertHintValues(result2, 13, 63, 16, "width:", expectedKind); + assertHintValues(result2, 14, 64, 13, "width:", expectedKind); + assertHintValues(result2, 15, 67, 13, "width:", expectedKind); + }); + + test("[Inlay Hints - parameter hideLeadingUnderscores]", async () => { + const range: vscode.Range = new vscode.Range(new vscode.Position(34, 0), new vscode.Position(36, 0)); + + await changeInlayHintSetting(parameterNamesEnabled, enabled); + await changeInlayHintSetting(parameterNamesHideUnderScore, disabled); + await getIntelliSenseStatus; + const result1 = await vscode.commands.executeCommand('vscode.executeInlayHintProvider', fileUri, range); + assert.strictEqual(result1.length, 4, "Incorrect number of results."); + const expectedKind = vscode.InlayHintKind.Parameter; + assertHintValues(result1, 0, 35, 16, "___x:", expectedKind); + assertHintValues(result1, 1, 35, 19, "__y:", expectedKind); + assertHintValues(result1, 2, 35, 22, "_z:", expectedKind); + assertHintValues(result1, 3, 35, 25, "a:", expectedKind); + + await changeInlayHintSetting(parameterNamesHideUnderScore, enabled); + await getIntelliSenseStatus; + const result2 = await vscode.commands.executeCommand('vscode.executeInlayHintProvider', fileUri, range); + assert.strictEqual(result2.length, 4, "Incorrect number of results."); + assertHintValues(result2, 0, 35, 16, "x:", expectedKind); + assertHintValues(result2, 1, 35, 19, "y:", expectedKind); + assertHintValues(result2, 2, 35, 22, "z:", expectedKind); + assertHintValues(result2, 3, 35, 25, "a:", expectedKind); + }); + + test("[Inlay Hints - reference operator]", async () => { + const range: vscode.Range = new vscode.Range(new vscode.Position(81, 0), new vscode.Position(106, 0)); + + await changeInlayHintSetting(parameterNamesEnabled, disabled); + await changeInlayHintSetting(referenceOperatorEnabled, disabled); + await changeInlayHintSetting(referenceOperatorShowSpace, disabled); + await getIntelliSenseStatus; + const result1 = await vscode.commands.executeCommand('vscode.executeInlayHintProvider', fileUri, range); + assert.strictEqual(result1.length, 0, "Incorrect number of results."); + + await changeInlayHintSetting(referenceOperatorEnabled, enabled); + await getIntelliSenseStatus; + const result2 = await vscode.commands.executeCommand('vscode.executeInlayHintProvider', fileUri, range); + assert.strictEqual(result2.length, 16, "Incorrect number of results."); + const expectedKind = vscode.InlayHintKind.Parameter; + const refOp: string = "&:"; + assertHintValues(result2, 0, 87, 9, refOp, expectedKind); + assertHintValues(result2, 1, 87, 12, refOp, expectedKind); + assertHintValues(result2, 2, 88, 9, refOp, expectedKind); + assertHintValues(result2, 3, 88, 22, refOp, expectedKind); + assertHintValues(result2, 4, 89, 9, refOp, expectedKind); + assertHintValues(result2, 5, 90, 9, refOp, expectedKind); + assertHintValues(result2, 6, 93, 9, refOp, expectedKind); + assertHintValues(result2, 7, 94, 9, refOp, expectedKind); + assertHintValues(result2, 8, 97, 9, refOp, expectedKind); + assertHintValues(result2, 9, 97, 12, refOp, expectedKind); + assertHintValues(result2, 10, 98, 9, refOp, expectedKind); + assertHintValues(result2, 11, 98, 12, refOp, expectedKind); + assertHintValues(result2, 12, 99, 9, refOp, expectedKind); + assertHintValues(result2, 13, 100, 9, refOp, expectedKind); + assertHintValues(result2, 14, 103, 9, refOp, expectedKind); + assertHintValues(result2, 15, 104, 9, refOp, expectedKind); + }); + + test("[Inlay Hints - reference operator and param name, show space]", async () => { + const range: vscode.Range = new vscode.Range(new vscode.Position(87, 0), new vscode.Position(96, 0)); + + await changeInlayHintSetting(parameterNamesEnabled, enabled); + await changeInlayHintSetting(parameterNamesHideUnderScore, enabled); + await changeInlayHintSetting(parameterNamesSuppress, disabled); + await changeInlayHintSetting(referenceOperatorEnabled, enabled); + await changeInlayHintSetting(referenceOperatorShowSpace, disabled); + await getIntelliSenseStatus; + const result1 = await vscode.commands.executeCommand('vscode.executeInlayHintProvider', fileUri, range); + assert.strictEqual(result1.length, 12, "Incorrect number of results."); + const expectedKind = vscode.InlayHintKind.Parameter; + assertHintValues(result1, 0, 87, 9, "&first:", expectedKind); + assertHintValues(result1, 1, 87, 12, "&last:", expectedKind); + assertHintValues(result1, 2, 87, 15, "flag:", expectedKind); + assertHintValues(result1, 3, 88, 9, "&first:", expectedKind); + assertHintValues(result1, 4, 88, 22, "&last:", expectedKind); + assertHintValues(result1, 5, 88, 25, "flag:", expectedKind); + assertHintValues(result1, 6, 89, 9, "&first:", expectedKind); + assertHintValues(result1, 7, 90, 9, "&last:", expectedKind); + assertHintValues(result1, 8, 91, 9, "flag:", expectedKind); + assertHintValues(result1, 9, 93, 9, "&first:", expectedKind); + assertHintValues(result1, 10, 94, 9, "&last:", expectedKind); + assertHintValues(result1, 11, 95, 9, "flag:", expectedKind); + + await changeInlayHintSetting(referenceOperatorShowSpace, enabled); + await getIntelliSenseStatus; + const result2 = await vscode.commands.executeCommand('vscode.executeInlayHintProvider', fileUri, range); + assert.strictEqual(result2.length, 12, "Incorrect number of results."); + assertHintValues(result2, 0, 87, 9, "& first:", expectedKind); + assertHintValues(result2, 1, 87, 12, "& last:", expectedKind); + assertHintValues(result2, 2, 87, 15, "flag:", expectedKind); + assertHintValues(result2, 3, 88, 9, "& first:", expectedKind); + assertHintValues(result2, 4, 88, 22, "& last:", expectedKind); + assertHintValues(result2, 5, 88, 25, "flag:", expectedKind); + assertHintValues(result2, 6, 89, 9, "& first:", expectedKind); + assertHintValues(result2, 7, 90, 9, "& last:", expectedKind); + assertHintValues(result2, 8, 91, 9, "flag:", expectedKind); + assertHintValues(result2, 9, 93, 9, "& first:", expectedKind); + assertHintValues(result2, 10, 94, 9, "& last:", expectedKind); + assertHintValues(result2, 11, 95, 9, "flag:", expectedKind); + }); + + async function changeInlayHintSetting(inlayHintSetting: string, valueNew: any): Promise { + const valueBeforeChange: any = inlayHintSettings.inspect(inlayHintSetting).globalValue; + if (valueBeforeChange !== valueNew) { + await inlayHintSettings.update(inlayHintSetting, valueNew, vscode.ConfigurationTarget.Global); + const valueAfterChange: any = inlayHintSettings.inspect(inlayHintSetting).globalValue; + assert.strictEqual(valueAfterChange, valueNew, `Unable to change setting: ${inlayHintSetting}`); + } + } + + function assertHintValues( + actualHintResults: any, + resultNumber: number, + expectedLine: number, + expectedCharacter: number, + expectedLabel: string, + expectedKind: any): void { + assert.strictEqual(actualHintResults[resultNumber].position.line, expectedLine, `Incorrect line for result ${resultNumber}.`); + assert.strictEqual(actualHintResults[resultNumber].position.character, expectedCharacter, `Incorrect character for result ${resultNumber}.`); + assert.strictEqual(actualHintResults[resultNumber].label, expectedLabel, `Incorrect label for result ${resultNumber}.`); + assert.strictEqual(actualHintResults[resultNumber].kind, expectedKind, `Incorrect kind for result ${resultNumber}.`); + } +}); diff --git a/Extension/test/integrationTests/IntelliSenseFeatures/quickInfo.test.ts b/Extension/test/integrationTests/IntelliSenseFeatures/quickInfo.test.ts index 9e61d0da0f..85195080bc 100644 --- a/Extension/test/integrationTests/IntelliSenseFeatures/quickInfo.test.ts +++ b/Extension/test/integrationTests/IntelliSenseFeatures/quickInfo.test.ts @@ -48,7 +48,7 @@ suite("[Quick info test]", function(): void { const result: vscode.Hover[] = (await vscode.commands.executeCommand('vscode.executeHoverProvider', fileUri, new vscode.Position(35, 23))); const expected_full_comment: string = `\`\`\`cpp\nbool isEven(int value)\n\`\`\` \nVerifies if input is even number or not`; const expectedMap: Map = new Map(); - expectedMap.set("win32", `\`\`\`cpp\nbool isEven(int value)\n\`\`\``); // Running test locally returns full comment, but running test on Azure pipeline does not. + expectedMap.set("win32", expected_full_comment); expectedMap.set("linux", expected_full_comment); expectedMap.set("darwin", expected_full_comment); @@ -60,7 +60,7 @@ suite("[Quick info test]", function(): void { test("[Hover over function call - Doxygen comment]", async () => { const result: vscode.Hover[] = (await vscode.commands.executeCommand('vscode.executeHoverProvider', fileUri, new vscode.Position(36, 9))); - const expected_full_comment: string = `\`\`\`cpp\nint testDoxygen(int base, int height)\n\`\`\` \nCalculates area of rectangle \n \n**Template Parameters:** \n\`T\` – is template param \n \n**Parameters:** \n\`base\` – is horizontal length \n\`height\` – is virtical length \n \n**Returns:** \nArea of rectangle \n \n**Exceptions:** \nThis is an exception comment`; + const expected_full_comment: string = `\`\`\`cpp\nint testDoxygen(int base, int height)\n\`\`\` \nCalculates area of rectangle \n \n**Template Parameters:** \n\`T\` – is template param \n \n**Parameters:** \n\`base\` – is horizontal length \n\`height\` – is vertical length \n \n**Returns:** \nArea of rectangle \n \n**Exceptions:** \nThis is an exception comment`; const expectedMap: Map = new Map(); expectedMap.set("win32", `\`\`\`cpp\nint testDoxygen(int base, int height)\n\`\`\``); // Running test locally returns full comment, but running test on Azure pipeline does not. expectedMap.set("linux", expected_full_comment); diff --git a/Extension/test/integrationTests/IntelliSenseFeatures/runTest.ts b/Extension/test/integrationTests/IntelliSenseFeatures/runTest.ts index 3ebe0a01d7..4e60a48b0c 100644 --- a/Extension/test/integrationTests/IntelliSenseFeatures/runTest.ts +++ b/Extension/test/integrationTests/IntelliSenseFeatures/runTest.ts @@ -26,8 +26,9 @@ async function main() { // Download VS Code, unzip it and run the integration test await runTests({ launchArgs, extensionDevelopmentPath, extensionTestsPath }); } catch (err) { - console.log('VS Code returned an unexpected error code, ignore it'); - process.exit(0); + console.log(err); + console.log('Failed to run tests.'); + process.exit(1); } } diff --git a/Extension/test/integrationTests/debug/runTest.ts b/Extension/test/integrationTests/debug/runTest.ts index 9c7f74cd2b..51832807d5 100644 --- a/Extension/test/integrationTests/debug/runTest.ts +++ b/Extension/test/integrationTests/debug/runTest.ts @@ -17,8 +17,9 @@ async function main() { // Download VS Code, unzip it and run the integration test await runTests({ launchArgs, extensionDevelopmentPath, extensionTestsPath }); } catch(err) { - console.log('VS Code returned an unexpected error code, ignore it'); - process.exit(0); + console.log(err); + console.log('Failed to run tests.'); + process.exit(1); } } diff --git a/Extension/test/integrationTests/languageServer/runTest.ts b/Extension/test/integrationTests/languageServer/runTest.ts index 9cc646b0a8..af6e330e4c 100644 --- a/Extension/test/integrationTests/languageServer/runTest.ts +++ b/Extension/test/integrationTests/languageServer/runTest.ts @@ -19,8 +19,9 @@ async function main() { // Download VS Code, unzip it and run the integration test await runTests({ launchArgs, extensionDevelopmentPath, extensionTestsPath }); } catch (err) { - console.log('VS Code returned an unexpected error code, ignore it'); - process.exit(0); + console.log(err); + console.log('Failed to run tests.'); + process.exit(1); } } diff --git a/Extension/test/unitTests/runTest.ts b/Extension/test/unitTests/runTest.ts index 2d395049ca..a483feff77 100644 --- a/Extension/test/unitTests/runTest.ts +++ b/Extension/test/unitTests/runTest.ts @@ -17,8 +17,9 @@ async function main() { // Download VS Code, unzip it and run the integration test await runTests({ launchArgs, extensionDevelopmentPath, extensionTestsPath }); } catch (err) { - console.log('VS Code returned an unexpected error code, ignore it'); - process.exit(0); + console.log(err); + console.log('Failed to run tests.'); + process.exit(1); } } diff --git a/Extension/walkthrough/debugconfig/run-and-debug-project-windows.md b/Extension/walkthrough/debugconfig/run-and-debug-project-windows.md index 22be524b49..2958479ee2 100644 --- a/Extension/walkthrough/debugconfig/run-and-debug-project-windows.md +++ b/Extension/walkthrough/debugconfig/run-and-debug-project-windows.md @@ -1,15 +1,15 @@ -

Run and debug your C++ file on Windows

-

To run and debug your C++ file in VS Code:

+

Run and debug your C++ file on Windows

+

To run and debug your C++ file in VS Code:

    -
  1. Open the C++ source file that you want to run and debug. Make sure this file is active (currently displayed and selected) in the editor.

    +
  2. Open the C++ source file that you want to run and debug. Make sure this file is active (currently displayed and selected) in the editor.

  3. -
  4. Press F5. Or, from the main menu, choose Run > Start Debugging.

    +
  5. Press F5. Or, from the main menu, choose Run > Start Debugging.

  6. -
  7. Select C++ (Windows).

    +
  8. Select C++ (Windows).

  9. -
  10. Choose cl.exe - Build and debug active file.

    +
  11. Choose cl.exe - Build and debug active file.

-

After running and debugging your C++ file for the first time, you'll notice two new files inside your project's .vscode folder: tasks.json and launch.json.

+

After running and debugging your C++ file for the first time, you'll notice two new files inside your project's .vscode folder: tasks.json and launch.json.

-

For more complex build and debug scenarios, you can customize your build tasks and debug configurations in tasks.json and launch.json. For example, if you normally pass arguments to your compiler when building from the command line, you can specify those arguments in tasks.json using the compilerArgs property. Similarly, you can define arguments to pass to your program for debugging in launch.json.

+

For more complex build and debug scenarios, you can customize your build tasks and debug configurations in tasks.json and launch.json. For example, if you normally pass arguments to your compiler when building from the command line, you can specify those arguments in tasks.json using the compilerArgs property. Similarly, you can define arguments to pass to your program for debugging in launch.json.

diff --git a/Extension/yarn.lock b/Extension/yarn.lock index ac409ded5a..31b1826c79 100644 --- a/Extension/yarn.lock +++ b/Extension/yarn.lock @@ -5922,31 +5922,32 @@ vscode-dts@^0.3.2: prompts "^2.1.0" rimraf "^3.0.0" -vscode-jsonrpc@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz#a7bf74ef3254d0a0c272fab15c82128e378b3be9" - integrity sha512-perEnXQdQOJMTDFNv+UF3h1Y0z4iSiaN9jIlb0OqIYgosPCZGYh/MCUlkFtV2668PL69lRDO32hmvL2yiidUYg== +vscode-jsonrpc@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.0.1.tgz#f30b0625ebafa0fb3bc53e934ca47b706445e57e" + integrity sha512-N/WKvghIajmEvXpatSzvTvOIz61ZSmOSa4BRA4pTLi+1+jozquQKP/MkaylP9iB68k73Oua1feLQvH3xQuigiQ== -vscode-languageclient@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-5.2.1.tgz#7cfc83a294c409f58cfa2b910a8cfeaad0397193" - integrity sha512-7jrS/9WnV0ruqPamN1nE7qCxn0phkH5LjSgSp9h6qoJGoeAKzwKz/PF6M+iGA/aklx4GLZg1prddhEPQtuXI1Q== +vscode-languageclient@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-8.0.1.tgz#bf5535c4463a78daeaca0bcb4f5868aec86bb301" + integrity sha512-9XoE+HJfaWvu7Y75H3VmLo5WLCtsbxEgEhrLPqwt7eyoR49lUIyyrjb98Yfa50JCMqF2cePJAEVI6oe2o1sIhw== dependencies: - semver "^5.5.0" - vscode-languageserver-protocol "3.14.1" + minimatch "^3.0.4" + semver "^7.3.5" + vscode-languageserver-protocol "3.17.1" -vscode-languageserver-protocol@3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.14.1.tgz#b8aab6afae2849c84a8983d39a1cf742417afe2f" - integrity sha512-IL66BLb2g20uIKog5Y2dQ0IiigW0XKrvmWiOvc0yXw80z3tMEzEnHjaGAb3ENuU7MnQqgnYJ1Cl2l9RvNgDi4g== +vscode-languageserver-protocol@3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.1.tgz#e801762c304f740208b6c804a0cf21f2c87509ed" + integrity sha512-BNlAYgQoYwlSgDLJhSG+DeA8G1JyECqRzM2YO6tMmMji3Ad9Mw6AW7vnZMti90qlAKb0LqAlJfSVGEdqMMNzKg== dependencies: - vscode-jsonrpc "^4.0.0" - vscode-languageserver-types "3.14.0" + vscode-jsonrpc "8.0.1" + vscode-languageserver-types "3.17.1" -vscode-languageserver-types@3.14.0: - version "3.14.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz#d3b5952246d30e5241592b6dde8280e03942e743" - integrity sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A== +vscode-languageserver-types@3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.1.tgz#c2d87fa7784f8cac389deb3ff1e2d9a7bef07e16" + integrity sha512-K3HqVRPElLZVVPtMeKlsyL9aK0GxGQpvtAUTfX4k7+iJ4mc1M+JM+zQwkgGy2LzY0f0IAafe8MKqIkJrxfGGjQ== vscode-nls-dev@^4.0.0-next.1: version "4.0.0-next.1" diff --git a/README.md b/README.md index 9cc9aeb5bc..b7d2904ada 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,30 @@ [![Badge](https://aka.ms/vsls-badge)](https://aka.ms/vsls) -The C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging. +The C/C++ extension adds language support for C/C++ to Visual Studio Code, including [editing (IntelliSense)](https://code.visualstudio.com/docs/cpp/cpp-ide) and [debugging](https://code.visualstudio.com/docs/cpp/cpp-debug) features. + +## Pre-requisites +C++ is a compiled language meaning your program's source code must be translated (compiled) before it can be run on your computer. VS Code is first and foremost an editor, and relies on command-line tools to do much of the development workflow. The C/C++ extension **does not include a C++ compiler or debugger**. You will need to install these tools or use those already installed on your computer. + * C++ compiler pre-installed + * C++ debugger pre-installed + +
+ +Here is a list of compilers and architectures per platform officially supported by the extension. These are reflected by the available [IntelliSense modes](https://code.visualstudio.com/docs/cpp/configure-intellisense-crosscompilation#_intellisense-mode) from the extension's IntelliSense configuration. Note that support for other compilers may be limited. + +Platform | Compilers | Architectures +:--- | :--- | :--- +Windows | MSVC, Clang, GCC | x64, x86, arm64, arm +Linux | Clang, GCC | x64, x86, arm64, arm +macOS | Clang, GCC | x64, x86, arm64 + +For more information about installing the required tools or setting up the extension, please follow the tutorials below. +
+
## Overview and tutorials * [C/C++ extension overview](https://code.visualstudio.com/docs/languages/cpp) +* [Introductory Videos](https://code.visualstudio.com/docs/cpp/introvideos-cpp) C/C++ extension tutorials per compiler and platform * [Microsoft C++ compiler (MSVC) on Windows](https://code.visualstudio.com/docs/cpp/config-msvc)