diff --git a/.github/actions/package-lock.json b/.github/actions/package-lock.json index 700d915c5..8f259477e 100644 --- a/.github/actions/package-lock.json +++ b/.github/actions/package-lock.json @@ -4558,9 +4558,9 @@ "license": "ISC" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", + "version": "4.1.1", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b", + "integrity": "sha1-hUwpJGdwW2mUduGi3swMijRYgGs=", "dev": true, "license": "MIT", "dependencies": { diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 9b664bcf1..e21bb3e7f 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,22 +1,45 @@ # C/C++ for Visual Studio Code Changelog -## Version 1.29.0: November 4, 2025 +## Version 1.30.0: December 15, 2025 ### Enhancements -* Add built-in file associations for C++ extensionless system headers and set `C_Cpp.autoAddFileAssociations` to `false` by default. [#4077](https://github.com/microsoft/vscode-cpptools/issues/4077) +* Change `C` completion behavior to automatically trigger after the `struct/union/enum` keyword and to filter based on the keyword. [#13634](https://github.com/microsoft/vscode-cpptools/issues/13634) +* Change `C++` completions after `using namespace` to filter to include only namespaces and namespace aliases. [#14091](https://github.com/microsoft/vscode-cpptools/issues/14091) + +### Bug Fixes +* Fix `C_Cpp.commentContinuationPatterns` not working after the 2nd line (for non-`/**` patterns). [#8998](https://github.com/microsoft/vscode-cpptools/issues/8998) + * Thanks for the contribution. [@dinhtam2c](https://github.com/dinhtam2c) [PR #14074](https://github.com/microsoft/vscode-cpptools/pull/14074) +* Fix `${userHome}` not resolving in `C_Cpp` path settings. [#10350](https://github.com/microsoft/vscode-cpptools/issues/10350) +* Fix completion not automatically triggering if invoked on the last column of a line when the previous token is an identifier. [#14086](https://github.com/microsoft/vscode-cpptools/issues/14086) +* Fix changes to `C_Cpp.commentContinuationPatterns` not taking effect until the extension restarts. [#14079](https://github.com/microsoft/vscode-cpptools/issues/14079) +* Fix `C_Cpp.commentContinuationPatterns` not working correctly for a pattern if it's a prefix of a pattern that is later in the list. [#14081](https://github.com/microsoft/vscode-cpptools/issues/14081) +* Fix an IntelliSense crash in `a_completion_symbol_manager::handle_function` when Copilot is enabled. + +## Version 1.29.3: December 8, 2025 +### Bug Fix +* Remove `NETFXSDKDir` from the developer environment check. [#14084](https://github.com/microsoft/vscode-cpptools/issues/14084) + +## Version 1.29.2: December 3, 2025 +### New Feature * Enable setting the VS developer environment without running VS Code from the developer command prompt. [#4742](https://github.com/microsoft/vscode-cpptools/issues/4742) + +### Enhancements +* Add built-in file associations for C++ extensionless system headers and set `C_Cpp.autoAddFileAssociations` to `false` by default. [#4077](https://github.com/microsoft/vscode-cpptools/issues/4077) * Add IntelliSense support for `c23` enums with an underlying type. [#13675](https://github.com/microsoft/vscode-cpptools/issues/13675) ### Bug Fixes * Fix 'Find All References' and 'Rename' on `#define` macro definitions. [#6194](https://github.com/microsoft/vscode-cpptools/issues/6194) * Fix anonymous enums not working in gcc/clang modes. [#10436](https://github.com/microsoft/vscode-cpptools/issues/10436) * Fix Doxygen comments at the end of a function. [#13725](https://github.com/microsoft/vscode-cpptools/issues/13725) -* Fix mac framework search path detection to include paths passed in the `includePath` from a configuration provider. [#13993](https://github.com/microsoft/vscode-cpptools/issues/13993) +* Fix mac framework search path detection to include paths passed in the `includePath` from a configuration provider, and fix omission of unpopulated Mac framework paths. [#13993](https://github.com/microsoft/vscode-cpptools/issues/13993) * Fix formatting with `clang-tidy` randomly getting stuck on Windows (on a call to `GetOverlappedResult`). [#14025](https://github.com/microsoft/vscode-cpptools/issues/14025) +* Fix IntelliSense with MSVC mode C++23 deduced type construction with `auto`. [#14041](https://github.com/microsoft/vscode-cpptools/issues/14041) * Fix code analysis re-running automatically after a settings change when diagnostics already exist if it was manually instead of automatically invoked. * Reduce the memory usage in a couple cases to reduce the chance of a `bad_alloc` in cpptools. * Update `clang-format` and `clang-tidy` from 21.1.3 to 21.1.4 (fixes some formatting bugs). +* Fix the handling of the cl.exe `/external:I` argument for IntelliSense configuration. * Fix a case where a large file could cause a `bad_alloc` in cpptools-srv on Windows. * Update the default compiler search to include newer versions of clang/gcc. +* Fix a potential memory corruption crash of cpptools-srv (related to PCH). * Fix a crash in `detect_encoding`. ## Version 1.28.3: October 16, 2025 @@ -41,7 +64,7 @@ ### Enhancements * Show a warning when too many files are processed in a workspace. [#10828](https://github.com/microsoft/vscode-cpptools/issues/10828) * Improvements to GitHub Copilot activation. [PR #13924](https://github.com/microsoft/vscode-cpptools/pull/13924) - * Thank you for the contribution. [@dbaeumer (Dirk Bäumer)](https://github.com/dbaeumer) + * Thanks for the contribution. [@dbaeumer (Dirk Bäumer)](https://github.com/dbaeumer) * Add a `C_Cpp.windowsErrorReportingMode` setting and default to only enabling WER for the first crash in a session. [#13928](https://github.com/microsoft/vscode-cpptools/issues/13928) ### Bug Fixes @@ -55,11 +78,11 @@ * Fix bugs with 'Create Definition'. [#13741](https://github.com/microsoft/vscode-cpptools/issues/13741), [#13773](https://github.com/microsoft/vscode-cpptools/issues/13773) * Fix IntelliSense crashes when there are duplicate constexpr template functions in a TU. [#13775](https://github.com/microsoft/vscode-cpptools/issues/13775) * Fix the description of `debugServerPath`. [PR #13778](https://github.com/microsoft/vscode-cpptools/pull/13778) - * Thank you for the contribution. [@redstrate (Joshua Goins)](https://github.com/redstrate) + * Thanks for the contribution. [@redstrate (Joshua Goins)](https://github.com/redstrate) * Remove `-fmodule-mapper`, `-fdeps-format`, and some additional unnecessary args from compiler queries. [#13782](https://github.com/microsoft/vscode-cpptools/issues/13782) * Fix `-imacro` not configuring IntelliSense correctly. [#13785](https://github.com/microsoft/vscode-cpptools/issues/13785) * Fix `pipeTransport.quoteArgs` not being handled correctly. [#13791](https://github.com/microsoft/vscode-cpptools/issues/13791) - * Thank you for the contribution. [@mrjist (Matt)](https://github.com/mrjist) [PR #13794](https://github.com/microsoft/vscode-cpptools/pull/13794) + * Thanks for the contribution. [@mrjist (Matt)](https://github.com/mrjist) [PR #13794](https://github.com/microsoft/vscode-cpptools/pull/13794) * Fix `.txx` and `.tpp` not being handled as C++ header files. [#13808](https://github.com/microsoft/vscode-cpptools/issues/13808) * Fix an error when using GitHub Copilot with VS Code older than 1.90.0. [#13818](https://github.com/microsoft/vscode-cpptools/issues/13818) * Fix activation failing if the `c_cpp_properties.json` exists but fails to be opened. [#13829](https://github.com/microsoft/vscode-cpptools/issues/13829) @@ -81,12 +104,12 @@ ## Version 1.26.5: September 10, 2025 ### Bug Fix * Fix extension activation getting stuck by GitHub Copilot activation. [#13914](https://github.com/microsoft/vscode-cpptools/issues/13914) - * Thank you for the contribution. [@dbaeumer (Dirk Bäumer)](https://github.com/dbaeumer) [PR #13918](https://github.com/microsoft/vscode-cpptools/pull/13918) + * Thanks for the contribution. [@dbaeumer (Dirk Bäumer)](https://github.com/dbaeumer) [PR #13918](https://github.com/microsoft/vscode-cpptools/pull/13918) ## Version 1.26.4: September 9, 2025 ### Enhancement * Update GitHub Copilot APIs. [PR #13877](https://github.com/microsoft/vscode-cpptools/pull/13877) - * Thank you for the contribution. [@dbaeumer (Dirk Bäumer)](https://github.com/dbaeumer) + * Thanks for the contribution. [@dbaeumer (Dirk Bäumer)](https://github.com/dbaeumer) ## Version 1.26.3: June 24, 2025 ### New Feature @@ -194,13 +217,13 @@ ### Enhancements * Modifications to the snippet completions to more closely match the snippets provided by TypeScript. [#4482](https://github.com/microsoft/vscode-cpptools/issues/4482) * Enable setting multiple compile commands. [#7029](https://github.com/microsoft/vscode-cpptools/issues/7029) - * Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12960](https://github.com/microsoft/vscode-cpptools/pull/12960) + * Thanks for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12960](https://github.com/microsoft/vscode-cpptools/pull/12960) * Changes to how paths are internally canonicalized on Linux and macOS, avoiding file system access to improve performance and delay resolution of symbolic links. [#12924](https://github.com/microsoft/vscode-cpptools/issues/12924) * Add handling of `-fno-char8_t` and `-fchar8_t` compiler arguments. [#12968](https://github.com/microsoft/vscode-cpptools/issues/12968) * Add support for providing well-known compiler argument information to Copilot Completions. [PR #12979](https://github.com/microsoft/vscode-cpptools/pull/12979) * Fixed unnecessary cancellation of Copilot context requests. [PR #12988](https://github.com/microsoft/vscode-cpptools/pull/12988) * Add support for passing an additional parameter to `C_Cpp.ConfigurationSelect` command. [PR #12993](https://github.com/microsoft/vscode-cpptools/pull/12993) - * Thank you for the contribution. [@adrianstephens](https://github.com/adrianstephens) + * Thanks for the contribution. [@adrianstephens](https://github.com/adrianstephens) * Update clang path setting descriptions. [PR #13071](https://github.com/microsoft/vscode-cpptools/pull/13071) * Update clang-format and clang-tidy from 19.1.2 to 19.1.7. * IntelliSense parser updates. @@ -208,7 +231,7 @@ ### Bug Fixes * Fix a perf regression in hover operation by using cached lexer line states. [#3126](https://github.com/microsoft/vscode-cpptools/issues/3126) * Fix `compile_commands.json` no longer being used if the containing folder is deleted and recreated. [#7030](https://github.com/microsoft/vscode-cpptools/issues/7030) - * Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #13032](https://github.com/microsoft/vscode-cpptools/pull/13032) + * Thanks for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #13032](https://github.com/microsoft/vscode-cpptools/pull/13032) * Increase clang-format timeout from 10 seconds to 30 seconds. [#10213](https://github.com/microsoft/vscode-cpptools/issues/10213) * Fix `C_Cpp.enhancedColorization` not taking effect after it's changed. [#10565](https://github.com/microsoft/vscode-cpptools/issues/10565) * Fix changes to `files.encoding` not triggering a database reset. [#10892](https://github.com/microsoft/vscode-cpptools/issues/10892) @@ -224,9 +247,9 @@ * Fix pattern matching of sections in `.editorConfig` files. [#12933](https://github.com/microsoft/vscode-cpptools/issues/12933) * Fix handling of relative paths passed to cl.exe `/reference` argument. [#12944](https://github.com/microsoft/vscode-cpptools/issues/12944) * Fix a leak of compile command file watchers. [#12946](https://github.com/microsoft/vscode-cpptools/issues/12946) - * Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12948](https://github.com/microsoft/vscode-cpptools/pull/12948) + * Thanks for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12948](https://github.com/microsoft/vscode-cpptools/pull/12948) * Fix a compile commands fallback logic issue. [#12947](https://github.com/microsoft/vscode-cpptools/issues/12947) - * Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12948](https://github.com/microsoft/vscode-cpptools/pull/12948) + * Thanks for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12948](https://github.com/microsoft/vscode-cpptools/pull/12948) * Fix an issue in which a `didOpen` event was processed before the language client was fully started. [#12954](https://github.com/microsoft/vscode-cpptools/issues/12954) * Fix the IntelliSense mode being `macos` instead of `windows` when `_WIN32` is defined on macOS. [#13016](https://github.com/microsoft/vscode-cpptools/issues/13016) * Fix IntelliSense bugs when using non-UTF8 file encodings. [#13028](https://github.com/microsoft/vscode-cpptools/issues/13028), [#13044](https://github.com/microsoft/vscode-cpptools/issues/13044) @@ -306,7 +329,7 @@ * Fix include path ordering being incorrect if there is a duplicate. [#12525](https://github.com/microsoft/vscode-cpptools/issues/12525) * Fix a WebAssembly "Out of Memory" error. [#12529](https://github.com/microsoft/vscode-cpptools/issues/12529) * Fix an error message not being shown if the connection failed with remote attach debugging. [#12547](https://github.com/microsoft/vscode-cpptools/issues/12547) - * Thank you for the contribution. [@MrStanislav0 (Stanislav)](https://github.com/MrStanislav0) + * Thanks for the contribution. [@MrStanislav0 (Stanislav)](https://github.com/MrStanislav0) * Fix `-I` not being used if `-iquote` is also used for the same path. [#12551](https://github.com/microsoft/vscode-cpptools/issues/12551) * Fix issues with relative paths on `nvcc` (CUDA) command lines not being handled correctly. [#12553](https://github.com/microsoft/vscode-cpptools/issues/12553) * Fix a crash on shutdown on macOS with a verbose logging level. [#12567](https://github.com/microsoft/vscode-cpptools/issues/12567) @@ -485,7 +508,7 @@ * Fix an exception getting thrown if IntelliSense is disabled but a configuration provider is registered. [#11795](https://github.com/microsoft/vscode-cpptools/issues/11795) * Fix an EACCES error when using include wildcards with system includes. [#11833](https://github.com/microsoft/vscode-cpptools/issues/11833) * Fix German code analysis translations. [PR #11845](https://github.com/microsoft/vscode-cpptools/pull/11845) - * Thank you for the contribution. [@Sir2B (Tobias Obermayer)](https://github.com/Sir2B) + * Thanks for the contribution. [@Sir2B (Tobias Obermayer)](https://github.com/Sir2B) * Trim trailing spaces from include paths in the configuration UI. [#11862](https://github.com/microsoft/vscode-cpptools/issues/11862) * Fix comma delimited lists in `@param` Doxygen parameters. [#11868](https://github.com/microsoft/vscode-cpptools/issues/11868) * Fix incorrect errors for `compilerPath` in the configuration UI for compilers that can be found in PATH. [#11903](https://github.com/microsoft/vscode-cpptools/issues/11903) @@ -623,7 +646,7 @@ * Move user compilers to the beginning of the "known compilers" lists. [#10985](https://github.com/microsoft/vscode-cpptools/issues/10985) * Add file path to the details of a call hierarchy result. [#10997](https://github.com/microsoft/vscode-cpptools/issues/10997) * Add `miDebuggerArgs` to debugger attach option. - * Thank you for the contribution @Summon528 [PR #11066](https://github.com/microsoft/vscode-cpptools/pull/11066) + * Thanks for the contribution @Summon528 [PR #11066](https://github.com/microsoft/vscode-cpptools/pull/11066) ### Bug Fixes * Fix an IntelliSense parsing bug with C++20 ranges. [#8039](https://github.com/microsoft/vscode-cpptools/issues/8039) @@ -644,7 +667,7 @@ * Fix the thread pool sometimes not increasing in size, which could lead to the cpptools process incorrectly being shut down. [#11003](https://github.com/microsoft/vscode-cpptools/issues/11003) * Stop using vcFormat if .editorconfig exists with only non-formatting cpp settings. [PR #11015](https://github.com/microsoft/vscode-cpptools/pull/11015) * Use integratedTerminal when user is running cl.exe for debugger. [#11032](https://github.com/microsoft/vscode-cpptools/issues/11032) - * Thank you for the contribution @caiohamamura [PR #11035](https://github.com/microsoft/vscode-cpptools/pull/11035) + * Thanks for the contribution @caiohamamura [PR #11035](https://github.com/microsoft/vscode-cpptools/pull/11035) * Fix the configure your IntelliSense notification to not show again when the "Don't Show Again" option is selected. [#11070](https://github.com/microsoft/vscode-cpptools/issues/11070) * Fix a bug that could cause incomplete reading of stdout/stderr of child processes on Windows. * Fix incorrect "declaration is incompatible" IntelliSense errors. @@ -1167,7 +1190,7 @@ ### 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 [PR MIEngine#1169](https://github.com/microsoft/MIEngine/pull/1169) - * Thank you for the contribution @Trass3r + * Thanks for the contribution @Trass3r * InstructionBreakpoints for cppdbg [PR MIEgnine#1192](https://github.com/microsoft/MIEngine/pull/1192) ### Enhancements diff --git a/Extension/bin/messages/cs/messages.json b/Extension/bin/messages/cs/messages.json index 5a688c65f..ccf5503f3 100644 --- a/Extension/bin/messages/cs/messages.json +++ b/Extension/bin/messages/cs/messages.json @@ -3745,5 +3745,7 @@ "výsledek inicializátoru odkazuje na proměnnou dllimport", "šablona s atributem no_specializations nemůže být specializovaná", "„static“ je zde nestandardní", - "%nd byl dříve deklarován bez explicitního základu výčtu" -] + "%nd byl dříve deklarován bez explicitního základu výčtu", + "missing \"typename\" is nonstandard here", + "abbreviated function template syntax is nonstandard for deduction guides" +] \ No newline at end of file diff --git a/Extension/bin/messages/de/messages.json b/Extension/bin/messages/de/messages.json index d6035fd3c..de80af3e6 100644 --- a/Extension/bin/messages/de/messages.json +++ b/Extension/bin/messages/de/messages.json @@ -3745,5 +3745,7 @@ "Initialisiererergebnis behebt eine dllimport-Variable", "Vorlage mit dem Attribut „no_specializations“ kann nicht spezialisiert werden", "„static“ entspricht hier nicht dem Standard", - "%nd wurde zuvor ohne explizite Enumerationsbasis deklariert" + "%nd wurde zuvor ohne explizite Enumerationsbasis deklariert", + "missing \"typename\" is nonstandard here", + "abbreviated function template syntax is nonstandard for deduction guides" ] \ No newline at end of file diff --git a/Extension/bin/messages/es/messages.json b/Extension/bin/messages/es/messages.json index cec221801..8bc453167 100644 --- a/Extension/bin/messages/es/messages.json +++ b/Extension/bin/messages/es/messages.json @@ -3745,5 +3745,7 @@ "el resultado del inicializador se dirige a una variable dllimport", "La plantilla con el atributo \"no_specializations\" no se puede especializar", "\"static\" no es estándar aquí", - "%nd se declaró previamente sin una base explícita de enumeración" + "%nd se declaró previamente sin una base explícita de enumeración", + "missing \"typename\" is nonstandard here", + "abbreviated function template syntax is nonstandard for deduction guides" ] \ No newline at end of file diff --git a/Extension/bin/messages/fr/messages.json b/Extension/bin/messages/fr/messages.json index 33b8a2019..8785411e1 100644 --- a/Extension/bin/messages/fr/messages.json +++ b/Extension/bin/messages/fr/messages.json @@ -3745,5 +3745,7 @@ "Le résultat de l’initialiseur traite une variable dllimport", "le modèle avec l’attribut « no_specializations » ne peut pas être spécialisé", "« static » n’est pas standard ici", - "%nd a été déclaré précédemment sans base d’énumération explicite" -] + "%nd a été déclaré précédemment sans base d’énumération explicite", + "missing \"typename\" is nonstandard here", + "abbreviated function template syntax is nonstandard for deduction guides" +] \ No newline at end of file diff --git a/Extension/bin/messages/it/messages.json b/Extension/bin/messages/it/messages.json index 6ff2af5c2..43c7ddb5b 100644 --- a/Extension/bin/messages/it/messages.json +++ b/Extension/bin/messages/it/messages.json @@ -3745,5 +3745,7 @@ "il risultato dell'inizializzatore punta a una variabile dllimport", "modello con l'attributo 'no_specializations' non può essere specializzato", "'static' non è standard qui", - "%nd era stato dichiarato in precedenza senza una base di enumerazione esplicita" -] + "%nd era stato dichiarato in precedenza senza una base di enumerazione esplicita", + "missing \"typename\" is nonstandard here", + "abbreviated function template syntax is nonstandard for deduction guides" +] \ No newline at end of file diff --git a/Extension/bin/messages/ja/messages.json b/Extension/bin/messages/ja/messages.json index 7212a999b..d4b60182c 100644 --- a/Extension/bin/messages/ja/messages.json +++ b/Extension/bin/messages/ja/messages.json @@ -3745,5 +3745,7 @@ "初期化子の結果は dllimport 変数をアドレス指定します", "'no_specializations' 属性を持つテンプレートを特殊化することはできません", "'static' はここでは非標準です", - "%nd は、明示的な列挙型ベースなしで以前に宣言されました" -] + "%nd は、明示的な列挙型ベースなしで以前に宣言されました", + "missing \"typename\" is nonstandard here", + "abbreviated function template syntax is nonstandard for deduction guides" +] \ No newline at end of file diff --git a/Extension/bin/messages/ko/messages.json b/Extension/bin/messages/ko/messages.json index f02388c8f..c7ff3d8f2 100644 --- a/Extension/bin/messages/ko/messages.json +++ b/Extension/bin/messages/ko/messages.json @@ -3745,5 +3745,7 @@ "이니셜라이저 결과가 dllimport 변수를 참조합니다.", "'no_specializations' 특성이 있는 템플릿은 특수화할 수 없습니다.", "여기서 'static'은 표준이 아닙니다.", - "%nd은(는) 이전에 명시적 열거형 기반 없이 선언되었습니다." -] + "%nd은(는) 이전에 명시적 열거형 기반 없이 선언되었습니다.", + "missing \"typename\" is nonstandard here", + "abbreviated function template syntax is nonstandard for deduction guides" +] \ No newline at end of file diff --git a/Extension/bin/messages/pl/messages.json b/Extension/bin/messages/pl/messages.json index 254919394..53e627f90 100644 --- a/Extension/bin/messages/pl/messages.json +++ b/Extension/bin/messages/pl/messages.json @@ -3745,5 +3745,7 @@ "wynik inicjatora adresuje zmienną dllimport", "szablon z atrybutem „no_specializations” nie może być wyspecjalizowany", "„static” jest tutaj niestandardowy", - "funkcja %nd została poprzednio zadeklarowana bez jawnej bazy wyliczenia" -] + "funkcja %nd została poprzednio zadeklarowana bez jawnej bazy wyliczenia", + "missing \"typename\" is nonstandard here", + "abbreviated function template syntax is nonstandard for deduction guides" +] \ 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 a9c1a0de4..4d5705cd7 100644 --- a/Extension/bin/messages/pt-br/messages.json +++ b/Extension/bin/messages/pt-br/messages.json @@ -3745,5 +3745,7 @@ "o resultado do inicializador trata de uma variável dllimport", "modelo com atributo \"no_specializations\" não pode ser especializado", "\"static\" não é padrão aqui", - "%nd foi declarado anteriormente sem uma base de enumeração explícita" -] + "%nd foi declarado anteriormente sem uma base de enumeração explícita", + "missing \"typename\" is nonstandard here", + "abbreviated function template syntax is nonstandard for deduction guides" +] \ No newline at end of file diff --git a/Extension/bin/messages/ru/messages.json b/Extension/bin/messages/ru/messages.json index f9aa5ac3e..e735f29ca 100644 --- a/Extension/bin/messages/ru/messages.json +++ b/Extension/bin/messages/ru/messages.json @@ -3745,5 +3745,7 @@ "результат инициализатора указывает на переменную dllimport", "шаблон с атрибутом \"no_specializations\" не может иметь специализации", "\"static\" является здесь нестандартным", - "%nd ранее был объявлен без явной базы перечисления" -] + "%nd ранее был объявлен без явной базы перечисления", + "missing \"typename\" is nonstandard here", + "abbreviated function template syntax is nonstandard for deduction guides" +] \ No newline at end of file diff --git a/Extension/bin/messages/tr/messages.json b/Extension/bin/messages/tr/messages.json index 3ae3c58a3..dce7ef676 100644 --- a/Extension/bin/messages/tr/messages.json +++ b/Extension/bin/messages/tr/messages.json @@ -3745,5 +3745,7 @@ "başlatıcı sonucu bir dllimport değişkenini adresler", "'no_specializations' özniteliğine sahip şablon özelleştirilemez", "'static' burada standart dışıdır", - "%nd daha önce açık bir sabit liste tabanı olmadan tanımlanmıştı" -] + "%nd daha önce açık bir sabit liste tabanı olmadan tanımlanmıştı", + "missing \"typename\" is nonstandard here", + "abbreviated function template syntax is nonstandard for deduction guides" +] \ 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 d710bf386..c1db08e4e 100644 --- a/Extension/bin/messages/zh-cn/messages.json +++ b/Extension/bin/messages/zh-cn/messages.json @@ -3745,5 +3745,7 @@ "初始值设定项结果指向一个 dllimport 变量", "带有 \"no_specializations\" 属性的模板不能被专用化", "此处使用 \"static\" 不符合标准", - "之前声明 %nd 时未指定显式枚举基类型" -] + "之前声明 %nd 时未指定显式枚举基类型", + "missing \"typename\" is nonstandard here", + "abbreviated function template syntax is nonstandard for deduction guides" +] \ 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 43ee435a4..08f77ae03 100644 --- a/Extension/bin/messages/zh-tw/messages.json +++ b/Extension/bin/messages/zh-tw/messages.json @@ -3745,5 +3745,7 @@ "初始設定式結果會處理 dllimport 變數", "具有 'no_specializations' 屬性的範本無法特殊化", "此處使用的 'static' 非標準", - "%nd 先前宣告時未明確指定的列舉基底" -] + "%nd 先前宣告時未明確指定的列舉基底", + "missing \"typename\" is nonstandard here", + "abbreviated function template syntax is nonstandard for deduction guides" +] \ No newline at end of file diff --git a/Extension/i18n/chs/src/nativeStrings.i18n.json b/Extension/i18n/chs/src/nativeStrings.i18n.json index 4b591672c..043efd6fe 100644 --- a/Extension/i18n/chs/src/nativeStrings.i18n.json +++ b/Extension/i18n/chs/src/nativeStrings.i18n.json @@ -46,7 +46,7 @@ "aborting_tag_parse_at_root": "正在终止根位置的标记分析", "unable_to_retrieve_to_reset_timestamps": "无法检索数据库记录以重置时间戳: 错误 = {0}", "failed_to_reset_timestamps_for": "未能为 {0} 重置时间戳: 错误 = {1}", - "no_suitable_complier": "未找到合适的编译器。请在 c_cpp_properties.json 中设置 \"compilerPath\"。", + "no_suitable_compiler": "未找到合适的编译器。请在 c_cpp_properties.json 中设置 \"compilerPath\"。", "compiler_include_not_found": "未找到编译器包含路径: {0}", "intellisense_not_responding": "IntelliSense 引擎未响应。改为使用标记分析器。", "tag_parser_will_be_used": "标记分析器将用于以下项中的 IntelliSense 操作: {0}", diff --git a/Extension/i18n/cht/src/nativeStrings.i18n.json b/Extension/i18n/cht/src/nativeStrings.i18n.json index 2ce9c171f..710ad9c85 100644 --- a/Extension/i18n/cht/src/nativeStrings.i18n.json +++ b/Extension/i18n/cht/src/nativeStrings.i18n.json @@ -46,7 +46,7 @@ "aborting_tag_parse_at_root": "正在中止根目錄處的標籤剖析", "unable_to_retrieve_to_reset_timestamps": "無法取得 DB 記錄以重設時間戳記: 錯誤 = {0}", "failed_to_reset_timestamps_for": "無法重設 {0} 的時間戳記: 錯誤 = {1}", - "no_suitable_complier": "找不到任何適合的編譯器。請設定 c_cpp_properties.json 中的 \"compilerPath\"。", + "no_suitable_compiler": "找不到任何適合的編譯器。請設定 c_cpp_properties.json 中的 \"compilerPath\"。", "compiler_include_not_found": "找不到編譯器包含路徑: {0}", "intellisense_not_responding": "IntelliSense 引擎未回應。改為使用標籤剖析器。", "tag_parser_will_be_used": "標籤剖析器將用於 {0} 中的 IntelliSense 作業", diff --git a/Extension/i18n/csy/src/nativeStrings.i18n.json b/Extension/i18n/csy/src/nativeStrings.i18n.json index c09c35c9f..87e57ef7e 100644 --- a/Extension/i18n/csy/src/nativeStrings.i18n.json +++ b/Extension/i18n/csy/src/nativeStrings.i18n.json @@ -46,7 +46,7 @@ "aborting_tag_parse_at_root": "Parsování značek v kořenu se přerušuje.", "unable_to_retrieve_to_reset_timestamps": "Nepovedlo se načíst záznamy databáze pro resetování časových razítek: chyba = {0}", "failed_to_reset_timestamps_for": "Nepovedlo se resetovat časové razítko pro {0}: chyba = {1}", - "no_suitable_complier": "Nenašel se žádný vhodný kompilátor. Nastavte prosím compilerPath v souboru c_cpp_properties.json.", + "no_suitable_compiler": "Nenašel se žádný vhodný kompilátor. Nastavte prosím compilerPath v souboru c_cpp_properties.json.", "compiler_include_not_found": "Nenašla se cesta kompilátoru pro vložené soubory: {0}", "intellisense_not_responding": "Modul IntelliSense neodpovídá. Používá se místo něj analyzátor značek.", "tag_parser_will_be_used": "Analyzátor značek se bude používat pro operace IntelliSense v: {0}", diff --git a/Extension/i18n/deu/src/nativeStrings.i18n.json b/Extension/i18n/deu/src/nativeStrings.i18n.json index 8240c0e3c..9cfda51cf 100644 --- a/Extension/i18n/deu/src/nativeStrings.i18n.json +++ b/Extension/i18n/deu/src/nativeStrings.i18n.json @@ -46,7 +46,7 @@ "aborting_tag_parse_at_root": "Die Taganalyse wird am Stamm abgebrochen.", "unable_to_retrieve_to_reset_timestamps": "Datenbankdatensätze können nicht abgerufen werden, um Zeitstempel zurückzusetzen: Fehler = {0}", "failed_to_reset_timestamps_for": "Fehler beim Zurücksetzen des Zeitstempels für \"{0}\": Fehler = {1}", - "no_suitable_complier": "Es wurde kein geeigneter Compiler gefunden. Legen Sie \"compilerPath\" in \"c_cpp_properties.json\" fest.", + "no_suitable_compiler": "Es wurde kein geeigneter Compiler gefunden. Legen Sie \"compilerPath\" in \"c_cpp_properties.json\" fest.", "compiler_include_not_found": "Compilerincludepfad nicht gefunden: {0}", "intellisense_not_responding": "Die IntelliSense-Engine reagiert nicht. Stattdessen wird der Tagparser verwendet.", "tag_parser_will_be_used": "Der Tagparser wird für IntelliSense-Vorgänge in \"{0}\" verwendet.", diff --git a/Extension/i18n/esn/src/nativeStrings.i18n.json b/Extension/i18n/esn/src/nativeStrings.i18n.json index b66ee6a34..55898bfa6 100644 --- a/Extension/i18n/esn/src/nativeStrings.i18n.json +++ b/Extension/i18n/esn/src/nativeStrings.i18n.json @@ -46,7 +46,7 @@ "aborting_tag_parse_at_root": "Anulando el análisis de etiquetas en el directorio raíz", "unable_to_retrieve_to_reset_timestamps": "No se pueden recuperar los registros de la base de datos para restablecer las marcas de tiempo. Error = {0}", "failed_to_reset_timestamps_for": "No se pudo restablecer la marca de tiempo de {0}. Error = {1}", - "no_suitable_complier": "No se encontró ningún compilador adecuado. Establezca \"compilerPath\" en c_cpp_properties.json.", + "no_suitable_compiler": "No se encontró ningún compilador adecuado. Establezca \"compilerPath\" en c_cpp_properties.json.", "compiler_include_not_found": "No se encontró la ruta de acceso de inclusión del compilador: {0}", "intellisense_not_responding": "El motor de IntelliSense no responde. Se usará el analizador de etiquetas en su lugar.", "tag_parser_will_be_used": "Se usará el analizador de etiquetas para las operaciones de IntelliSense en {0}", diff --git a/Extension/i18n/fra/src/nativeStrings.i18n.json b/Extension/i18n/fra/src/nativeStrings.i18n.json index 6afad0043..657c7ac29 100644 --- a/Extension/i18n/fra/src/nativeStrings.i18n.json +++ b/Extension/i18n/fra/src/nativeStrings.i18n.json @@ -46,7 +46,7 @@ "aborting_tag_parse_at_root": "Annulation de l'analyse des balises à la racine", "unable_to_retrieve_to_reset_timestamps": "Impossible de récupérer les enregistrements de base de données pour réinitialiser les horodatages : erreur = {0}", "failed_to_reset_timestamps_for": "La réinitialisation de l'horodatage a échoué pour {0} : erreur = {1}", - "no_suitable_complier": "Aucun compilateur approprié. Définissez \"compilerPath\" dans c_cpp_properties.json.", + "no_suitable_compiler": "Aucun compilateur approprié. Définissez \"compilerPath\" dans c_cpp_properties.json.", "compiler_include_not_found": "Le chemin d'inclusion du compilateur est introuvable : {0}", "intellisense_not_responding": "Le moteur IntelliSense ne répond pas. Utilisation de l'analyseur de balises à la place.", "tag_parser_will_be_used": "L'analyseur de balises est utilisé pour les opérations IntelliSense dans {0}", diff --git a/Extension/i18n/ita/src/nativeStrings.i18n.json b/Extension/i18n/ita/src/nativeStrings.i18n.json index 13f7e2437..0c48d859e 100644 --- a/Extension/i18n/ita/src/nativeStrings.i18n.json +++ b/Extension/i18n/ita/src/nativeStrings.i18n.json @@ -46,7 +46,7 @@ "aborting_tag_parse_at_root": "Interruzione dell'analisi dei tag in corrispondenza della radice", "unable_to_retrieve_to_reset_timestamps": "Non è possibile recuperare i record del database per reimpostare i timestamp. Errore = {0}", "failed_to_reset_timestamps_for": "Non è stato possibile reimpostare il timestamp per {0}. Errore = {1}", - "no_suitable_complier": "Non sono stati trovati compilatore appropriati. Impostare \"compilerPath\" in c_cpp_properties.json.", + "no_suitable_compiler": "Non sono stati trovati compilatore appropriati. Impostare \"compilerPath\" in c_cpp_properties.json.", "compiler_include_not_found": "Il percorso di inclusione del compilatore non è stato trovato: {0}", "intellisense_not_responding": "Il motore IntelliSense non risponde. Verrà usato il parser di tag.", "tag_parser_will_be_used": "Il parser di tag verrà usato per le operazioni IntelliSense in: {0}", diff --git a/Extension/i18n/jpn/src/nativeStrings.i18n.json b/Extension/i18n/jpn/src/nativeStrings.i18n.json index 470b8061f..dfd6f2c87 100644 --- a/Extension/i18n/jpn/src/nativeStrings.i18n.json +++ b/Extension/i18n/jpn/src/nativeStrings.i18n.json @@ -46,7 +46,7 @@ "aborting_tag_parse_at_root": "ルートでのタグ解析を中止しています", "unable_to_retrieve_to_reset_timestamps": "タイムスタンプをリセットするための DB レコードを取得できません。エラー = {0}", "failed_to_reset_timestamps_for": "{0} のタイムスタンプをリセットできませんでした: エラー = {1}", - "no_suitable_complier": "適切なコンパイラが見つかりませんでした。c_cpp_properties.json の \"compilerPath\" を設定してください。", + "no_suitable_compiler": "適切なコンパイラが見つかりませんでした。c_cpp_properties.json の \"compilerPath\" を設定してください。", "compiler_include_not_found": "コンパイラのインクルード パスが見つかりませんでした: {0}", "intellisense_not_responding": "IntelliSense エンジンが応答していません。代わりにタグ パーサーを使用します。", "tag_parser_will_be_used": "タグ パーサーは {0} で IntelliSense 操作に使用されます", diff --git a/Extension/i18n/kor/src/nativeStrings.i18n.json b/Extension/i18n/kor/src/nativeStrings.i18n.json index 8eecc2a90..1f99f8957 100644 --- a/Extension/i18n/kor/src/nativeStrings.i18n.json +++ b/Extension/i18n/kor/src/nativeStrings.i18n.json @@ -46,7 +46,7 @@ "aborting_tag_parse_at_root": "루트에서 태그 구문 분석을 중단합니다.", "unable_to_retrieve_to_reset_timestamps": "타임스탬프를 다시 설정할 DB 레코드를 검색할 수 없습니다. 오류 = {0}", "failed_to_reset_timestamps_for": "{0} 에 대한 타임스탬프를 다시 설정하지 못했습니다. 오류 = {1}", - "no_suitable_complier": "적합한 컴파일러를 찾을 수 없습니다. c_cpp_properties.json에서 \"compilerPath\"를 설정하세요.", + "no_suitable_compiler": "적합한 컴파일러를 찾을 수 없습니다. c_cpp_properties.json에서 \"compilerPath\"를 설정하세요.", "compiler_include_not_found": "컴파일러 포함 경로를 찾을 수 없음: {0}", "intellisense_not_responding": "IntelliSense 엔진이 응답하지 않습니다. 태그 파서를 대신 사용합니다.", "tag_parser_will_be_used": "태그 파서가 다음의 IntelliSense 작업에서 사용됨: {0}", diff --git a/Extension/i18n/plk/src/nativeStrings.i18n.json b/Extension/i18n/plk/src/nativeStrings.i18n.json index cc6621b7a..609de2211 100644 --- a/Extension/i18n/plk/src/nativeStrings.i18n.json +++ b/Extension/i18n/plk/src/nativeStrings.i18n.json @@ -46,7 +46,7 @@ "aborting_tag_parse_at_root": "Przerywanie analizowania tagów w elemencie głównym", "unable_to_retrieve_to_reset_timestamps": "Nie można pobrać rekordów bazy danych w celu zresetowania znaczników czasu: błąd = {0}", "failed_to_reset_timestamps_for": "Nie można zresetować znacznika czasu dla elementu {0}: błąd = {1}", - "no_suitable_complier": "Nie znaleziono odpowiedniego kompilatora. Ustaw element „compilerPath” w pliku c_cpp_properties.json.", + "no_suitable_compiler": "Nie znaleziono odpowiedniego kompilatora. Ustaw element „compilerPath” w pliku c_cpp_properties.json.", "compiler_include_not_found": "Nie znaleziono ścieżki dołączania kompilatora: {0}", "intellisense_not_responding": "Aparat funkcji IntelliSense nie odpowiada. W zamian użyj analizatora tagów.", "tag_parser_will_be_used": "Analizator tagów będzie używany na potrzeby operacji funkcji IntelliSense w: {0}", diff --git a/Extension/i18n/ptb/src/nativeStrings.i18n.json b/Extension/i18n/ptb/src/nativeStrings.i18n.json index c1061f3b6..016ad6e35 100644 --- a/Extension/i18n/ptb/src/nativeStrings.i18n.json +++ b/Extension/i18n/ptb/src/nativeStrings.i18n.json @@ -46,7 +46,7 @@ "aborting_tag_parse_at_root": "Anulando análise de marca na raiz", "unable_to_retrieve_to_reset_timestamps": "Não é possível recuperar os registros do BD para redefinir os carimbos de data/hora: erro = {0}", "failed_to_reset_timestamps_for": "Falha ao redefinir o carimbo de data/hora para {0}: erro = {1}", - "no_suitable_complier": "Nenhum compilador adequado encontrado. Defina \"compilerPath\" em c_cpp_properties.json.", + "no_suitable_compiler": "Nenhum compilador adequado encontrado. Defina \"compilerPath\" em c_cpp_properties.json.", "compiler_include_not_found": "O compilador inclui o caminho não encontrado: {0}", "intellisense_not_responding": "O mecanismo IntelliSense não está respondendo. Usando o Analisador de Marca em seu lugar.", "tag_parser_will_be_used": "O Analisador de Marca será usado para operações do IntelliSense em: {0}", diff --git a/Extension/i18n/rus/src/nativeStrings.i18n.json b/Extension/i18n/rus/src/nativeStrings.i18n.json index 78962ff11..e8cd4ce7e 100644 --- a/Extension/i18n/rus/src/nativeStrings.i18n.json +++ b/Extension/i18n/rus/src/nativeStrings.i18n.json @@ -46,7 +46,7 @@ "aborting_tag_parse_at_root": "Прерывание анализа тегов в корне", "unable_to_retrieve_to_reset_timestamps": "Не удалось получить записи базы данных для сброса меток времени: ошибка — {0}", "failed_to_reset_timestamps_for": "Не удалось сбросить метку времени для {0}: ошибка — {1}", - "no_suitable_complier": "Подходящий компилятор не найден. Укажите \"compilerPath\" в c_cpp_properties.json.", + "no_suitable_compiler": "Подходящий компилятор не найден. Укажите \"compilerPath\" в c_cpp_properties.json.", "compiler_include_not_found": "Путь включения компилятора не найден: {0}", "intellisense_not_responding": "Подсистема IntelliSense не отвечает. Используйте вместо этого анализатор тегов.", "tag_parser_will_be_used": "Анализатор тегов будет использоваться для операций IntelliSense в: {0}", diff --git a/Extension/i18n/trk/src/nativeStrings.i18n.json b/Extension/i18n/trk/src/nativeStrings.i18n.json index e6969b9f5..d8fd56eb5 100644 --- a/Extension/i18n/trk/src/nativeStrings.i18n.json +++ b/Extension/i18n/trk/src/nativeStrings.i18n.json @@ -46,7 +46,7 @@ "aborting_tag_parse_at_root": "Kökte etiket ayrıştırma durduruluyor", "unable_to_retrieve_to_reset_timestamps": "Zaman damgalarını sıfırlamak için veritabanı kayıtları alınamıyor: hata = {0}", "failed_to_reset_timestamps_for": "{0} için zaman damgası sıfırlanamadı: hata = {1}", - "no_suitable_complier": "Uygun derleyici bulunamadı. Lütfen c_cpp_properties.json dosyasında \"compilerPath\" öğesini ayarlayın.", + "no_suitable_compiler": "Uygun derleyici bulunamadı. Lütfen c_cpp_properties.json dosyasında \"compilerPath\" öğesini ayarlayın.", "compiler_include_not_found": "Derleyici ekleme yolu bulunamadı: {0}", "intellisense_not_responding": "IntelliSense altyapısı yanıt vermiyor. Bunun yerine Etiket Ayrıştırıcısı kullanılıyor.", "tag_parser_will_be_used": "Etiket Ayrıştırıcısı, şurada IntelliSense işlemleri için kullanılacak: {0}", diff --git a/Extension/package.json b/Extension/package.json index 4340a5dea..82df4bbae 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.29.0-main", + "version": "1.30.0-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 65fc599cc..decbfaca6 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -1003,7 +1003,8 @@ export class DefaultClient implements Client { workspaceFolderBasename: this.Name, workspaceStorage: this.workspaceStoragePath, execPath: process.execPath, - pathSeparator: (os.platform() === 'win32') ? "\\" : "/" + pathSeparator: (os.platform() === 'win32') ? "\\" : "/", + userHome: os.homedir() }; } @@ -1796,7 +1797,7 @@ export class DefaultClient implements Client { if (Object.keys(changedSettings).length > 0) { if (this === defaultClient) { - if (changedSettings.commentContinuationPatterns !== undefined) { + if (changedSettings.commentContinuationPatterns2 !== undefined) { updateLanguageConfigurations(); } if (changedSettings.loggingLevel !== undefined) { diff --git a/Extension/src/LanguageServer/languageConfig.ts b/Extension/src/LanguageServer/languageConfig.ts index c9112ef17..47acbcf6a 100644 --- a/Extension/src/LanguageServer/languageConfig.ts +++ b/Extension/src/LanguageServer/languageConfig.ts @@ -55,7 +55,8 @@ function getMLSplitAfterPattern(): string { function getMLPreviousLinePattern(insert: string): string | undefined { if (insert.startsWith("/*")) { - return `(?=^(\\s*(\\/\\*\\*|\\*)).*)(?=(?!(\\s*\\*\\/)))`; + const match: string = escape(insert); + return `(?=^(\\s*(${match}|\\*)).*)(?=(?!(\\s*\\*\\/)))`; } return undefined; } @@ -238,8 +239,9 @@ export function getLanguageConfig(languageId: string): vscode.LanguageConfigurat } export function getLanguageConfigFromPatterns(languageId: string, patterns?: (string | CommentPattern)[]): vscode.LanguageConfiguration { - const beginPatterns: string[] = []; // avoid duplicate rules - const continuePatterns: string[] = []; // avoid duplicate rules + const beginPatterns: string[] = []; // avoid duplicate begin rules + const continuePatterns: string[] = []; // avoid duplicate continue rules + const endPatterns: string[] = []; // avoid duplicate end rules let duplicates: boolean = false; let beginRules: vscode.OnEnterRule[] = []; let continueRules: vscode.OnEnterRule[] = []; @@ -258,14 +260,17 @@ export function getLanguageConfigFromPatterns(languageId: string, patterns?: (st } else { duplicates = true; } - if (continuePatterns.indexOf(c.continue) < 0) { + if (continuePatterns.indexOf(`${c.begin}\0${c.continue}`) < 0) { if (r.continue && r.continue.length > 0) { continueRules = continueRules.concat(r.continue); } + continuePatterns.push(`${c.begin}\0${c.continue}`); + } + if (endPatterns.indexOf(c.continue) < 0) { if (r.end && r.end.length > 0) { endRules = endRules.concat(r.end); } - continuePatterns.push(c.continue); + endPatterns.push(c.continue); } }); if (duplicates) { diff --git a/Extension/src/LanguageServer/settings.ts b/Extension/src/LanguageServer/settings.ts index 209b347d9..86ddf401a 100644 --- a/Extension/src/LanguageServer/settings.ts +++ b/Extension/src/LanguageServer/settings.ts @@ -386,6 +386,13 @@ export class CppSettings extends Settings { public get commentContinuationPatterns(): (string | CommentPattern)[] { const value: any = super.Section.get("commentContinuationPatterns"); if (this.isArrayOfCommentContinuationPatterns(value)) { + // Needs to be sorted with longer patterns first so it takes precedence and + // doesn't apply the shorter pattern if it's a prefix (e.g. // matching ///). + value.sort((a: string | CommentPattern, b: string | CommentPattern) => { + const aStr: string = isString(a) ? a : a.begin; + const bStr: string = isString(b) ? b : b.begin; + return bStr.length - aStr.length; + }); return value; } const setting = getRawSetting("C_Cpp.commentContinuationPatterns", true); diff --git a/Extension/src/common.ts b/Extension/src/common.ts index e6a5b0c96..e32f23043 100644 --- a/Extension/src/common.ts +++ b/Extension/src/common.ts @@ -1551,7 +1551,6 @@ export function hasMsvcEnvironment(): boolean { 'INCLUDE', 'LIB', 'LIBPATH', - 'NETFXSDKDir', 'UCRTVersion', 'UniversalCRTSdkDir', 'VCIDEInstallDir', diff --git a/Extension/src/constants.ts b/Extension/src/constants.ts index 059bac203..998d1856c 100644 --- a/Extension/src/constants.ts +++ b/Extension/src/constants.ts @@ -15,4 +15,4 @@ export const isLinux = OperatingSystem === 'linux'; export const verboseEnabled = false; // Model selector for Copilot features -export const modelSelector = { vendor: 'copilot', family: 'gpt-4' }; +export const modelSelector = { vendor: 'copilot' }; diff --git a/Extension/src/nativeStrings.json b/Extension/src/nativeStrings.json index 21ae51347..75306f325 100644 --- a/Extension/src/nativeStrings.json +++ b/Extension/src/nativeStrings.json @@ -44,7 +44,7 @@ "aborting_tag_parse_at_root": "Aborting tag parse at root", "unable_to_retrieve_to_reset_timestamps": "Unable to retrieve DB records to reset timestamps: error = {0}", "failed_to_reset_timestamps_for": "Failed to reset timestamp for {0}: error = {1}", - "no_suitable_complier": "No suitable compiler found. Please set the \"compilerPath\" in c_cpp_properties.json.", + "no_suitable_compiler": "No suitable compiler found. Please set the \"compilerPath\" in c_cpp_properties.json.", "compiler_include_not_found": "Compiler include path not found: {0}", "intellisense_not_responding": "IntelliSense engine is not responding. Using the Tag Parser instead.", "tag_parser_will_be_used": "Tag Parser will be used for IntelliSense operations in: {0}", diff --git a/Extension/test/scenarios/SimpleCppProject/tests/languageServer.integration.test.ts b/Extension/test/scenarios/SimpleCppProject/tests/languageServer.integration.test.ts index aba365a28..dff580139 100644 --- a/Extension/test/scenarios/SimpleCppProject/tests/languageServer.integration.test.ts +++ b/Extension/test/scenarios/SimpleCppProject/tests/languageServer.integration.test.ts @@ -45,6 +45,27 @@ suite("multiline comment setting tests", function(): void { action: { indentAction: vscode.IndentAction.None, removeText: 1 } } ]; + const multipleMLRules: vscode.OnEnterRule[] = [ + defaultMLRules[0], // e.g. /** | */ + defaultMLRules[1], // e.g. /** ...| + { // e.g. /*! | */ + beforeText: /^\s*\/\*\!(?!\/)([^\*]|\*(?!\/))*$/, + afterText: /^\s*\*\/$/, + action: { indentAction: vscode.IndentAction.IndentOutdent, appendText: ' * ' } + }, + { // e.g. /*! ...| + beforeText: /^\s*\/\*\!(?!\/)([^\*]|\*(?!\/))*$/, + action: { indentAction: vscode.IndentAction.None, appendText: ' * ' } + }, + defaultMLRules[2], // e.g. * ...| + { // e.g. * ...| + beforeText: /^(\t|[ ])*\ \*(\ ([^\*]|\*(?!\/))*)?$/, + previousLineText: /(?=^(\s*(\/\*\!|\*)).*)(?=(?!(\s*\*\/)))/, + action: { indentAction: vscode.IndentAction.None, appendText: '* ' } + }, + defaultMLRules[3], // e.g. */| + defaultMLRules[4] // e.g. *-----*/| + ]; const defaultSLRules: vscode.OnEnterRule[] = [ { beforeText: /^\s*\/\/\/.+$/, @@ -72,6 +93,11 @@ suite("multiline comment setting tests", function(): void { assert.deepStrictEqual(rules, defaultMLRules); }); + test("Check the OnEnterRules for C++ with an additional option", () => { + const rules = getLanguageConfigFromPatterns('cpp', [ "/**", "/*!" ]).onEnterRules; + assert.deepStrictEqual(rules, multipleMLRules); + }); + test("Make sure duplicate rules are removed", () => { const rules = getLanguageConfigFromPatterns('cpp', [ "/**", { begin: "/**", continue: " * " }, "/**" ]).onEnterRules; assert.deepStrictEqual(rules, defaultMLRules); diff --git a/Extension/yarn.lock b/Extension/yarn.lock index c3429357f..c9106bef7 100644 --- a/Extension/yarn.lock +++ b/Extension/yarn.lock @@ -3138,9 +3138,9 @@ jest-worker@^27.4.5: supports-color "^8.0.0" js-yaml@^4.1.0: - version "4.1.0" - resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha1-wftl+PUBeQHN0slRhkuhhFihBgI= + version "4.1.1" + resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + integrity sha1-hUwpJGdwW2mUduGi3swMijRYgGs= dependencies: argparse "^2.0.1"