Add formatDiagnostics utility

This commit is contained in:
Alex Eagle
2016-07-13 09:13:55 -07:00
parent f9d29370b6
commit 34e81f2805
2 changed files with 19 additions and 17 deletions

View File

@@ -997,6 +997,23 @@ namespace ts {
return sortAndDeduplicateDiagnostics(diagnostics);
}
export function formatDiagnostics(diagnostics: Diagnostic[], host: CompilerHost): string {
let output = "";
for (const diagnostic of diagnostics) {
if (diagnostic.file) {
const { line, character } = getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start);
const fileName = diagnostic.file.fileName;
const relativeFileName = convertToRelativePath(fileName, host.getCurrentDirectory(), fileName => host.getCanonicalFileName(fileName));
output += `${ relativeFileName }(${ line + 1 },${ character + 1 }): `;
}
const category = DiagnosticCategory[diagnostic.category].toLowerCase();
output += `${ category } TS${ diagnostic.code }: ${ flattenDiagnosticMessageText(diagnostic.messageText, sys.newLine) }${ sys.newLine }`;
}
return output;
}
export function flattenDiagnosticMessageText(messageText: string | DiagnosticMessageChain, newLine: string): string {
if (typeof messageText === "string") {
return messageText;