我可以修改problemMatcher的fileLocation吗?

时间:2018-01-22 05:24:44

标签: visual-studio-code vscode-settings

我通过SSH使用Make来调用gcc。 我在本地计算机上镜像了源文件以进行编辑。 编辑后,它与SFTP同步。

问题是当ProblemMatcher设置为$gcc时, 它返回远程服务器的完整路径,因此无法与本地文件匹配。

本地档案: 〜/ foo / bar.c(= /home/user/foo/bar.c)

远程文件: 〜/ foo / bar.c(= /datavolume/foo/bar.c)

problemMatcher试图找到bar.c at /home/user/datavolume/foo/bar.c导致file not found

fileLocation有两个选项relativeabsolute,但都没有解决此问题。

使用relative,我只能将..用于本地位置。我无法修剪远程位置。

使用absolute,我不知道如何使用它,但它仍然无法在WSL(Windows上的Bash)目录下找到本地位置。

absolute也失败了。

"fileLocation":
[
  "absolute",
"C:\\Users\\user\\AppData\\Local\\Packages\\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\\LocalState\\rootfs\\home\\user\\foo"
]

你有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以使用regexp减去/datavolume/并像这样使用relative

"problemMatcher": {
    "owner": "cpp",
    "fileLocation": [
        "relative",
        "${workspaceFolder}"
    ],
    "pattern": {
        "regexp": "^\\/datavolume\\/(\\S+):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
        "file": 1,
        "line": 2,
        "column": 3,
        "severity": 4,
        "message": 5
    }
}