【问题标题】:Can I modify fileLocation for problemMatcher?我可以修改问题匹配器的文件位置吗?
【发布时间】:2018-01-22 05:24:43
【问题描述】:

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

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

本地文件: ~/foo/bar.c (= /home/user/foo/bar.c)

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

problemMatcher 尝试在以下位置查找 bar.c /home/user/datavolume/foo/bar.c 导致找不到文件

fileLocation 有两个选项relative、absolute,但都不能解决这个问题。

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

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

absolute 也失败了。

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

你有什么想法吗?

提前致谢。

【问题讨论】:

  • 我也有同样的问题并提交了问题here

标签: visual-studio-code vscode-settings vscode-problem-matcher


【解决方案1】:

您可以使用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
    }
}

【讨论】:

    猜你喜欢
    • 2019-10-27
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    相关资源
    最近更新 更多