В Visual Studio Code (VSCode), tasks.json, возможно ли установить problemMatcher-> pattern-> regexp на основе переменной среды? - PullRequest
0 голосов
/ 08 октября 2018

Я создал проект в 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
            }
        }
    }

]

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...