我正在使用VSCode Remote-SSH在Linux机器上进行远程开发。我已经通过VSCode在远程计算机上安装了C / C ++扩展。大多数代码的语法高亮显示都正确,但是我注意到了一些问题。
C结构根本没有着色。有趣的是,当我按住Ctrl键并单击以转到结构时,颜色就会起作用。
这真的让我很困扰。为什么当我在Windows机器上进行本地开发时,这些结构为什么没有像他们那样着色?
这是我的c_cpp_properties.json
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}",
"${workspaceFolder}/../../dwcore/dwcore",
"${workspaceFolder}/../../dwcore/ilsutil",
"${workspaceFolder}/../../dwcore/ilslog"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64",
"compilerArgs": [],
"browse": {
"path": [
"${workspaceFolder}/**",
"${workspaceFolder}"
],
"limitSymbolsToIncludedHeaders": true
}
}
],
"version": 4
}
答案 0 :(得分:0)
不幸的是,根据有关以下问题的讨论,目前似乎无法通过远程开发来支持增强的色彩:https://github.com/microsoft/vscode-cpptools/issues/4569
增强的着色当前无法通过远程处理起作用,因为我们无权访问当前主题的文件来查找颜色。
这意味着基于语法的常规语法突出显示将起作用,如typedef struct mystruct
中那样,所有标记的功能只能基于周围的上下文来确定,而高级突出显示则需要提供更多知识通过智能感知将不会。
请注意,智能感知与远程开发和ctrl + click的整体配合将为您显示相应的定义,该定义根据语法正确着色。
答案 1 :(得分:0)
此问题从cpptools 0.29.0版开始已得到修复
您可以在以下更改日志中看到它: https://github.com/microsoft/vscode-cpptools/releases/tag/0.29.0
上面写着:
切换到使用VS Code语义令牌API进行语义着色(与远程处理配合使用)。 PR#5401,#3932,#3933,#3942
更新您的扩展程序,它现在应该可以正常工作