VSCode problemmatcher: неизвестная подпапка для расположения файла - PullRequest
0 голосов
/ 02 марта 2020

У меня есть средство сопоставления проблем, определенное так:

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

И я знаю только имя файла, а НЕ относительный путь из моего вывода компиляции. Чем он открывает файлы, только когда они находятся в root рабочей области.

Например, средство поиска проблем ищет: Пакет. sql Но файл находится под

  • root
    • Другие подпапки
    • PKGs
      • Пакет. sql

Есть ли параметр, позволяющий средству сопоставления проблем "найти" этот файл, даже если он находится в (неизвестная) подпапка? (Предполагается, что все имена файлов различны)

1 Ответ

0 голосов
/ 03 марта 2020

Вы можете использовать строку «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
         }
   }
}
...