diff --git a/src/template-linter.ts b/src/template-linter.ts index f65aafe3..4e8b1440 100644 --- a/src/template-linter.ts +++ b/src/template-linter.ts @@ -17,6 +17,7 @@ export interface TemplateLinterError { fatal?: boolean; moduleId: string; rule?: string; + filePath: string; severity: number; message: string; isFixable?: boolean; diff --git a/src/utils/diagnostic.ts b/src/utils/diagnostic.ts index 3bbebeb4..bc6c5d36 100644 --- a/src/utils/diagnostic.ts +++ b/src/utils/diagnostic.ts @@ -31,9 +31,37 @@ export function toHbsSource(templateNode: ITemplateNode): string { return output; } +function convertEmberTemplateLintSeverity(value: number): DiagnosticSeverity { + // lint values + const TODO_SEVERITY = -1; + const IGNORE_SEVERITY = 0; + const WARNING_SEVERITY = 1; + const ERROR_SEVERITY = 2; + + if (value === TODO_SEVERITY) { + return DiagnosticSeverity.Hint; + } else if (value === ERROR_SEVERITY) { + return DiagnosticSeverity.Error; + } else if (value === WARNING_SEVERITY) { + return DiagnosticSeverity.Warning; + } else if (value === IGNORE_SEVERITY) { + return DiagnosticSeverity.Information; + } + + return DiagnosticSeverity.Error; +} + +function severityForError(error: TemplateLinterError): DiagnosticSeverity { + if (error.rule) { + return convertEmberTemplateLintSeverity(error.severity); + } else { + return DiagnosticSeverity.Error; + } +} + export function toDiagnostic(source: string, error: TemplateLinterError): Diagnostic { const result = { - severity: DiagnosticSeverity.Error, + severity: severityForError(error), range: toRange(source, error), message: toMessage(error), code: error.rule || 'syntax',