【问题标题】:VSCode problemmatcher: Unknown subfolder for file locationVSCode问题匹配器:文件位置的未知子文件夹
【发布时间】:2020-03-02 08:12:44
【问题描述】:

我有一个这样定义的问题匹配器:

"fileLocation": ["relative", "${workspaceFolder}"],

而且我只知道文件的名称,而不是编译输出的相对路径。 比它仅在文件位于工作区的根目录时打开文件。

例如 问题匹配器搜索:Package.sql 但是文件在

    • 其他子文件夹
    • PKG
      • Package.sql

是否有让问题匹配器“找到”该文件的设置,即使它位于(未知)子文件夹中? (假设所有文件名都是不同的)

【问题讨论】:

    标签: visual-studio-code file-location vscode-problem-matcher


    【解决方案1】:

    您可以将“命令”字符串用于具有相对或绝对路径的打印文件,如下所示: echo FILEBEGIN${relativeFile}FILEEND 或者 echo FILEBEGIN${file}FILEEND

    而且通过正则表达式很容易获取文件。

    如果你使用 oracle 和 powershell,你可以试试我的任务:

    {
       "label": "compile",
       "type": "shell",
       "command": "echo 'set define off' 'set serveroutput on' '@${file}' 'exit' | sqlplus ${config:plsql-language.connection.activeInfos} | Select-String -Pattern '(\\d+/\\d+.*|.*created.*)' | % {'${relativeFile}:' + $($_.matches.value)}",
       "group": {
          "kind": "build",
          "isDefault": true
       },
       "problemMatcher": {
          "owner": "PLSQL",
          "severity": "error",
          "fileLocation":  ["relative", "${workspaceFolder}"],
          "pattern":
             {
                "regexp": "^(.*):(\\d+)\\/(\\d+)\\s+((PLS|ORA)-\\d+):(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "code": 4,
                "message": 6
             }
       }
    }
    

    【讨论】:

    • 谢谢。但这项任务对我来说并不完全有效。它将文件编译到数据库,但我没有得到错误。它在终端中显示:abc.pkg :Warning: Package created with compiler errors.
    • 我稍微改变了正则表达式。你在包文件的末尾有“显示错误”吗?如果不存在,请添加它。
    【解决方案2】:

    问题匹配器应返回绝对路径或相对于工作空间内固定文件夹的路径。如果您只有一个文件名,没有绝对/相对路径,在我的理解中,代码将无法找到该文件,因为只有名称是不够的信息。 还有自动检测选项。你可以尝试这样的事情: "fileLocation": ["autodetect", "${workspaceFolder}/subfolder1/subfolder2"]

    【讨论】:

      猜你喜欢
      • 2022-10-01
      • 1970-01-01
      • 2017-07-15
      • 2016-04-16
      • 2020-06-08
      • 1970-01-01
      • 2022-12-10
      相关资源
      最近更新 更多