diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 9b3488b5e5..a4e145dada 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,5 +1,16 @@ # C/C++ for Visual Studio Code Change Log +## Version 1.8.0-insiders2: December 7, 2021 +### Bug Fixes +* Fix GCC system include processing on Windows. [#8112](https://github.com/microsoft/vscode-cpptools/issues/8112), [#8496](https://github.com/microsoft/vscode-cpptools/issues/8496) +* Fix the tag parser getting stuck on certain code. [#8459](https://github.com/microsoft/vscode-cpptools/issues/8459) +* Fix `C_Cpp.codeAnalysis.maxConcurrentThreads` using the wrong value. [#8471](https://github.com/microsoft/vscode-cpptools/issues/8471) +* Fix save failing after editing a header that is used by clang-tidy for a TU that is different from the default TU. [#8473](https://github.com/microsoft/vscode-cpptools/issues/8473) +* Fix inactive region rendering. [#8478](https://github.com/microsoft/vscode-cpptools/issues/8478) +* Fix CUDA support not working. [#8481](https://github.com/microsoft/vscode-cpptools/issues/8481) +* Fixes for other IntelliSense issues. +* Fix some translations. + ## Version 1.8.0-insiders: November 29, 2021 ### New Features diff --git a/Extension/bin/messages/cs/messages.json b/Extension/bin/messages/cs/messages.json index aa49a33c65..bc6680cca7 100644 --- a/Extension/bin/messages/cs/messages.json +++ b/Extension/bin/messages/cs/messages.json @@ -2604,7 +2604,7 @@ "Definice veřejného typu C++/CX není u globálního rozsahu povolená.", "Indexovaná vlastnost s veřejným přístupovým objektem get nebo set není povolená.", "Veřejný vnořený typ delegáta není povolený.", - "Neplatný inicializátor delegáta -- očekávaná syntaxe je ( [, Platform::CallbackContext]) nebo (, [, Platform::CallbackContext [, bool]]).", + "Neplatný inicializátor delegáta -- očekávaná syntaxe je ( [, Platform::CallbackContext]) nebo (<úchyt objektu>, [, Platform::CallbackContext [, bool]]).", "Neplatný inicializátor delegáta -- objekt musí být popisovačem na třídu %[managed].", "C++/CX nepodporuje pole in nebo out. U veřejných rozhraní API použijte pro in: const Platform::Array^ a pro out: Platform::WriteOnlyArray^ nebo Platform::Array^*.", "Chybí cílový atribut pro %nd.", diff --git a/Extension/bin/messages/fr/messages.json b/Extension/bin/messages/fr/messages.json index a374356792..8fe4799769 100644 --- a/Extension/bin/messages/fr/messages.json +++ b/Extension/bin/messages/fr/messages.json @@ -1896,7 +1896,7 @@ "l'attribut 'hiding' spécifié sur une déclaration référencée par la déclaration using %p", "l'attribut 'hiding' est requis sur une déclaration (dans une classe 'base_check') qui masque %nd", "%n n'est pas défini dans cette unité de traduction, mais dépend d'un type local", - "%n n'est pas défini dans cette unité de traduction, mais dépend d'u n type sans liaison", + "%n n'est pas défini dans cette unité de traduction, mais dépend d'un type sans liaison", "l'attribut %sq est manquant dans une autre unité de traduction", "l'attribut %sq est en conflit avec une autre unité de traduction", "l'option 'nonstd_gnu_keywords' est uniquement valide dans les modes C GNU et C++ GNU", @@ -1904,7 +1904,7 @@ "un initialiseur ne peut pas être spécifié pour un membre de tableau flexible à durée de stockage automatique", null, "un type de classe 'final' ne peut pas être utilisé comme une classe de base", - "les modèles exportés ne sont pus en langage C++ standard", + "les modèles exportés ne sont plus en langage C++ standard", "un désignateur dépendant du modèle n'est pas autorisé", "le second opérande de offsetof ne peut pas être un champ avec type référence", "les temporaires à durée de vie longue sont incompatibles avec les autres fonctionnalités de langage plus récentes demandées", diff --git a/Extension/bin/messages/pt-br/messages.json b/Extension/bin/messages/pt-br/messages.json index 3892dab0e9..3aebe335c1 100644 --- a/Extension/bin/messages/pt-br/messages.json +++ b/Extension/bin/messages/pt-br/messages.json @@ -3384,14 +3384,14 @@ "a especificação 'throw()' não faz parte de C++ 20 e posteriores", "mais de uma entrada no mapa de unidades de cabeçalho corresponde a '%s'", "diagnóstico #pragma deve ter argumento 'push' ou 'pop'", - "nenhum 'diagnóstico push #pragma' foi encontrado para corresponder a esae 'pop de diagnóstico'", + "nenhum 'diagnóstico push #pragma' foi encontrado para corresponder a esse 'pop de diagnóstico'", "o %sq não pode ser uma macro quando for usado em uma diretiva de importação ou módulo", "essa diretiva só pode aparecer no escopo de namespace global", "uma declaração 'exportar' só pode aparecer no escopo global ou de namespace", "%sq é analisado como um identificador em vez de uma palavra-chave porque os tokens que o seguem não correspondem aos de uma diretiva de pré-processador", "parece que esse é o início de uma diretiva de pré-processador, mas a falta de um '; ' seguido imediatamente por uma nova linha evita que", "parece ser uma diretiva de pré-processamento de módulos, mas essas diretivas não podem aparecer dentro de uma expansão de macro", - "uma diretriz 'módulo' não pode aparecer dentro do escopo de inclusão condicional (por exemplo, #se, #outro, #outrose, etc.)", + "uma diretriz 'módulo' não pode aparecer dentro do escopo de inclusão condicional (por exemplo, #if, #else, #elseif, etc.)", "a importação de %sq foi ignorada", "tipo promise %t deve declarar get_return_object_on_allocation_failure como uma função membro estática que não requer argumentos", "um modelo de alias não pode ser explicitamente especializado", diff --git a/Extension/bin/messages/zh-cn/messages.json b/Extension/bin/messages/zh-cn/messages.json index 5eb13ddec2..373151a94d 100644 --- a/Extension/bin/messages/zh-cn/messages.json +++ b/Extension/bin/messages/zh-cn/messages.json @@ -3392,5 +3392,15 @@ "这似乎只是预处理器指令的开始,但缺少后面紧跟换行符的 ';' 阻止了该指令", "这看起来是预处理指令的模块,但此类指令出现在宏扩展内。", "'模块' 指令不能出现在条件包含范围内(例如,#if、#else、#elseif 等)", - "已跳过 %sq 导入" + "已跳过 %sq 导入", + "承诺类型 %t 必须声明 get_return_object_on_allocation_failure 为不需要参数的静态成员函数", + "别名模板不能显式专用化", + "以匹配此“{”", + "在此宏调用中", + "调用需要不明确的参数转换", + "模块 %s 拥有的声明与 %nd 冲突", + "全局模块拥有的声明与命名模块拥有的 %nd 冲突", + "“malloc”属性的第一个参数必须是函数", + "无法捕获 %nod", + "无法捕获“this”" ] \ 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 e70db272e5..8c145c551e 100644 --- a/Extension/bin/messages/zh-tw/messages.json +++ b/Extension/bin/messages/zh-tw/messages.json @@ -3392,5 +3392,15 @@ "這似乎是前置處理器指示詞的開頭,但是缺少 ';',後面緊接著新行會防止", "這似乎是模組前置處理指示詞,但這類指示詞不能出現在巨集展開中", "'module' 指示詞不能出現在條件式包含的範圍 (例如,#if、#else、#elseif 等)", - "已略過 %sq 的輸入" + "已略過 %sq 的輸入", + "promise 類型 %t 必須將 get_return_object_on_allocation_failure 宣告為不需要引數的靜態成員函式", + "別名範本無法明確特殊化", + "以符合此 '{'", + "在此巨集引動中", + "呼叫需要不明確的引數轉換", + "模組 %s 所擁有的宣告與 %nd 衝突", + "由全域模組所擁有的宣告與已命名模組所擁有的 %nd 衝突", + "'malloc' 屬性的第一個引數必須是函式", + "無法擷取 %nod", + "無法擷取 'this'" ] \ No newline at end of file diff --git a/Extension/package.json b/Extension/package.json index 9672884275..6325529ba0 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -3864,72 +3864,72 @@ { "id": "referenceType", "superType": "class", - "description": "A C++/CLI reference type." + "description": "%c_cpp.semanticTokenTypes.referenceType.description%" }, { "id": "cliProperty", "superType": "property", - "description": "A C++/CLI property." + "description": "%c_cpp.semanticTokenTypes.cliProperty.description%" }, { "id": "genericType", "superType": "class", - "description": "A C++/CLI generic type." + "description": "%c_cpp.semanticTokenTypes.genericType.description%" }, { "id": "valueType", "superType": "class", - "description": "A C++/CLI value type." + "description": "%c_cpp.semanticTokenTypes.valueType.description%" }, { "id": "templateFunction", "superType": "function", - "description": "A template function." + "description": "%c_cpp.semanticTokenTypes.templateFunction.description%" }, { "id": "templateType", "superType": "class", - "description": "A template type." + "description": "%c_cpp.semanticTokenTypes.templateType.description%" }, { "id": "operatorOverload", "superType": "operator", - "description": "An overloaded operator." + "description": "%c_cpp.semanticTokenTypes.operatorOverload.description%" }, { "id": "memberOperatorOverload", "superType": "operator", - "description": "An overloaded operator member function." + "description": "%c_cpp.semanticTokenTypes.memberOperatorOverload.description%" }, { "id": "newOperator", "superType": "operator", - "description": "A C++ new or delete operator." + "description": "%c_cpp.semanticTokenTypes.newOperator.description%" }, { "id": "customLiteral", "superType": "number", - "description": "A user-defined literal." + "description": "%c_cpp.semanticTokenTypes.customLiteral.description%" }, { "id": "numberLiteral", "superType": "number", - "description": "A user-defined literal number." + "description": "%c_cpp.semanticTokenTypes.numberLiteral.description%" }, { "id": "stringLiteral", "superType": "string", - "description": "A user-defined literal string." + "description": "%c_cpp.semanticTokenTypes.stringLiteral.description%" } ], "semanticTokenModifiers": [ { "id": "global", - "description": "Annotates a symbol that is declared in global scope." + "description": "%c_cpp.semanticTokenModifiers.global.description%" }, { "id": "local", - "description": "Annotates a symbol that is declared in local scope." + "description": "%c_cpp.semanticTokenModifiers.local.description%" } ], "semanticTokenScopes": [ diff --git a/Extension/package.nls.json b/Extension/package.nls.json index 3d98ae095f..5da67f3141 100644 --- a/Extension/package.nls.json +++ b/Extension/package.nls.json @@ -29,10 +29,10 @@ "c_cpp.configuration.maxConcurrentThreads.markdownDescription": { "message": "The maximum number of concurrent threads to use for language service processing. The value is a hint and may not always be used. The default of `null` (empty) uses the number of logical processors available.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.maxCachedProcesses.markdownDescription": { "message": "The maximum number of cached processes to use for language service processing. The default of `null` (empty) uses twice the number of logical processors available.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.maxMemory.markdownDescription": { "message": "The maximum memory (in MB) available for language service processing. Fewer processes will be cached and run concurrently after this memory usage is exceeded. The default of `null` (empty) uses the system's free memory.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, - "c_cpp.configuration.intelliSense.maxCachedProcesses.markdownDescription": { "message": "The maximum number of IntelliSense processes to keep running. The default of `null` (empty) uses value inherited from `#C_Cpp.maxCachedProcesses#`", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, + "c_cpp.configuration.intelliSense.maxCachedProcesses.markdownDescription": { "message": "The maximum number of IntelliSense processes to keep running. The default of `null` (empty) uses value inherited from `#C_Cpp.maxCachedProcesses#`.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.intelliSense.maxMemory.markdownDescription": { "message": "Older IntelliSense processes will shut down before new processes are created after this memory usage (in MB) is exceeded. The default of `null` (empty) uses the value inherited from `#C_Cpp.maxMemory#`.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.references.maxConcurrentThreads.markdownDescription": { "message": "The maximum number of concurrent threads to use for 'Find All References' and 'Rename'. The default of `null` (empty) uses the value inherited from `#C_Cpp.maxConcurrentThreads#`.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, - "c_cpp.configuration.references.maxCachedProcesses.markdownDescription": { "message": "The maximum number of processes to keep in memory for 'Find All References' and 'Rename'. The value of `null` (empty) uses the value inherited from `#C_Cpp.maxCachedProcesses#`.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, + "c_cpp.configuration.references.maxCachedProcesses.markdownDescription": { "message": "The maximum number of processes to keep in memory for 'Find All References' and 'Rename'. The default of `0` disables this feature. The value of `null` (empty) uses the value inherited from `#C_Cpp.maxCachedProcesses#`.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.references.maxMemory.markdownDescription": { "message": "Fewer 'Find All References' and 'Rename' processes will be cached and run concurrently after this memory usage (in MB) is exceeded. The default of `null` (empty) uses the value inherited from `#C_Cpp.maxMemory#`.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.codeAnalysis.maxConcurrentThreads.markdownDescription": { "message": "The maximum number of concurrent threads to use for code analysis. The default of `null` (empty) uses half the value inherited from `#C_Cpp.maxConcurrentThreads#`.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.codeAnalysis.maxMemory.markdownDescription": { "message": "Fewer code analysis processes will run concurrently after this memory usage (in MB) is exceeded. The default of `null` (empty) uses the value inherited from `#C_Cpp.maxMemory#`.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, @@ -49,7 +49,7 @@ "c_cpp.configuration.codeAnalysis.clangTidy.args.markdownDescription": { "message": "Additional command line arguments to pass to `clang-tidy`. These take precedence over the equivalent `C_Cpp.codeAnalysis.clangTidy.*` settings.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.codeAnalysis.clangTidy.checks.enabled.markdownDescription": { "message": "List of enabled `clang-tidy` checks. The values are appended to the `Checks` in a `.clang-tidy` file or `#C_Cpp.codeAnalysis.clangTidy.config#`, if any. The default check `clang-analyzer-*` is always used unless it is explicitly disabled.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.codeAnalysis.clangTidy.checks.disabled.markdownDescription": { "message": "List of disabled `clang-tidy` checks. The values are appended to the `Checks` in a `.clang-tidy` file or `#C_Cpp.codeAnalysis.clangTidy.config#`, if any.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, - "c_cpp.configuration.formatting.description": "Configures the formatting engine", + "c_cpp.configuration.formatting.description": "Configures the formatting engine.", "c_cpp.configuration.formatting.clangFormat.markdownDescription": { "message": "`clang-format` will be used to format code.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.formatting.vcFormat.markdownDescription": { "message": "The Visual C++ formatting engine will be used to format code.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, "c_cpp.configuration.formatting.Default.markdownDescription": { "message": "By default, `clang-format` will be used to format the code. However, the Visual C++ formatting engine will be used if an `.editorconfig` file with relevant settings is found nearer to the code being formatted and `#C_Cpp.clang_format_style#` is the default value: `file`.", "comment": [ "Markdown text between `` should not be translated or localized (they represent literal text) and the capitalization, spacing, and punctuation (including the ``) should not be altered." ] }, @@ -300,5 +300,19 @@ "c_cpp.debuggers.VSSymbolOptionsModuleFilter.mode.loadOnlyIncluded.enumDescriptions": "Do not attempt to load symbols for ANY module unless it is in the 'includedModules' array, or it is included through the 'includeSymbolsNextToModules' setting.", "c_cpp.debuggers.VSSymbolOptionsModuleFilter.excludedModules.description": "Array of modules that the debugger should NOT load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadAllButExcluded'.", "c_cpp.debuggers.VSSymbolOptionsModuleFilter.includedModules.description": "Array of modules that the debugger should load symbols for. Wildcards (example: MyCompany.*.dll) are supported.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", - "c_cpp.debuggers.VSSymbolOptionsModuleFilter.includeSymbolsNextToModules.description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'." + "c_cpp.debuggers.VSSymbolOptionsModuleFilter.includeSymbolsNextToModules.description": "If true, for any module NOT in the 'includedModules' array, the debugger will still check next to the module itself and the launching executable, but it will not check paths on the symbol search list. This option defaults to 'true'.\n\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "c_cpp.semanticTokenTypes.referenceType.description": "Style for C++/CLI reference types.", + "c_cpp.semanticTokenTypes.cliProperty.description": "Style for C++/CLI properties.", + "c_cpp.semanticTokenTypes.genericType.description": "Style for C++/CLI generic types.", + "c_cpp.semanticTokenTypes.valueType.description": "Style for C++/CLI value types.", + "c_cpp.semanticTokenTypes.templateFunction.description": "Style for C++ template functions.", + "c_cpp.semanticTokenTypes.templateType.description": "Style for C++ template types.", + "c_cpp.semanticTokenTypes.operatorOverload.description": "Style for C++ overloaded operators.", + "c_cpp.semanticTokenTypes.memberOperatorOverload.description": "Style for C++ overloaded operator member functions.", + "c_cpp.semanticTokenTypes.newOperator.description": "Style for C++ new or delete operators.", + "c_cpp.semanticTokenTypes.customLiteral.description": "Style for C++ user-defined literals.", + "c_cpp.semanticTokenTypes.numberLiteral.description": "Style for C++ user-defined literal numbers.", + "c_cpp.semanticTokenTypes.stringLiteral.description": "Style for C++ user-defined literal strings.", + "c_cpp.semanticTokenModifiers.global.description": "Style to use for symbols that are global.", + "c_cpp.semanticTokenModifiers.local.description": "Style to use for symbols that are local." } diff --git a/Extension/src/LanguageServer/settingsTracker.ts b/Extension/src/LanguageServer/settingsTracker.ts index 46048ee85f..9c716fce61 100644 --- a/Extension/src/LanguageServer/settingsTracker.ts +++ b/Extension/src/LanguageServer/settingsTracker.ts @@ -181,6 +181,10 @@ export class SettingsTracker { || key === "codeAnalysis.clangTidy.path" || key === "codeAnalysis.clangTidy.headerFilter" || key === "codeAnalysis.clangTidy.args" || key === "codeAnalysis.clangTidy.config" || key === "codeAnalysis.clangTidy.fallbackConfig" + + // Note: An existing bug prevents these settings of type "object" from getting processed here, + // so these checks are here just in case that bug gets fixed later on. + || key === "files.exclude" || key === "codeAnalysis.exclude" ) { value = this.areEqual(val, settings.inspect(key)?.defaultValue) ? "" : "..."; // Track whether it's being used, but nothing specific about it. } else {