VSCode C / C ++远程开发-语法突出显示颜色不起作用

时间:2019-10-21 13:30:27

标签: c++ c visual-studio-code vscode-remote

我正在使用VSCode Remote-SSH在Linux机器上进行远程开发。我已经通过VSCode在远程计算机上安装了C / C ++扩展。大多数代码的语法高亮显示都正确,但是我注意到了一些问题。

C结构根本没有着色。 Structure in Use Remote

有趣的是,当我按住Ctrl键并单击以转到结构时,颜色就会起作用。 Structure Definition Remote

这真的让我很困扰。为什么当我在Windows机器上进行本地开发时,这些结构为什么没有像他们那样着色? Structure in Use 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
}

2 个答案:

答案 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

更新您的扩展程序,它现在应该可以正常工作