Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/actions/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
uses: github/codeql-action/init@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # v4.37.4
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
Expand Down Expand Up @@ -91,7 +91,7 @@ jobs:
exit 1

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
uses: github/codeql-action/analyze@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # v4.37.4
with:
category: "/language:${{matrix.language}}"

5 changes: 2 additions & 3 deletions Extension/.scripts/vscode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@
* ------------------------------------------------------------------------------------------ */

import { downloadAndUnzipVSCode, resolveCliArgsFromVSCodeExecutablePath } from '@vscode/test-electron';
import { createHash } from 'crypto';
import { tmpdir } from 'os';
import { resolve } from 'path';
import { verbose } from '../src/Utility/Text/streams';
import { mkdir, readJson, rimraf, write } from './common';
import { getVSCodeTestIsolate } from './vscodeTestPath';

export const isolated = resolve(tmpdir(), '.vscode-test', createHash('sha256').update(__dirname).digest('hex').substring(0, 6));
export const isolated = getVSCodeTestIsolate(__dirname);
export const extensionsDir = resolve(isolated, 'extensions');
export const userDir = resolve(isolated, 'user-data');
export const settings = resolve(userDir, "User", 'settings.json');
Expand Down
51 changes: 51 additions & 0 deletions Extension/.scripts/vscodeTestPath.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */

import { createHash } from 'crypto';
import { homedir } from 'os';
import { posix, win32 } from 'path';

function isFullyQualifiedPath(value: string, platform: NodeJS.Platform): boolean {
const path = platform === 'win32' ? win32 : posix;
return path.isAbsolute(value) && (platform !== 'win32' || path.parse(value).root.length > 1);
}

export function getVSCodeTestIsolate(
scriptDirectory: string,
platform: NodeJS.Platform = process.platform,
environment: NodeJS.ProcessEnv = process.env,
homeDirectory: string = homedir()): string {
const path = platform === 'win32' ? win32 : posix;
const override = environment.CPPTOOLS_VSCODE_TEST_ROOT;
let root: string;

if (override) {
if (!isFullyQualifiedPath(override, platform)) {
throw new Error('CPPTOOLS_VSCODE_TEST_ROOT must be a fully qualified absolute path.');
}
root = override;
} else {
switch (platform) {
case 'win32': {
const localAppData = environment.LOCALAPPDATA;
const cacheDirectory = localAppData && isFullyQualifiedPath(localAppData, platform) ? localAppData : path.resolve(homeDirectory, 'AppData', 'Local');
root = path.resolve(cacheDirectory, 'Microsoft', 'vscode-cpptools', 'vscode-test');
break;
}
case 'darwin':
root = path.resolve(homeDirectory, 'Library', 'Caches', 'vscode-cpptools', 'vscode-test');
break;
default: {
const xdgCacheHome = environment.XDG_CACHE_HOME;
const cacheDirectory = xdgCacheHome && isFullyQualifiedPath(xdgCacheHome, platform) ? xdgCacheHome : path.resolve(homeDirectory, '.cache');
root = path.resolve(cacheDirectory, 'vscode-cpptools', 'vscode-test');
break;
}
}
}

const worktreeHash = createHash('sha256').update(scriptDirectory).digest('hex').substring(0, 6);
return path.resolve(root, worktreeHash);
}
9 changes: 9 additions & 0 deletions Extension/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# C/C++ for Visual Studio Code Changelog

## Version 1.33.7: August 11, 2026
### Bug Fixes
* Fix another crash when reading files saved in certain multibyte encodings such as GB18030 or EUC-JP.
* Fix newly created files not being associated with the correct configuration in the browse database.
* Fix the language server becoming unresponsive during browse database initialization.
* Fix stale diagnostics and missing code actions after editing visible headers.
* Fix `/ZW:nostdlib` not being processed correctly by IntelliSense.
* Update dependencies.

## Version 1.33.6: August 4, 2026
### Bug Fixes
* Fix a spurious recursive includes (`**`) debug console log warning for paths merged from `c_cpp_properties.json` when `C_Cpp.mergeConfigurations` is enabled. [#14125](https://github.com/microsoft/vscode-cpptools/issues/14125)
Expand Down
2 changes: 1 addition & 1 deletion Extension/i18n/chs/src/LanguageServer/client.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"loggingLevel.changed": "{0} 已更改为: {1}",
"dismiss.button": "消除",
"disable.warnings.button": "禁用警告",
"unable.to.provide.configuration": "{0} 无法为“{1}”提供 IntelliSense 配置信息。将改为使用“{2}”配置中的设置。",
"unable.to.provide.configuration": "{0} 无法提供 IntelliSense 配置信息。将改为使用“{1}”配置中的设置。",
"config.not.found": "找不到请求的配置名称: {0}",
"unsupported.client": "不支持的客户端",
"timed.out": "将在 {0} 毫秒后超时。",
Expand Down
23 changes: 19 additions & 4 deletions Extension/i18n/chs/src/nativeStrings.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"edit_include_path": "编辑 \"includePath\" 设置",
"disable_error_squiggles": "禁用错误波形曲线",
"enable_error_squiggles": "启用所有错误波形曲线",
"include_errors_update_include_path_squiggles_disables": "检测到 #include 错误。请更新 includePath。已为此翻译单元({0})禁用波形曲线。",
"include_errors_update_include_path_squiggles_disabled2": "检测到 #include 错误。请更新你的 includePath。在找到包含的文件之前,不会报告此文件的语法错误。",
"include_errors_update_include_path_intellisense_disabled": "检测到 #include 错误。请更新 includePath。此翻译单元({0})的 IntelliSense 功能将由标记分析器提供。",
"include_errors_update_compile_commands_or_include_path_intellisense_disabled": "检测到 #include 错误。请考虑更新 compile_commands.json 或 includePath。此翻译单元({0})的 IntelliSense 功能将由标记分析器提供。",
"could_not_parse_compile_commands": "无法分析“{0}”。将改用来自文件夹“{1}”中的 c_cpp_properties.json 的 \"includePath\"。",
Expand Down Expand Up @@ -122,7 +122,7 @@
"formatting_diff": "正在格式化执行了 dif 操作的输出:",
"disable_inactive_regions": "禁用非活动区域着色",
"error_limit_exceeded": "已超出错误限额,{0} 个错误未报告。",
"include_errors_update_compile_commands_or_include_path_squiggles_disabled": "检测到 #include 错误。请考虑更新 compile_commands.json 或 includePath。已为此翻译单元({0})禁用波形曲线。",
"include_errors_update_compile_commands_or_include_path_squiggles_disabled2": "检测到 #include 错误。请考虑更新 compile_commands.json 或 includePath。在找到包含的文件之前,不会报告此文件的语法错误。",
"cannot_reset_database": "无法重置 IntelliSense 数据库。若要手动重置,请关闭所有 VS Code 实例,然后删除此文件: {0}",
"formatting_failed_see_output": "格式化失败。请查看输出窗口获取详细信息。",
"populating_include_completion_cache": "正在填充包含完成缓存。",
Expand Down Expand Up @@ -160,7 +160,7 @@
"fallback_to_no_bitness": "未能查询编译器。正在回退到无位数。",
"intellisense_client_creation_aborted": "已中止创建 IntelliSense 客户端: {0}",
"include_errors_config_provider_intellisense_disabled": "基于 configurationProvider 设置提供的信息检测到 #include 错误。此翻译单元({0})的 IntelliSense 功能将由标记分析器提供。",
"include_errors_config_provider_squiggles_disabled": "基于 configurationProvider 设置提供的信息检测到 #include 错误。已针对此翻译单元({0})禁用波形曲线。",
"include_errors_config_provider_squiggles_disabled2": "基于 configurationProvider 设置提供的信息检测到 #include 错误。在找到包含的文件之前,不会报告此文件的语法错误。",
"preprocessor_keyword": "预处理器关键字",
"c_keyword": "C 关键字",
"cpp_keyword": "C++ 关键字",
Expand Down Expand Up @@ -418,5 +418,20 @@
"status_indexing_files_with_text": "正在为文件编制索引 {0}",
"help_allow_missing_lsp_config": "即使指定的 --lsp-config 文件不存在,也允许服务器启动。",
"initialize_failed_during_engine_setup": "引擎设置期间初始化失败。",
"important_label": "重要说明:"
"important_label": "重要说明:",
"help_check": "通过完整解析并分析源文件,将其对照 compile_commands.json 进行验证,并报告任何诊断信息。如果发现错误,则以非零状态退出。",
"help_check_compile_commands": "要与 --check 一起使用的特定 compile_commands.json (或其目录)的路径。默认为自动发现。",
"check_not_authorized": "未授权;需要登录才能运行 --check",
"check_requires_source": "--check 需要源文件: --check=<file>",
"check_source_not_found": "找不到源文件: {0}",
"check_compile_commands_not_found": "找不到 compile_commands.json: {0}",
"check_compile_commands_not_discovered": "在 {0} 的任何父目录中都找不到 compile_commands.json;请传递 --check-compile-commands=<path> 以显式指定它",
"check_engine_init_failed": "无法初始化语言引擎",
"check_no_workspace_folder": "没有为 {0} 解析的工作区文件夹",
"check_not_in_compile_commands": "{0} 不在 {1} 中",
"check_read_failed": "无法读取 {0}",
"check_open_failed": "无法打开 {0} 进行分析",
"check_timed_out": "等待 {0} 分析完成时超时",
"failed_to_open_browse_db_lock_file": "未能打开浏览数据库锁定文件: {0} (errno={1})",
"failed_to_lock_browse_db_lock_file": "未能锁定浏览数据库锁定文件: {0} (errno={1})"
}
2 changes: 1 addition & 1 deletion Extension/i18n/cht/src/LanguageServer/client.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"loggingLevel.changed": "{0} 已變更為: {1}",
"dismiss.button": "關閉",
"disable.warnings.button": "停用警告",
"unable.to.provide.configuration": "{0} 無法提供 '{1}' 的 IntelliSense 組態資訊。將改用來自 '{2}' 組態的設定。",
"unable.to.provide.configuration": "{0} 無法提供 IntelliSense 組態資訊。將改為使用來自 '{1}' 組態的設定。",
"config.not.found": "找不到要求的組態名稱: {0}",
"unsupported.client": "不支援的用戶端",
"timed.out": "逾時 ({0} 毫秒內)。",
Expand Down
23 changes: 19 additions & 4 deletions Extension/i18n/cht/src/nativeStrings.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"edit_include_path": "編輯 \"includePath\" 設定",
"disable_error_squiggles": "停用錯誤波浪線",
"enable_error_squiggles": "啟用所有錯誤波浪線",
"include_errors_update_include_path_squiggles_disables": "偵測到 #include 錯誤。請更新您的 includePath。此編譯單位 ({0}) 的波浪線已停用。",
"include_errors_update_include_path_squiggles_disabled2": "偵測到 #include 錯誤。請更新您的 includePath。直到找到包含的檔案,才會回報此檔案的語法錯誤。",
"include_errors_update_include_path_intellisense_disabled": "偵測到 #include 錯誤。請更新您的 includePath。此編譯單位 ({0}) 的 IntelliSense 功能將由標籤剖析器提供。",
"include_errors_update_compile_commands_or_include_path_intellisense_disabled": "偵測到 #include 錯誤。請考慮更新 compile_commands.json 或 includePath。此編譯單位 ({0}) 的 IntelliSense 功能將由標籤剖析器提供。",
"could_not_parse_compile_commands": "無法剖析 \"{0}\"。將改用資料夾 '{1}' 中 c_cpp_properties.json 的 'includePath'。",
Expand Down Expand Up @@ -122,7 +122,7 @@
"formatting_diff": "正在將差異輸出格式化:",
"disable_inactive_regions": "停用非作用中區域著色",
"error_limit_exceeded": "超過錯誤限制,未回報 {0} 個錯誤。",
"include_errors_update_compile_commands_or_include_path_squiggles_disabled": "偵測到 #include 錯誤。請考慮更新 compile_commands.json 或 includePath。此編譯單位 ({0}) 的波浪線已停用。",
"include_errors_update_compile_commands_or_include_path_squiggles_disabled2": "偵測到 #include 錯誤。請考慮更新 compile_commands.json 或 includePath。直到找到包含的檔案,才會回報此檔案的語法錯誤。",
"cannot_reset_database": "無法重設 IntelliSense 資料庫。若要手動重設,請關閉所有 VS Code 執行個體,然後刪除此檔案: {0}",
"formatting_failed_see_output": "格式化失敗。如需詳細資料,請查看輸出視窗。",
"populating_include_completion_cache": "正在填入包含完成快取。",
Expand Down Expand Up @@ -160,7 +160,7 @@
"fallback_to_no_bitness": "無法查詢編譯器。請回復成沒有位元。",
"intellisense_client_creation_aborted": "已中止建立 IntelliSense 用戶端: {0}",
"include_errors_config_provider_intellisense_disabled": "根據 configurationProvider 設定提供的資訊,偵測到 #include 錯誤。此編譯單位 ({0}) 的 IntelliSense 功能將由標籤剖析器提供。",
"include_errors_config_provider_squiggles_disabled": "根據 configurationProvider 設定提供的資訊,偵測到 #include 錯誤。已停用此編譯單位 ({0}) 的波浪線。",
"include_errors_config_provider_squiggles_disabled2": "根據 configurationProvider 設定提供的資訊,偵測到 #include 錯誤。直到找到包含的檔案,才會回報此檔案的語法錯誤。",
"preprocessor_keyword": "前置處理器關鍵字",
"c_keyword": "C 關鍵字",
"cpp_keyword": "C++ 關鍵字",
Expand Down Expand Up @@ -418,5 +418,20 @@
"status_indexing_files_with_text": "正在編製索引檔案 {0}",
"help_allow_missing_lsp_config": "即使指定的 --lsp-config 檔案不存在,仍允許伺服器啟動。",
"initialize_failed_during_engine_setup": "引擎設定期間初始化失敗。",
"important_label": "重要:"
"important_label": "重要:",
"help_check": "透過完整剖析和分析來源檔案,並根據 compile_commands.json 進行驗證,同時回報任何診斷。如果發現錯誤,則以非零值結束。",
"help_check_compile_commands": "要搭配 --check 使用的特定 compile_commands.json (或其目錄) 路徑。預設為自動探索。",
"check_not_authorized": "未獲授權; 必須登入才能執行 --check",
"check_requires_source": "--check 需要來源檔案: --check=<file>",
"check_source_not_found": "找不到來源檔案: {0}",
"check_compile_commands_not_found": "找不到 compile_commands.json: {0}",
"check_compile_commands_not_discovered": "在 {0} 的任何父目錄中都找不到 compile_commands.json; 請傳遞 --check-compile-commands=<path> 以明確指定",
"check_engine_init_failed": "無法初始化語言引擎",
"check_no_workspace_folder": "未解析出 {0} 的工作區資料夾",
"check_not_in_compile_commands": "{0} 不存在於 {1}",
"check_read_failed": "無法讀取 {0}",
"check_open_failed": "無法開啟 {0} 進行分析",
"check_timed_out": "等候 {0} 的分析完成時逾時",
"failed_to_open_browse_db_lock_file": "無法開啟瀏覽資料庫鎖定檔案: {0} (errno={1})",
"failed_to_lock_browse_db_lock_file": "無法鎖定瀏覽資料庫鎖定檔案: {0} (errno={1})"
}
2 changes: 1 addition & 1 deletion Extension/i18n/csy/package.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,7 @@
"c_cpp.taskDefinitions.args.quoting.weak.description": "Uzavře argument do jednoduchých uvozovek prostředí (například \" pomocí znaku Bash).",
"c_cpp.taskDefinitions.options.description": "Další možnosti příkazu.",
"c_cpp.taskDefinitions.options.cwd.description": "The current working directory of the executed program or script. If omitted Code's current workspace root is used.",
"c_cpp.taskDefinitions.problemMatcher.description": "One or more problem matchers to use to detect compiler errors and warnings in task output.",
"c_cpp.taskDefinitions.problemMatcher.description": "Jeden nebo více porovnávačů (matcherů) problémů používaných k detekci chyb a upozornění kompilátoru ve výstupu úlohy.",
"c_cpp.taskDefinitions.detail.description": "Další podrobnosti o úloze.",
"c_cpp.debuggers.sourceFileMap.sourceFileMapEntry.description": "Aktuální cesta a cesta při kompilaci ke stejným zdrojovým stromům. Soubory, které se najdou na cestě EditorPath, se namapují na cestu CompileTimePath pro odpovídající zarážku, která se při zobrazování umístění stacktrace mapuje z CompileTimePath na EditorPath.",
"c_cpp.debuggers.sourceFileMap.sourceFileMapEntry.editorPath.description": "Cesta ke zdrojovému souboru, který se použije v editoru",
Expand Down
2 changes: 1 addition & 1 deletion Extension/i18n/csy/src/LanguageServer/client.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"loggingLevel.changed": "{0} se změnila na: {1}",
"dismiss.button": "Zrušit",
"disable.warnings.button": "Zakázat upozornění",
"unable.to.provide.configuration": "{0} nemůže poskytnout informace pro konfiguraci IntelliSense pro '{1}'. Místo nich se použijí nastavení z konfigurace '{2}'.",
"unable.to.provide.configuration": "{0} nemůže poskytnout informace pro konfiguraci IntelliSense. Místo nich se použijí nastavení z konfigurace „{1}“.",
"config.not.found": "Požadovaný název konfigurace se nenašel: {0}",
"unsupported.client": "Nepodporovaný klient",
"timed.out": "Po {0} ms vypršel časový limit.",
Expand Down
Loading
Loading