Сопоставитель проблем 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"]

Другие вопросы по тегам