Удаляет ли средство сопоставления задач VSCode управляющие последовательности ANSI перед сопоставлением?
Я делаю пользовательскую задачу для запуска модульных тестов Perl с помощью. Вывод этой команды содержит сведения о неудачных тестах, которые я хотел бы отфильтровать и отобразить как проблемы.
Я написал следующий сопоставитель для моего вывода.
"problemMatcher": {
"owner": "yath",
"fileLocation": [ "relative", "${workspaceFolder}" ],
"severity": "error",
"pattern": [
{
"regexp": "\\[\\s*FAIL\\s*\\]\\s*job\\s*\\d+\\s*\\+?\\s*(.+)",
"message": 1,
},{
"regexp": "\\(\\s*DIAG\\s*\\)\\s*job\\s*\\d+\\s*\\+?\\s*at (.+) line (\\d+)\\.",
"file": 1,
"line": 2
}
]
}
Предполагается, что это соответствует двум разным строкам в следующем выводе, который я представлю в виде кода для копирования и в виде снимка экрана.
** Defaulting to the 'test' command **
( LAUNCH ) job 1 t/foo.t
( NOTE ) job 1 Seeded srand with seed '20220414' from local date.
[ PASS ] job 1 + passing test
[ FAIL ] job 1 + failing test
( DIAG ) job 1 Failed test 'failing test'
( DIAG ) job 1 at t/foo.t line 57.
[ PLAN ] job 1 Expected assertions: 2
( FAILED ) job 1 t/foo.t
( TIME ) job 1 Startup: 0.30841s | Events: 0.01992s | Cleanup: 0.00417s | Total: 0.33250s
< REASON > job 1 Test script returned error (Err: 1)
< REASON > job 1 Assertion failures were encountered (Count: 1)
The following jobs failed:
+--------------------------------------+-----------------------------------+
| Job ID | Test File |
+--------------------------------------+-----------------------------------+
| e7aee661-b49f-4b60-b815-f420d109457a | t/foo.t |
+--------------------------------------+-----------------------------------+
Yath Result Summary
-----------------------------------------------------------------------------------
Fail Count: 1
File Count: 1
Assertion Count: 2
Wall Time: 0.74 seconds
CPU Time: 0.76 seconds (usr: 0.20s | sys: 0.00s | cusr: 0.49s | csys: 0.07s)
CPU Usage: 103%
--> Result: FAILED <--
Но на самом деле красиво с цветами.
Я подозреваю, что в этом выводе есть escape-последовательности ANSI. Я мог бы передать флаг
Должен ли я изменить свой шаблон, чтобы он соответствовал escape-последовательностям (я могу прочитать исходный код программы, которая их печатает, но это раздражает), или они на самом деле вырезаны, и мой шаблон неверен, но я не вижу, где ?
Вот первый шаблон как соответствие regex101 , а вот второй .