import * as LSPClient from "./client" const MAX_PER_FILE = 20 export function pretty(diagnostic: LSPClient.Diagnostic) { const severityMap = { 1: "ERROR", 2: "WARN", 3: "INFO", 4: "HINT", } const severity = severityMap[diagnostic.severity || 1] const line = diagnostic.range.start.line + 1 const col = diagnostic.range.start.character + 1 return `${severity} [${line}:${col}] ${diagnostic.message}` } export function report(file: string, issues: LSPClient.Diagnostic[]) { const errors = issues.filter((item) => item.severity === 1) if (errors.length === 0) return "" const limited = errors.slice(0, MAX_PER_FILE) const more = errors.length - MAX_PER_FILE const suffix = more > 0 ? `\n... and ${more} more` : "" return `\n${limited.map(pretty).join("\n")}${suffix}\n` } export * as Diagnostic from "./diagnostic"