2015-12-02 13 views
5

Warum funktioniert mein ProblemMatcher nicht? Ich bin mir ziemlich sicher über die regex, aber es weist keine Probleme, auch gibt es einige auf stdout ...Warum funktioniert dieser problemMatcher im VS-Code nicht?

// the matcher 
"problemMatcher": { 
    "owner": "typescript", 
    "fileLocation": ["relative", "${workspaceRoot}"], 
    "pattern": { 
     "regexp": "^TypeScript (warning|error): (.*)\\((\\d+),(\\d+)\\): (.*)$", 
     "severity": 1, 
     "file": 2, 
     "line": 3, 
     "column": 4, 
     "message": 5 
    } 
} 

//the browserify/tsify pipeline 
browserify().add('main.ts') 
    .plugin(tsify, { noImplicitAny: false, removeComments:true }) 
    .transform("babelify",{ extensions: ['.ts'], presets: ["es2015"]}) 
    .bundle() 
    .on('error', function (error) { console.log(error.toString()); }) 
    .pipe(source('bundle.js')) 
    .pipe(gulp.dest('www/js/dist/')); 

//gulp sample output 
[00:39:00] Starting 'ts-compile'... 
TypeScript error: main.ts(118,30): Error TS2339: Property 'object' does not exist on type 'boolean'. 
TypeScript error: main.ts(137,24): Error TS2339: Property 'object' does not exist on type 'boolean'. 
TypeScript error: main.ts(507,44): Error TS2304: Cannot find name 'loading'. 
[00:39:03] Finished 'ts-compile' after 2.98 s 
+0

Alle Regex-Bibliotheken scheinen sich in ihren Details zu unterscheiden. Wenn die Regex fehlerhaft ist, würde ich vermuten, dass der Alternationsoperator '|' höhere Priorität hat als erwartet. Probieren Sie '((Warnung) | (Fehler))' und sehen Sie, ob das irgendetwas ändert. – eh9

+0

@santa Die Regex funktioniert in der Tat. Ich kann drei Fehler für die Beispielausgabe in VSCode mit Ihrem Problem-Matcher erhalten. Wie sieht Ihre Datei tasks.json aus? – Wosi

+0

bereits mein Problem @Wosi gefunden Ich musste die tasks.json in den .vscode-Ordner (der einen Standard enthielt, der mich denken ließ, dass meins in erster Linie verwendet wurde) – santa

Antwort

3

Ich löste das Problem, indem sie tasks.json in .vscode Ordner setzen. Ich dachte ursprünglich, tasks.json würde wie tsconfig.json (Projekt-Root) gefunden werden, aber es stellte sich als falsch heraus.

+1

danke für Ihre Grammatiken und Zeug mr @ nhahtdh – santa