Я создал проект в VSCode, версия 1.28.0-insider, в Windows 10, который удаленно компилирует проект на компьютере с Linux.
Я монтирую дерево исходных текстов на коробке Windows для редактирования из VSCode.Тем не менее, я компилирую на компьютере Linux с помощью команды SSH, запущенной из tasks.json.
Выходные данные команды компиляции отображаются в окне терминала и анализируются на вкладке «Проблемы» с помощью problemMatcher.
Проблема в том, что я не могу использовать относительные или абсолютные ссылки для расположения файла.У меня есть несколько проектов, и мне нужно иметь возможность удалять папки из начала строки пути, показанной в ошибках компилятора.
Я могу сделать это, настроив пользовательское регулярное выражение в разделе шаблонов problemMatcher.Однако я не хочу писать пользовательское регулярное выражение для каждого проекта.Скорее я хочу удалить конкретную группу папок для всех проектов.
Проблема была бы решена, если бы я мог использовать переменную окружения в regepxp.Есть ли способ объединить регулярное выражение с другой строкой из переменной среды?
Вот мой файл tasks.json:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"windows": {
"command": "c:/cygwin64/bin/ssh.exe"
, "args": [
"ewok@zodiak",
"'cd ~/code/ies/ies_alg; make'"
]
}
, "options": {
"env": {
"fullExpression": "^\\/home\\/unix2\\/ewok\\/code\\/ies\\/ies_alg([#%$~A-Za-z0-9_:+-\\\\]+):(\\d+):(\\d+):\\s(warning|error)(.*)$"
}
}
,"group": {
"kind": "build",
"isDefault": true
}
,"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "${workspaceFolder}"],
"pattern": {
//--this works "regexp": "^\\/home\\/unix2\\/ewok\\/code\\/ies\\/ies_alg([#%$~A-Za-z0-9_:+-\\\\]+):(\\d+):(\\d+):\\s(warning|error)(.*)$"
"regexp": "${env:fullExpression}"
,"file": 1
,"line": 2
,"severity": 4
,"message": 5
}
}
}
]
}