2015-08-13 2 views
0

У меня есть пользовательский problemMatcher для муравьиной задачи, которая вызывает Microsoft JScript для наложения файлов JavaScript (что я не могу изменить на что-то современное, как ESHint или подобное).VSCode problemMatcher: определение серьезности

JScript имеет сообщение об ошибках, которые сами отчеты, как «Эта ошибка может быть проигнорирована ...», который выглядит следующим образом на выходе сборки:

 [echo] c:\Users\D064766\Work\Perforce\tc1\lightspeed\dev\src\_javascript\jsgen\js\dbg\lightspeed.js(20, 4) Microsoft JScript runtime error: 'document' is undefined 
    [echo] 
    [echo] This error can be ignored... 

Моего problemMatcher выглядит следующим образом:

"problemMatcher": [{ 
    "owner": "javascript", 
    "fileLocation": ["absolute"], 
    "pattern": [{ 
     "regexp": "  \\[echo\\] ([^\\(\\)]*)\\((\\d+), (\\d+)\\) Microsoft JScript (runtime error|compilation error): (.*)", 
     "file": 1, 
     "line": 2, 
     "column": 3, 
     "severity": 4, 
     "message": 5 
    }] 
}] 

Он правильно находит первую строку отчета об ошибке. Однако я хочу, чтобы ошибки, которые можно игнорировать, встречались как предупреждения, а не ошибки в сообщении об ошибках.

Есть ли способ сопоставить сообщения об ошибках с уровнями серьезности?

E.g. карту "runtime error" до "warning" и "compilation error" до "error" (близорукость, я знаю - на данный момент этого будет достаточно).

ответ

2

Есть два варианта вы можете использовать:

Либо использовать многоэлектронную линию Искатель а и сопрягать все три линии. Однако это требует, чтобы сообщение об ошибке не могло быть проигнорировано. Например, «Эта ошибка серьезная». См. https://code.visualstudio.com/Docs/editor/tasks#_defining-a-problem-matcher

Определите два совпадения задачи и обладайте свойством серьезности на самом устройстве, а не на шаблоне. Что-то вроде этого (не тестировалось)

"problemMatcher": [{ 
    "owner": "javascript", 
    "fileLocation": ["absolute"], 
    "severity": "warning", 
    "pattern": { 
     "regexp": "  \\[echo\\] ([^\\(\\)]*)\\((\\d+), (\\d+)\\) Microsoft JScript runtime error): (.*)", 
     "file": 1, 
     "line": 2, 
     "column": 3, 
     "message": 4 
    } 
}, 
{ 
    "owner": "javascript", 
    "fileLocation": ["absolute"], 
    "severity": "error", 
    "pattern": { 
     "regexp": "  \\[echo\\] ([^\\(\\)]*)\\((\\d+), (\\d+)\\) Microsoft JScript compilation error: (.*)", 
     "file": 1, 
     "line": 2, 
     "column": 3, 
     "message": 4 
    } 
}] 

Для полной схемы task.json см https://code.visualstudio.com/Docs/editor/tasks_appendix

+0

Я проверил многострочный Искателя уже, это не сработало. Но свойство '' серьезности ''на самом совпадении (и несколько совпадений с ним) выполняло эту работу. Благодаря! –

Смежные вопросы