Где определить общий сопоставитель задач для проверки терминала?

В 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 ответ

Решение

Вы не можете определять средства сопоставления задач глобально. Вместо этого вы должны определять их в каждой задаче.

Это несколько некрасиво, потому что вам, возможно, придется скопировать один и тот же сопоставитель проблем во множество задач. Для этого есть открытая проблема: глобальные свойства задачи

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