我有一个这样定义的问题匹配器:
"fileLocation": ["relative", "${workspaceFolder}"],
而且我只知道文件的名称,而不是编译输出的相对路径。比它仅在文件位于工作区的根目录时打开文件。
例如问题匹配器搜索:Package.sql 但文件位于
- 根
- 其他子文件夹
- PKG
- 包.sql
是否有设置让问题匹配器“找到”该文件,即使它位于(未知)子文件夹中?(假设所有文件名都是不同的)
我有一个这样定义的问题匹配器:
"fileLocation": ["relative", "${workspaceFolder}"],
而且我只知道文件的名称,而不是编译输出的相对路径。比它仅在文件位于工作区的根目录时打开文件。
例如问题匹配器搜索:Package.sql 但文件位于
是否有设置让问题匹配器“找到”该文件,即使它位于(未知)子文件夹中?(假设所有文件名都是不同的)
您可以将“命令”字符串用于具有相对或绝对路径的打印文件,如下所示:
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
}
}
}
问题匹配器应返回绝对路径或相对于工作空间内固定文件夹的路径。如果您只有一个文件名,没有绝对/相对路径,在我的理解中,代码将无法找到该文件,因为只有名称是不够的信息。还有自动检测选项。您可以尝试这样的事情: "fileLocation": ["autodetect", "${workspaceFolder}/subfolder1/subfolder2"]