diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index 7d32c30499..46f04925cf 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,5 +1,18 @@ # C/C++ for Visual Studio Code Change Log +## Version 1.5.0-insiders3: July 1, 2021 +### Enhancement +* Add auto-detection of clang compilers on Windows (and different versions of cl.exe). [#6718](https://github.com/microsoft/vscode-cpptools/issues/6718) +* Stop adding .cu files to `files.associations` (switch to using setTextDocumentLanguage). [#7359](https://github.com/microsoft/vscode-cpptools/issues/7359) + +### Bug Fixes +* Add abort handling to recursive includes directory iteration. [#6461](https://github.com/microsoft/vscode-cpptools/issues/6461) +* Fix include completion with recursive includes in header files. [#6842](https://github.com/microsoft/vscode-cpptools/issues/6842) +* Add the get-task-allow entitlement to macOS binaries to enable call stacks to be obtained when SIP is enabled. [#7412](https://github.com/microsoft/vscode-cpptools/issues/7412) +* Fix `browse.path` being incorrect if an invalid `compileCommands` is set. [#7737](https://github.com/microsoft/vscode-cpptools/issues/7737) +* Fix incorrect error message when `C_Cpp.errorSquiggles` is `"Enabled"`. [#7744](https://github.com/microsoft/vscode-cpptools/issues/7744) +* Fix compiler querying sometimes not working with Cygwin. [#7751](https://github.com/microsoft/vscode-cpptools/issues/7751) + ## Version 1.5.0-insiders2: June 21, 2021 ### New Feature * Add "Inline macro" code action. [#4183](https://github.com/microsoft/vscode-cpptools/issues/4183) diff --git a/Extension/i18n/chs/src/LanguageServer/client.i18n.json b/Extension/i18n/chs/src/LanguageServer/client.i18n.json index 73e93a2e32..aefa334ed5 100644 --- a/Extension/i18n/chs/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/chs/src/LanguageServer/client.i18n.json @@ -37,4 +37,4 @@ "no.compilers.found": "系统上未找到任何 C++ 编译器。对于你的平台,建议使用编辑器中的说明安装 {0}。", "compilers.found": "我们在系统上发现了以下 C++ 编译器:", "compilers.found.message": "可在项目的 IntelliSense 配置中指定要使用的编译器。" -} +} \ No newline at end of file diff --git a/Extension/i18n/chs/src/nativeStrings.i18n.json b/Extension/i18n/chs/src/nativeStrings.i18n.json index 367fe9d2c9..a7ccc8fb5b 100644 --- a/Extension/i18n/chs/src/nativeStrings.i18n.json +++ b/Extension/i18n/chs/src/nativeStrings.i18n.json @@ -212,5 +212,6 @@ "nvcc_host_compiler_not_found": "找不到 nvcc 主机编译器: {0}", "invoking_nvcc": "正在使用命令行调用 nvcc: {0}", "nvcc_host_compile_command_not_found": "在 nvcc 的输出中找不到主机编译命令。", - "unable_to_locate_forced_include": "找不到 forced include: {0}" + "unable_to_locate_forced_include": "找不到 forced include: {0}", + "inline_macro": "内联宏" } \ No newline at end of file diff --git a/Extension/i18n/cht/src/LanguageServer/client.i18n.json b/Extension/i18n/cht/src/LanguageServer/client.i18n.json index 2e0518a313..c92a9882ba 100644 --- a/Extension/i18n/cht/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/cht/src/LanguageServer/client.i18n.json @@ -37,4 +37,4 @@ "no.compilers.found": "在您的系統 C++ 上找不到編譯器。針對您的平台,建議您使用編輯器中的指示來安裝 {0}。", "compilers.found": "我們在您的系統上找到下列 C++ 編譯器:", "compilers.found.message": "您可以在專案的 IntelliSense 設定中指定要使用的編譯器。" -} +} \ No newline at end of file diff --git a/Extension/i18n/cht/src/nativeStrings.i18n.json b/Extension/i18n/cht/src/nativeStrings.i18n.json index 046fc72d21..d25ca46bb1 100644 --- a/Extension/i18n/cht/src/nativeStrings.i18n.json +++ b/Extension/i18n/cht/src/nativeStrings.i18n.json @@ -212,5 +212,6 @@ "nvcc_host_compiler_not_found": "找不到 nvcc 主機編譯器: {0}", "invoking_nvcc": "正在使用命令列 {0} 叫用 nvcc", "nvcc_host_compile_command_not_found": "在 nvcc 的輸出中找不到主機編譯命令。", - "unable_to_locate_forced_include": "找不到強制的 include: {0}" + "unable_to_locate_forced_include": "找不到強制的 include: {0}", + "inline_macro": "內嵌巨集" } \ No newline at end of file diff --git a/Extension/i18n/csy/package.i18n.json b/Extension/i18n/csy/package.i18n.json index 9c4062ab60..4ed61a342e 100644 --- a/Extension/i18n/csy/package.i18n.json +++ b/Extension/i18n/csy/package.i18n.json @@ -176,7 +176,7 @@ "c_cpp.configuration.filesExcludeWhen.description": "Další kontrola položek na stejné úrovni u odpovídajícího souboru. Jako proměnnou názvu odpovídajícího souboru použijte $(basename).", "c_cpp.configuration.debugger.useBacktickCommandSubstitution.description": "Když se nastaví na true, nahrazování příkazů shellu ladicího programu bude používat starou verzi obrácené čárky (`).", "c_cpp.contributes.views.cppReferencesView.title": "C/C++: výsledky jiných odkazů", - "c_cpp.contributes.viewsWelcome.contents": "Další informace o launch.json najdete tady: [konfigurace C/C++ Ladění](https://code.visualstudio.com/docs/cpp/launch-json-reference).", + "c_cpp.contributes.viewsWelcome.contents": "Další informace o launch.json najdete tady: [konfigurace C/C++ ladění](https://code.visualstudio.com/docs/cpp/launch-json-reference).", "c_cpp.debuggers.pipeTransport.description": "Pokud je k dispozici, předá ladicímu programu informaci, aby se připojil ke vzdálenému počítači pomocí dalšího spustitelného souboru jako kanál, který bude přenášet standardní vstup a výstup mezi nástrojem VS Code a spustitelným souborem back-endu ladicího programu s podporou MI (třeba gdb).", "c_cpp.debuggers.pipeTransport.default.pipeProgram": "zadejte plně kvalifikovanou cestu názvu programu kanálu, třeba /usr/bin/ssh", "c_cpp.debuggers.pipeTransport.default.debuggerPath": "Úplná cesta k ladicímu programu na cílovém počítači, například /usr/bin/gdb", diff --git a/Extension/i18n/csy/src/LanguageServer/client.i18n.json b/Extension/i18n/csy/src/LanguageServer/client.i18n.json index 12fbd204e1..e185182785 100644 --- a/Extension/i18n/csy/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/csy/src/LanguageServer/client.i18n.json @@ -37,4 +37,4 @@ "no.compilers.found": "V systému se nenašly žádné kompilátory jazyka C++. Pro vaši platformu doporučujeme podle instrukcí v editoru nainstalovat {0}.", "compilers.found": "V systému jsme našli následující kompilátory jazyka C++:", "compilers.found.message": "V konfiguraci IntelliSense vašeho projektu můžete zadat, který kompilátor se má použít." -} +} \ No newline at end of file diff --git a/Extension/i18n/csy/src/nativeStrings.i18n.json b/Extension/i18n/csy/src/nativeStrings.i18n.json index 8ebf40332a..af97e515c7 100644 --- a/Extension/i18n/csy/src/nativeStrings.i18n.json +++ b/Extension/i18n/csy/src/nativeStrings.i18n.json @@ -212,5 +212,6 @@ "nvcc_host_compiler_not_found": "Nepovedlo se najít kompilátor hostitele nvcc: {0}", "invoking_nvcc": "Volá se nvcc pomocí příkazového řádku: {0}", "nvcc_host_compile_command_not_found": "Ve výstupu nástroje nvcc se nepovedlo najít příkaz pro kompilaci hostitele.", - "unable_to_locate_forced_include": "Nepovedlo se najít vynuceně zahrnované soubory: {0}" + "unable_to_locate_forced_include": "Nepovedlo se najít vynuceně zahrnované soubory: {0}", + "inline_macro": "Vložené makro" } \ No newline at end of file diff --git a/Extension/i18n/deu/src/LanguageServer/client.i18n.json b/Extension/i18n/deu/src/LanguageServer/client.i18n.json index 16ad669638..9493fb14ff 100644 --- a/Extension/i18n/deu/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/deu/src/LanguageServer/client.i18n.json @@ -37,4 +37,4 @@ "no.compilers.found": "Es wurden keine C++ Compiler auf dem System gefunden. Für Ihre Plattform empfehlen wir Ihnen die Installation von {0} mithilfe der Anweisungen im Editor.", "compilers.found": "Wir haben die folgenden C++ Compiler auf dem System gefunden:", "compilers.found.message": "Sie können angeben, welcher Compiler in der IntelliSense-Konfiguration Ihres Projekts verwendet werden soll." -} +} \ No newline at end of file diff --git a/Extension/i18n/deu/src/nativeStrings.i18n.json b/Extension/i18n/deu/src/nativeStrings.i18n.json index 0e95c8c460..64e2716e10 100644 --- a/Extension/i18n/deu/src/nativeStrings.i18n.json +++ b/Extension/i18n/deu/src/nativeStrings.i18n.json @@ -212,5 +212,6 @@ "nvcc_host_compiler_not_found": "Der nvcc-Hostcompiler wurde nicht gefunden: {0}", "invoking_nvcc": "nvcc wird über Befehlszeile aufgerufen: {0}", "nvcc_host_compile_command_not_found": "Der Hostkompilierbefehl wurde in der Ausgabe von nvcc nicht gefunden.", - "unable_to_locate_forced_include": "Erzwungene Includedatei wurde nicht gefunden: {0}" + "unable_to_locate_forced_include": "Erzwungene Includedatei wurde nicht gefunden: {0}", + "inline_macro": "Inlinemakro" } \ No newline at end of file diff --git a/Extension/i18n/esn/src/LanguageServer/client.i18n.json b/Extension/i18n/esn/src/LanguageServer/client.i18n.json index 36d9e955d5..b686d0451b 100644 --- a/Extension/i18n/esn/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/esn/src/LanguageServer/client.i18n.json @@ -37,4 +37,4 @@ "no.compilers.found": "No se encontró ningún compilador de C++ en el sistema. Para la plataforma, se recomienda instalar {0} mediante las instrucciones del editor.", "compilers.found": "Se encontraron los siguientes compiladores de C++ en el sistema:", "compilers.found.message": "Puede especificar el compilador que se va a usar en la configuración de IntelliSense del proyecto." -} +} \ No newline at end of file diff --git a/Extension/i18n/esn/src/nativeStrings.i18n.json b/Extension/i18n/esn/src/nativeStrings.i18n.json index 9fb9b2461c..e6ddf3b393 100644 --- a/Extension/i18n/esn/src/nativeStrings.i18n.json +++ b/Extension/i18n/esn/src/nativeStrings.i18n.json @@ -212,5 +212,6 @@ "nvcc_host_compiler_not_found": "No se encuentra el compilador host nvcc: {0}", "invoking_nvcc": "Invocando nvcc con la línea de comandos: {0}", "nvcc_host_compile_command_not_found": "No se encuentra el comando de compilación del host en la salida de nvcc.", - "unable_to_locate_forced_include": "No se encuentra la inclusión forzada: {0}" + "unable_to_locate_forced_include": "No se encuentra la inclusión forzada: {0}", + "inline_macro": "Macro insertada" } \ No newline at end of file diff --git a/Extension/i18n/fra/package.i18n.json b/Extension/i18n/fra/package.i18n.json index 67d5168115..c91d14c381 100644 --- a/Extension/i18n/fra/package.i18n.json +++ b/Extension/i18n/fra/package.i18n.json @@ -193,8 +193,8 @@ "c_cpp.debuggers.logging.engineLogging.description": "Indicateur facultatif pour déterminer si les messages du moteur de débogage de diagnostic doivent être journalisés dans la console de débogage. La valeur par défaut est false.", "c_cpp.debuggers.logging.trace.description": "Indicateur facultatif pour déterminer si le suivi de commande de l'adaptateur de diagnostic doit être journalisé dans la console de débogage. La valeur par défaut est false.", "c_cpp.debuggers.logging.traceResponse.description": "Indicateur facultatif pour déterminer si le suivi de commande et de réponse de l'adaptateur de diagnostic doit être journalisé dans la console de débogage. La valeur par défaut est false.", - "c_cpp.debuggers.cppvsdbg.logging.threadExit.description": "Indicateur facultatif pour déterminer si les messages indiquant la sortie du thread doivent être journalisés dans la console de débogage. Valeur par défaut: 'false'.", - "c_cpp.debuggers.cppvsdbg.logging.processExit.description": "Indicateur facultatif pour déterminer si les messages indiquant la sortie du processus cible doivent être journalisés dans la console de débogage. Valeur par défaut: 'true'.", + "c_cpp.debuggers.cppvsdbg.logging.threadExit.description": "Indicateur facultatif pour déterminer si les messages indiquant la sortie du thread doivent être journalisés dans la console de débogage. Valeur par défaut : 'false'.", + "c_cpp.debuggers.cppvsdbg.logging.processExit.description": "Indicateur facultatif pour déterminer si les messages indiquant la sortie du processus cible doivent être journalisés dans la console de débogage. Valeur par défaut : 'true'.", "c_cpp.debuggers.text.description": "Commande de débogueur à exécuter.", "c_cpp.debuggers.description.description": "Description facultative de la commande.", "c_cpp.debuggers.ignoreFailures.description": "Si la valeur est true, les échecs de la commande doivent être ignorés. La valeur par défaut est false.", @@ -218,7 +218,7 @@ "c_cpp.debuggers.miDebuggerArgs.description": "Arguments supplémentaires pour le débogueur MI (par exemple gdb).", "c_cpp.debuggers.miDebuggerServerAddress.description": "Adresse réseau du serveur du débogueur MI auquel se connecter (par exemple : localhost:1234).", "c_cpp.debuggers.stopAtEntry.description": "Paramètre facultatif. Si la valeur est true, le débogueur doit s'arrêter au point d'entrée de la cible. Si processId est passé, le paramètre n'a aucun effet.", - "c_cpp.debuggers.debugServerPath.description": "Chemin complet facultatif au serveur de débogage à lancer (valeur par défaut: null). Utilisé conjointement avec \"miDebugServerAddress\" ou votre propre serveur avec \"customSetupCommand\" qui exécute \"-target-select remote \".", + "c_cpp.debuggers.debugServerPath.description": "Chemin complet facultatif au serveur de débogage à lancer (valeur par défaut : null). Utilisé conjointement avec \"miDebugServerAddress\" ou votre propre serveur avec \"customSetupCommand\" qui exécute \"-target-select remote \".", "c_cpp.debuggers.debugServerArgs.description": "Arguments facultatifs du serveur de débogage. La valeur par défaut est null.", "c_cpp.debuggers.serverStarted.description": "Modèle facultatif de démarrage du serveur à rechercher dans la sortie du serveur de débogage. La valeur par défaut est null.", "c_cpp.debuggers.filterStdout.description": "Permet de rechercher dans le flux stdout le modèle correspondant au démarrage du serveur, et de journaliser stdout dans la sortie de débogage. La valeur par défaut est true.", diff --git a/Extension/i18n/fra/src/LanguageServer/client.i18n.json b/Extension/i18n/fra/src/LanguageServer/client.i18n.json index 5802954828..ebfbecff35 100644 --- a/Extension/i18n/fra/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/fra/src/LanguageServer/client.i18n.json @@ -37,4 +37,4 @@ "no.compilers.found": "Aucun C++ compilateur n’a été trouvé sur votre système. Pour votre plateforme, nous vous recommandons d’installer {0} à l’aide des instructions de l’éditeur.", "compilers.found": "Nous avons trouvé les C++ compilateur(s) suivant(s) sur votre système :", "compilers.found.message": "Vous pouvez spécifier le compilateur à utiliser dans la configuration IntelliSense de votre projet." -} +} \ No newline at end of file diff --git a/Extension/i18n/fra/src/nativeStrings.i18n.json b/Extension/i18n/fra/src/nativeStrings.i18n.json index bd343b15b2..a452e81cf4 100644 --- a/Extension/i18n/fra/src/nativeStrings.i18n.json +++ b/Extension/i18n/fra/src/nativeStrings.i18n.json @@ -212,5 +212,6 @@ "nvcc_host_compiler_not_found": "Impossible de localiser le compilateur hôte pour nvcc : {0}", "invoking_nvcc": "Appel de nvcc avec la ligne de commande : {0}", "nvcc_host_compile_command_not_found": "La commande de compilation hôte est introuvable dans la sortie de nvcc.", - "unable_to_locate_forced_include": "Impossible de localiser le fichier include forcé : {0}" + "unable_to_locate_forced_include": "Impossible de localiser le fichier include forcé : {0}", + "inline_macro": "Macro inlined" } \ No newline at end of file diff --git a/Extension/i18n/ita/src/LanguageServer/client.i18n.json b/Extension/i18n/ita/src/LanguageServer/client.i18n.json index 6191aa2c58..6716c830df 100644 --- a/Extension/i18n/ita/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/ita/src/LanguageServer/client.i18n.json @@ -37,4 +37,4 @@ "no.compilers.found": "Nel sistema non sono stati trovati compilatori C++. Per la piattaforma, è consigliabile installare {0} usando le istruzioni nell'editor.", "compilers.found": "Nel sistema sono stati trovati i seguenti compilatori C++:", "compilers.found.message": "È possibile specificare il compilatore da utilizzare nella configurazione IntelliSense del progetto." -} +} \ No newline at end of file diff --git a/Extension/i18n/ita/src/nativeStrings.i18n.json b/Extension/i18n/ita/src/nativeStrings.i18n.json index 261959af72..9a675a3e99 100644 --- a/Extension/i18n/ita/src/nativeStrings.i18n.json +++ b/Extension/i18n/ita/src/nativeStrings.i18n.json @@ -212,5 +212,6 @@ "nvcc_host_compiler_not_found": "Non è possibile individuare il compilatore host nvcc: {0}", "invoking_nvcc": "Chiamata di nvcc con la riga di comando: {0}", "nvcc_host_compile_command_not_found": "Non è possibile trovare il comando di compilazione host nell'output di nvcc.", - "unable_to_locate_forced_include": "Non è possibile individuare la direttiva include forzata: {0}" + "unable_to_locate_forced_include": "Non è possibile individuare la direttiva include forzata: {0}", + "inline_macro": "Macro inline" } \ No newline at end of file diff --git a/Extension/i18n/jpn/src/LanguageServer/client.i18n.json b/Extension/i18n/jpn/src/LanguageServer/client.i18n.json index cab93a120b..f16ce6d942 100644 --- a/Extension/i18n/jpn/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/jpn/src/LanguageServer/client.i18n.json @@ -37,4 +37,4 @@ "no.compilers.found": "お使いのシステムで C++ コンパイラが見つかりませんでした。プラットフォーム向けに、エディターの指示に従って {0} をインストールすることをお勧めします。", "compilers.found": "システムに次の C++ コンパイラが見つかりました:", "compilers.found.message": "プロジェクトの IntelliSense 構成で使用するコンパイラを指定できます。" -} +} \ No newline at end of file diff --git a/Extension/i18n/jpn/src/nativeStrings.i18n.json b/Extension/i18n/jpn/src/nativeStrings.i18n.json index fb9d645a9a..cdecca7c0a 100644 --- a/Extension/i18n/jpn/src/nativeStrings.i18n.json +++ b/Extension/i18n/jpn/src/nativeStrings.i18n.json @@ -212,5 +212,6 @@ "nvcc_host_compiler_not_found": "nvcc ホスト コンパイラが見つかりません: {0}", "invoking_nvcc": "コマンド ラインで nvcc を呼び出しています: {0}", "nvcc_host_compile_command_not_found": "nvcc の出力でホスト コンパイル コマンドが見つかりません。", - "unable_to_locate_forced_include": "強制インクルードが見つかりません: {0}" + "unable_to_locate_forced_include": "強制インクルードが見つかりません: {0}", + "inline_macro": "インライン マクロ" } \ No newline at end of file diff --git a/Extension/i18n/kor/src/LanguageServer/client.i18n.json b/Extension/i18n/kor/src/LanguageServer/client.i18n.json index 1887af64f8..92c9363c5a 100644 --- a/Extension/i18n/kor/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/kor/src/LanguageServer/client.i18n.json @@ -37,4 +37,4 @@ "no.compilers.found": "C++시스템에서 컴파일러를 찾을 수 없습니다. 플랫폼의 경우 편집기의 지침을 사용하여 {0}을(를) 설치하는 것이 좋습니다.", "compilers.found": "시스템에서 다음 C++ 컴파일러를 찾았습니다.", "compilers.found.message": "프로젝트의 IntelliSense 구성에서 사용할 컴파일러를 지정할 수 있습니다." -} +} \ No newline at end of file diff --git a/Extension/i18n/kor/src/nativeStrings.i18n.json b/Extension/i18n/kor/src/nativeStrings.i18n.json index 5541853c2e..8712fecea4 100644 --- a/Extension/i18n/kor/src/nativeStrings.i18n.json +++ b/Extension/i18n/kor/src/nativeStrings.i18n.json @@ -212,5 +212,6 @@ "nvcc_host_compiler_not_found": "nvcc 호스트 컴파일러를 찾을 수 없음: {0}", "invoking_nvcc": "명령줄 {0}을(를) 사용하여 nvcc를 호출하는 중", "nvcc_host_compile_command_not_found": "nvcc의 출력에서 호스트 컴파일 명령을 찾을 수 없습니다.", - "unable_to_locate_forced_include": "강제 포함을 찾을 수 없음: {0}" + "unable_to_locate_forced_include": "강제 포함을 찾을 수 없음: {0}", + "inline_macro": "인라인 매크로" } \ No newline at end of file diff --git a/Extension/i18n/plk/src/LanguageServer/client.i18n.json b/Extension/i18n/plk/src/LanguageServer/client.i18n.json index 56b840e59f..7571ed9087 100644 --- a/Extension/i18n/plk/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/plk/src/LanguageServer/client.i18n.json @@ -37,4 +37,4 @@ "no.compilers.found": "W systemie nie odnaleziono żadnych kompilatorów języka C++. W przypadku Twojej platformy zalecamy zainstalowanie {0} przy użyciu instrukcji w edytorze.", "compilers.found": "Znaleźliśmy następujące kompilatory C++ w systemie:", "compilers.found.message": "Możesz określić, który kompilator ma być używany w konfiguracji IntelliSense projektu." -} +} \ No newline at end of file diff --git a/Extension/i18n/plk/src/nativeStrings.i18n.json b/Extension/i18n/plk/src/nativeStrings.i18n.json index 7e4f558ede..eedfccfb36 100644 --- a/Extension/i18n/plk/src/nativeStrings.i18n.json +++ b/Extension/i18n/plk/src/nativeStrings.i18n.json @@ -212,5 +212,6 @@ "nvcc_host_compiler_not_found": "Nie można zlokalizować kompilatora hosta nvcc: {0}", "invoking_nvcc": "Wywoływanie narzędzia nvcc za pomocą wiersza polecenia: {0}", "nvcc_host_compile_command_not_found": "Nie można znaleźć polecenia kompilacji hosta w danych wyjściowych narzędzia nvcc.", - "unable_to_locate_forced_include": "Nie można zlokalizować wymuszonego dołączenia: {0}" + "unable_to_locate_forced_include": "Nie można zlokalizować wymuszonego dołączenia: {0}", + "inline_macro": "Makro śródwierszowe" } \ No newline at end of file diff --git a/Extension/i18n/ptb/src/LanguageServer/client.i18n.json b/Extension/i18n/ptb/src/LanguageServer/client.i18n.json index e1b79f7b28..f15c10c427 100644 --- a/Extension/i18n/ptb/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/ptb/src/LanguageServer/client.i18n.json @@ -37,4 +37,4 @@ "no.compilers.found": "Não foram encontrados compiladores C++ em seu sistema. Para sua plataforma, recomendamos instalar {0} usando as instruções do editor.", "compilers.found": "Encontramos o(s) seguinte(s) compilador(es) C++ em seu sistema:", "compilers.found.message": "Você pode especificar qual compilador usar na Configuração IntelliSense de seu projeto." -} +} \ No newline at end of file diff --git a/Extension/i18n/ptb/src/nativeStrings.i18n.json b/Extension/i18n/ptb/src/nativeStrings.i18n.json index 3590ded6dd..ee4703870f 100644 --- a/Extension/i18n/ptb/src/nativeStrings.i18n.json +++ b/Extension/i18n/ptb/src/nativeStrings.i18n.json @@ -212,5 +212,6 @@ "nvcc_host_compiler_not_found": "Não é possível localizar o compilador de host NVCC: {0}", "invoking_nvcc": "Invocando NVCC com a linha de comando: {0}", "nvcc_host_compile_command_not_found": "Não é possível localizar o comando de compilação de host na saída de NVCC.", - "unable_to_locate_forced_include": "Não é possível localizar a inclusão forçada: {0}" + "unable_to_locate_forced_include": "Não é possível localizar a inclusão forçada: {0}", + "inline_macro": "Macro embutida" } \ No newline at end of file diff --git a/Extension/i18n/rus/src/LanguageServer/client.i18n.json b/Extension/i18n/rus/src/LanguageServer/client.i18n.json index 816862a577..c7f901fe37 100644 --- a/Extension/i18n/rus/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/rus/src/LanguageServer/client.i18n.json @@ -37,4 +37,4 @@ "no.compilers.found": "В системе не найдены компиляторы C++. Для вашей платформы рекомендуется установить {0}. Необходимые инструкции см. в редакторе.", "compilers.found": "В системе обнаружены следующие компиляторы C++:", "compilers.found.message": "Вы можете указать, какой компилятор использовать в конфигурации IntelliSense проекта." -} +} \ No newline at end of file diff --git a/Extension/i18n/rus/src/nativeStrings.i18n.json b/Extension/i18n/rus/src/nativeStrings.i18n.json index ebe23a6848..edbd02b3c9 100644 --- a/Extension/i18n/rus/src/nativeStrings.i18n.json +++ b/Extension/i18n/rus/src/nativeStrings.i18n.json @@ -212,5 +212,6 @@ "nvcc_host_compiler_not_found": "Не удалось найти компилятор узла nvcc: {0}", "invoking_nvcc": "Идет вызов nvcc с помощью командной строки: {0}", "nvcc_host_compile_command_not_found": "Не удалось найти команду компиляции узла в выходных данных nvcc.", - "unable_to_locate_forced_include": "Не удалось найти принудительное включение: {0}" + "unable_to_locate_forced_include": "Не удалось найти принудительное включение: {0}", + "inline_macro": "Встроенный макрос" } \ No newline at end of file diff --git a/Extension/i18n/trk/src/LanguageServer/client.i18n.json b/Extension/i18n/trk/src/LanguageServer/client.i18n.json index d14dcfc555..dcab6eea8e 100644 --- a/Extension/i18n/trk/src/LanguageServer/client.i18n.json +++ b/Extension/i18n/trk/src/LanguageServer/client.i18n.json @@ -37,4 +37,4 @@ "no.compilers.found": "Sisteminizde C++ derleyicisi bulunamadı. Platformunuz için, düzenleyicideki yönergeleri takip ederek {0} derleyicisini yüklemenizi öneririz.", "compilers.found": "Sisteminizde şu C++ derleyicileri bulundu:", "compilers.found.message": "Projenizin IntelliSense Yapılandırmasında kullanılacak derleyiciyi belirtebilirsiniz." -} +} \ No newline at end of file diff --git a/Extension/i18n/trk/src/nativeStrings.i18n.json b/Extension/i18n/trk/src/nativeStrings.i18n.json index ceb59046ca..8cec333cab 100644 --- a/Extension/i18n/trk/src/nativeStrings.i18n.json +++ b/Extension/i18n/trk/src/nativeStrings.i18n.json @@ -212,5 +212,6 @@ "nvcc_host_compiler_not_found": "Nvcc konak derleyicisi bulunamıyor: {0}", "invoking_nvcc": "Komut satırı ile nvcc çağrılıyor: {0}", "nvcc_host_compile_command_not_found": "Nvcc çıkışındaki konak derleme komutu bulunamıyor.", - "unable_to_locate_forced_include": "Zorlamalı ekleme bulunamıyor: {0}" + "unable_to_locate_forced_include": "Zorlamalı ekleme bulunamıyor: {0}", + "inline_macro": "Satır içi makro" } \ No newline at end of file diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 613d5972a2..e554770adf 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -449,6 +449,12 @@ interface GoToDirectiveInGroupParams { next: boolean; }; +interface SetTemporaryTextDocumentLanguageParams { + path: string; + isC: boolean; + isCuda: boolean; +} + // Requests const QueryCompilerDefaultsRequest: RequestType = new RequestType('cpptools/queryCompilerDefaults'); const QueryTranslationUnitSourceRequest: RequestType = new RequestType('cpptools/queryTranslationUnitSource'); @@ -509,6 +515,7 @@ const ShowWarningNotification: NotificationType = new N const ReportTextDocumentLanguage: NotificationType = new NotificationType('cpptools/reportTextDocumentLanguage'); const SemanticTokensChanged: NotificationType = new NotificationType('cpptools/semanticTokensChanged'); const IntelliSenseSetupNotification: NotificationType = new NotificationType('cpptools/IntelliSenseSetup'); +const SetTemporaryTextDocumentLanguageNotification: NotificationType = new NotificationType('cpptools/setTemporaryTextDocumentLanguage'); let failureMessageShown: boolean = false; @@ -1971,6 +1978,7 @@ export class DefaultClient implements Client { this.languageClient.onNotification(ReportTextDocumentLanguage, (e) => this.setTextDocumentLanguage(e)); this.languageClient.onNotification(SemanticTokensChanged, (e) => this.semanticTokensProvider?.invalidateFile(e)); this.languageClient.onNotification(IntelliSenseSetupNotification, (e) => this.logIntellisenseSetupTime(e)); + this.languageClient.onNotification(SetTemporaryTextDocumentLanguageNotification, (e) => this.setTemporaryTextDocumentLanguage(e)); setupOutputHandlers(); } @@ -1984,6 +1992,14 @@ export class DefaultClient implements Client { } } + private async setTemporaryTextDocumentLanguage(params: SetTemporaryTextDocumentLanguageParams): Promise { + const languageId: string = params.isC ? "c" : (params.isCuda ? "cuda-cpp" : "cpp"); + const document: vscode.TextDocument = await vscode.workspace.openTextDocument(params.path); + if (!!document && document.languageId !== languageId) { + vscode.languages.setTextDocumentLanguage(document, languageId); + } + } + private associations_for_did_change?: Set; /** diff --git a/Extension/src/LanguageServer/configurations.ts b/Extension/src/LanguageServer/configurations.ts index 82717c4d4e..292f8ad8bd 100644 --- a/Extension/src/LanguageServer/configurations.ts +++ b/Extension/src/LanguageServer/configurations.ts @@ -1656,8 +1656,10 @@ export class CppProperties { let compilerPathNeedsQuotes: boolean = false; let compilerMessage: string | undefined; const compilerPathAndArgs: util.CompilerPathAndArgs = util.extractCompilerPathAndArgs(compilerPath); - // Don't squiggle invalid cl.exe paths because it could be for an older preview build. - if (compilerPathAndArgs.compilerName.toLowerCase() !== "cl.exe" && compilerPathAndArgs.compilerPath !== undefined) { + const compilerLowerCase: string = compilerPathAndArgs.compilerName.toLowerCase(); + const isClCompiler: boolean = compilerLowerCase === "cl" || compilerLowerCase === "cl.exe"; + // Don't squiggle for invalid cl and cl.exe paths. + if (compilerPathAndArgs.compilerPath && !isClCompiler) { // Squiggle when the compiler's path has spaces without quotes but args are used. compilerPathNeedsQuotes = (compilerPathAndArgs.additionalArgs && compilerPathAndArgs.additionalArgs.length > 0) && !compilerPath.startsWith('"') @@ -1676,7 +1678,7 @@ export class CppProperties { } const isWSL: boolean = isWindows && compilerPath.startsWith("/"); let compilerPathExists: boolean = true; - if (this.rootUri) { + if (this.rootUri && !isClCompiler) { const checkPathExists: any = util.checkPathExistsSync(compilerPath, this.rootUri.fsPath + path.sep, isWindows, isWSL, true); compilerPathExists = checkPathExists.pathExists; compilerPath = checkPathExists.path;