#visual-studio-code #vscode-tasks
#visual-studio-code #vscode-задачи
Вопрос:
Я хотел бы сопоставить вывод проблемы из программы с выводом JSON.
У меня есть файл output.json
. Формат примерно такой:
"warnings": [
{
"file_location": "abc.hpp",
"line": 73,
"msg": "Some warning message"
}
Я хотел бы показать их в представлении проблем.
-
Как мне прочитать проблемы из файла (нужно ли мне использовать
cat/type
?). Похоже, что все примеры предназначены для npm watch или аналогичных. -
Даже с
output.json
моими текущими задачами это не отображается.
Я определил следующую задачу:
{
"label": "show problems",
"type": "shell",
"command": "cat output.json",
"problemMatcher": {
"fileLocation": ["relative", "${workspaceFolder}"],
"pattern": [
{
"regexp": "^\s*"file_location"\s*:\s*"(. )",$",
"file": 1
},
{
"regexp": "^\s*"line"\s*:\s*(\d ),$",
"line": 1
},
{
"regexp": "^\s*"msg"\s*:\s*(\d )$",
"message": 1
}
]
}
}
Комментарии:
1. Не уверен, что не так с вашим средством сопоставления проблем, но средства сопоставления проблем всегда имеют тенденцию быть немного неудобными, особенно для «проблем с чтением из файла», как здесь. Рассматривали ли вы возможность написания расширения с использованием API диагностики? Это кажется гораздо более чистым, простым и гибким подходом.
2. @Gama11 Нет, но я проверю это, я не слышал об этом раньше. У меня уже есть внутреннее расширение для фрагментов, так что, возможно, я мог бы легко его расширить. Спасибо 🙂
3. @Gama11 Теперь я создал расширение, и оно прекрасно работает и в любом случае намного лучше подходит для распространения. Если вы добавите правильный ответ, я могу принять ваш ответ там. (Вы не можете принимать комментарии в качестве ответов).
4. Хм .. рад, что это помогло, но я не думаю, что «сделайте что-то другое вместо этого» действительно отвечает на первоначальный вопрос. Кому-то еще, кто найдет вопрос, возможно, все еще интересно, как это можно сделать с помощью средств сопоставления проблем. 🙂