Где определить общий сопоставитель задач для проверки терминала?
В vscode я иногда могу щелкнуть по ошибкам сборки во встроенном терминале, а иногда это невозможно. Это раздражало меня долгое время, потому что я не мог найти шаблон до сегодняшнего дня, когда редактировал tasks.json.
Похоже, это связано с определением problemMatcher
в .vscode/tasks.json
. УдалениеproblemMatcher
раздел из файла и ошибки сборки в терминале больше нельзя было щелкнуть, но их возвращение не включало их повторно.
Мой vscode-проект находится во вложенной папке дерева сборки, а его корень сборки для всего проекта находится на два уровня выше. ${workspaceFolder}/../..
который, я считаю, может сбить с толку некоторые инструменты сборки.
tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"problemMatcher": {
"fileLocation": "relative",
"severity": "error",
"pattern":{
"regexp": "^system/mytool/(.*):(\\d+):(\\d+):\\s+(warning|error):(.*)$",
"file": 1,
"location": 2,
"column": 3,
"severity": 4,
"message": 5
},
},
"tasks": [
{
"type": "shell",
"label": "android deploy",
"command": "cd ${workspaceFolder}/../..; source build/envsetup.sh ; lunch hikey960-userdebug ; m mytool",
"args": [
],
"options": {
},
"group": "build"
},
]
}
Я видел примеры, когда "problemMatcher" = "$gcc"
внутри задачи, должен ли я определять свой сопоставитель проблем в другом месте и вместо этого ссылаться на него своим именем?
Как использовать его для анализа вывода при сборке путем ввода команд make в интегрированном терминале?
1 ответ
Вы не можете определять средства сопоставления задач глобально. Вместо этого вы должны определять их в каждой задаче.
Это несколько некрасиво, потому что вам, возможно, придется скопировать один и тот же сопоставитель проблем во множество задач. Для этого есть открытая проблема: глобальные свойства задачи