Сопоставитель проблем VSCode: Неизвестная подпапка для расположения файла
У меня есть сопоставитель проблем, определенный следующим образом:
"fileLocation": ["relative", "${workspaceFolder}"],
И я знаю только имя файла, а НЕ относительный путь из моих выходных данных компиляции. Затем он открывает файлы только тогда, когда они находятся в корне рабочей области.
Например, средство поиска проблем ищет: Package.sql Но файл находится в
- корень
- Другие подпапки
- PKG
- Package.sql
Есть ли параметр, позволяющий сопоставителю проблем "находить" этот файл, даже если он находится в (неизвестной) подпапке? (Предполагается, что все имена файлов разные)
2 ответа
Вы можете использовать строку "command" для файла печати с относительным или абсолютным путем, например: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"]