From fcf11debc34986e56ea3491691d30fa94b2fd078 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Thu, 20 Nov 2025 13:47:01 -0800 Subject: [PATCH 01/14] Update changelog for 1.29.1. (#14058) --- Extension/CHANGELOG.md | 12 +++++++++++- Extension/package.json | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 9b664bcf1..1bb68b5a0 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,9 +1,19 @@ # C/C++ for Visual Studio Code Changelog +## Version 1.29.1: November 24, 2025 +### Bug Fixes +* Fix omission of unpopulated Mac framework paths. [#13993](https://github.com/microsoft/vscode-cpptools/issues/13993) +* Fix IntelliSense with MSVC mode C++23 deduced type construction with `auto`. [#14041](https://github.com/microsoft/vscode-cpptools/issues/14041) +* Fix the handling of the cl.exe `/external:I` argument for IntelliSense configuration. +* Fix a potential memory corruption crash of cpptools-srv (related to PCH). +* Add translations of strings added in 1.29.0. + ## Version 1.29.0: November 4, 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) -* Enable setting the VS developer environment without running VS Code from the developer command prompt. [#4742](https://github.com/microsoft/vscode-cpptools/issues/4742) * Add IntelliSense support for `c23` enums with an underlying type. [#13675](https://github.com/microsoft/vscode-cpptools/issues/13675) ### Bug Fixes diff --git a/Extension/package.json b/Extension/package.json index 4340a5dea..c0fe7c503 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.29.1-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", From 756b1aa47bb58e83321ed1caf7ea1f93c047e1d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Nov 2025 15:19:58 -0800 Subject: [PATCH 02/14] Bump js-yaml from 4.1.0 to 4.1.1 in /Extension (#14060) Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Extension/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Extension/yarn.lock b/Extension/yarn.lock index 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" From 4642371880168865d618e3061aaf20e82fb2dcf5 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Fri, 21 Nov 2025 09:13:46 -0800 Subject: [PATCH 03/14] Update js-yaml for github actions. (#14061) --- .github/actions/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/package-lock.json b/.github/actions/package-lock.json index 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": { From dbb3e72e808222023442196079f42ab7a1ed5f5c Mon Sep 17 00:00:00 2001 From: Dhruvil Shah Date: Tue, 25 Nov 2025 14:04:26 -0800 Subject: [PATCH 04/14] Fix typo "no_suitable_complier" in nativeStrings.json (#14064) --- Extension/i18n/chs/src/nativeStrings.i18n.json | 2 +- Extension/i18n/cht/src/nativeStrings.i18n.json | 2 +- Extension/i18n/csy/src/nativeStrings.i18n.json | 2 +- Extension/i18n/deu/src/nativeStrings.i18n.json | 2 +- Extension/i18n/esn/src/nativeStrings.i18n.json | 2 +- Extension/i18n/fra/src/nativeStrings.i18n.json | 2 +- Extension/i18n/ita/src/nativeStrings.i18n.json | 2 +- Extension/i18n/jpn/src/nativeStrings.i18n.json | 2 +- Extension/i18n/kor/src/nativeStrings.i18n.json | 2 +- Extension/i18n/plk/src/nativeStrings.i18n.json | 2 +- Extension/i18n/ptb/src/nativeStrings.i18n.json | 2 +- Extension/i18n/rus/src/nativeStrings.i18n.json | 2 +- Extension/i18n/trk/src/nativeStrings.i18n.json | 2 +- Extension/src/nativeStrings.json | 4 ++-- 14 files changed, 15 insertions(+), 15 deletions(-) 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/src/nativeStrings.json b/Extension/src/nativeStrings.json index 83039aa97..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}", @@ -486,4 +486,4 @@ "text": "The C/C++ extension may be used only with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps, Team Foundation Server, and successor Microsoft products and services to develop and test your applications.", "hint": "{Locked=\"C/C++\"} {Locked=\"Visual Studio\"} {Locked=\"Mac\"} {Locked=\"Visual Studio Code\"} {Locked=\"Azure DevOps\"} {Locked=\"Team Foundation Server\"}" } -} +} \ No newline at end of file From 9ccb63f1770cb68685ee94157a8dbaab49fe201b Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Mon, 1 Dec 2025 17:19:13 -0800 Subject: [PATCH 05/14] Update changelog and verison for 1.29.2. (#14070) --- Extension/CHANGELOG.md | 15 +++++---------- Extension/package.json | 2 +- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 1bb68b5a0..a05012a81 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,14 +1,6 @@ # C/C++ for Visual Studio Code Changelog -## Version 1.29.1: November 24, 2025 -### Bug Fixes -* Fix omission of unpopulated Mac framework paths. [#13993](https://github.com/microsoft/vscode-cpptools/issues/13993) -* Fix IntelliSense with MSVC mode C++23 deduced type construction with `auto`. [#14041](https://github.com/microsoft/vscode-cpptools/issues/14041) -* Fix the handling of the cl.exe `/external:I` argument for IntelliSense configuration. -* Fix a potential memory corruption crash of cpptools-srv (related to PCH). -* Add translations of strings added in 1.29.0. - -## Version 1.29.0: November 4, 2025 +## 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) @@ -20,13 +12,16 @@ * 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 diff --git a/Extension/package.json b/Extension/package.json index c0fe7c503..19841ae86 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.1-main", + "version": "1.29.2-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", From 6559cc2af092ae6b4f790faf0a495d7e8561efac Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Fri, 5 Dec 2025 17:03:52 +0000 Subject: [PATCH 06/14] Fix custom comment continuation for multiple follow-up lines (#14076) * Fix custom comment continuation for multiple follow-up lines (#14074) * Add a unit test for the scenario * formatting hasn't been done on this file yet. Match the existing style. --------- Co-authored-by: dinhtam2c --- .../src/LanguageServer/languageConfig.ts | 15 +++++++---- .../tests/languageServer.integration.test.ts | 26 +++++++++++++++++++ 2 files changed, 36 insertions(+), 5 deletions(-) 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/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); From 3a458aa99d5000b3a38aeb7cea446731d6d4ca47 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Fri, 5 Dec 2025 09:09:28 -0800 Subject: [PATCH 07/14] Fix C_Cpp.commentContinuationPattern settings change. (#14080) --- Extension/src/LanguageServer/client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 65fc599cc..0fc8d0780 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -1796,7 +1796,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) { From 802b46011a38913b3786865d7f44d4955593e562 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Fri, 5 Dec 2025 09:15:12 -0800 Subject: [PATCH 08/14] Fix commentContinuationPatterns if they're a prefix of a later one. (#14082) * Fix commentContinuationPatterns if they're a prefix of a later one. --- Extension/src/LanguageServer/settings.ts | 7 +++++++ 1 file changed, 7 insertions(+) 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); From 4d6f27df02dde85259b6e39d5ee9bdd7e4fdf744 Mon Sep 17 00:00:00 2001 From: Bob Brown Date: Fri, 5 Dec 2025 18:22:00 +0000 Subject: [PATCH 09/14] Don't require NETFXSDKDir for msvc environment test (#14088) --- Extension/src/common.ts | 1 - 1 file changed, 1 deletion(-) 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', From 5a4be2c7d3e7fa567573f63cf9abf41508a27fa2 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Fri, 5 Dec 2025 17:59:02 -0800 Subject: [PATCH 10/14] Resolve ${userHome} in settings. (#14090) --- Extension/src/LanguageServer/client.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 0fc8d0780..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() }; } From bc477d360a7007a2eff490065d64dac0d017a510 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Mon, 8 Dec 2025 15:12:48 -0800 Subject: [PATCH 11/14] Update changelog for 1.29.3. (#14093) * Update changelog for 1.29.3. --- Extension/CHANGELOG.md | 4 ++++ Extension/package.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index a05012a81..ed02fd5e7 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,5 +1,9 @@ # C/C++ for Visual Studio Code Changelog +## 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) diff --git a/Extension/package.json b/Extension/package.json index 19841ae86..06895d17f 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.2-main", + "version": "1.29.3-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", From bb42f2f56d8330c388ec51a82c6b6d8597eeffc2 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Fri, 12 Dec 2025 16:38:18 -0800 Subject: [PATCH 12/14] Update changelog for 1.30.0. (#14106) --- Extension/CHANGELOG.md | 44 ++++++++++++++++++++++++++++-------------- Extension/package.json | 2 +- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index ed02fd5e7..e21bb3e7f 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,5 +1,19 @@ # C/C++ for Visual Studio Code Changelog +## Version 1.30.0: December 15, 2025 +### Enhancements +* 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) @@ -50,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 @@ -64,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) @@ -90,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 @@ -203,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. @@ -217,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) @@ -233,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) @@ -315,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) @@ -494,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) @@ -632,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) @@ -653,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. @@ -1176,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/package.json b/Extension/package.json index 06895d17f..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.3-main", + "version": "1.30.0-main", "publisher": "ms-vscode", "icon": "LanguageCCPP_color_128x.png", "readme": "README.md", From bdb77c0bcfcd9a41746cf50e97bbe0f8b5dc444c Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Thu, 18 Dec 2025 15:11:01 -0800 Subject: [PATCH 13/14] Fix Copilot hover model selection (#14113) --- Extension/src/constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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' }; From 7601046429f375e3281786e4bd432281a49e8628 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Fri, 9 Jan 2026 04:29:18 -0800 Subject: [PATCH 14/14] Update IntelliSense loc strings. --- Extension/bin/messages/cs/messages.json | 6 ++++-- Extension/bin/messages/de/messages.json | 4 +++- Extension/bin/messages/es/messages.json | 4 +++- Extension/bin/messages/fr/messages.json | 6 ++++-- Extension/bin/messages/it/messages.json | 6 ++++-- Extension/bin/messages/ja/messages.json | 6 ++++-- Extension/bin/messages/ko/messages.json | 6 ++++-- Extension/bin/messages/pl/messages.json | 6 ++++-- Extension/bin/messages/pt-br/messages.json | 6 ++++-- Extension/bin/messages/ru/messages.json | 6 ++++-- Extension/bin/messages/tr/messages.json | 6 ++++-- Extension/bin/messages/zh-cn/messages.json | 6 ++++-- Extension/bin/messages/zh-tw/messages.json | 6 ++++-- 13 files changed, 50 insertions(+), 24 deletions(-) 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